j20 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -446,27 +446,6 @@ const add = (node, key, newValue) => {
446
446
  }
447
447
  }
448
448
  };
449
- const bindNode = (node, props) => {
450
- let oldProps = {};
451
- effect(() => {
452
- const newProps = { ...props() };
453
- const newKeys = Object.keys(newProps);
454
- const oldKeys = Object.keys(oldProps);
455
- const allKeys = new Set([...newKeys, ...oldKeys]);
456
- for (const key of allKeys) {
457
- if (key === "children")
458
- continue;
459
- oldKeys.includes(key)
460
- ? newKeys.includes(key)
461
- ? Object.is(oldProps[key], newProps[key])
462
- ? null
463
- : update(node, key, oldProps[key], newProps[key])
464
- : unset(node, key, oldProps[key])
465
- : add(node, key, newProps[key]);
466
- }
467
- oldProps = newProps;
468
- });
469
- };
470
449
 
471
450
  const createDom = (tag, props, children) => {
472
451
  const node = tag;
@@ -667,7 +646,6 @@ const createWebComponent = (tag, props) => {
667
646
  customElements.define(customElement.tag, NewClass);
668
647
  el = new NewClass();
669
648
  }
670
- props && bindNode(el, props);
671
649
  const runner = () => {
672
650
  let childrenGetter = () => untrack(() => (props ? props().children : undefined));
673
651
  const ret = tag(computed(() => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../signal/dist/index.js","../_dist/h/utils.js","../_dist/h/createDom.js","../_dist/brand.js","../_dist/web-components.js","../_dist/h/createWebComponent.js","../_dist/h/instance.js","../_dist/api/effect.js","../_dist/api/ref.js","../_dist/api/wc.js","../_dist/api/dollar.js","../_dist/api/utils.js","../_dist/api/context.js","../_dist/api/id.js","../_dist/api/onMount.js","../_dist/api/onDestroy.js","../_dist/api/style.js","../_dist/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Some.js","../_dist/control/Replace.js","../_dist/control/Switch.js","../_dist/h/createLogicComponent.js","../_dist/h/createElement.js","../_dist/h/createRoot.js","../_dist/jsx-runtime.js"],"sourcesContent":["// 当前正在执行的effect或computed\nlet currentReaction = null;\n// 批处理栈,用于延迟 effect 的执行\nlet batchDepth = 0;\n// 待执行的 effect 队列\nlet pendingEffects = new Set();\n// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\n SIGNAL = true;\n _value;\n _version = 0;\n _deps = new Set();\n constructor(value) {\n this._value = value;\n }\n get value() {\n // 如果有当前正在执行的reaction,建立依赖关系\n if (currentReaction) {\n this.track(currentReaction);\n }\n return this._value;\n }\n set value(newValue) {\n if (Object.is(this._value, newValue))\n return;\n this._value = newValue;\n this._version++;\n // 通知所有依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n // 对于effect,使用版本检查优化\n if (reaction._depVersions.has(this) || reaction.hasDepsChanged()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n }\n });\n }\n get version() {\n return this._version;\n }\n // 建立依赖关系\n track(reaction) {\n if (!this._deps.has(reaction)) {\n this._deps.add(reaction);\n // 维护反向依赖关系\n let reactions = depMap.get(this);\n if (!reactions) {\n reactions = new Set();\n depMap.set(this, reactions);\n }\n reactions.add(reaction);\n // 在reaction中记录依赖\n reaction.track(this);\n }\n }\n}\n/**\n * Computed类 - 用于计算派生值\n */\nclass Computed {\n SIGNAL = true;\n computeFn;\n _value;\n _version = 0;\n dirty = true;\n disposed = false;\n _deps = new Set();\n sources = new Set();\n constructor(computeFn) {\n this.computeFn = computeFn;\n // 使用symbol作为初始值占位符\n this._value = undefined;\n }\n get value() {\n if (this.disposed) {\n throw new Error(\"Cannot access value of disposed computed\");\n }\n if (this.dirty) {\n this.compute();\n }\n // 建立依赖关系\n if (currentReaction) {\n if (!this._deps.has(currentReaction)) {\n this._deps.add(currentReaction);\n currentReaction.track(this);\n }\n }\n return this._value;\n }\n get version() {\n return this._version;\n }\n compute() {\n if (this.disposed) {\n throw new Error(\"Cannot compute disposed computed\");\n }\n // 检查循环依赖\n if (computationStack.includes(this)) {\n throw new Error(\"Circular dependency detected in computed values\");\n }\n this.dirty = false;\n // 保存当前状态\n const prevReaction = currentReaction;\n const prevSources = this.sources;\n this.sources = new Set();\n // 将当前computed加入计算栈\n computationStack.push(this);\n currentReaction = this;\n try {\n this._value = this.computeFn();\n this._version++;\n }\n catch (e) {\n this.dirty = true;\n throw e;\n }\n finally {\n // 清理工作\n const index = computationStack.indexOf(this);\n if (index !== -1) {\n computationStack.splice(index, 1);\n }\n currentReaction = prevReaction;\n // 清理不再依赖的sources\n prevSources.forEach((source) => {\n if (!this.sources.has(source)) {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n }\n });\n }\n }\n markDirty() {\n if (this.disposed || this.dirty)\n return;\n this.dirty = true;\n // 通知依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n });\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this.sources.has(source)) {\n this.sources.add(source);\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this.sources.forEach((source) => {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this.sources.clear();\n this._deps.clear();\n // 清理引用\n this._value = undefined;\n this.computeFn = undefined;\n }\n}\n// 用于检测循环依赖\nconst computationStack = [];\n/**\n * Effect类 - 用于执行副作用\n */\nclass Effect {\n effectFn;\n cleanupFn = null;\n disposed = false;\n _deps = new Set();\n _depVersions = new Map();\n constructor(effectFn) {\n this.effectFn = effectFn;\n }\n execute() {\n if (this.disposed)\n return;\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n // 执行effect并收集依赖\n const prevReaction = currentReaction;\n currentReaction = this;\n try {\n const result = this.effectFn();\n if (typeof result === \"function\") {\n this.cleanupFn = result;\n }\n }\n finally {\n currentReaction = prevReaction;\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this._deps.forEach((dep) => {\n const reactions = depMap.get(dep);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this._deps.clear();\n this._depVersions.clear();\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n }\n isActive() {\n return !this.disposed;\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this._deps.has(source)) {\n this._deps.add(source);\n // 记录依赖的版本号\n if (\"version\" in source) {\n this._depVersions.set(source, source.version);\n }\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n hasDepsChanged() {\n for (const [dep, version] of this._depVersions) {\n if (\"version\" in dep && dep.version !== version) {\n return true;\n }\n }\n return false;\n }\n}\n// 创建信号\nfunction signal(initialValue) {\n return new Signal(initialValue);\n}\n// 创建计算值\nfunction computed(computeFn) {\n return new Computed(computeFn);\n}\n// 创建副作用\nfunction effect(effectFn) {\n const effectInstance = new Effect(effectFn);\n effectInstance.execute();\n return effectInstance;\n}\n// 临时取消追踪\nfunction untrack(fn) {\n const prevReaction = currentReaction;\n currentReaction = null;\n try {\n return fn();\n }\n finally {\n currentReaction = prevReaction;\n }\n}\n// 批处理 - 延迟 effect 的执行直到批处理结束\nfunction batch(fn) {\n batchDepth++;\n try {\n return fn();\n }\n finally {\n batchDepth--;\n // 当批处理结束时,执行所有待处理的 effect\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n // 执行所有待处理的 effect\n effects.forEach((effect) => {\n if (effect.isActive()) {\n effect.execute();\n }\n });\n }\n }\n}\n\nexport { Computed, Effect, Signal, batch, computed, effect, signal, untrack };\n//# sourceMappingURL=index.js.map\n","import { effect } from \"../api/effect\";\nimport { getCurrentInstance } from \"./instance\";\nexport const isEvent = (eventName) => {\n return eventName.startsWith(\"on\");\n};\nexport const getEventName = (eventName) => {\n return eventName.slice(2).toLowerCase();\n};\nexport const getChildren = (propChildren) => {\n const arr = [];\n for (let i = 0; i < propChildren.length; i++) {\n const child = propChildren[i];\n if (typeof child === \"function\") {\n let textNode;\n const effectInstance = effect(() => {\n const el = child();\n if (typeof el === \"number\" || typeof el === \"string\") {\n if (textNode) {\n textNode.nodeValue = el + \"\";\n }\n else {\n textNode = document.createTextNode(el + \"\");\n arr.push(textNode);\n }\n }\n else {\n arr.push(el);\n }\n });\n if (!textNode) {\n effectInstance.dispose();\n }\n }\n else if (child != undefined) {\n arr.push(child);\n }\n }\n return arr;\n};\nlet overflow = \"\";\nlet count = 0;\nexport const generateId = () => {\n if (count === Number.MAX_SAFE_INTEGER) {\n overflow += count.toString(32);\n count = 0;\n }\n return `${overflow}${(count++).toString(32)}`;\n};\nexport const styleObjectToString = (style) => {\n let styleString = \"\";\n for (const key in style) {\n const value = style[key];\n styleString += `${key}: ${value}; `;\n }\n return styleString.trim();\n};\nexport const update = (node, key, oldValue, newValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n node.addEventListener(getEventName(key), newValue);\n }\n else {\n if (newValue === false || newValue == null) {\n node.removeAttribute(key);\n }\n else {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const unset = (node, key, oldValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n }\n else if (key === \"ref\") {\n oldValue.current = null;\n }\n else {\n node.removeAttribute(key);\n }\n};\nexport const add = (node, key, newValue) => {\n if (isEvent(key)) {\n node.addEventListener(getEventName(key), newValue);\n }\n else if (key === \"ref\") {\n const instance = getCurrentInstance();\n if (instance) {\n if (!instance.disposes)\n instance.disposes = [];\n instance.disposes.push(() => {\n newValue.current = null;\n });\n }\n newValue.current = node;\n }\n else {\n if (newValue !== false && newValue != null) {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const bindNode = (node, props) => {\n let oldProps = {};\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n if (key === \"children\")\n continue;\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n};\n","import { effect } from \"../api/effect\";\nimport { add, getChildren, unset, update } from \"./utils\";\nexport const createDom = (tag, props, children) => {\n const node = tag;\n let oldProps = {};\n props &&\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n // 独立 wc 初始化\n node.lazyInit?.();\n if (children &&\n // 独立 wc 初始化时 mode 为空时,忽略 children\n (node.lazyInit\n ? !node.customElement.mode\n ? false\n : true\n : true)) {\n node.append(...getChildren([].concat(children())));\n }\n return node;\n};\n","export const BRAND = \"j20\";\n","import { signal } from \"./api/signal\";\nimport { computed } from \"./api/computed\";\nimport { getCurrentInstance, instanceCreate } from \"./h/instance\";\nimport { BRAND } from \"./brand\";\nimport { hostStack } from \"./h/createWebComponent\";\nexport const registerWebComponent = (Comp) => {\n if (!Comp.customElement) {\n throw new Error(\"Custom element options is not provided\");\n }\n if (customElements.get(Comp.customElement.tag)) {\n throw new Error(\"Custom element tag is already defined\");\n }\n const NewClass = buildClass(Comp);\n customElements.define(Comp.customElement.tag, NewClass);\n};\nexport class WebComponentClass extends HTMLElement {\n constructor() {\n super();\n }\n addStyleSheet(sheet) { }\n removeStyleSheet(sheet) { }\n}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\n const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? (() => {\n const style = new CSSStyleSheet();\n style.replaceSync(customElement.style);\n return style;\n })()\n : customElement.style\n : null;\n return class NewElementClass extends HTMLElement {\n static get observedAttributes() {\n return Object.entries(customElement.props ?? {})\n .map(([, value]) => value.attribute)\n .filter((i) => i != undefined);\n }\n static brand = BRAND;\n brand = BRAND;\n #shadow;\n #props = {};\n customElement = customElement;\n constructor() {\n super();\n if (customElement.tag && customElement.mode) {\n this.#shadow = this.attachShadow({ mode: customElement.mode });\n if (styleSheet)\n this.#shadow.adoptedStyleSheets = [styleSheet];\n }\n this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {\n acc[key] = signal(value.attribute\n ? a2v[value.attribute](this.getAttribute(value.attribute))\n : undefined);\n return acc;\n }, {});\n }\n lazyInit() {\n const host = this;\n hostStack.push(host);\n const [, fragment] = instanceCreate(() => {\n return Comp(computed(() => {\n return new Proxy(this.#props, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p.startsWith(\"on\")) {\n return (detail) => host.dispatchEvent(new CustomEvent(p.slice(2).toLocaleLowerCase(), {\n detail,\n }));\n }\n else {\n return Reflect.get(target, p, receiver)?.value;\n }\n },\n });\n }));\n }, getCurrentInstance());\n hostStack.pop();\n if (this.#shadow) {\n this.#shadow.appendChild(fragment);\n }\n else {\n this.appendChild(fragment);\n }\n }\n appendToShadowDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.#shadow.append(...elements);\n }\n }\n appendToLightDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.append(...elements);\n }\n }\n appendToBody(elements) {\n if (elements.length > 0) {\n this.append(...elements);\n }\n }\n addStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets.push(sheet);\n }\n }\n removeStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets =\n this.#shadow.adoptedStyleSheets.filter((s) => s !== sheet);\n }\n }\n attributeChangedCallback(name, oldValue, newValue) {\n const attrs = NewElementClass.observedAttributes;\n const propSignal = this.#props[a2p[name]];\n if (propSignal && attrs.includes(name)) {\n propSignal.value = a2v[name](newValue);\n }\n }\n #connectedCallbackArray = [];\n addConnectedCallback(callback) {\n this.#connectedCallbackArray.push(callback);\n }\n connectedCallback() {\n this.#connectedCallbackArray.forEach((fn) => fn());\n }\n #disconnectedCallbackArray = [];\n addDisconnectedCallback(callback) {\n this.#disconnectedCallbackArray.push(callback);\n }\n disconnectedCallback() {\n this.#disconnectedCallbackArray.forEach((fn) => fn());\n }\n };\n};\nconst buildMap = (customElement) => {\n const a2p = {};\n const p2a = {};\n const a2v = {};\n Object.entries(customElement.props ?? {})\n .map(([key, value]) => [value.attribute, key, value.type])\n .filter(([attr]) => attr != undefined)\n .forEach((i) => {\n a2p[i[0]] = i[1];\n p2a[i[1]] = i[0];\n a2v[i[0]] = {\n string: (v) => v ?? undefined,\n number: (v) => (v ? Number(v) : undefined),\n boolean: (v) => (v == null ? false : true),\n }[i[2]];\n });\n return { a2p, p2a, a2v };\n};\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nimport { untrack } from \"../api/untrack\";\nimport { BRAND } from \"../brand\";\nimport { buildClass } from \"../web-components\";\nimport { bindNode, getChildren } from \"./utils\";\nexport const hostStack = [];\nexport const getCurrentHost = () => {\n return hostStack.at(-1);\n};\nexport const createWebComponent = (tag, props) => {\n const customElement = tag.customElement;\n const Exist = customElements.get(customElement.tag);\n let el;\n if (Exist) {\n if (Exist.brand !== BRAND) {\n throw new Error(`Custom element [${customElement.tag}] is already registered`);\n }\n else {\n el = new Exist();\n }\n }\n else {\n const NewClass = buildClass(tag);\n customElements.define(customElement.tag, NewClass);\n el = new NewClass();\n }\n props && bindNode(el, props);\n const runner = () => {\n let childrenGetter = () => untrack(() => (props ? props().children : undefined));\n const ret = tag(computed(() => {\n const retProps = props ? props() : {};\n childrenGetter =\n Object.getOwnPropertyDescriptor(retProps, \"children\")?.get ??\n (() => undefined);\n delete retProps.children;\n return retProps;\n }));\n if (el.customElement.mode) {\n el.appendToShadowDom(getChildren([].concat(ret)));\n childrenGetter &&\n el.appendToLightDom(getChildren([].concat(childrenGetter())));\n }\n else {\n el.appendToBody(getChildren([].concat(ret)));\n }\n return el;\n };\n hostStack.push(el);\n let [, fragment] = instanceCreate(runner);\n hostStack.pop();\n return fragment;\n};\n","import { createDom } from \"./createDom\";\nimport { getCurrentHost } from \"./createWebComponent\";\nimport { generateId } from \"./utils\";\nconst instanceStack = [];\nexport const getCurrentInstance = () => instanceStack.at(-1);\n// api security guard\nexport const securityGetCurrentInstance = () => {\n const instance = getCurrentInstance();\n if (!instance)\n throw new Error(\"Do not run this api out of component\");\n return instance;\n};\nexport const instanceInit = (parent) => {\n const id = generateId();\n const parentInstance = parent ?? getCurrentInstance();\n const instance = {\n parent: parentInstance,\n id,\n host: getCurrentHost(),\n range: [document.createTextNode(\"\"), document.createTextNode(\"\")],\n };\n if (parentInstance) {\n if (parentInstance.children) {\n parentInstance.children.push(instance);\n }\n else {\n parentInstance.children = [instance];\n }\n }\n return instance;\n};\nexport const mounts = [];\nexport const instanceCreateElement = (instance, runner) => {\n instanceStack.push(instance);\n const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());\n fragment.prepend(instance.range[0]);\n fragment.append(instance.range[1]);\n if (instance.mounts) {\n mounts.push(...instance.mounts);\n instance.mounts = undefined;\n }\n instanceStack.pop();\n if (instanceStack.length === 0) {\n requestAnimationFrame(() => {\n mounts.forEach((mount) => mount());\n mounts.length = 0;\n });\n }\n return fragment;\n};\nexport const instanceCreate = (runner, parent) => {\n const instance = instanceInit(parent);\n return [instance, instanceCreateElement(instance, runner)];\n};\nexport const instanceGetElements = (instance) => {\n const [start, end] = instance.range;\n const els = [start];\n let index = start;\n while ((index = index.nextSibling)) {\n els.push(index);\n if (index === end)\n break;\n }\n return els;\n};\nexport const instanceDestroy = (parent, instance) => {\n // 使用栈来实现迭代式的深度优先销毁,避免递归开销\n // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)\n const stack = [\n { inst: instance, childrenDestroyed: false },\n ];\n while (stack.length > 0) {\n const current = stack[stack.length - 1];\n if (!current.childrenDestroyed) {\n // 第一次访问:先标记子节点已销毁,然后将子节点入栈\n current.childrenDestroyed = true;\n if (current.inst.children && current.inst.children.length > 0) {\n // 倒序添加子节点,保持与递归相同的销毁顺序\n for (let i = current.inst.children.length - 1; i >= 0; i--) {\n stack.push({\n inst: current.inst.children[i],\n childrenDestroyed: false,\n });\n }\n }\n }\n else {\n // 第二次访问:子节点已全部销毁,现在销毁当前节点\n const inst = current.inst;\n // 执行清理函数\n inst.disposes?.forEach((dispose) => {\n try {\n dispose();\n }\n catch (e) {\n console.error(\"Error during instance dispose:\", e);\n }\n });\n // 清空 dispose 数组,但保留数组引用\n if (inst.disposes) {\n inst.disposes.length = 0;\n }\n // 清空子节点引用\n if (inst.children) {\n inst.children = [];\n }\n stack.pop();\n }\n }\n // 从父实例中移除此实例的引用\n if (parent && parent.children) {\n parent.children = parent.children.filter((c) => c !== instance);\n }\n};\n","import { effect as innerEffect, Effect } from \"@j20org/signal\";\nimport { securityGetCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = securityGetCurrentInstance();\n if (!currentInstance.disposes)\n currentInstance.disposes = [];\n currentInstance.disposes.push(() => effectInstance.dispose());\n return effectInstance;\n};\nexport { Effect };\n","export function ref(init) {\n return {\n current: init ?? null,\n };\n}\n","import { getCurrentHost } from \"../h/createWebComponent\";\nexport const wc = () => {\n const host = getCurrentHost();\n if (!host) {\n throw new Error(\"host not found, please use `wc` in web component\");\n }\n const emit = (name, detail) => {\n host.dispatchEvent(new CustomEvent(name, {\n detail,\n }));\n };\n const onConnectedCallback = (callback) => {\n host.addConnectedCallback(callback);\n };\n const onDisconnectedCallback = (callback) => {\n host.addDisconnectedCallback(callback);\n };\n return {\n host,\n emit,\n onConnectedCallback,\n onDisconnectedCallback,\n };\n};\n","export const $ = (val) => val;\n","export const isSignal = (a) => a?.SIGNAL === true;\n","import { instanceCreateElement, instanceInit, securityGetCurrentInstance, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = securityGetCurrentInstance();\n let index = instance?.parent;\n while (index) {\n if (contextWeakMap.has(index)) {\n const { ctx, value } = contextWeakMap.get(index);\n if (ctx === Context) {\n return value;\n }\n }\n else {\n index = index.parent;\n }\n }\n return Context.defaultValue;\n};\nexport const createContext = (defaultValue) => {\n const Context = (p) => {\n const props = p;\n const instance = instanceInit(securityGetCurrentInstance());\n contextWeakMap.set(instance, {\n ctx: Context,\n value: {\n get value() {\n return props.value.value;\n },\n },\n });\n const fragment = instanceCreateElement(instance, () => props.value.children);\n return fragment;\n };\n Context.isLogic = true;\n const Consumer = (p) => {\n const props = p;\n const data = context(Context);\n if (data)\n return props.value.children(data);\n return props.value.children(isSignal(defaultValue)\n ? defaultValue\n : {\n get value() {\n return defaultValue;\n },\n });\n };\n Consumer.isLogic = true;\n Context.Consumer = Consumer;\n Context.defaultValue = defaultValue;\n return Context;\n};\nexport const $useContext = (c) => context(c.value);\n","import { securityGetCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return securityGetCurrentInstance()?.id;\n};\n","import { securityGetCurrentInstance } from \"../h/instance\";\nexport const onMount = (callback) => {\n const instance = securityGetCurrentInstance();\n if (!instance.mounts) {\n instance.mounts = [];\n }\n instance.mounts.push(callback);\n};\n","import { effect } from \"./effect\";\nexport const onDestroy = (callback) => effect(() => callback);\n","import { getCurrentInstance } from \"../h/instance\";\nimport { id } from \"./id\";\nimport { onDestroy } from \"./onDestroy\";\nexport const sheet = (css) => {\n let instance = getCurrentInstance();\n const sheet = new CSSStyleSheet();\n css && sheet.replaceSync(css);\n while (instance) {\n if (instance.host) {\n instance.host.addStyleSheet(sheet);\n onDestroy(() => {\n instance.host.removeStyleSheet(sheet);\n });\n break;\n }\n instance = instance?.parent;\n }\n if (!instance) {\n document.adoptedStyleSheets.push(sheet);\n onDestroy(() => {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter((s) => s !== sheet);\n });\n }\n return sheet;\n};\nexport const css = (css) => {\n const styleId = id();\n const replacedCss = css.replace(/\\.(\\w[\\w-]*)\\s*?\\{/g, (_, className) => {\n return `.${className}_${styleId} {`;\n });\n sheet(replacedCss);\n return new Proxy({}, {\n get: (_, prop) => {\n return `${prop}_${styleId}`;\n },\n });\n};\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, instanceGetElements, instanceDestroy, securityGetCurrentInstance, } from \"../h/instance\";\nimport { untrack } from \"../api/untrack\";\nfunction insertAfter(parentNode, newNode, targetNode) {\n parentNode?.insertBefore(newNode, targetNode.nextSibling);\n}\nconst isSame = (a, b, trait) => {\n return Object.is(trait(a), trait(b));\n};\nconst defaultTrait = (a) => a;\nexport const For = (p) => {\n let initialized = false;\n const currentInstance = securityGetCurrentInstance();\n let oldList = [];\n let oldListItems = [];\n let initElements = [];\n effect(() => {\n const props = p.value;\n const trait = props.trait ?? defaultTrait;\n const newList = props.of;\n // @ts-expect-error\n if (import.meta.env.DEV) {\n const traitMap = new Map();\n const duplicates = [];\n for (const item of newList) {\n const traitValue = trait(item);\n if (!traitMap.has(traitValue)) {\n traitMap.set(traitValue, []);\n }\n traitMap.get(traitValue).push(item);\n // 检查是否有重复\n if (traitMap.get(traitValue).length === 2) {\n duplicates.push(...traitMap.get(traitValue));\n }\n }\n // 输出 trait 重复警告\n if (duplicates.length > 0) {\n console.warn(\"[j20 For] Duplicate trait values detected in list. \" +\n \"Each item should have a unique trait value for optimal performance. \" +\n \"Duplicates found:\", duplicates);\n }\n }\n const newListItems = new Array(newList.length);\n // 实现 diff 逻辑,参考 vue3\n let i = 0;\n const l2 = newList.length;\n let e1 = oldList.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[i], newList[i], trait)) {\n newListItems[i] = oldListItems[i];\n i++;\n }\n else {\n break;\n }\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[e1], newList[e2], trait)) {\n newListItems[e2] = oldListItems[e1];\n e1--;\n e2--;\n }\n else {\n break;\n }\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n for (; i <= e2; i++) {\n const newIndex = signal(i);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newList[i], newIndex));\n return newChild;\n }, currentInstance);\n if (!initialized) {\n initElements.push(newInstanceFragment);\n }\n else {\n if (i > 0) {\n const prev = newListItems[i - 1]?.instance;\n const prevEl = prev?.range[1] ?? currentInstance.range[0];\n insertAfter(prevEl.parentNode, newInstanceFragment, prevEl);\n }\n else {\n const parentNode = currentInstance.range[0].parentNode;\n parentNode?.insertBefore(newInstanceFragment, currentInstance.range[0]);\n }\n }\n newListItems[i] = {\n index: newIndex,\n item: newList[i],\n instance: newInstance,\n };\n }\n }\n }\n // 4. common sequence + unmount\n else if (i > e2) {\n while (i <= e1) {\n // remove elements\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n i++;\n }\n }\n // 5. unknown sequence\n else {\n // 创建一个 key -> index 的映射,用于快速查找旧列表中的项\n const s1 = i; // 旧列表开始索引\n const s2 = i; // 新列表开始索引\n // 为新的未处理项创建 key -> index 映射\n const keyToNewIndexMap = new Map();\n for (let i = s2; i <= e2; i++) {\n keyToNewIndexMap.set(trait(newList[i]), i);\n }\n // 需要处理的新项数量\n const toBePatched = e2 - s2 + 1;\n // 创建一个数组,存储新旧索引的映射关系\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (let i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n // 遍历旧列表中未处理的项,如果在新列表中存在则更新,否则删除\n let patched = 0;\n let moved = false;\n let maxNewIndexSoFar = 0;\n for (let i = s1; i <= e1; i++) {\n if (patched >= toBePatched) {\n // 所有新项都已处理,剩余的旧项可以直接删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n continue;\n }\n const oldItem = oldList[i];\n const oldKey = trait(oldItem);\n const newIndex = keyToNewIndexMap.get(oldKey);\n if (newIndex === undefined) {\n // 在新列表中不存在,删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n }\n else {\n // 在新列表中存在,更新映射关系\n // newIndex - s2 得到在 newIndexToOldIndexMap 中的位置\n // i + 1 避免与初始值 0 冲突\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n // 检查是否需要移动\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n // 复用实例\n newListItems[newIndex] = oldListItems[i];\n patched++;\n }\n }\n // 如果需要移动节点,使用最长递增子序列算法优化移动\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : [];\n // 从后向前遍历,确保插入顺序正确\n let j = increasingNewIndexSequence.length - 1;\n for (let i = toBePatched - 1; i >= 0; i--) {\n const newIndex = s2 + i;\n const newItem = newList[newIndex];\n // 确定锚点元素\n const anchor = newIndex + 1 < l2\n ? newListItems[newIndex + 1].instance.range[0]\n : currentInstance.range[1];\n if (newIndexToOldIndexMap[i] === 0) {\n // 创建新节点\n const newIdx = signal(newIndex);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newItem, newIdx));\n return newChild;\n }, currentInstance);\n // 插入到 DOM\n anchor.parentNode?.insertBefore(newInstanceFragment, anchor);\n newListItems[newIndex] = {\n index: newIdx,\n item: newItem,\n instance: newInstance,\n };\n }\n else if (moved) {\n // 需要移动\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n // 移动节点\n const nodeToMove = newListItems[newIndex];\n const elementsToMove = instanceGetElements(nodeToMove.instance);\n // 将所有元素移动到锚点之前\n elementsToMove.forEach((el) => {\n anchor.parentNode?.insertBefore(el, anchor);\n });\n }\n else {\n // 不需要移动,跳过\n j--;\n }\n }\n }\n }\n oldList = newList;\n oldListItems = newListItems;\n currentInstance.children = newListItems.map((item, index) => {\n item.index.value = index;\n return item.instance;\n });\n });\n initialized = true;\n return initElements.splice(0, initElements.length);\n};\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nexport const createComponent = (tag, props) => {\n const runner = () => tag(computed(() => (props ? props() : {})));\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const If = (p) => {\n const props = p;\n const arr = computed(() => (!props.value.of ? [0] : [1]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const children = propsValues.children;\n if (children && typeof children === \"function\") {\n return children(!!bool);\n }\n if (bool) {\n return children;\n }\n else {\n return propsValues.else;\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\n// 实现\nfunction Some(p) {\n const props = p;\n const resSig = computed(() => props.value.of);\n const arr = computed(() => (resSig.value != null ? [1] : [0]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const { children } = propsValues;\n if (bool) {\n return children(computed(() => resSig.value));\n }\n else {\n return propsValues.none;\n }\n };\n },\n }));\n}\nSome.isLogic = true;\nexport { Some };\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Replace = (p) => {\n const props = p;\n let count = 0;\n const list = computed(() => {\n props.value.of;\n return [(count = (count + 1) % 2)];\n });\n return createComponent(For, () => ({\n of: list.value,\n get children() {\n return (item) => {\n const children = props.value.children;\n return typeof children === \"function\" ? children(item) : children;\n };\n },\n }));\n};\nReplace.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nimport { generateId } from \"../h/utils\";\nexport const Switch = (p) => {\n const props = p;\n const children = props.value.children;\n const res = computed(() => children.filter((i) => i.valid)[0]);\n return createComponent(For, () => ({\n of: res.value ? [res.value] : [],\n trait: (item) => item.id,\n get children() {\n return (item) => item.children;\n },\n }));\n};\nSwitch.isLogic = true;\nexport const Case = (p) => {\n const props = p;\n const id = generateId();\n return {\n id,\n get valid() {\n return props.value.of;\n },\n get children() {\n return props.value.children;\n },\n };\n};\nCase.isLogic = true;\nexport const Default = (p) => {\n const props = p;\n const id = generateId();\n const data = {\n id,\n get valid() {\n return true;\n },\n get children() {\n return props.value.children;\n },\n };\n return data;\n};\nDefault.isLogic = true;\n","import { computed } from \"../api/computed\";\nexport const createLogicComponent = (tag, props) => {\n return tag(computed(() => (props ? props() : {})));\n};\n","import { createComponent } from \"./createComponent\";\nimport { createDom } from \"./createDom\";\nimport { createLogicComponent } from \"./createLogicComponent\";\nimport { createWebComponent } from \"./createWebComponent\";\nexport const createElement = (tag, props, children) => {\n return tag instanceof Node\n ? createDom(tag, props, children)\n : \"isLogic\" in tag\n ? createLogicComponent(tag, props)\n : \"customElement\" in tag\n ? createWebComponent(tag, props)\n : createComponent(tag, props);\n};\n","import { instanceCreate } from \"./instance\";\nexport const createRoot = (boot) => {\n let [instance, fragment] = instanceCreate(() => boot());\n return {\n element: fragment,\n instance,\n };\n};\n","import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"div\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":["effect","innerEffect"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../signal/dist/index.js","../_dist/h/utils.js","../_dist/h/createDom.js","../_dist/brand.js","../_dist/web-components.js","../_dist/h/createWebComponent.js","../_dist/h/instance.js","../_dist/api/effect.js","../_dist/api/ref.js","../_dist/api/wc.js","../_dist/api/dollar.js","../_dist/api/utils.js","../_dist/api/context.js","../_dist/api/id.js","../_dist/api/onMount.js","../_dist/api/onDestroy.js","../_dist/api/style.js","../_dist/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Some.js","../_dist/control/Replace.js","../_dist/control/Switch.js","../_dist/h/createLogicComponent.js","../_dist/h/createElement.js","../_dist/h/createRoot.js","../_dist/jsx-runtime.js"],"sourcesContent":["// 当前正在执行的effect或computed\nlet currentReaction = null;\n// 批处理栈,用于延迟 effect 的执行\nlet batchDepth = 0;\n// 待执行的 effect 队列\nlet pendingEffects = new Set();\n// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\n SIGNAL = true;\n _value;\n _version = 0;\n _deps = new Set();\n constructor(value) {\n this._value = value;\n }\n get value() {\n // 如果有当前正在执行的reaction,建立依赖关系\n if (currentReaction) {\n this.track(currentReaction);\n }\n return this._value;\n }\n set value(newValue) {\n if (Object.is(this._value, newValue))\n return;\n this._value = newValue;\n this._version++;\n // 通知所有依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n // 对于effect,使用版本检查优化\n if (reaction._depVersions.has(this) || reaction.hasDepsChanged()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n }\n });\n }\n get version() {\n return this._version;\n }\n // 建立依赖关系\n track(reaction) {\n if (!this._deps.has(reaction)) {\n this._deps.add(reaction);\n // 维护反向依赖关系\n let reactions = depMap.get(this);\n if (!reactions) {\n reactions = new Set();\n depMap.set(this, reactions);\n }\n reactions.add(reaction);\n // 在reaction中记录依赖\n reaction.track(this);\n }\n }\n}\n/**\n * Computed类 - 用于计算派生值\n */\nclass Computed {\n SIGNAL = true;\n computeFn;\n _value;\n _version = 0;\n dirty = true;\n disposed = false;\n _deps = new Set();\n sources = new Set();\n constructor(computeFn) {\n this.computeFn = computeFn;\n // 使用symbol作为初始值占位符\n this._value = undefined;\n }\n get value() {\n if (this.disposed) {\n throw new Error(\"Cannot access value of disposed computed\");\n }\n if (this.dirty) {\n this.compute();\n }\n // 建立依赖关系\n if (currentReaction) {\n if (!this._deps.has(currentReaction)) {\n this._deps.add(currentReaction);\n currentReaction.track(this);\n }\n }\n return this._value;\n }\n get version() {\n return this._version;\n }\n compute() {\n if (this.disposed) {\n throw new Error(\"Cannot compute disposed computed\");\n }\n // 检查循环依赖\n if (computationStack.includes(this)) {\n throw new Error(\"Circular dependency detected in computed values\");\n }\n this.dirty = false;\n // 保存当前状态\n const prevReaction = currentReaction;\n const prevSources = this.sources;\n this.sources = new Set();\n // 将当前computed加入计算栈\n computationStack.push(this);\n currentReaction = this;\n try {\n this._value = this.computeFn();\n this._version++;\n }\n catch (e) {\n this.dirty = true;\n throw e;\n }\n finally {\n // 清理工作\n const index = computationStack.indexOf(this);\n if (index !== -1) {\n computationStack.splice(index, 1);\n }\n currentReaction = prevReaction;\n // 清理不再依赖的sources\n prevSources.forEach((source) => {\n if (!this.sources.has(source)) {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n }\n });\n }\n }\n markDirty() {\n if (this.disposed || this.dirty)\n return;\n this.dirty = true;\n // 通知依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n });\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this.sources.has(source)) {\n this.sources.add(source);\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this.sources.forEach((source) => {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this.sources.clear();\n this._deps.clear();\n // 清理引用\n this._value = undefined;\n this.computeFn = undefined;\n }\n}\n// 用于检测循环依赖\nconst computationStack = [];\n/**\n * Effect类 - 用于执行副作用\n */\nclass Effect {\n effectFn;\n cleanupFn = null;\n disposed = false;\n _deps = new Set();\n _depVersions = new Map();\n constructor(effectFn) {\n this.effectFn = effectFn;\n }\n execute() {\n if (this.disposed)\n return;\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n // 执行effect并收集依赖\n const prevReaction = currentReaction;\n currentReaction = this;\n try {\n const result = this.effectFn();\n if (typeof result === \"function\") {\n this.cleanupFn = result;\n }\n }\n finally {\n currentReaction = prevReaction;\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this._deps.forEach((dep) => {\n const reactions = depMap.get(dep);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this._deps.clear();\n this._depVersions.clear();\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n }\n isActive() {\n return !this.disposed;\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this._deps.has(source)) {\n this._deps.add(source);\n // 记录依赖的版本号\n if (\"version\" in source) {\n this._depVersions.set(source, source.version);\n }\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n hasDepsChanged() {\n for (const [dep, version] of this._depVersions) {\n if (\"version\" in dep && dep.version !== version) {\n return true;\n }\n }\n return false;\n }\n}\n// 创建信号\nfunction signal(initialValue) {\n return new Signal(initialValue);\n}\n// 创建计算值\nfunction computed(computeFn) {\n return new Computed(computeFn);\n}\n// 创建副作用\nfunction effect(effectFn) {\n const effectInstance = new Effect(effectFn);\n effectInstance.execute();\n return effectInstance;\n}\n// 临时取消追踪\nfunction untrack(fn) {\n const prevReaction = currentReaction;\n currentReaction = null;\n try {\n return fn();\n }\n finally {\n currentReaction = prevReaction;\n }\n}\n// 批处理 - 延迟 effect 的执行直到批处理结束\nfunction batch(fn) {\n batchDepth++;\n try {\n return fn();\n }\n finally {\n batchDepth--;\n // 当批处理结束时,执行所有待处理的 effect\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n // 执行所有待处理的 effect\n effects.forEach((effect) => {\n if (effect.isActive()) {\n effect.execute();\n }\n });\n }\n }\n}\n\nexport { Computed, Effect, Signal, batch, computed, effect, signal, untrack };\n//# sourceMappingURL=index.js.map\n","import { effect } from \"../api/effect\";\nimport { getCurrentInstance } from \"./instance\";\nexport const isEvent = (eventName) => {\n return eventName.startsWith(\"on\");\n};\nexport const getEventName = (eventName) => {\n return eventName.slice(2).toLowerCase();\n};\nexport const getChildren = (propChildren) => {\n const arr = [];\n for (let i = 0; i < propChildren.length; i++) {\n const child = propChildren[i];\n if (typeof child === \"function\") {\n let textNode;\n const effectInstance = effect(() => {\n const el = child();\n if (typeof el === \"number\" || typeof el === \"string\") {\n if (textNode) {\n textNode.nodeValue = el + \"\";\n }\n else {\n textNode = document.createTextNode(el + \"\");\n arr.push(textNode);\n }\n }\n else {\n arr.push(el);\n }\n });\n if (!textNode) {\n effectInstance.dispose();\n }\n }\n else if (child != undefined) {\n arr.push(child);\n }\n }\n return arr;\n};\nlet overflow = \"\";\nlet count = 0;\nexport const generateId = () => {\n if (count === Number.MAX_SAFE_INTEGER) {\n overflow += count.toString(32);\n count = 0;\n }\n return `${overflow}${(count++).toString(32)}`;\n};\nexport const styleObjectToString = (style) => {\n let styleString = \"\";\n for (const key in style) {\n const value = style[key];\n styleString += `${key}: ${value}; `;\n }\n return styleString.trim();\n};\nexport const update = (node, key, oldValue, newValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n node.addEventListener(getEventName(key), newValue);\n }\n else {\n if (newValue === false || newValue == null) {\n node.removeAttribute(key);\n }\n else {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const unset = (node, key, oldValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n }\n else if (key === \"ref\") {\n oldValue.current = null;\n }\n else {\n node.removeAttribute(key);\n }\n};\nexport const add = (node, key, newValue) => {\n if (isEvent(key)) {\n node.addEventListener(getEventName(key), newValue);\n }\n else if (key === \"ref\") {\n const instance = getCurrentInstance();\n if (instance) {\n if (!instance.disposes)\n instance.disposes = [];\n instance.disposes.push(() => {\n newValue.current = null;\n });\n }\n newValue.current = node;\n }\n else {\n if (newValue !== false && newValue != null) {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const bindNode = (node, props) => {\n let oldProps = {};\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n if (key === \"children\")\n continue;\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n};\n","import { effect } from \"../api/effect\";\nimport { add, getChildren, unset, update } from \"./utils\";\nexport const createDom = (tag, props, children) => {\n const node = tag;\n let oldProps = {};\n props &&\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n // 独立 wc 初始化\n node.lazyInit?.();\n if (children &&\n // 独立 wc 初始化时 mode 为空时,忽略 children\n (node.lazyInit\n ? !node.customElement.mode\n ? false\n : true\n : true)) {\n node.append(...getChildren([].concat(children())));\n }\n return node;\n};\n","export const BRAND = \"j20\";\n","import { signal } from \"./api/signal\";\nimport { computed } from \"./api/computed\";\nimport { getCurrentInstance, instanceCreate } from \"./h/instance\";\nimport { BRAND } from \"./brand\";\nimport { hostStack } from \"./h/createWebComponent\";\nexport const registerWebComponent = (Comp) => {\n if (!Comp.customElement) {\n throw new Error(\"Custom element options is not provided\");\n }\n if (customElements.get(Comp.customElement.tag)) {\n throw new Error(\"Custom element tag is already defined\");\n }\n const NewClass = buildClass(Comp);\n customElements.define(Comp.customElement.tag, NewClass);\n};\nexport class WebComponentClass extends HTMLElement {\n constructor() {\n super();\n }\n addStyleSheet(sheet) { }\n removeStyleSheet(sheet) { }\n}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\n const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? (() => {\n const style = new CSSStyleSheet();\n style.replaceSync(customElement.style);\n return style;\n })()\n : customElement.style\n : null;\n return class NewElementClass extends HTMLElement {\n static get observedAttributes() {\n return Object.entries(customElement.props ?? {})\n .map(([, value]) => value.attribute)\n .filter((i) => i != undefined);\n }\n static brand = BRAND;\n brand = BRAND;\n #shadow;\n #props = {};\n customElement = customElement;\n constructor() {\n super();\n if (customElement.tag && customElement.mode) {\n this.#shadow = this.attachShadow({ mode: customElement.mode });\n if (styleSheet)\n this.#shadow.adoptedStyleSheets = [styleSheet];\n }\n this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {\n acc[key] = signal(value.attribute\n ? a2v[value.attribute](this.getAttribute(value.attribute))\n : undefined);\n return acc;\n }, {});\n }\n lazyInit() {\n const host = this;\n hostStack.push(host);\n const [, fragment] = instanceCreate(() => {\n return Comp(computed(() => {\n return new Proxy(this.#props, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p.startsWith(\"on\")) {\n return (detail) => host.dispatchEvent(new CustomEvent(p.slice(2).toLocaleLowerCase(), {\n detail,\n }));\n }\n else {\n return Reflect.get(target, p, receiver)?.value;\n }\n },\n });\n }));\n }, getCurrentInstance());\n hostStack.pop();\n if (this.#shadow) {\n this.#shadow.appendChild(fragment);\n }\n else {\n this.appendChild(fragment);\n }\n }\n appendToShadowDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.#shadow.append(...elements);\n }\n }\n appendToLightDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.append(...elements);\n }\n }\n appendToBody(elements) {\n if (elements.length > 0) {\n this.append(...elements);\n }\n }\n addStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets.push(sheet);\n }\n }\n removeStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets =\n this.#shadow.adoptedStyleSheets.filter((s) => s !== sheet);\n }\n }\n attributeChangedCallback(name, oldValue, newValue) {\n const attrs = NewElementClass.observedAttributes;\n const propSignal = this.#props[a2p[name]];\n if (propSignal && attrs.includes(name)) {\n propSignal.value = a2v[name](newValue);\n }\n }\n #connectedCallbackArray = [];\n addConnectedCallback(callback) {\n this.#connectedCallbackArray.push(callback);\n }\n connectedCallback() {\n this.#connectedCallbackArray.forEach((fn) => fn());\n }\n #disconnectedCallbackArray = [];\n addDisconnectedCallback(callback) {\n this.#disconnectedCallbackArray.push(callback);\n }\n disconnectedCallback() {\n this.#disconnectedCallbackArray.forEach((fn) => fn());\n }\n };\n};\nconst buildMap = (customElement) => {\n const a2p = {};\n const p2a = {};\n const a2v = {};\n Object.entries(customElement.props ?? {})\n .map(([key, value]) => [value.attribute, key, value.type])\n .filter(([attr]) => attr != undefined)\n .forEach((i) => {\n a2p[i[0]] = i[1];\n p2a[i[1]] = i[0];\n a2v[i[0]] = {\n string: (v) => v ?? undefined,\n number: (v) => (v ? Number(v) : undefined),\n boolean: (v) => (v == null ? false : true),\n }[i[2]];\n });\n return { a2p, p2a, a2v };\n};\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nimport { untrack } from \"../api/untrack\";\nimport { BRAND } from \"../brand\";\nimport { buildClass } from \"../web-components\";\nimport { getChildren } from \"./utils\";\nexport const hostStack = [];\nexport const getCurrentHost = () => {\n return hostStack.at(-1);\n};\nexport const createWebComponent = (tag, props) => {\n const customElement = tag.customElement;\n const Exist = customElements.get(customElement.tag);\n let el;\n if (Exist) {\n if (Exist.brand !== BRAND) {\n throw new Error(`Custom element [${customElement.tag}] is already registered`);\n }\n else {\n el = new Exist();\n }\n }\n else {\n const NewClass = buildClass(tag);\n customElements.define(customElement.tag, NewClass);\n el = new NewClass();\n }\n const runner = () => {\n let childrenGetter = () => untrack(() => (props ? props().children : undefined));\n const ret = tag(computed(() => {\n const retProps = props ? props() : {};\n childrenGetter =\n Object.getOwnPropertyDescriptor(retProps, \"children\")?.get ??\n (() => undefined);\n delete retProps.children;\n return retProps;\n }));\n if (el.customElement.mode) {\n el.appendToShadowDom(getChildren([].concat(ret)));\n childrenGetter &&\n el.appendToLightDom(getChildren([].concat(childrenGetter())));\n }\n else {\n el.appendToBody(getChildren([].concat(ret)));\n }\n return el;\n };\n hostStack.push(el);\n let [, fragment] = instanceCreate(runner);\n hostStack.pop();\n return fragment;\n};\n","import { createDom } from \"./createDom\";\nimport { getCurrentHost } from \"./createWebComponent\";\nimport { generateId } from \"./utils\";\nconst instanceStack = [];\nexport const getCurrentInstance = () => instanceStack.at(-1);\n// api security guard\nexport const securityGetCurrentInstance = () => {\n const instance = getCurrentInstance();\n if (!instance)\n throw new Error(\"Do not run this api out of component\");\n return instance;\n};\nexport const instanceInit = (parent) => {\n const id = generateId();\n const parentInstance = parent ?? getCurrentInstance();\n const instance = {\n parent: parentInstance,\n id,\n host: getCurrentHost(),\n range: [document.createTextNode(\"\"), document.createTextNode(\"\")],\n };\n if (parentInstance) {\n if (parentInstance.children) {\n parentInstance.children.push(instance);\n }\n else {\n parentInstance.children = [instance];\n }\n }\n return instance;\n};\nexport const mounts = [];\nexport const instanceCreateElement = (instance, runner) => {\n instanceStack.push(instance);\n const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());\n fragment.prepend(instance.range[0]);\n fragment.append(instance.range[1]);\n if (instance.mounts) {\n mounts.push(...instance.mounts);\n instance.mounts = undefined;\n }\n instanceStack.pop();\n if (instanceStack.length === 0) {\n requestAnimationFrame(() => {\n mounts.forEach((mount) => mount());\n mounts.length = 0;\n });\n }\n return fragment;\n};\nexport const instanceCreate = (runner, parent) => {\n const instance = instanceInit(parent);\n return [instance, instanceCreateElement(instance, runner)];\n};\nexport const instanceGetElements = (instance) => {\n const [start, end] = instance.range;\n const els = [start];\n let index = start;\n while ((index = index.nextSibling)) {\n els.push(index);\n if (index === end)\n break;\n }\n return els;\n};\nexport const instanceDestroy = (parent, instance) => {\n // 使用栈来实现迭代式的深度优先销毁,避免递归开销\n // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)\n const stack = [\n { inst: instance, childrenDestroyed: false },\n ];\n while (stack.length > 0) {\n const current = stack[stack.length - 1];\n if (!current.childrenDestroyed) {\n // 第一次访问:先标记子节点已销毁,然后将子节点入栈\n current.childrenDestroyed = true;\n if (current.inst.children && current.inst.children.length > 0) {\n // 倒序添加子节点,保持与递归相同的销毁顺序\n for (let i = current.inst.children.length - 1; i >= 0; i--) {\n stack.push({\n inst: current.inst.children[i],\n childrenDestroyed: false,\n });\n }\n }\n }\n else {\n // 第二次访问:子节点已全部销毁,现在销毁当前节点\n const inst = current.inst;\n // 执行清理函数\n inst.disposes?.forEach((dispose) => {\n try {\n dispose();\n }\n catch (e) {\n console.error(\"Error during instance dispose:\", e);\n }\n });\n // 清空 dispose 数组,但保留数组引用\n if (inst.disposes) {\n inst.disposes.length = 0;\n }\n // 清空子节点引用\n if (inst.children) {\n inst.children = [];\n }\n stack.pop();\n }\n }\n // 从父实例中移除此实例的引用\n if (parent && parent.children) {\n parent.children = parent.children.filter((c) => c !== instance);\n }\n};\n","import { effect as innerEffect, Effect } from \"@j20org/signal\";\nimport { securityGetCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = securityGetCurrentInstance();\n if (!currentInstance.disposes)\n currentInstance.disposes = [];\n currentInstance.disposes.push(() => effectInstance.dispose());\n return effectInstance;\n};\nexport { Effect };\n","export function ref(init) {\n return {\n current: init ?? null,\n };\n}\n","import { getCurrentHost } from \"../h/createWebComponent\";\nexport const wc = () => {\n const host = getCurrentHost();\n if (!host) {\n throw new Error(\"host not found, please use `wc` in web component\");\n }\n const emit = (name, detail) => {\n host.dispatchEvent(new CustomEvent(name, {\n detail,\n }));\n };\n const onConnectedCallback = (callback) => {\n host.addConnectedCallback(callback);\n };\n const onDisconnectedCallback = (callback) => {\n host.addDisconnectedCallback(callback);\n };\n return {\n host,\n emit,\n onConnectedCallback,\n onDisconnectedCallback,\n };\n};\n","export const $ = (val) => val;\n","export const isSignal = (a) => a?.SIGNAL === true;\n","import { instanceCreateElement, instanceInit, securityGetCurrentInstance, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = securityGetCurrentInstance();\n let index = instance?.parent;\n while (index) {\n if (contextWeakMap.has(index)) {\n const { ctx, value } = contextWeakMap.get(index);\n if (ctx === Context) {\n return value;\n }\n }\n else {\n index = index.parent;\n }\n }\n return Context.defaultValue;\n};\nexport const createContext = (defaultValue) => {\n const Context = (p) => {\n const props = p;\n const instance = instanceInit(securityGetCurrentInstance());\n contextWeakMap.set(instance, {\n ctx: Context,\n value: {\n get value() {\n return props.value.value;\n },\n },\n });\n const fragment = instanceCreateElement(instance, () => props.value.children);\n return fragment;\n };\n Context.isLogic = true;\n const Consumer = (p) => {\n const props = p;\n const data = context(Context);\n if (data)\n return props.value.children(data);\n return props.value.children(isSignal(defaultValue)\n ? defaultValue\n : {\n get value() {\n return defaultValue;\n },\n });\n };\n Consumer.isLogic = true;\n Context.Consumer = Consumer;\n Context.defaultValue = defaultValue;\n return Context;\n};\nexport const $useContext = (c) => context(c.value);\n","import { securityGetCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return securityGetCurrentInstance()?.id;\n};\n","import { securityGetCurrentInstance } from \"../h/instance\";\nexport const onMount = (callback) => {\n const instance = securityGetCurrentInstance();\n if (!instance.mounts) {\n instance.mounts = [];\n }\n instance.mounts.push(callback);\n};\n","import { effect } from \"./effect\";\nexport const onDestroy = (callback) => effect(() => callback);\n","import { getCurrentInstance } from \"../h/instance\";\nimport { id } from \"./id\";\nimport { onDestroy } from \"./onDestroy\";\nexport const sheet = (css) => {\n let instance = getCurrentInstance();\n const sheet = new CSSStyleSheet();\n css && sheet.replaceSync(css);\n while (instance) {\n if (instance.host) {\n instance.host.addStyleSheet(sheet);\n onDestroy(() => {\n instance.host.removeStyleSheet(sheet);\n });\n break;\n }\n instance = instance?.parent;\n }\n if (!instance) {\n document.adoptedStyleSheets.push(sheet);\n onDestroy(() => {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter((s) => s !== sheet);\n });\n }\n return sheet;\n};\nexport const css = (css) => {\n const styleId = id();\n const replacedCss = css.replace(/\\.(\\w[\\w-]*)\\s*?\\{/g, (_, className) => {\n return `.${className}_${styleId} {`;\n });\n sheet(replacedCss);\n return new Proxy({}, {\n get: (_, prop) => {\n return `${prop}_${styleId}`;\n },\n });\n};\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, instanceGetElements, instanceDestroy, securityGetCurrentInstance, } from \"../h/instance\";\nimport { untrack } from \"../api/untrack\";\nfunction insertAfter(parentNode, newNode, targetNode) {\n parentNode?.insertBefore(newNode, targetNode.nextSibling);\n}\nconst isSame = (a, b, trait) => {\n return Object.is(trait(a), trait(b));\n};\nconst defaultTrait = (a) => a;\nexport const For = (p) => {\n let initialized = false;\n const currentInstance = securityGetCurrentInstance();\n let oldList = [];\n let oldListItems = [];\n let initElements = [];\n effect(() => {\n const props = p.value;\n const trait = props.trait ?? defaultTrait;\n const newList = props.of;\n // @ts-expect-error\n if (import.meta.env.DEV) {\n const traitMap = new Map();\n const duplicates = [];\n for (const item of newList) {\n const traitValue = trait(item);\n if (!traitMap.has(traitValue)) {\n traitMap.set(traitValue, []);\n }\n traitMap.get(traitValue).push(item);\n // 检查是否有重复\n if (traitMap.get(traitValue).length === 2) {\n duplicates.push(...traitMap.get(traitValue));\n }\n }\n // 输出 trait 重复警告\n if (duplicates.length > 0) {\n console.warn(\"[j20 For] Duplicate trait values detected in list. \" +\n \"Each item should have a unique trait value for optimal performance. \" +\n \"Duplicates found:\", duplicates);\n }\n }\n const newListItems = new Array(newList.length);\n // 实现 diff 逻辑,参考 vue3\n let i = 0;\n const l2 = newList.length;\n let e1 = oldList.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[i], newList[i], trait)) {\n newListItems[i] = oldListItems[i];\n i++;\n }\n else {\n break;\n }\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[e1], newList[e2], trait)) {\n newListItems[e2] = oldListItems[e1];\n e1--;\n e2--;\n }\n else {\n break;\n }\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n for (; i <= e2; i++) {\n const newIndex = signal(i);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newList[i], newIndex));\n return newChild;\n }, currentInstance);\n if (!initialized) {\n initElements.push(newInstanceFragment);\n }\n else {\n if (i > 0) {\n const prev = newListItems[i - 1]?.instance;\n const prevEl = prev?.range[1] ?? currentInstance.range[0];\n insertAfter(prevEl.parentNode, newInstanceFragment, prevEl);\n }\n else {\n const parentNode = currentInstance.range[0].parentNode;\n parentNode?.insertBefore(newInstanceFragment, currentInstance.range[0]);\n }\n }\n newListItems[i] = {\n index: newIndex,\n item: newList[i],\n instance: newInstance,\n };\n }\n }\n }\n // 4. common sequence + unmount\n else if (i > e2) {\n while (i <= e1) {\n // remove elements\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n i++;\n }\n }\n // 5. unknown sequence\n else {\n // 创建一个 key -> index 的映射,用于快速查找旧列表中的项\n const s1 = i; // 旧列表开始索引\n const s2 = i; // 新列表开始索引\n // 为新的未处理项创建 key -> index 映射\n const keyToNewIndexMap = new Map();\n for (let i = s2; i <= e2; i++) {\n keyToNewIndexMap.set(trait(newList[i]), i);\n }\n // 需要处理的新项数量\n const toBePatched = e2 - s2 + 1;\n // 创建一个数组,存储新旧索引的映射关系\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (let i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n // 遍历旧列表中未处理的项,如果在新列表中存在则更新,否则删除\n let patched = 0;\n let moved = false;\n let maxNewIndexSoFar = 0;\n for (let i = s1; i <= e1; i++) {\n if (patched >= toBePatched) {\n // 所有新项都已处理,剩余的旧项可以直接删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n continue;\n }\n const oldItem = oldList[i];\n const oldKey = trait(oldItem);\n const newIndex = keyToNewIndexMap.get(oldKey);\n if (newIndex === undefined) {\n // 在新列表中不存在,删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n }\n else {\n // 在新列表中存在,更新映射关系\n // newIndex - s2 得到在 newIndexToOldIndexMap 中的位置\n // i + 1 避免与初始值 0 冲突\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n // 检查是否需要移动\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n // 复用实例\n newListItems[newIndex] = oldListItems[i];\n patched++;\n }\n }\n // 如果需要移动节点,使用最长递增子序列算法优化移动\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : [];\n // 从后向前遍历,确保插入顺序正确\n let j = increasingNewIndexSequence.length - 1;\n for (let i = toBePatched - 1; i >= 0; i--) {\n const newIndex = s2 + i;\n const newItem = newList[newIndex];\n // 确定锚点元素\n const anchor = newIndex + 1 < l2\n ? newListItems[newIndex + 1].instance.range[0]\n : currentInstance.range[1];\n if (newIndexToOldIndexMap[i] === 0) {\n // 创建新节点\n const newIdx = signal(newIndex);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newItem, newIdx));\n return newChild;\n }, currentInstance);\n // 插入到 DOM\n anchor.parentNode?.insertBefore(newInstanceFragment, anchor);\n newListItems[newIndex] = {\n index: newIdx,\n item: newItem,\n instance: newInstance,\n };\n }\n else if (moved) {\n // 需要移动\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n // 移动节点\n const nodeToMove = newListItems[newIndex];\n const elementsToMove = instanceGetElements(nodeToMove.instance);\n // 将所有元素移动到锚点之前\n elementsToMove.forEach((el) => {\n anchor.parentNode?.insertBefore(el, anchor);\n });\n }\n else {\n // 不需要移动,跳过\n j--;\n }\n }\n }\n }\n oldList = newList;\n oldListItems = newListItems;\n currentInstance.children = newListItems.map((item, index) => {\n item.index.value = index;\n return item.instance;\n });\n });\n initialized = true;\n return initElements.splice(0, initElements.length);\n};\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nexport const createComponent = (tag, props) => {\n const runner = () => tag(computed(() => (props ? props() : {})));\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const If = (p) => {\n const props = p;\n const arr = computed(() => (!props.value.of ? [0] : [1]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const children = propsValues.children;\n if (children && typeof children === \"function\") {\n return children(!!bool);\n }\n if (bool) {\n return children;\n }\n else {\n return propsValues.else;\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\n// 实现\nfunction Some(p) {\n const props = p;\n const resSig = computed(() => props.value.of);\n const arr = computed(() => (resSig.value != null ? [1] : [0]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const { children } = propsValues;\n if (bool) {\n return children(computed(() => resSig.value));\n }\n else {\n return propsValues.none;\n }\n };\n },\n }));\n}\nSome.isLogic = true;\nexport { Some };\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Replace = (p) => {\n const props = p;\n let count = 0;\n const list = computed(() => {\n props.value.of;\n return [(count = (count + 1) % 2)];\n });\n return createComponent(For, () => ({\n of: list.value,\n get children() {\n return (item) => {\n const children = props.value.children;\n return typeof children === \"function\" ? children(item) : children;\n };\n },\n }));\n};\nReplace.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nimport { generateId } from \"../h/utils\";\nexport const Switch = (p) => {\n const props = p;\n const children = props.value.children;\n const res = computed(() => children.filter((i) => i.valid)[0]);\n return createComponent(For, () => ({\n of: res.value ? [res.value] : [],\n trait: (item) => item.id,\n get children() {\n return (item) => item.children;\n },\n }));\n};\nSwitch.isLogic = true;\nexport const Case = (p) => {\n const props = p;\n const id = generateId();\n return {\n id,\n get valid() {\n return props.value.of;\n },\n get children() {\n return props.value.children;\n },\n };\n};\nCase.isLogic = true;\nexport const Default = (p) => {\n const props = p;\n const id = generateId();\n const data = {\n id,\n get valid() {\n return true;\n },\n get children() {\n return props.value.children;\n },\n };\n return data;\n};\nDefault.isLogic = true;\n","import { computed } from \"../api/computed\";\nexport const createLogicComponent = (tag, props) => {\n return tag(computed(() => (props ? props() : {})));\n};\n","import { createComponent } from \"./createComponent\";\nimport { createDom } from \"./createDom\";\nimport { createLogicComponent } from \"./createLogicComponent\";\nimport { createWebComponent } from \"./createWebComponent\";\nexport const createElement = (tag, props, children) => {\n return tag instanceof Node\n ? createDom(tag, props, children)\n : \"isLogic\" in tag\n ? createLogicComponent(tag, props)\n : \"customElement\" in tag\n ? createWebComponent(tag, props)\n : createComponent(tag, props);\n};\n","import { instanceCreate } from \"./instance\";\nexport const createRoot = (boot) => {\n let [instance, fragment] = instanceCreate(() => boot());\n return {\n element: fragment,\n instance,\n };\n};\n","import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"div\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":["effect","innerEffect"],"mappings":"AAAA;AACA,IAAI,eAAe,GAAG,IAAI;AAC1B;AACA,IAAI,UAAU,GAAG,CAAC;AAClB;AACA,IAAI,cAAc,GAAG,IAAI,GAAG,EAAE;AAC9B;AACA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE;AAC5B;AACA;AACA;AACA,MAAM,MAAM,CAAC;AACb,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;AACrB,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB;AACA,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACvC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5C,YAAY;AACZ,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC9B,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,YAAY,IAAI,QAAQ,YAAY,QAAQ,EAAE;AAC9C,gBAAgB,QAAQ,CAAC,SAAS,EAAE;AACpC,YAAY;AACZ,iBAAiB,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;AAC1C;AACA,gBAAgB,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE;AAClF,oBAAoB,IAAI,UAAU,GAAG,CAAC,EAAE;AACxC;AACA,wBAAwB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,OAAO,EAAE;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B,IAAI;AACJ;AACA,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC;AACA,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;AAC3C,YAAY;AACZ,YAAY,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC;AACA,YAAY,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,QAAQ,CAAC;AACf,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,KAAK,GAAG,IAAI;AAChB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;AACrB,IAAI,OAAO,GAAG,IAAI,GAAG,EAAE;AACvB,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS;AAC/B,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAQ;AACR;AACA,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;AAC/C,gBAAgB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AAC/D,QAAQ;AACR;AACA,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7C,YAAY,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAC9E,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA,QAAQ,MAAM,YAAY,GAAG,eAAe;AAC5C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;AAChC;AACA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,QAAQ,eAAe,GAAG,IAAI;AAC9B,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC1C,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI;AAC7B,YAAY,MAAM,CAAC;AACnB,QAAQ;AACR,gBAAgB;AAChB;AACA,YAAY,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACxD,YAAY,IAAI,KAAK,KAAK,EAAE,EAAE;AAC9B,gBAAgB,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,YAAY;AACZ,YAAY,eAAe,GAAG,YAAY;AAC1C;AACA,YAAY,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC5C,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC/C,oBAAoB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACxD,oBAAoB,IAAI,SAAS,EAAE;AACnC,wBAAwB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK;AACvC,YAAY;AACZ,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,YAAY,IAAI,QAAQ,YAAY,QAAQ,EAAE;AAC9C,gBAAgB,QAAQ,CAAC,SAAS,EAAE;AACpC,YAAY;AACZ,iBAAiB,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;AAC1C,gBAAgB,IAAI,UAAU,GAAG,CAAC,EAAE;AACpC;AACA,oBAAoB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,QAAQ,CAAC,OAAO,EAAE;AACtC,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACpC,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7C,YAAY;AACZ,YAAY,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACzC,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAChD,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS;AAC/B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,IAAI;AACJ;AACA;AACA,MAAM,gBAAgB,GAAG,EAAE;AAC3B;AACA;AACA;AACA,MAAM,MAAM,CAAC;AACb,IAAI,QAAQ;AACZ,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;AACrB,IAAI,YAAY,GAAG,IAAI,GAAG,EAAE;AAC5B,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC;AACpE,YAAY;AACZ,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI;AACjC,QAAQ;AACR;AACA,QAAQ,MAAM,YAAY,GAAG,eAAe;AAC5C,QAAQ,eAAe,GAAG,IAAI;AAC9B,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1C,YAAY,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAC9C,gBAAgB,IAAI,CAAC,SAAS,GAAG,MAAM;AACvC,YAAY;AACZ,QAAQ;AACR,gBAAgB;AAChB,YAAY,eAAe,GAAG,YAAY;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACpC,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACjC;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC;AACpE,YAAY;AACZ,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ;AAC7B,IAAI;AACJ,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAClC;AACA,YAAY,IAAI,SAAS,IAAI,MAAM,EAAE;AACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AAC7D,YAAY;AACZ,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7C,YAAY;AACZ,YAAY,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AACxD,YAAY,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7D,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA,SAAS,MAAM,CAAC,YAAY,EAAE;AAC9B,IAAI,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC;AACnC;AACA;AACA,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,IAAI,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;AAClC;AACA;AACA,SAASA,QAAM,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC;AAC/C,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,IAAI,OAAO,cAAc;AACzB;AACA;AACA,SAAS,OAAO,CAAC,EAAE,EAAE;AACrB,IAAI,MAAM,YAAY,GAAG,eAAe;AACxC,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,IAAI;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,IAAI;AACJ,YAAY;AACZ,QAAQ,eAAe,GAAG,YAAY;AACtC,IAAI;AACJ;AACA;AACA,SAAS,KAAK,CAAC,EAAE,EAAE;AACnB,IAAI,UAAU,EAAE;AAChB,IAAI,IAAI;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,IAAI;AACJ,YAAY;AACZ,QAAQ,UAAU,EAAE;AACpB;AACA,QAAQ,IAAI,UAAU,KAAK,CAAC,EAAE;AAC9B,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACtD,YAAY,cAAc,CAAC,KAAK,EAAE;AAClC;AACA,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACxC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;AACvC,oBAAoB,MAAM,CAAC,OAAO,EAAE;AACpC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ;;AC9UO,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK;AACtC,IAAI,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,CAAC;AACM,MAAM,YAAY,GAAG,CAAC,SAAS,KAAK;AAC3C,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC3C,CAAC;AACM,MAAM,WAAW,GAAG,CAAC,YAAY,KAAK;AAC7C,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACzC,YAAY,IAAI,QAAQ;AACxB,YAAY,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM;AAChD,gBAAgB,MAAM,EAAE,GAAG,KAAK,EAAE;AAClC,gBAAgB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AACtE,oBAAoB,IAAI,QAAQ,EAAE;AAClC,wBAAwB,QAAQ,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE;AACpD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;AACnE,wBAAwB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAChC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,cAAc,CAAC,OAAO,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,aAAa,IAAI,KAAK,IAAI,SAAS,EAAE;AACrC,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,CAAC;AACD,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,KAAK,GAAG,CAAC;AACN,MAAM,UAAU,GAAG,MAAM;AAChC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,gBAAgB,EAAE;AAC3C,QAAQ,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACtC,QAAQ,KAAK,GAAG,CAAC;AACjB,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AACM,MAAM,mBAAmB,GAAG,CAAC,KAAK,KAAK;AAC9C,IAAI,IAAI,WAAW,GAAG,EAAE;AACxB,IAAI,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;AAChC,QAAQ,WAAW,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE;AAC7B,CAAC;AACM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK;AACzD,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC7D,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC1D,IAAI;AACJ,SAAS;AACT,QAAQ,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpD,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACrC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,IAAI,OAAO,QAAQ,KAAK;AACjE,kBAAkB,mBAAmB,CAAC,QAAQ;AAC9C,kBAAkB,QAAQ,KAAK;AAC/B,sBAAsB;AACtB,sBAAsB,QAAQ;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,CAAC;AACM,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,KAAK;AAC9C,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC7D,IAAI;AACJ,SAAS,IAAI,GAAG,KAAK,KAAK,EAAE;AAC5B,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI;AAC/B,IAAI;AACJ,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,IAAI;AACJ,CAAC;AACM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,KAAK;AAC5C,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC1D,IAAI;AACJ,SAAS,IAAI,GAAG,KAAK,KAAK,EAAE;AAC5B,QAAQ,MAAM,QAAQ,GAAG,kBAAkB,EAAE;AAC7C,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAClC,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,EAAE;AACtC,YAAY,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AACzC,gBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAI;AACvC,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI;AAC/B,IAAI;AACJ,SAAS;AACT,QAAQ,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpD,YAAY,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,IAAI,OAAO,QAAQ,KAAK;AACjE,kBAAkB,mBAAmB,CAAC,QAAQ;AAC9C,kBAAkB,QAAQ,KAAK;AAC/B,sBAAsB;AACtB,sBAAsB,QAAQ;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,CAAC;;AC7GW,MAAC,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AACnD,IAAI,MAAM,IAAI,GAAG,GAAG;AACpB,IAAI,IAAI,QAAQ,GAAG,EAAE;AACrB,IAAI,KAAK;AACT,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE;AAC3C,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjD,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjD,YAAY,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;AAC7D,YAAY,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACvC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,GAAG;AACpC,sBAAsB,OAAO,CAAC,QAAQ,CAAC,GAAG;AAC1C,0BAA0B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;AAChE,8BAA8B;AAC9B,8BAA8B,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5E,0BAA0B,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxD,sBAAsB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnD,YAAY;AACZ,YAAY,QAAQ,GAAG,QAAQ;AAC/B,QAAQ,CAAC,CAAC;AACV;AACA,IAAI,IAAI,CAAC,QAAQ,IAAI;AACrB,IAAI,IAAI,QAAQ;AAChB;AACA,SAAS,IAAI,CAAC;AACd,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;AAClC,kBAAkB;AAClB,kBAAkB;AAClB,cAAc,IAAI,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;;AClCO,MAAM,KAAK,GAAG,KAAK;;ACKd,MAAC,oBAAoB,GAAG,CAAC,IAAI,KAAK;AAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACjE,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AACpD,QAAQ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAChE,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACrC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3D;AAQO,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,IAAI,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;AAClC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;AAChD,IAAI,MAAM,UAAU,GAAG,aAAa,CAAC;AACrC,UAAU,OAAO,aAAa,CAAC,KAAK,KAAK;AACzC,cAAc,CAAC,MAAM;AACrB,gBAAgB,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE;AACjD,gBAAgB,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;AACtD,gBAAgB,OAAO,KAAK;AAC5B,YAAY,CAAC;AACb,cAAc,aAAa,CAAC;AAC5B,UAAU,IAAI;AACd,IAAI,OAAO,MAAM,eAAe,SAAS,WAAW,CAAC;AACrD,QAAQ,WAAW,kBAAkB,GAAG;AACxC,YAAY,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;AAC3D,iBAAiB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC,SAAS;AACnD,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AAC9C,QAAQ;AACR,QAAQ,OAAO,KAAK,GAAG,KAAK;AAC5B,QAAQ,KAAK,GAAG,KAAK;AACrB,QAAQ,OAAO;AACf,QAAQ,MAAM,GAAG,EAAE;AACnB,QAAQ,aAAa,GAAG,aAAa;AACrC,QAAQ,WAAW,GAAG;AACtB,YAAY,KAAK,EAAE;AACnB,YAAY,IAAI,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;AACzD,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9E,gBAAgB,IAAI,UAAU;AAC9B,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC,UAAU,CAAC;AAClE,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAClG,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AACxC,sBAAsB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7E,sBAAsB,SAAS,CAAC;AAChC,gBAAgB,OAAO,GAAG;AAC1B,YAAY,CAAC,EAAE,EAAE,CAAC;AAClB,QAAQ;AACR,QAAQ,QAAQ,GAAG;AACnB,YAAY,MAAM,IAAI,GAAG,IAAI;AAC7B,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,YAAY,MAAM,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM;AACtD,gBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC3C,oBAAoB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAClD,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE;AACjD,4BAA4B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC7E,gCAAgC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE;AACtH,oCAAoC,MAAM;AAC1C,iCAAiC,CAAC,CAAC;AACnC,4BAA4B;AAC5B,iCAAiC;AACjC,gCAAgC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK;AAC9E,4BAA4B;AAC5B,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB,CAAC,CAAC,CAAC;AACnB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACpC,YAAY,SAAS,CAAC,GAAG,EAAE;AAC3B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAClD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,iBAAiB,CAAC,QAAQ,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAChD,YAAY;AACZ,QAAQ;AACR,QAAQ,gBAAgB,CAAC,QAAQ,EAAE;AACnC,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,YAAY,CAAC,QAAQ,EAAE;AAC/B,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3D,YAAY;AACZ,QAAQ;AACR,QAAQ,gBAAgB,CAAC,KAAK,EAAE;AAChC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,kBAAkB;AAC/C,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAC9E,YAAY;AACZ,QAAQ;AACR,QAAQ,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC3D,YAAY,MAAM,KAAK,GAAG,eAAe,CAAC,kBAAkB;AAC5D,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,YAAY,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpD,gBAAgB,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACtD,YAAY;AACZ,QAAQ;AACR,QAAQ,uBAAuB,GAAG,EAAE;AACpC,QAAQ,oBAAoB,CAAC,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvD,QAAQ;AACR,QAAQ,iBAAiB,GAAG;AAC5B,YAAY,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC9D,QAAQ;AACR,QAAQ,0BAA0B,GAAG,EAAE;AACvC,QAAQ,uBAAuB,CAAC,QAAQ,EAAE;AAC1C,YAAY,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1D,QAAQ;AACR,QAAQ,oBAAoB,GAAG;AAC/B,YAAY,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AACjE,QAAQ;AACR,KAAK;AACL,CAAC;AACD,MAAM,QAAQ,GAAG,CAAC,aAAa,KAAK;AACpC,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;AAC5C,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;AACjE,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,SAAS;AAC7C,SAAS,OAAO,CAAC,CAAC,CAAC,KAAK;AACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACpB,YAAY,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS;AACzC,YAAY,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACtD,YAAY,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AACtD,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,CAAC;;AClJM,MAAM,SAAS,GAAG,EAAE;AACpB,MAAM,cAAc,GAAG,MAAM;AACpC,IAAI,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3B,CAAC;AACM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AAClD,IAAI,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa;AAC3C,IAAI,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;AACvD,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;AACnC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC1F,QAAQ;AACR,aAAa;AACb,YAAY,EAAE,GAAG,IAAI,KAAK,EAAE;AAC5B,QAAQ;AACR,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;AACxC,QAAQ,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC1D,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE;AAC3B,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,MAAM;AACzB,QAAQ,IAAI,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AACxF,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE;AACjD,YAAY,cAAc;AAC1B,gBAAgB,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,GAAG;AAC1E,qBAAqB,MAAM,SAAS,CAAC;AACrC,YAAY,OAAO,QAAQ,CAAC,QAAQ;AACpC,YAAY,OAAO,QAAQ;AAC3B,QAAQ,CAAC,CAAC,CAAC;AACX,QAAQ,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;AACnC,YAAY,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,YAAY,cAAc;AAC1B,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AAC7E,QAAQ;AACR,aAAa;AACb,YAAY,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,OAAO,EAAE;AACjB,IAAI,CAAC;AACL,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;AAC7C,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,IAAI,OAAO,QAAQ;AACnB,CAAC;;AChDD,MAAM,aAAa,GAAG,EAAE;AACZ,MAAC,kBAAkB,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,EAAE;AAC3D;AACY,MAAC,0BAA0B,GAAG,MAAM;AAChD,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE;AACzC,IAAI,IAAI,CAAC,QAAQ;AACjB,QAAQ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AAC/D,IAAI,OAAO,QAAQ;AACnB;AACY,MAAC,YAAY,GAAG,CAAC,MAAM,KAAK;AACxC,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE;AAC3B,IAAI,MAAM,cAAc,GAAG,MAAM,IAAI,kBAAkB,EAAE;AACzD,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,EAAE,cAAc;AAC9B,QAAQ,EAAE;AACV,QAAQ,IAAI,EAAE,cAAc,EAAE;AAC9B,QAAQ,KAAK,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACzE,KAAK;AACL,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE;AACrC,YAAY,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAQ;AACR,aAAa;AACb,YAAY,cAAc,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAChD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB;AACY,MAAC,MAAM,GAAG;AACV,MAAC,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK;AAC3D,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;AAC5F,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,QAAQ,QAAQ,CAAC,MAAM,GAAG,SAAS;AACnC,IAAI;AACJ,IAAI,aAAa,CAAC,GAAG,EAAE;AACvB,IAAI,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAQ,qBAAqB,CAAC,MAAM;AACpC,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;AAC9C,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC;AAC7B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB;AACY,MAAC,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AAClD,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;AACzC,IAAI,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC9D;AACY,MAAC,mBAAmB,GAAG,CAAC,QAAQ,KAAK;AACjD,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK;AACvC,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;AACvB,IAAI,IAAI,KAAK,GAAG,KAAK;AACrB,IAAI,QAAQ,KAAK,GAAG,KAAK,CAAC,WAAW,GAAG;AACxC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAQ,IAAI,KAAK,KAAK,GAAG;AACzB,YAAY;AACZ,IAAI;AACJ,IAAI,OAAO,GAAG;AACd;AACY,MAAC,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK;AACrD;AACA;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE;AACpD,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACxC;AACA,YAAY,OAAO,CAAC,iBAAiB,GAAG,IAAI;AAC5C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3E;AACA,gBAAgB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5E,oBAAoB,KAAK,CAAC,IAAI,CAAC;AAC/B,wBAAwB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,wBAAwB,iBAAiB,EAAE,KAAK;AAChD,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;AACrC;AACA,YAAY,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK;AAChD,gBAAgB,IAAI;AACpB,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,EAAE;AAC1B,oBAAoB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC;AACtE,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AACxC,YAAY;AACZ;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClC,YAAY;AACZ,YAAY,KAAK,CAAC,GAAG,EAAE;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnC,QAAQ,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;AACvE,IAAI;AACJ;;AC/GY,MAAC,MAAM,GAAG,CAAC,QAAQ,KAAK;AACpC,IAAI,MAAM,cAAc,GAAGC,QAAW,CAAC,QAAQ,CAAC;AAChD,IAAI,MAAM,eAAe,GAAG,0BAA0B,EAAE;AACxD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ;AACjC,QAAQ,eAAe,CAAC,QAAQ,GAAG,EAAE;AACrC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;AACjE,IAAI,OAAO,cAAc;AACzB;;ACTO,SAAS,GAAG,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,IAAI,IAAI,IAAI;AAC7B,KAAK;AACL;;ACHY,MAAC,EAAE,GAAG,MAAM;AACxB,IAAI,MAAM,IAAI,GAAG,cAAc,EAAE;AACjC,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AAC3E,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACnC,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE;AACjD,YAAY,MAAM;AAClB,SAAS,CAAC,CAAC;AACX,IAAI,CAAC;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,QAAQ,KAAK;AAC9C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAC3C,IAAI,CAAC;AACL,IAAI,MAAM,sBAAsB,GAAG,CAAC,QAAQ,KAAK;AACjD,QAAQ,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AAC9C,IAAI,CAAC;AACL,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,mBAAmB;AAC3B,QAAQ,sBAAsB;AAC9B,KAAK;AACL;;ACvBY,MAAC,CAAC,GAAG,CAAC,GAAG,KAAK;;ACAnB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI;;ACEjD,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;AACpC,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK;AAC7B,IAAI,MAAM,QAAQ,GAAG,0BAA0B,EAAE;AACjD,IAAI,IAAI,KAAK,GAAG,QAAQ,EAAE,MAAM;AAChC,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACvC,YAAY,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5D,YAAY,IAAI,GAAG,KAAK,OAAO,EAAE;AACjC,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,KAAK,GAAG,KAAK,CAAC,MAAM;AAChC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,YAAY;AAC/B,CAAC;AACW,MAAC,aAAa,GAAG,CAAC,YAAY,KAAK;AAC/C,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;AAC3B,QAAQ,MAAM,KAAK,GAAG,CAAC;AACvB,QAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACnE,QAAQ,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;AACrC,YAAY,GAAG,EAAE,OAAO;AACxB,YAAY,KAAK,EAAE;AACnB,gBAAgB,IAAI,KAAK,GAAG;AAC5B,oBAAoB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;AAC5C,gBAAgB,CAAC;AACjB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpF,QAAQ,OAAO,QAAQ;AACvB,IAAI,CAAC;AACL,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI;AAC1B,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AAC5B,QAAQ,MAAM,KAAK,GAAG,CAAC;AACvB,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,QAAQ,IAAI,IAAI;AAChB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7C,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY;AACzD,cAAc;AACd,cAAc;AACd,gBAAgB,IAAI,KAAK,GAAG;AAC5B,oBAAoB,OAAO,YAAY;AACvC,gBAAgB,CAAC;AACjB,aAAa,CAAC;AACd,IAAI,CAAC;AACL,IAAI,QAAQ,CAAC,OAAO,GAAG,IAAI;AAC3B,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC/B,IAAI,OAAO,CAAC,YAAY,GAAG,YAAY;AACvC,IAAI,OAAO,OAAO;AAClB;AACY,MAAC,WAAW,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK;;ACpDjD;AACA;AACA;AACA;AACY,MAAC,EAAE,GAAG,MAAM;AACxB,IAAI,OAAO,0BAA0B,EAAE,EAAE,EAAE;AAC3C;;ACNY,MAAC,OAAO,GAAG,CAAC,QAAQ,KAAK;AACrC,IAAI,MAAM,QAAQ,GAAG,0BAA0B,EAAE;AACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1B,QAAQ,QAAQ,CAAC,MAAM,GAAG,EAAE;AAC5B,IAAI;AACJ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC;;ACNY,MAAC,SAAS,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,QAAQ;;ACEhD,MAAC,KAAK,GAAG,CAAC,GAAG,KAAK;AAC9B,IAAI,IAAI,QAAQ,GAAG,kBAAkB,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE;AACrC,IAAI,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;AACjC,IAAI,OAAO,QAAQ,EAAE;AACrB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC3B,YAAY,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC9C,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACrD,YAAY,CAAC,CAAC;AACd,YAAY;AACZ,QAAQ;AACR,QAAQ,QAAQ,GAAG,QAAQ,EAAE,MAAM;AACnC,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,QAAQ,SAAS,CAAC,MAAM;AACxB,YAAY,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAChG,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AACY,MAAC,GAAG,GAAG,CAAC,GAAG,KAAK;AAC5B,IAAI,MAAM,OAAO,GAAG,EAAE,EAAE;AACxB,IAAI,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK;AAC7E,QAAQ,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAC3C,IAAI,CAAC,CAAC;AACN,IAAI,KAAK,CAAC,WAAW,CAAC;AACtB,IAAI,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;AACzB,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK;AAC1B,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvC,QAAQ,CAAC;AACT,KAAK,CAAC;AACN;;AChCA,SAAS,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;AACtD,IAAI,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;AAC7D;AACA,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK;AAChC,IAAI,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AACD,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;AACjB,MAAC,GAAG,GAAG,CAAC,CAAC,KAAK;AAC1B,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,MAAM,eAAe,GAAG,0BAA0B,EAAE;AACxD,IAAI,IAAI,OAAO,GAAG,EAAE;AACpB,IAAI,IAAI,YAAY,GAAG,EAAE;AACzB,IAAI,IAAI,YAAY,GAAG,EAAE;AACzB,IAAI,MAAM,CAAC,MAAM;AACjB,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAC7B,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY;AACjD,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;AAChC;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACjC,YAAY,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AACtC,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC,YAAY,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AACxC,gBAAgB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9C,gBAAgB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC/C,oBAAoB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;AAChD,gBAAgB;AAChB,gBAAgB,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD;AACA,gBAAgB,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,oBAAoB,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChE,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,gBAAgB,OAAO,CAAC,IAAI,CAAC,qDAAqD;AAClF,oBAAoB,sEAAsE;AAC1F,oBAAoB,mBAAmB,EAAE,UAAU,CAAC;AACpD,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACtD;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM;AACjC,QAAQ,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACpC,QAAQ,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxB;AACA;AACA;AACA,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACnC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;AACvD,gBAAgB,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AACjD,gBAAgB,CAAC,EAAE;AACnB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACnC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACzD,gBAAgB,YAAY,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC;AACnD,gBAAgB,EAAE,EAAE;AACpB,gBAAgB,EAAE,EAAE;AACpB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;AACpB,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE;AACzB,gBAAgB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACrC,oBAAoB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;AAC9C,oBAAoB,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,cAAc,CAAC,MAAM;AACpF,wBAAwB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5F,wBAAwB,OAAO,QAAQ;AACvC,oBAAoB,CAAC,EAAE,eAAe,CAAC;AACvC,oBAAoB,IAAI,CAAC,WAAW,EAAE;AACtC,wBAAwB,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC9D,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,GAAG,CAAC,EAAE;AACnC,4BAA4B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ;AACtE,4BAA4B,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,4BAA4B,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,EAAE,MAAM,CAAC;AACvF,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;AAClF,4BAA4B,UAAU,EAAE,YAAY,CAAC,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnG,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,YAAY,CAAC,CAAC,CAAC,GAAG;AACtC,wBAAwB,KAAK,EAAE,QAAQ;AACvC,wBAAwB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACxC,wBAAwB,QAAQ,EAAE,WAAW;AAC7C,qBAAqB;AACrB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;AACzB,YAAY,OAAO,CAAC,IAAI,EAAE,EAAE;AAC5B;AACA,gBAAgB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AAC9E,oBAAoB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;AAClD,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,gBAAgB,CAAC,EAAE;AACnB,YAAY;AACZ,QAAQ;AACR;AACA,aAAa;AACb;AACA,YAAY,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB,YAAY,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB;AACA,YAAY,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE;AAC9C,YAAY,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3C,gBAAgB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1D,YAAY;AACZ;AACA,YAAY,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3C;AACA,YAAY,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC;AAChE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;AAChD,gBAAgB,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C;AACA,YAAY,IAAI,OAAO,GAAG,CAAC;AAC3B,YAAY,IAAI,KAAK,GAAG,KAAK;AAC7B,YAAY,IAAI,gBAAgB,GAAG,CAAC;AACpC,YAAY,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3C,gBAAgB,IAAI,OAAO,IAAI,WAAW,EAAE;AAC5C;AACA,oBAAoB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AAClF,wBAAwB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;AACtD,oBAAoB,CAAC,CAAC;AACtB,oBAAoB,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9E,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;AAC1C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7C,gBAAgB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7D,gBAAgB,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC5C;AACA,oBAAoB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AAClF,wBAAwB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;AACtD,oBAAoB,CAAC,CAAC;AACtB,oBAAoB,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9E,gBAAgB;AAChB,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,qBAAqB,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AAChE;AACA,oBAAoB,IAAI,QAAQ,IAAI,gBAAgB,EAAE;AACtD,wBAAwB,gBAAgB,GAAG,QAAQ;AACnD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,KAAK,GAAG,IAAI;AACpC,oBAAoB;AACpB;AACA,oBAAoB,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAC5D,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,MAAM,0BAA0B,GAAG;AAC/C,kBAAkB,WAAW,CAAC,qBAAqB;AACnD,kBAAkB,EAAE;AACpB;AACA,YAAY,IAAI,CAAC,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC;AACzD,YAAY,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACvD,gBAAgB,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC;AACvC,gBAAgB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AACjD;AACA,gBAAgB,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,GAAG;AAC9C,sBAAsB,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,sBAAsB,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,gBAAgB,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACpD;AACA,oBAAoB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;AACnD,oBAAoB,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,cAAc,CAAC,MAAM;AACpF,wBAAwB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvF,wBAAwB,OAAO,QAAQ;AACvC,oBAAoB,CAAC,EAAE,eAAe,CAAC;AACvC;AACA,oBAAoB,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC;AAChF,oBAAoB,YAAY,CAAC,QAAQ,CAAC,GAAG;AAC7C,wBAAwB,KAAK,EAAE,MAAM;AACrC,wBAAwB,IAAI,EAAE,OAAO;AACrC,wBAAwB,QAAQ,EAAE,WAAW;AAC7C,qBAAqB;AACrB,gBAAgB;AAChB,qBAAqB,IAAI,KAAK,EAAE;AAChC;AACA,oBAAoB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtE;AACA,wBAAwB,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC;AACjE,wBAAwB,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC;AACvF;AACA,wBAAwB,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AACvD,4BAA4B,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAwB,CAAC,CAAC;AAC1B,oBAAoB;AACpB,yBAAyB;AACzB;AACA,wBAAwB,CAAC,EAAE;AAC3B,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,OAAO;AACzB,QAAQ,YAAY,GAAG,YAAY;AACnC,QAAQ,eAAe,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;AACrE,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;AACpC,YAAY,OAAO,IAAI,CAAC,QAAQ;AAChC,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;AACtD;AACA;AACA,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE;AACzB,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE;AACxB,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAC/B,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,gBAAgB;AAChB,YAAY;AACZ,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACjC,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE;AAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAChC,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAC3C,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,CAAC,GAAG,CAAC;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,gBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE;AAC3B,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,gBAAgB;AAChB,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM;AACrB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACpB,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;;ACjRY,MAAC,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AAC/C,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpE,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;AAC7C,IAAI,OAAO,QAAQ;AACnB;;ACHY,MAAC,EAAE,GAAG,CAAC,CAAC,KAAK;AACzB,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,IAAI,EAAE,GAAG;AACjB,YAAY,OAAO,GAAG,CAAC,KAAK;AAC5B,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK;AAC7B,gBAAgB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;AAC/C,gBAAgB,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ;AACrD,gBAAgB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAChE,oBAAoB,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,OAAO,QAAQ;AACnC,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,WAAW,CAAC,IAAI;AAC3C,gBAAgB;AAChB,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,EAAE,CAAC,OAAO,GAAG,IAAI;;ACxBjB;AACA,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,IAAI,EAAE,GAAG;AACjB,YAAY,OAAO,GAAG,CAAC,KAAK;AAC5B,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK;AAC7B,gBAAgB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;AAC/C,gBAAgB,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW;AAChD,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,WAAW,CAAC,IAAI;AAC3C,gBAAgB;AAChB,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,CAAC,OAAO,GAAG,IAAI;;ACvBP,MAAC,OAAO,GAAG,CAAC,CAAC,KAAK;AAC9B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAQ,KAAK,CAAC,KAAK,CAAC,EAAE;AACtB,QAAQ,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;AAC1C,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK;AACtB,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK;AAC7B,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ;AACrD,gBAAgB,OAAO,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ;AACjF,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,OAAO,CAAC,OAAO,GAAG,IAAI;;AChBV,MAAC,MAAM,GAAG,CAAC,CAAC,KAAK;AAC7B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ;AACzC,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACxC,QAAQ,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAChC,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ;AAC1C,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,MAAM,CAAC,OAAO,GAAG,IAAI;AACT,MAAC,IAAI,GAAG,CAAC,CAAC,KAAK;AAC3B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE;AAC3B,IAAI,OAAO;AACX,QAAQ,EAAE;AACV,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ;AACvC,QAAQ,CAAC;AACT,KAAK;AACL;AACA,IAAI,CAAC,OAAO,GAAG,IAAI;AACP,MAAC,OAAO,GAAG,CAAC,CAAC,KAAK;AAC9B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE;AAC3B,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,EAAE;AACV,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ;AACvC,QAAQ,CAAC;AACT,KAAK;AACL,IAAI,OAAO,IAAI;AACf;AACA,OAAO,CAAC,OAAO,GAAG,IAAI;;AC5CV,MAAC,oBAAoB,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACpD,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtD;;ACCY,MAAC,aAAa,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AACvD,IAAI,OAAO,GAAG,YAAY;AAC1B,UAAU,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ;AACxC,UAAU,SAAS,IAAI;AACvB,cAAc,oBAAoB,CAAC,GAAG,EAAE,KAAK;AAC7C,cAAc,eAAe,IAAI;AACjC,kBAAkB,kBAAkB,CAAC,GAAG,EAAE,KAAK;AAC/C,kBAAkB,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;AAC7C;;ACXY,MAAC,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3D,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,QAAQ;AACzB,QAAQ,QAAQ;AAChB,KAAK;AACL;;ACNY,MAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AAC5C,IAAI,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC9C;AACY,MAAC,GAAG,GAAG;AACP,MAAC,IAAI,GAAG;AACR,MAAC,QAAQ,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AACnC,MAAC,QAAQ,GAAG,CAAC,QAAQ,KAAK;AACtC,IAAI,IAAI,GAAG;AACX,IAAI,OAAO,CAAC,KAAK,KAAK;AACtB,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,UAAU,GAAG;AAC/B,kBAAkB,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK;AAC9E,kBAAkB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,YAAY,UAAU,CAAC,SAAS,GAAG,QAAQ;AAC3C,YAAY,GAAG,GAAG;AAClB,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,UAAU,CAAC,UAAU;AACvC,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,SAAS,EAAE;AAC9B,IAAI,CAAC;AACL;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "j20",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "homepage": "https://www.github.com/anuoua/j20",
5
5
  "type": "module",
6
6
  "author": "anuoua",