@kithinji/orca 1.0.25 → 1.0.26
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/browser/index.iife.js +3 -3
- package/dist/browser/index.iife.js.map +2 -2
- package/dist/browser/index.mjs +3 -3
- package/dist/browser/index.mjs.map +2 -2
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.cjs.map +2 -2
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +2 -2
- package/dist/types/browser/dom/dom.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/node/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.node.ts", "../../src/shared/index.ts", "../../src/shared/store.ts", "../../src/shared/symbols.ts", "../../src/shared/types.ts", "../../src/shared/decorators.ts", "../../src/shared/module/node.ts", "../../src/shared/module/compiler.ts", "../../src/shared/module/injector.ts", "../../src/shared/module/context.ts", "../../src/shared/jsx/jsx-runtime.ts", "../../src/shared/renderers/string.ts", "../../src/shared/renderers/stream.ts", "../../src/shared/renderers/vnode.ts", "../../src/shared/json.ts", "../../src/shared/signal/signal.ts", "../../src/shared/observable/observable.ts", "../../src/shared/observable/subject.ts", "../../src/shared/observable/bsubject.ts", "../../src/shared/component.ts", "../../src/shared/module_libs/http_client/module.ts", "../../src/shared/dom/osc.ts", "../../src/shared/macros/index.ts", "../../src/shared/providers/actor.ts", "../../src/node/index.ts", "../../src/node/factory.ts", "../../src/node/modules/serve_static/serve.ts", "../../src/node/modules/actor/actor.ts", "../../src/node/modules/router_module/index.ts"],
|
|
4
|
-
"sourcesContent": ["import \"reflect-metadata\";\n\nimport * as shared from \"./shared\";\nexport { shared };\n\nexport * from \"./shared/types\";\nexport * from \"./shared/symbols\";\nexport * from \"./shared/decorators\";\nexport * from \"./shared/module\";\nexport * from \"./shared/jsx\";\nexport * from \"./shared/observable\";\nexport * from \"./shared/signal\";\nexport * from \"./shared/json\";\nexport * from \"./shared/component\";\nexport * from \"./shared/module_libs\";\nexport * from \"./shared/dom\";\nexport * from \"./shared/macros\";\n\nimport * as node from \"./node\";\nexport { node };\n\nexport * from \"./node/factory\";\nexport * from \"./node/modules\";\n", "export * from \"./decorators\";\nexport * from \"./symbols\";\nexport * from \"./types\";\nexport * from \"./module\";\nexport * from \"./jsx\";\nexport * from \"./renderers\";\nexport * from \"./json\";\nexport * from \"./signal\";\nexport * from \"./observable\";\nexport * from \"./store\";\nexport * from \"./component\";\nexport * from \"./module_libs\";\nexport * from \"./dom\";\nexport * from \"./macros\";\nexport * from \"./providers\";\n", "class Store {\n private namespace = new Map<string, unknown>();\n\n set<T>(name: string, value: T): void {\n this.namespace.set(name, value);\n }\n\n get<T>(name: string): T | undefined {\n return this.namespace.get(name) as T | undefined;\n }\n\n update<T>(name: string, updater: (current: T | undefined) => T): void {\n const current = this.get<T>(name);\n const next = updater(current);\n this.set(name, next);\n }\n}\n\nexport const store = new Store();\n", "export const DECLARATIONS_KEY = Symbol(\"orca:declarations\");\nexport const PROVIDERS_KEY = Symbol(\"orca:providers\");\nexport const CONTROLLERS_KEY = Symbol(\"orca:controllers\");\nexport const BOOTSTRAP = Symbol(\"orca:bootstrap\");\nexport const BOOTSTRAP_VNODE = Symbol(\"orca:bootstrap:vnode\");\nexport const IMPORTS_KEY = Symbol(\"orca:imports\");\nexport const EXPORTS_KEY = Symbol(\"orca:exports\");\nexport const INJECTABLE = Symbol(\"orca:injectable\");\nexport const COMPONENT = Symbol(\"orca:component\");\nexport const COMPONENT_PROVIDERS = Symbol(\"orca:component:providers\");\nexport const COMPONENT_DEPS = Symbol(\"orca:component:deps\");\nexport const COMPONENT_ROUTE = Symbol(\"orca:component:route\");\nexport const INJECT_TOKENS_KEY = Symbol(\"orca:injectTokens\");\nexport const NODE = Symbol(\"orca:node\");\nexport const DESIGN_PARAMTYPES = \"design:paramtypes\";\nexport const CONTROLLER = Symbol(\"orca:controller\");\nexport const CONTROLLER_PREFIX_KEY = Symbol(\"orca:controllerPrefix\");\nexport const PARAMS_META_KEY = Symbol(\"orca:paramsMeta\");\nexport const HTTP_METHOD_KEY = Symbol(\"orca:method\");\nexport const PATH_KEY = Symbol(\"orca:path\");\nexport const EXPRESS_ADAPTER_HOST = Symbol(\"orca:express\");\nexport const SIGNATURE_METADATA_KEY = Symbol(\"orca:signature:schemas\");\nexport const SSE_ROUTE = Symbol(\"orca:sse:route\");\nexport const EVENT_HANDLER = Symbol(\"orca:event:handler\");\n\n// over the wire symbols\nexport const ERROR_ELEMENT = Symbol.for(\"orca:error\");\nexport const ORCA_ELEMENT_TYPE = Symbol.for(\"orca:element\");\nexport const ORCA_FRAGMENT_TYPE = Symbol.for(\"orca:fragment\");\nexport const ORCA_CLIENT_COMPONENT = Symbol.for(\"orca.client.component\");\nexport const PENDING_REFERENCE_TYPE = Symbol.for(\"orca:pending_reference\");\n", "export type Constructor<T = any> = new (...args: any[]) => T;\n\nexport type Token<T> = Constructor<T> | string | symbol;\n\nexport type Scope = \"singleton\" | \"transient\";\n\nexport interface Provider<T = any> {\n provide: Token<T>;\n useClass?: Constructor<T>;\n useValue?: T;\n useFactory?: (...args: any[]) => T;\n scope?: Scope;\n useExisting?: Token<T>;\n deps?: Token<any>[];\n eager?: boolean;\n}\n\nexport interface DynamicModule {\n module: Constructor;\n providers?: (Provider | Constructor)[];\n controllers?: Constructor[];\n declarations?: Constructor[];\n imports?: IModule[];\n exports?: Token<any>[];\n}\n\nexport type IModule = Constructor | DynamicModule;\n\nexport interface ModuleParams {\n declarations?: Constructor[];\n controllers?: Constructor[];\n providers?: (Provider | Constructor)[];\n imports?: IModule[];\n exports?: Token<any>[];\n bootstrap?: Constructor;\n}\n\nexport interface ComponentParams {\n providers?: (Provider | Constructor)[];\n deps?: Constructor[];\n route?: string;\n}\n\nexport interface InjectParams {\n maybe?: boolean;\n}\n\nexport interface InjectedToken<T> {\n token: Token<T>;\n maybe?: boolean;\n}\n\nexport enum HandlerParamType {\n ROUTE_PARAM = \"ROUTE_PARAM\",\n BODY = \"BODY\",\n QUERY = \"QUERY\",\n HEADERS = \"HEADERS\",\n REQUEST = \"REQUEST\",\n RESPONSE = \"RESPONSE\",\n}\n\nexport enum HttpMethod {\n GET = \"get\",\n POST = \"post\",\n}\n\nexport type MethodDecorator = <T>(\n target: Object,\n propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<T>\n) => void | TypedPropertyDescriptor<T>;\n\nexport interface Signal<T> {\n get value(): T;\n set value(newValue: T);\n}\n\nexport type Subscriber = () => void;\n\nexport interface Observer<T> {\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\nexport type ValidatableSchema = {\n parse: (input: any) => any;\n};\n\nexport interface ControllerParams {\n providedIn?: string;\n}\n\nexport interface Option {\n send: (message: Message) => void;\n}\n\nexport interface Message {\n to: string;\n from: string;\n data: any;\n event: string;\n}\n\nexport type MessageHandler = (data: any) => void | Promise<void>;\n", "import { store } from \"./store\";\nimport { BOOTSTRAP, COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, COMPONENT_ROUTE, CONTROLLER, CONTROLLER_PREFIX_KEY, CONTROLLERS_KEY, DECLARATIONS_KEY, EVENT_HANDLER, EXPORTS_KEY, HTTP_METHOD_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, INJECTABLE, PARAMS_META_KEY, PATH_KEY, PROVIDERS_KEY, SIGNATURE_METADATA_KEY, SSE_ROUTE, } from \"./symbols\";\nimport { HandlerParamType, HttpMethod, } from \"./types\";\nexport function Module(params = {}) {\n return function (target) {\n Reflect.defineMetadata(PROVIDERS_KEY, params.providers || [], target);\n Reflect.defineMetadata(DECLARATIONS_KEY, params.declarations || [], target);\n Reflect.defineMetadata(IMPORTS_KEY, params.imports || [], target);\n Reflect.defineMetadata(EXPORTS_KEY, params.exports || [], target);\n Reflect.defineMetadata(CONTROLLERS_KEY, params.controllers || [], target);\n Reflect.defineMetadata(BOOTSTRAP, params.bootstrap, target);\n };\n}\nexport function Injectable() {\n return function (target) {\n Reflect.defineMetadata(INJECTABLE, true, target);\n return target;\n };\n}\nexport function Component(params = {}) {\n return function (target) {\n store.update(\"components\", (current) => {\n const next = current ?? new Map();\n next.set(target.name, target);\n if (params.route) {\n const [pathPattern] = params.route.split(\"?\");\n next.set(pathPattern, target);\n }\n return next;\n });\n if (params.route) {\n Reflect.defineMetadata(COMPONENT_ROUTE, params.route, target);\n }\n Reflect.defineMetadata(COMPONENT, true, target);\n Reflect.defineMetadata(COMPONENT_PROVIDERS, params.providers || [], target);\n Reflect.defineMetadata(COMPONENT_DEPS, params.deps || [], target);\n return target;\n };\n}\nexport function Inject(token, params = {}) {\n return function (target, _propertyKey, parameterIndex) {\n const existingTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, target) || new Map();\n existingTokens.set(parameterIndex, {\n token: token,\n ...params,\n });\n Reflect.defineMetadata(INJECT_TOKENS_KEY, existingTokens, target);\n };\n}\nexport function Controller(prefix, options = {}) {\n return function (target) {\n Injectable()(target);\n if (options.providedIn == \"root\") {\n store.update(\"root_controllers\", (current) => {\n const next = current ?? new Set();\n next.add(target);\n return next;\n });\n }\n Reflect.defineMetadata(CONTROLLER_PREFIX_KEY, prefix ?? \"/\", target);\n Reflect.defineMetadata(CONTROLLER, true, target);\n };\n}\nfunction getHandlerParamDecorator(type, key) {\n return function (target, methodName, index) {\n const paramsMeta = Reflect.getMetadata(PARAMS_META_KEY, target, methodName) ?? {};\n paramsMeta[index] = { key, type };\n Reflect.defineMetadata(PARAMS_META_KEY, paramsMeta, target, methodName);\n };\n}\nexport function Param(key) {\n return getHandlerParamDecorator(HandlerParamType.ROUTE_PARAM, key);\n}\nexport function Body(key) {\n return getHandlerParamDecorator(HandlerParamType.BODY, key);\n}\nexport function Query(key) {\n return getHandlerParamDecorator(HandlerParamType.QUERY, key);\n}\nfunction getRouteDecorator(httpMethod, path) {\n return function (target, key, descriptor) {\n Reflect.defineMetadata(HTTP_METHOD_KEY, httpMethod, target, key);\n Reflect.defineMetadata(PATH_KEY, path, target, key);\n };\n}\nexport function Get(path) {\n return getRouteDecorator(HttpMethod.GET, path ?? \"\");\n}\nexport function Post(path) {\n return getRouteDecorator(HttpMethod.POST, path ?? \"\");\n}\nexport function Sse(path) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(SSE_ROUTE, true, target, propertyKey);\n Reflect.defineMetadata(PATH_KEY, path, target, propertyKey);\n Reflect.defineMetadata(HTTP_METHOD_KEY, HttpMethod.GET, target, propertyKey);\n };\n}\nexport function Subscribe(pattern) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(EVENT_HANDLER, pattern, target, propertyKey);\n };\n}\nexport function Signature(...schemas) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(SIGNATURE_METADATA_KEY, schemas, target, propertyKey);\n const originalMethod = descriptor.value;\n descriptor.value = async function (...args) {\n return originalMethod.apply(this, args);\n };\n return descriptor;\n };\n}\nexport function getSignatureMetadata(target, propertyKey) {\n return Reflect.getMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function hasSignature(target, propertyKey) {\n return Reflect.hasMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function parseSignatureSchemas(schemas, paramCount) {\n if (schemas.length === 0) {\n return { paramSchemas: [] };\n }\n if (schemas.length === 1) {\n return {\n paramSchemas: [],\n returnSchema: schemas[0],\n };\n }\n const paramSchemas = schemas.slice(0, -1);\n const returnSchema = schemas[schemas.length - 1];\n if (paramSchemas.length !== paramCount) {\n throw new Error(`@Signature decorator has ${paramSchemas.length} parameter schemas but method has ${paramCount} parameters. They must match.`);\n }\n return { paramSchemas, returnSchema };\n}\n", "import { Constructor, Provider, Token } from \"../types\";\n\nexport class ProviderNormalizer {\n static normalize(provider: Provider | Constructor): Provider {\n if (typeof provider === \"function\") {\n return { provide: provider, useClass: provider, scope: \"singleton\" };\n }\n return { scope: \"singleton\", ...provider };\n }\n}\n\nexport class Node {\n private children: Node[] = [];\n private tokens = new Map<Token<any>, Token<any>[]>();\n private exports: Set<Token<any>> = new Set();\n private providers = new Map<Token<any>, Provider>();\n\n constructor(public name: string) {}\n\n traverse(cb: (node: Node) => void) {\n cb(this);\n this.children.forEach((child) => child.traverse(cb));\n }\n\n addProviders(providers: (Provider | Constructor)[]) {\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providers.set(normalized.provide, normalized);\n });\n }\n\n getProviders(): Map<Token<any>, Provider> {\n return this.providers;\n }\n\n setChildren(children: Node[]) {\n this.children = children;\n }\n\n addToken(token: Token<any>, dependencies: Token<any>[]) {\n this.tokens.set(token, dependencies);\n }\n\n addExport(token: Token<any>) {\n this.exports.add(token);\n }\n\n getTokens(): Map<Token<any>, Token<any>[]> {\n return this.tokens;\n }\n\n getExports(): Set<Token<any>> {\n return this.exports;\n }\n\n getChildren(): Node[] {\n return this.children;\n }\n}\n", "import { COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, CONTROLLERS_KEY, DECLARATIONS_KEY, DESIGN_PARAMTYPES, EXPORTS_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, PROVIDERS_KEY, } from \"../symbols\";\nimport { Node } from \"./node\";\nexport class Compiler {\n constructor() {\n this.nodes = new Map();\n }\n compile(rootModule) {\n return this.createNode(rootModule);\n }\n createNode(moduleOrDynamic) {\n const target = this.isDynamicModule(moduleOrDynamic)\n ? moduleOrDynamic.module\n : moduleOrDynamic;\n if (this.nodes.has(target.name))\n return this.nodes.get(target.name);\n const node = new Node(target.name);\n this.nodes.set(target.name, node);\n const imports = this.getImports(moduleOrDynamic);\n node.setChildren(imports.map((imp) => this.createNode(imp)));\n const providers = this.getProviders(moduleOrDynamic);\n const controllers = this.getControllers(moduleOrDynamic);\n const declarations = this.getDeclarations(moduleOrDynamic);\n [...providers, ...controllers].forEach((item) => {\n const token = this.getProviderToken(item);\n const deps = this.extractDependencies(item);\n node.addToken(token, deps);\n });\n node.addProviders(providers);\n declarations.forEach((dec) => {\n node.addProviders([{ provide: dec, useClass: dec, scope: \"transient\" }]);\n });\n controllers.forEach((ctrl) => {\n node.addProviders([\n { provide: ctrl, useClass: ctrl, scope: \"singleton\" },\n ]);\n });\n [...declarations, ...controllers].forEach((comp) => {\n if (Reflect.getMetadata(COMPONENT, comp)) {\n const constructorDeps = this.getConstructorDependencies(comp);\n node.addToken(comp, constructorDeps);\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, comp) || [];\n const allDeps = [...constructorDeps, ...componentDeps];\n node.addToken(comp, allDeps);\n const localProviders = Reflect.getMetadata(COMPONENT_PROVIDERS, comp) || [];\n node.addProviders(localProviders);\n localProviders.forEach((lp) => {\n const token = this.getProviderToken(lp);\n const deps = this.extractDependencies(lp);\n node.addToken(token, deps);\n });\n }\n });\n this.getExports(moduleOrDynamic).forEach((exp) => node.addExport(exp));\n return node;\n }\n validate(rootNode) {\n const errors = [];\n const allNodes = new Map();\n this.collectAllNodes(rootNode, allNodes);\n const tokenName = (token) => typeof token === \"function\" ? token.name : String(token);\n allNodes.forEach((node) => {\n const moduleName = node.name;\n const providedTokens = node.getTokens();\n const exportedTokens = node.getExports();\n for (const exp of exportedTokens) {\n if (!providedTokens.has(exp)) {\n errors.push(`EXPORT ERROR in module \"${moduleName}\":\\n` +\n ` Exports token \"${tokenName(exp)}\" but this module does not provide it.\\n` +\n ` \u2192 Add it to providers/controllers/declarations, or remove from exports.`);\n }\n }\n const seen = new Set();\n for (const token of providedTokens.keys()) {\n if (seen.has(token)) {\n errors.push(`DUPLICATE PROVIDER in module \"${moduleName}\":\\n` +\n ` Token \"${tokenName(token)}\" is registered more than once.\\n` +\n ` \u2192 Remove duplicate entries.`);\n }\n seen.add(token);\n }\n for (const [token, deps] of providedTokens) {\n for (const dep of deps) {\n if (providedTokens.has(dep))\n continue;\n const providingModule = this.findProvidingModule(dep, node, allNodes, new Set());\n if (!providingModule) {\n const consumer = tokenName(token);\n const missing = tokenName(dep);\n const possibleProviders = Array.from(allNodes.values())\n .filter((n) => n.getTokens().has(dep))\n .map((n) => n.name);\n let suggestion = \"\";\n if (possibleProviders.length > 0) {\n suggestion =\n `\\n \u2192 \"${missing}\" IS provided in: ${possibleProviders.join(\", \")}\\n` +\n ` \u2192 Ensure one of those modules exports it AND \"${moduleName}\" imports that module.`;\n }\n else {\n suggestion = `\\n \u2192 \"${missing}\" is not provided anywhere. Add a provider for it.`;\n }\n errors.push(`UNRESOLVED DEPENDENCY in module \"${moduleName}\":\\n` +\n ` \"${consumer}\" requires \"${missing}\"${suggestion}`);\n }\n }\n }\n providedTokens.forEach((deps, token) => {\n if (typeof token === \"function\" &&\n Reflect.getMetadata(COMPONENT, token)) {\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, token) || [];\n componentDeps.forEach((depComp) => {\n if (typeof depComp === \"function\" &&\n !Reflect.getMetadata(COMPONENT, depComp)) {\n errors.push(`COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" lists \"${tokenName(depComp)}\" in deps\\n` +\n ` \u2192 \"${tokenName(depComp)}\" is not a component (missing @Component decorator)`);\n }\n if (!providedTokens.has(depComp)) {\n const providingMod = this.findProvidingModule(depComp, node, allNodes, new Set());\n if (!providingMod) {\n errors.push(`COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" renders \"${tokenName(depComp)}\"\\n` +\n ` \u2192 \"${tokenName(depComp)}\" must be in declarations or imported`);\n }\n }\n });\n }\n });\n });\n return { valid: errors.length === 0, errors };\n }\n collectAllNodes(node, collected, visited = new Set()) {\n if (visited.has(node.name))\n return;\n visited.add(node.name);\n collected.set(node.name, node);\n node\n .getChildren()\n .forEach((child) => this.collectAllNodes(child, collected, visited));\n }\n findProvidingModule(token, fromNode, allNodes, visited = new Set()) {\n if (visited.has(fromNode.name))\n return null;\n visited.add(fromNode.name);\n for (const child of fromNode.getChildren()) {\n if (child.getTokens().has(token) && child.getExports().has(token)) {\n return child.name;\n }\n const found = this.findProvidingModule(token, child, allNodes, visited);\n if (found)\n return found;\n }\n return null;\n }\n getProviderToken(provider) {\n return typeof provider === \"function\" ? provider : provider.provide;\n }\n extractDependencies(item) {\n if (typeof item === \"object\" && \"deps\" in item && item.deps)\n return item.deps;\n if (typeof item === \"object\" && item.useClass)\n return this.getConstructorDependencies(item.useClass);\n if (typeof item === \"function\")\n return this.getConstructorDependencies(item);\n return [];\n }\n getConstructorDependencies(constructor) {\n const injectTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, constructor) || new Map();\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, constructor) || [];\n return paramTypes\n .map((type, index) => {\n const injected = injectTokens.get(index);\n if (injected?.maybe) {\n return null;\n }\n return injected?.token ?? type;\n })\n .filter((token) => Boolean(token));\n }\n isDynamicModule(m) {\n return typeof m === \"object\" && \"module\" in m;\n }\n getImports(m) {\n if (this.isDynamicModule(m))\n return m.imports || [];\n return Reflect.getMetadata(IMPORTS_KEY, m) || [];\n }\n getProviders(m) {\n if (this.isDynamicModule(m))\n return m.providers || [];\n return Reflect.getMetadata(PROVIDERS_KEY, m) || [];\n }\n getControllers(m) {\n if (this.isDynamicModule(m))\n return m.controllers || [];\n return Reflect.getMetadata(CONTROLLERS_KEY, m) || [];\n }\n getDeclarations(m) {\n if (this.isDynamicModule(m))\n return m.declarations || [];\n return Reflect.getMetadata(DECLARATIONS_KEY, m) || [];\n }\n getExports(m) {\n if (this.isDynamicModule(m))\n return m.exports || [];\n return Reflect.getMetadata(EXPORTS_KEY, m) || [];\n }\n printDAG(node, indent = \"\", visited = new Set()) {\n if (visited.has(node.name)) {\n console.log(`${indent}${node.name} (circular)`);\n return;\n }\n visited.add(node.name);\n console.log(`${indent}${node.name}`);\n const tokens = node.getTokens();\n if (tokens.size > 0) {\n console.log(`${indent}\u251C\u2500 Tokens:`);\n Array.from(tokens.entries()).forEach(([token, deps], i, arr) => {\n const prefix = i === arr.length - 1 ? \"\u2514\u2500\" : \"\u251C\u2500\";\n const tokenName = typeof token === \"function\" ? token.name : String(token);\n const depStr = deps.length\n ? ` \u2192 [${deps\n .map((d) => (typeof d === \"function\" ? d.name : String(d)))\n .join(\", \")}]`\n : \"\";\n console.log(`${indent}\u2502 ${prefix} ${tokenName}${depStr}`);\n });\n }\n const exports = node.getExports();\n if (exports.size > 0) {\n const names = Array.from(exports).map((t) => typeof t === \"function\" ? t.name : String(t));\n console.log(`${indent}\u251C\u2500 Exports: [${names.join(\", \")}]`);\n }\n const children = node.getChildren();\n if (children.length > 0) {\n console.log(`${indent}\u2514\u2500 Imports:`);\n children.forEach((child, i) => {\n const isLast = i === children.length - 1;\n const childIndent = indent + (isLast ? \" \" : \"\u2502 \");\n this.printDAG(child, childIndent, new Set(visited));\n });\n }\n }\n}\n", "import { DESIGN_PARAMTYPES, INJECT_TOKENS_KEY } from \"../symbols\";\nimport { Constructor, InjectedToken, Provider, Token } from \"../types\";\nimport { Node, ProviderNormalizer } from \"./node\";\n\nexport class Injector {\n private instanceCache = new Map<Token<any>, any>();\n private providerMap = new Map<Token<any>, Provider>();\n private parent?: Injector;\n\n constructor(providers: Provider[], parent?: Injector) {\n this.parent = parent;\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providerMap.set(normalized.provide, normalized);\n });\n }\n\n addProvider(provider: Provider | Constructor) {\n const normalized = ProviderNormalizer.normalize(provider);\n this.providerMap.set(normalized.provide, normalized);\n }\n\n resolve<T>(token: Token<T>): T {\n if (this.instanceCache.has(token)) {\n return this.instanceCache.get(token);\n }\n\n const provider = this.providerMap.get(token);\n\n if (!provider) {\n if (this.parent) {\n return this.parent.resolve(token);\n }\n throw new Error(\n `No provider for token: ${\n typeof token === \"function\" ? token.name : String(token)\n }`\n );\n }\n\n const instance = this.createInstance(provider);\n\n if (provider.scope !== \"transient\") {\n this.instanceCache.set(token, instance);\n }\n\n return instance as T;\n }\n\n private createInstance(provider: Provider): any {\n if (\"useValue\" in provider && provider.useValue !== undefined)\n return provider.useValue;\n if (provider.useExisting) return this.resolve(provider.useExisting);\n if (provider.useFactory) {\n const deps = (provider.deps || []).map((d) => this.resolve(d));\n return provider.useFactory(...deps);\n }\n\n const Ctor = provider.useClass || (provider.provide as Constructor);\n const deps = provider.deps || this.getConstructorDeps(Ctor);\n\n return new Ctor(...deps.map((d) => this.resolve(d)));\n }\n\n private getConstructorDeps(ctor: Constructor): Token<any>[] {\n const injectTokens: Map<\n number,\n InjectedToken<any>\n > = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, ctor) || new Map();\n\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, ctor) || [];\n\n return paramTypes\n .map((type: any, index: number) => {\n const injected = injectTokens.get(index);\n return injected?.token ?? type;\n })\n .filter((token: any): token is Token<any> => Boolean(token));\n }\n}\n\nexport function collectAllProvidersFromNode(\n node: Node,\n collected = new Set<Provider>()\n): Provider[] {\n node.getProviders().forEach((p) => collected.add(p));\n node\n .getChildren()\n .forEach((child) => collectAllProvidersFromNode(child, collected));\n return Array.from(collected);\n}\n", "import { Injector } from \"./injector\";\n\nlet currentInjector: Injector | null = null;\n\nexport function setCurrentInjector(injector: Injector) {\n currentInjector = injector;\n}\n\nexport function getCurrentInjector(): Injector | null {\n return currentInjector;\n}\n", "import { v4 as uuidv4 } from \"uuid\";\n\nimport { ORCA_ELEMENT_TYPE, ORCA_FRAGMENT_TYPE } from \"../symbols\";\nimport { JSX } from \"./types\";\n\nexport { JSX };\n\nexport function jsx(type: any, config: any, maybeKey?: any): JSX.Element {\n const key = maybeKey !== undefined ? maybeKey : config?.key ?? null;\n\n const props: any = {};\n\n if (config) {\n for (const propName in config) {\n if (propName === \"key\") continue;\n\n if (propName === \"ref\") continue;\n\n props[propName] = config[propName];\n }\n }\n\n if (props.children !== undefined) {\n props.children = normalizeChildren(props.children);\n }\n\n if (typeof type === \"function\" && type.defaultProps) {\n for (const propName in type.defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = type.defaultProps[propName];\n }\n }\n }\n\n return createVNode(type, props, key);\n}\n\nexport const jsxs = jsx;\n\nexport function Fragment(props: any): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: ORCA_FRAGMENT_TYPE,\n id: \"00000000-0000-0000-0000-000000000000\",\n props,\n key: null,\n };\n}\n\nfunction createVNode(\n type: any,\n props: any,\n key: string | number | null\n): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type,\n props,\n key,\n };\n}\n\nfunction normalizeChildren(children: any): any {\n if (children === null || children === undefined) {\n return null;\n }\n\n if (!Array.isArray(children)) {\n return normalizeChild(children);\n }\n\n const normalized: any[] = [];\n\n for (let i = 0; i < children.length; i++) {\n const child = normalizeChild(children[i]);\n\n if (child === null) continue;\n\n if (Array.isArray(child)) {\n normalized.push(...child);\n } else {\n normalized.push(child);\n }\n }\n\n if (normalized.length === 0) return null;\n if (normalized.length === 1) return normalized[0];\n return normalized;\n}\n\nfunction normalizeChild(child: any): any {\n if (child === null || child === undefined || typeof child === \"boolean\") {\n return null;\n }\n\n if (typeof child === \"number\") {\n return String(child);\n }\n\n if (typeof child === \"string\" || child.$$typeof === ORCA_ELEMENT_TYPE) {\n return child;\n }\n\n if (Array.isArray(child)) {\n return child.map(normalizeChild).filter((c) => c !== null);\n }\n\n return String(child);\n}\n\nexport function isClassComponent(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" &&\n jsx.type.prototype &&\n typeof jsx.type.prototype.build === \"function\"\n );\n}\n\nexport function isIntrinsicElement(jsx: JSX.Element): boolean {\n return typeof jsx.type === \"string\";\n}\n\nexport function isFragment(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" && jsx.type()?.type == ORCA_FRAGMENT_TYPE\n );\n}\n", "import { JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport { COMPONENT, COMPONENT_PROVIDERS } from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\nexport class StringRenderer {\n constructor(private rootInjector: Injector) {}\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector\n ): any {\n if (typeof vnode.type === \"function\") {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = parentInjector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n parentInjector\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n\n instance.props = vnode.props || {};\n\n const childVNode = instance.build();\n\n return this.render(childVNode, componentInjector);\n }\n\n if (typeof vnode.type === \"string\") {\n const { children, ...attrs } = vnode.props;\n\n const attrsStr = Object.entries(attrs)\n .map(([key, value]) => {\n if (value === true) return key;\n if (value === false || value === null || value === undefined)\n return \"\";\n return `${key}=\"${this.escapeHtml(String(value))}\"`;\n })\n .filter(Boolean)\n .join(\" \");\n\n const openTag = attrsStr\n ? `<${vnode.type} ${attrsStr}>`\n : `<${vnode.type}>`;\n\n const selfClosing = [\"img\", \"br\", \"hr\", \"input\", \"meta\", \"link\"];\n if (selfClosing.includes(vnode.type)) {\n return attrsStr ? `<${vnode.type} ${attrsStr} />` : `<${vnode.type} />`;\n }\n\n let childrenHtml = \"\";\n if (children !== undefined && children !== null) {\n if (Array.isArray(children)) {\n childrenHtml = children\n .map((child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return this.escapeHtml(String(child));\n }\n return this.render(child, parentInjector);\n })\n .join(\"\");\n } else if (typeof children === \"object\" && \"type\" in children) {\n childrenHtml = this.render(children, parentInjector);\n } else {\n childrenHtml = this.escapeHtml(String(children));\n }\n }\n\n return `${openTag}${childrenHtml}</${vnode.type}>`;\n }\n\n return \"\";\n }\n\n private escapeHtml(text: string): string {\n const map: Record<string, string> = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n };\n return text.replace(/[&<>\"']/g, (m) => map[m]);\n }\n}\n", "import { parseHTML } from \"linkedom\";\nimport { isClassComponent, isFragment, isIntrinsicElement, JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport {\n COMPONENT,\n COMPONENT_PROVIDERS,\n ERROR_ELEMENT,\n ORCA_ELEMENT_TYPE,\n PENDING_REFERENCE_TYPE,\n} from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\ninterface PendingEntry {\n abortController: AbortController;\n promise: Promise<any>;\n}\n\nexport interface StreamRendererOptions {\n timeout?: number;\n}\n\nexport class StreamRenderer {\n private options: Required<StreamRendererOptions>;\n private pending = new Map<string, PendingEntry>();\n private processedIds = new Set<string>();\n private queueResolvers: ((u: JSX.Element) => void)[] = [];\n private renderingNodes!: WeakSet<object>;\n private idCounter = 0;\n\n constructor(\n private rootInjector: Injector,\n options: StreamRendererOptions = {},\n ) {\n this.options = {\n timeout: options.timeout ?? 30000,\n };\n }\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector,\n ): any {\n return this.stream(vnode, parentInjector);\n }\n\n private async *stream(vnode: JSX.Element, parentInjector: Injector) {\n this.pending.clear();\n this.queueResolvers = [];\n this.renderingNodes = new WeakSet();\n this.processedIds.clear();\n\n const nextUpdate = () =>\n new Promise<JSX.Element>((resolve) => this.queueResolvers.push(resolve));\n\n try {\n const root = this.buildSyncTree(vnode, parentInjector);\n yield { ...root, action: \"insert\" };\n\n while (this.pending.size > 0) {\n const update = await nextUpdate();\n yield update;\n }\n } finally {\n this.cleanup();\n }\n }\n\n private buildSyncTree(vnode: JSX.Element, injector: Injector): any {\n if (vnode == null || typeof vnode !== \"object\") return vnode;\n if (vnode.$$typeof !== ORCA_ELEMENT_TYPE) return vnode;\n\n if (this.renderingNodes.has(vnode)) {\n throw new Error(\n `Circular reference detected while rendering component \"${vnode.type?.name}\".`,\n );\n }\n\n this.renderingNodes.add(vnode);\n\n try {\n if (isClassComponent(vnode)) {\n return this.renderClassComponent(vnode, injector);\n }\n\n if (isIntrinsicElement(vnode)) {\n return this.renderIntrinsicElement(vnode, injector);\n }\n\n if (isFragment(vnode)) {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: null,\n id: vnode.id,\n props: {\n children: this.mapChildren(vnode.props?.children, injector),\n },\n key: null,\n };\n }\n\n return vnode;\n } finally {\n this.renderingNodes.delete(vnode);\n }\n }\n\n private renderIntrinsicElement(vnode: JSX.Element, injector: Injector): any {\n const { dangerouslySetInnerHTML, children, ...restProps } =\n vnode.props || {};\n\n let processedChildren;\n\n if (dangerouslySetInnerHTML?.__html) {\n processedChildren = this.parseHTMLToJSX(\n dangerouslySetInnerHTML.__html,\n injector,\n );\n } else {\n processedChildren = this.mapChildren(children, injector);\n }\n\n if (vnode.type == \"a\" && restProps[\"href\"]) {\n const href = restProps[\"href\"];\n\n try {\n new URL(href);\n } catch {\n if (\n !href.startsWith(\"#\") &&\n !href.startsWith(\"mailto:\") &&\n !href.startsWith(\"tel:\")\n ) {\n restProps[\"onclick\"] = `Orca.navigate(event, '${href}')`;\n }\n }\n }\n\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: vnode.type,\n id: vnode.id,\n props: {\n ...restProps,\n children: processedChildren,\n },\n key: vnode.key ?? null,\n };\n }\n\n private renderClassComponent(vnode: JSX.Element, injector: Injector): any {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = injector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n injector,\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n\n const mergedProps = Object.create(\n Object.getPrototypeOf(instance.props || {}),\n );\n\n Object.defineProperties(\n mergedProps,\n Object.getOwnPropertyDescriptors(instance.props),\n );\n\n Object.defineProperties(\n mergedProps,\n Object.getOwnPropertyDescriptors(vnode.props || {}),\n );\n\n instance.props = mergedProps;\n\n const childVNode = instance.build();\n\n if (childVNode instanceof Promise) {\n return this.createPendingReference(vnode, childVNode, componentInjector);\n }\n\n return this.buildSyncTree(childVNode, componentInjector);\n }\n\n private mapChildren(children: any, injector: Injector): any {\n if (children == null) return undefined;\n if (typeof children === \"string\" || typeof children === \"number\") {\n return children;\n }\n\n if (Array.isArray(children)) {\n return children.map((c) => this.buildSyncTree(c, injector));\n }\n\n return this.buildSyncTree(children, injector);\n }\n\n private parseHTMLToJSX(html: string, injector: Injector): any {\n const { document } = parseHTML(\n `<!doctype html><html><body>${html}</body></html>`,\n );\n\n const convertElement = (element: any): any => {\n const tagName = element.tagName.toLowerCase();\n const props: Record<string, any> = {};\n\n const attrs = element.attributes;\n if (attrs) {\n for (let i = 0; i < attrs.length; i++) {\n const attr = attrs[i];\n let name = attr.name;\n\n if (name === \"class\") {\n name = \"className\";\n } else if (name === \"for\") {\n name = \"htmlFor\";\n } else if (\n !name.startsWith(\"data-\") &&\n !name.startsWith(\"aria-\") &&\n name.includes(\"-\")\n ) {\n name = name.replace(/-([a-z])/g, (_: string, letter: string) =>\n letter.toUpperCase(),\n );\n }\n\n props[name] = attr.value;\n }\n }\n\n const children: any[] = [];\n const childNodes = element.childNodes;\n\n if (childNodes) {\n for (let i = 0; i < childNodes.length; i++) {\n const child = childNodes[i];\n const converted = convertNode(child);\n if (converted != null) {\n children.push(converted);\n }\n }\n }\n\n const jsxElement = {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: tagName,\n id: this.generateId(),\n props: {\n ...props,\n children:\n children.length === 0\n ? undefined\n : children.length === 1\n ? children[0]\n : children,\n },\n key: null,\n };\n\n return this.buildSyncTree(jsxElement, injector);\n };\n\n const convertNode = (node: any): any => {\n if (node.nodeType === 3) {\n const text = node.textContent || \"\";\n const trimmed = text.trim();\n return trimmed ? text : null;\n }\n\n if (node.nodeType === 1) {\n return convertElement(node);\n }\n\n return null;\n };\n\n const result: any[] = [];\n const bodyChildren = document.body?.childNodes;\n\n if (bodyChildren) {\n for (let i = 0; i < bodyChildren.length; i++) {\n const node = bodyChildren[i];\n const converted = convertNode(node);\n if (converted != null) {\n result.push(converted);\n }\n }\n }\n\n return result.length === 0\n ? undefined\n : result.length === 1\n ? result[0]\n : result;\n }\n\n private createPendingReference(\n vnode: JSX.Element,\n promise: Promise<any>,\n injector: Injector,\n ) {\n const id = vnode.id;\n const abortController = new AbortController();\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n const timeoutId = setTimeout(() => {\n abortController.abort();\n reject(\n new Error(\n `Component ${vnode.type.name || \"Unknown\"} timed out after ${\n this.options.timeout\n }ms`,\n ),\n );\n }, this.options.timeout);\n\n abortController.signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n });\n });\n\n const raced = Promise.race([promise, timeoutPromise])\n .then((result) => {\n result.id = vnode.id;\n return this.buildSyncTree(result, injector);\n })\n .catch((err) => Promise.reject({ id, error: err }));\n\n this.pending.set(id, { abortController, promise: raced });\n\n raced\n .then((resolved) => {\n if (this.processedIds.has(id)) return;\n this.processedIds.add(id);\n\n this.queueResolvers.shift()?.({\n ...resolved,\n action: \"update\",\n });\n\n this.pending.delete(id);\n })\n .catch((e) => {\n this.queueResolvers.shift()?.({\n $$typeof: ERROR_ELEMENT,\n type: \"error\",\n action: \"error\",\n id,\n props: {\n message: String(e?.error) || String(e),\n },\n key: null,\n });\n this.pending.delete(id);\n });\n\n return {\n $$typeof: PENDING_REFERENCE_TYPE,\n id,\n type: \"ref\",\n props: vnode.props,\n key: vnode.key ?? null,\n };\n }\n\n private generateId(): string {\n return `jsx_${++this.idCounter}`;\n }\n\n private cleanup() {\n for (const { abortController } of this.pending.values()) {\n abortController.abort();\n }\n this.pending.clear();\n this.processedIds.clear();\n this.queueResolvers.length = 0;\n }\n\n cancel() {\n this.cleanup();\n }\n\n async renderToCompletion(jsx: JSX.Element): Promise<JSX.Element[]> {\n const out: JSX.Element[] = [];\n for await (const upd of this.stream(jsx, this.rootInjector)) {\n out.push(upd);\n }\n return out;\n }\n}\n", "export class VNode {\n id?: string;\n parent?: VNode;\n children: VNode[] = [];\n\n constructor(public dom: Node, private cb?: (old: Node, nw: Node) => void) {}\n\n setId(id: string) {\n this.id = id;\n }\n\n addChild(child: VNode): VNode {\n child.parent = this;\n this.children.push(child);\n return child;\n }\n\n removeChild(child: VNode): void {\n const index = this.children.indexOf(child);\n if (index > -1) {\n this.children.splice(index, 1);\n child.parent = undefined;\n }\n }\n\n findById(id: string): VNode | null {\n if (this.id === id) return this;\n\n for (const child of this.children) {\n const found = child.findById(id);\n if (found) return found;\n }\n\n return null;\n }\n\n attach(nw: Node) {\n if (this.cb) {\n this.cb(this.dom, nw);\n } else {\n if (this.dom.parentNode) {\n this.dom.parentNode.replaceChild(nw, this.dom);\n }\n }\n this.dom = nw;\n }\n\n unmount(): void {\n for (const child of this.children) {\n child.unmount();\n }\n\n if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n\n if (this.parent) {\n this.parent.removeChild(this);\n }\n }\n}\n", "export function symbolValueReplacer(key: any, value: any) {\n if (typeof value === \"symbol\") {\n return `@@Symbol:${value.description}`;\n }\n return value;\n}\n\nexport function symbolValueReviver(key: any, value: any) {\n if (typeof value === \"string\" && value.startsWith(\"@@Symbol:\")) {\n return Symbol.for(value.slice(9));\n }\n return value;\n}\n", "import { Signal } from \"@/shared\";\n\nlet currentEffect: EffectRunner | null = null;\nlet batchDepth = 0;\nlet pendingEffects = new Set<EffectRunner>();\n\ninterface InternalSignal<T> extends Signal<T> {\n _isSignal: true;\n _subscribers: Set<EffectRunner>;\n}\n\ninterface EffectRunner {\n (): void;\n execute(): void;\n cleanup(): void;\n deps: Set<Set<EffectRunner>>;\n cleanupFn?: () => void;\n}\n\nexport function signal<T>(initialValue: T): Signal<T> {\n let value = initialValue;\n const subscribers = new Set<EffectRunner>();\n\n const notify = () => {\n subscribers.forEach((sub) => pendingEffects.add(sub));\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n effects.forEach((effect) => effect.execute());\n }\n };\n\n return {\n _isSignal: true as const,\n _subscribers: subscribers,\n get value(): T {\n if (currentEffect) {\n subscribers.add(currentEffect);\n currentEffect.deps.add(subscribers);\n }\n return value;\n },\n set value(newValue: T) {\n if (value !== newValue) {\n value = newValue;\n notify();\n }\n },\n } as InternalSignal<T>;\n}\n\nexport function effect(fn: () => void | (() => void)): () => void {\n const deps = new Set<Set<EffectRunner>>();\n let cleanupFn: (() => void) | undefined;\n\n const runner: EffectRunner = (() => {\n runner.execute();\n }) as EffectRunner;\n\n runner.deps = deps;\n\n runner.execute = () => {\n if (cleanupFn) {\n cleanupFn();\n cleanupFn = undefined;\n }\n\n deps.forEach((subs) => subs.delete(runner));\n deps.clear();\n\n const prevEffect = currentEffect;\n currentEffect = runner;\n\n try {\n const result = fn();\n if (typeof result === \"function\") {\n cleanupFn = result;\n }\n } finally {\n currentEffect = prevEffect;\n }\n };\n\n runner.cleanup = () => {\n if (cleanupFn) {\n cleanupFn();\n cleanupFn = undefined;\n }\n deps.forEach((subs) => subs.delete(runner));\n deps.clear();\n };\n\n runner.cleanupFn = cleanupFn;\n\n runner.execute();\n\n return () => runner.cleanup();\n}\n\nexport function computed<T>(fn: () => T): Signal<T> {\n const sig = signal(fn());\n let cleanup: (() => void) | undefined;\n\n cleanup = effect(() => {\n sig.value = fn();\n });\n\n const originalSignal = sig as InternalSignal<T>;\n const dispose = cleanup;\n\n (originalSignal as any).dispose = dispose;\n\n return sig;\n}\n\nexport function batch(fn: () => void): void {\n batchDepth++;\n try {\n fn();\n } finally {\n batchDepth--;\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n effects.forEach((effect) => effect.execute());\n }\n }\n}\n\nexport function isSignal(value: any): boolean {\n return value && value._isSignal === true;\n}\n\nexport function createRoot<T>(fn: (dispose: () => void) => T): T {\n const cleanups: Array<() => void> = [];\n const dispose = () => {\n cleanups.forEach((cleanup) => cleanup());\n cleanups.length = 0;\n };\n\n const prevEffect = currentEffect;\n\n const originalEffect = effect;\n (globalThis as any).effect = (fn: () => void | (() => void)) => {\n const cleanup = originalEffect(fn);\n cleanups.push(cleanup);\n return cleanup;\n };\n\n try {\n return fn(dispose);\n } finally {\n (globalThis as any).effect = originalEffect;\n currentEffect = prevEffect;\n }\n}\n\nexport function untracked<T>(fn: () => T): T {\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n return fn();\n } finally {\n currentEffect = prevEffect;\n }\n}\n", "import { Observer, Signal } from \"@/shared\";\nimport { signal } from \"../signal\";\n\nexport interface Subscription {\n unsubscribe(): void;\n}\n\nexport type OperatorFunction<T, R> = (source: Observable<T>) => Observable<R>;\n\nexport class Observable<T> {\n __isObservable = true;\n\n constructor(\n private producer?: (observer: Observer<T>) => void | (() => void)\n ) {}\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void\n ): Subscription {\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n let cleanup: (() => void) | void;\n let isUnsubscribed = false;\n\n if (this.producer) {\n try {\n cleanup = this.producer(observer);\n } catch (err) {\n if (observer.error) {\n try {\n observer.error(err);\n } catch (e) {\n console.error(\"Error in error handler during subscription:\", e);\n }\n } else {\n throw err;\n }\n }\n }\n\n return {\n unsubscribe: () => {\n if (isUnsubscribed) return;\n isUnsubscribed = true;\n if (cleanup) {\n try {\n cleanup();\n } catch (err) {\n console.error(\"Error during cleanup:\", err);\n }\n }\n },\n };\n }\n\n pipe(): Observable<T>;\n pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n pipe<A, B>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>\n ): Observable<B>;\n pipe<A, B, C>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>\n ): Observable<C>;\n pipe<A, B, C, D>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>\n ): Observable<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>\n ): Observable<E>;\n public pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n if (operations.length === 0) {\n return this;\n }\n return operations.reduce((prev, fn) => fn(prev), this as any);\n }\n}\n\nexport function from<T>(iterable: Iterable<T>): Observable<T> {\n return new Observable((observer) => {\n try {\n for (const value of iterable) {\n observer.next(value);\n }\n observer.complete?.();\n } catch (err) {\n observer.error?.(err);\n }\n });\n}\n\nexport function interval(ms: number): Observable<number> {\n return new Observable((observer) => {\n let count = 0;\n const id = setInterval(() => {\n observer.next(count++);\n }, ms);\n return () => clearInterval(id);\n });\n}\n\nexport function of<T>(...values: T[]): Observable<T> {\n return new Observable((observer) => {\n try {\n values.forEach((value) => observer.next(value));\n observer.complete?.();\n } catch (err) {\n observer.error?.(err);\n }\n });\n}\n\nexport function observable<T>(\n producer?: ((observer: Observer<T>) => void | (() => void)) | undefined\n): Observable<T> {\n return new Observable<T>(producer);\n}\n\nexport function toSignal<T>(\n obs: Observable<T>,\n instance: any\n): Signal<T | undefined> {\n const sig = signal<T | undefined>(undefined);\n\n const subst = obs.subscribe((val) => {\n sig.value = val;\n });\n\n instance.__cleanup = [\n ...(instance.__cleanup || []),\n () => subst.unsubscribe(),\n ];\n\n return sig;\n}\n\nexport function isObservable(value: any): boolean {\n return value && value.__isObservable === true;\n}\n\n// Operators\nexport function map<T, R>(fn: (value: T) => R): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n const subscription = source.subscribe(\n (value) => {\n try {\n observer.next(fn(value));\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function filter<T>(\n predicate: (value: T) => boolean\n): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n const subscription = source.subscribe(\n (value) => {\n try {\n if (predicate(value)) {\n observer.next(value);\n }\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function tap<T>(fn: (value: T) => void): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n const subscription = source.subscribe(\n (value) => {\n try {\n fn(value);\n observer.next(value);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function take<T>(count: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let taken = 0;\n const subscription = source.subscribe(\n (value) => {\n if (taken < count) {\n observer.next(value);\n taken++;\n if (taken === count) {\n observer.complete?.();\n subscription.unsubscribe();\n }\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function skip<T>(count: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let skipped = 0;\n const subscription = source.subscribe(\n (value) => {\n if (skipped < count) {\n skipped++;\n } else {\n observer.next(value);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function debounceTime<T>(ms: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let timeoutId: any;\n const subscription = source.subscribe(\n (value) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n observer.next(value);\n }, ms);\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => {\n clearTimeout(timeoutId);\n subscription.unsubscribe();\n };\n });\n };\n}\n\nexport function throttleTime<T>(ms: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let lastEmit = 0;\n const subscription = source.subscribe(\n (value) => {\n const now = Date.now();\n if (now - lastEmit >= ms) {\n lastEmit = now;\n observer.next(value);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function distinctUntilChanged<T>(\n compare?: (a: T, b: T) => boolean\n): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let hasLast = false;\n let last: T;\n const subscription = source.subscribe(\n (value) => {\n const isDistinct =\n !hasLast || (compare ? !compare(last, value) : last !== value);\n\n if (isDistinct) {\n hasLast = true;\n last = value;\n observer.next(value);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function switchMap<T, R>(\n fn: (value: T) => Observable<R>\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n let innerSubscription: Subscription | null = null;\n const outerSubscription = source.subscribe(\n (value) => {\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n try {\n const innerObservable = fn(value);\n innerSubscription = innerObservable.subscribe(\n (innerValue) => observer.next(innerValue),\n (err) => observer.error?.(err)\n );\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => {\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n outerSubscription.unsubscribe();\n };\n });\n };\n}\n\nexport function mergeMap<T, R>(\n fn: (value: T) => Observable<R>\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n const innerSubscriptions: Subscription[] = [];\n let outerComplete = false;\n let activeCount = 0;\n\n const checkComplete = () => {\n if (outerComplete && activeCount === 0) {\n observer.complete?.();\n }\n };\n\n const outerSubscription = source.subscribe(\n (value) => {\n try {\n const innerObservable = fn(value);\n activeCount++;\n const innerSub = innerObservable.subscribe(\n (innerValue) => observer.next(innerValue),\n (err) => observer.error?.(err),\n () => {\n activeCount--;\n checkComplete();\n }\n );\n innerSubscriptions.push(innerSub);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => {\n outerComplete = true;\n checkComplete();\n }\n );\n\n return () => {\n innerSubscriptions.forEach((sub) => sub.unsubscribe());\n outerSubscription.unsubscribe();\n };\n });\n };\n}\n\nexport function concatMap<T, R>(\n fn: (value: T) => Observable<R>\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n const queue: T[] = [];\n let innerSubscription: Subscription | null = null;\n let outerComplete = false;\n let isProcessing = false;\n\n const processNext = () => {\n if (isProcessing || queue.length === 0) {\n if (outerComplete && queue.length === 0) {\n observer.complete?.();\n }\n return;\n }\n\n isProcessing = true;\n const value = queue.shift()!;\n\n try {\n const innerObservable = fn(value);\n innerSubscription = innerObservable.subscribe(\n (innerValue) => observer.next(innerValue),\n (err) => observer.error?.(err),\n () => {\n isProcessing = false;\n processNext();\n }\n );\n } catch (err) {\n observer.error?.(err);\n }\n };\n\n const outerSubscription = source.subscribe(\n (value) => {\n queue.push(value);\n processNext();\n },\n (err) => observer.error?.(err),\n () => {\n outerComplete = true;\n if (queue.length === 0 && !isProcessing) {\n observer.complete?.();\n }\n }\n );\n\n return () => {\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n outerSubscription.unsubscribe();\n };\n });\n };\n}\n\nexport function catchError<T>(\n handler: (err: any) => Observable<T>\n): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n const subscription = source.subscribe(\n (value) => observer.next(value),\n (err) => {\n try {\n const fallback = handler(err);\n const fallbackSub = fallback.subscribe(\n (value) => observer.next(value),\n (e) => observer.error?.(e),\n () => observer.complete?.()\n );\n (subscription as any).__fallback = fallbackSub;\n } catch (e) {\n observer.error?.(e);\n }\n },\n () => observer.complete?.()\n );\n return () => {\n if ((subscription as any).__fallback) {\n (subscription as any).__fallback.unsubscribe();\n }\n subscription.unsubscribe();\n };\n });\n };\n}\n\nexport function startWith<T>(...values: T[]): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n values.forEach((value) => observer.next(value));\n const subscription = source.subscribe(\n (value) => observer.next(value),\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function scan<T, R>(\n accumulator: (acc: R, value: T) => R,\n seed: R\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n let acc = seed;\n const subscription = source.subscribe(\n (value) => {\n try {\n acc = accumulator(acc, value);\n observer.next(acc);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function reduce<T, R>(\n accumulator: (acc: R, value: T) => R,\n seed: R\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n let acc = seed;\n const subscription = source.subscribe(\n (value) => {\n try {\n acc = accumulator(acc, value);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => {\n observer.next(acc);\n observer.complete?.();\n }\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n", "import { Observer } from \"../types\";\nimport { Observable, Subscription } from \"./observable\";\n\nexport class Subject<T> extends Observable<T> {\n protected subscribers: Set<Observer<T>> = new Set();\n protected _isCompleted = false;\n protected _hasError = false;\n protected _thrownError: any = null;\n\n constructor() {\n super();\n }\n\n public asObservable(): Observable<T> {\n return new Observable<T>((observer) => {\n const subscription = this.subscribe(observer);\n return () => subscription.unsubscribe();\n });\n }\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void,\n ): Subscription {\n if (this._isCompleted) {\n const obs =\n typeof observerOrNext === \"function\" ? { complete } : observerOrNext;\n obs.complete?.();\n return { unsubscribe: () => {} };\n }\n\n if (this._hasError) {\n return { unsubscribe: () => {} };\n }\n\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n this.subscribers.add(observer);\n\n return {\n unsubscribe: () => {\n this.subscribers.delete(observer);\n },\n };\n }\n\n public next(value: T): void {\n if (this._isCompleted || this._hasError) return;\n\n const currentSubscribers = Array.from(this.subscribers);\n currentSubscribers.forEach((observer) => {\n if (this.subscribers.has(observer)) {\n try {\n observer.next(value);\n } catch (err) {\n console.error(\"Error in observer:\", err);\n }\n }\n });\n }\n\n public error(err: any): void {\n if (this._isCompleted || this._hasError) return;\n\n this._hasError = true;\n this._thrownError = err;\n\n for (const observer of this.subscribers) {\n observer.error?.(err);\n }\n\n this.subscribers.clear();\n }\n\n public complete(): void {\n if (this._isCompleted || this._hasError) return;\n\n this._isCompleted = true;\n const currentSubscribers = Array.from(this.subscribers);\n\n currentSubscribers.forEach((observer) => {\n if (observer.complete) {\n try {\n observer.complete();\n } catch (err) {\n console.error(\"Error in complete handler:\", err);\n }\n }\n });\n\n this.subscribers.clear();\n }\n}\n", "import { Observer } from \"../types\";\nimport { Subscription } from \"./observable\";\nimport { Subject } from \"./subject\";\n\nexport class BehaviorSubject<T> extends Subject<T> {\n private _value: T;\n\n constructor(initialValue: T) {\n super();\n this._value = initialValue;\n }\n\n public get $value(): T {\n return this._value;\n }\n\n public next(value: T): void {\n this._value = value;\n super.next(value);\n }\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void,\n ): Subscription {\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n if (this._hasError) {\n observer.error?.(this._thrownError);\n return { unsubscribe: () => {} };\n }\n\n if (this._isCompleted) {\n observer.complete?.();\n return { unsubscribe: () => {} };\n }\n\n observer.next(this._value);\n return super.subscribe(observer);\n }\n}\n", "import { JSX } from \"./jsx\";\nimport { Injector } from \"./module\";\n\nexport abstract class OrcaComponent {\n __cleanup: Array<() => void> = [];\n __injector!: Injector;\n props!: any;\n\n onInit(): void {}\n\n onDestroy(): void {\n this.__cleanup.forEach((cb) => cb());\n }\n\n pushDrop(fn: () => void) {\n this.__cleanup.push(fn);\n }\n\n abstract build(): Node | JSX.Element | Promise<JSX.Element>;\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Injectable, Module, Observable } from \"@/shared\";\nlet HttpClient = class HttpClient {\n get(url, { stream = \"json\", reviver, init } = {}) {\n return new Observable((subscriber) => {\n const controller = new AbortController();\n fetch(url, {\n method: \"GET\",\n ...init,\n signal: controller.signal,\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n if (stream === \"json\") {\n const data = await res.json();\n subscriber.next(reviver ? JSON.parse(JSON.stringify(data), reviver) : data);\n subscriber.complete?.();\n return;\n }\n if (stream === \"raw\") {\n subscriber.next(res);\n subscriber.complete?.();\n return;\n }\n const reader = res.body?.getReader();\n if (!reader) {\n throw new Error(\"ReadableStream not supported\");\n }\n const decoder = new TextDecoder();\n let buffer = \"\";\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n if (stream === \"ndjson\" && buffer.trim()) {\n try {\n subscriber.next(JSON.parse(buffer, reviver));\n }\n catch (err) {\n console.warn(\"Failed to parse remaining buffer:\", err);\n }\n }\n break;\n }\n const chunk = decoder.decode(value, { stream: true });\n if (stream === \"text\") {\n subscriber.next(chunk);\n continue;\n }\n if (stream === \"ndjson\") {\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop();\n for (const line of lines) {\n if (line.trim()) {\n try {\n subscriber.next(JSON.parse(line, reviver));\n }\n catch (err) {\n console.error(\"Failed to parse NDJSON line:\", line, err);\n }\n }\n }\n }\n }\n subscriber.complete?.();\n })\n .catch((err) => {\n if (err.name === \"AbortError\") {\n console.log(\"Request aborted\");\n }\n subscriber.error?.(err);\n });\n return () => {\n controller.abort();\n };\n });\n }\n post(url, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method: \"POST\",\n headers,\n body: processedBody,\n },\n });\n }\n put(url, options) {\n return this.request(url, \"PUT\", options);\n }\n patch(url, options) {\n return this.request(url, \"PATCH\", options);\n }\n delete(url, options) {\n return this.get(url, {\n ...options,\n init: {\n ...options?.init,\n method: \"DELETE\",\n },\n });\n }\n request(url, method, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method,\n headers,\n body: processedBody,\n },\n });\n }\n};\nHttpClient = __decorate([\n Injectable()\n], HttpClient);\nexport { HttpClient };\nlet HttpClientModule = class HttpClientModule {\n};\nHttpClientModule = __decorate([\n Module({\n providers: [HttpClient],\n exports: [HttpClient],\n })\n], HttpClientModule);\nexport { HttpClientModule };\n", "import {\n COMPONENT_DEPS,\n Constructor,\n DESIGN_PARAMTYPES,\n getCurrentInjector,\n Injector,\n isIntrinsicElement,\n JSX,\n ORCA_CLIENT_COMPONENT,\n PENDING_REFERENCE_TYPE,\n VNode,\n} from \"@/shared\";\n\ninterface BuildResult {\n domNode: Node;\n vnode?: VNode;\n}\n\nexport class OSC {\n public tree: VNode;\n private pendingRefs = new Map<string, JSX.Element>();\n private static readonly SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\n private static readonly SVG_TAGS = new Set([\n \"svg\",\n \"circle\",\n \"rect\",\n \"line\",\n \"path\",\n \"polygon\",\n \"polyline\",\n \"ellipse\",\n \"text\",\n \"tspan\",\n \"g\",\n \"defs\",\n \"use\",\n \"symbol\",\n \"marker\",\n \"clipPath\",\n \"mask\",\n \"pattern\",\n \"linearGradient\",\n \"radialGradient\",\n \"stop\",\n \"animate\",\n \"animateTransform\",\n \"foreignObject\",\n \"image\",\n \"textPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"metadata\",\n \"title\",\n \"desc\",\n \"switch\",\n \"view\",\n ]);\n\n constructor(private root: HTMLElement) {\n this.tree = new VNode(root, (old, nw) => {\n (old as HTMLElement).replaceWith(nw);\n });\n }\n\n public handleInsert(jsx: JSX.Element): void {\n const { domNode, vnode } = this.buildDOM(jsx, this.tree);\n\n if (jsx.id && vnode) {\n vnode.setId(jsx.id);\n }\n\n this.tree.attach(domNode);\n }\n\n public handleUpdate(jsx: JSX.Element): void {\n if (!jsx.id) {\n console.warn(\"Update action requires an id\");\n return;\n }\n\n const targetVNode = this.tree.findById(jsx.id);\n\n if (targetVNode) {\n const oldChildren = [...targetVNode.children];\n targetVNode.children = [];\n\n const { domNode, vnode } = this.buildDOM(\n jsx,\n targetVNode.parent || this.tree,\n );\n\n targetVNode.attach(domNode);\n\n if (vnode) {\n targetVNode.children = vnode.children;\n }\n } else {\n console.warn(`Update target ${jsx.id} not found, inserting instead`);\n this.handleInsert(jsx);\n }\n }\n\n private buildDOM(\n jsx: JSX.Element | JSX.Element[],\n vparent: VNode,\n ): BuildResult {\n if (jsx == null) {\n return { domNode: document.createDocumentFragment() };\n }\n\n if (Array.isArray(jsx)) {\n return this.buildArray(jsx, vparent);\n }\n\n if (this.isPrimitive(jsx)) {\n return this.buildTextNode(String(jsx), vparent);\n }\n\n if (jsx.$$typeof === PENDING_REFERENCE_TYPE) {\n return this.buildPendingReference(jsx, vparent);\n }\n\n if (jsx.$$typeof === ORCA_CLIENT_COMPONENT) {\n return this.buildClientComponent(jsx, vparent);\n }\n\n if (isIntrinsicElement(jsx)) {\n return this.buildIntrinsicElement(jsx, vparent);\n }\n\n console.error(\"Unsupported node:\", jsx);\n throw new Error(\n `Unsupported node type: ${typeof jsx}, $typeof: ${String(jsx.$$typeof)}`,\n );\n }\n\n private buildClientComponent(jsx: any, parent: VNode): BuildResult {\n const componentInfo = jsx.props.__clientComponent;\n const { id, path, name } = componentInfo;\n\n const container = document.createElement(\"div\");\n container.dataset.clientComponent = id;\n\n const vnode = new VNode(container, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n parent.addChild(vnode);\n\n this.loadClientComponent(path, name, jsx.props, container);\n\n return { domNode: container, vnode };\n }\n\n private buildPendingReference(jsx: any, parent: VNode): BuildResult {\n const refId = jsx.id;\n const div = document.createElement(\"div\");\n div.dataset.ref = refId;\n div.className = \"loading\";\n div.textContent = \"Loading...\";\n\n const vnode = new VNode(div, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n vnode.setId(refId);\n parent.addChild(vnode);\n\n const pendingContent = this.pendingRefs.get(refId);\n if (pendingContent) {\n setTimeout(() => this.resolvePendingReference(refId, pendingContent), 0);\n }\n\n return { domNode: div, vnode };\n }\n\n resolvePendingReference(refId: string, content: JSX.Element): void {\n const vnode = this.tree.findById(refId);\n if (!vnode) {\n console.warn(`Reference ${refId} not found`);\n this.pendingRefs.set(refId, content);\n return;\n }\n\n try {\n vnode.children = [];\n\n const { domNode, vnode: newVNode } = this.buildDOM(content, vnode);\n\n vnode.attach(domNode);\n\n if (newVNode) {\n vnode.children = newVNode.children;\n }\n\n this.pendingRefs.delete(refId);\n } catch (error) {\n console.error(`Error resolving reference ${refId}:`, error);\n }\n }\n\n private buildTextNode(text: string, parent: VNode): BuildResult {\n const textNode = document.createTextNode(text);\n const vnode = new VNode(textNode, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n parent.addChild(vnode);\n return { domNode: textNode, vnode };\n }\n\n private isPrimitive(node: any): boolean {\n return (\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"boolean\"\n );\n }\n\n private buildArray(nodes: JSX.Element[], parent: VNode): BuildResult {\n const fragment = document.createDocumentFragment();\n const vnodes: VNode[] = [];\n\n nodes.forEach((child) => {\n const { domNode, vnode } = this.buildDOM(child, parent);\n fragment.appendChild(domNode);\n if (vnode) {\n vnodes.push(vnode);\n }\n });\n\n return { domNode: fragment };\n }\n\n private isSVGTag(tag: string): boolean {\n return OSC.SVG_TAGS.has(tag);\n }\n\n private buildIntrinsicElement(jsx: JSX.Element, parent: VNode): BuildResult {\n const tag = jsx.type;\n const isSVG = this.isSVGTag(tag);\n\n // Create element with proper namespace for SVG\n const dom = isSVG\n ? document.createElementNS(OSC.SVG_NAMESPACE, tag)\n : document.createElement(tag);\n\n const vnode = new VNode(dom, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n parent.addChild(vnode);\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n if (jsx.props) {\n this.buildAttributes(jsx.props, dom, vnode, isSVG);\n }\n\n if (jsx.props?.children != null) {\n const { domNode: childDom } = this.buildDOM(jsx.props.children, vnode);\n dom.appendChild(childDom);\n }\n\n return { domNode: dom, vnode };\n }\n\n private buildAttributes(\n props: Record<string, any>,\n dom: Element,\n vnode: VNode,\n isSVG: boolean = false,\n ): void {\n for (const [key, value] of Object.entries(props)) {\n if (key === \"children\" || value == null) {\n continue;\n }\n\n const attrKey = this.normalizeAttributeKey(key);\n\n if (attrKey === \"style\" && typeof value === \"object\") {\n this.applyStyles(value, dom as HTMLElement);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n this.setBooleanAttribute(attrKey, value, dom, isSVG);\n continue;\n }\n\n // For SVG elements, use setAttributeNS for certain attributes\n if (isSVG) {\n this.setSVGAttribute(attrKey, String(value), dom);\n } else {\n dom.setAttribute(attrKey, String(value));\n }\n }\n }\n\n private setSVGAttribute(key: string, value: string, dom: Element): void {\n // SVG href attributes need the xlink namespace\n if (key === \"href\" || key === \"xlink:href\") {\n dom.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", value);\n } else {\n dom.setAttribute(key, value);\n }\n }\n\n private normalizeAttributeKey(key: string): string {\n if (key === \"className\") return \"class\";\n if (key === \"htmlFor\") return \"for\";\n return key;\n }\n\n private applyStyles(styles: Record<string, any>, dom: HTMLElement): void {\n const styleString = Object.entries(styles)\n .map(([k, v]) => {\n const kebabKey = k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n return `${kebabKey}:${v}`;\n })\n .join(\";\");\n dom.setAttribute(\"style\", styleString);\n }\n\n private setBooleanAttribute(\n key: string,\n value: boolean,\n dom: Element,\n isSVG: boolean = false,\n ): void {\n if (value) {\n dom.setAttribute(key, \"\");\n } else {\n dom.removeAttribute(key);\n }\n }\n\n private async loadClientComponent(\n path: string,\n name: string,\n props: Record<string, any>,\n container: HTMLElement,\n ): Promise<void> {\n try {\n const module = await import(path);\n const ComponentClass: Constructor = module[name];\n\n if (!ComponentClass) {\n throw new Error(`Component ${name} not found in ${path}`);\n }\n\n const injector = getCurrentInjector();\n if (injector == null) {\n throw new Error(\"Couldn't find an injector\");\n }\n\n const seen = new Set<Constructor>();\n\n function register(Cls: Constructor, injector: Injector) {\n if (seen.has(Cls)) return;\n seen.add(Cls);\n\n injector.addProvider({\n provide: Cls,\n useClass: Cls,\n scope: \"transient\",\n });\n\n const paramDeps: Constructor[] =\n Reflect.getMetadata(DESIGN_PARAMTYPES, Cls) ?? [];\n\n const explicitDeps: Constructor[] =\n Reflect.getMetadata(COMPONENT_DEPS, Cls) ?? [];\n\n paramDeps\n .filter((d) => d && d !== Object)\n .forEach((d) => injector.addProvider(d));\n\n explicitDeps.forEach((deps) => register(deps, injector));\n }\n\n register(ComponentClass, injector);\n\n const cleanProps = { ...props };\n delete cleanProps.__clientComponent;\n\n const instance = injector.resolve(ComponentClass);\n instance.__injector = injector;\n instance.props = cleanProps;\n\n if (typeof instance.build !== \"function\") {\n throw new Error(`Component ${name} does not implement build()`);\n }\n\n const rendered = instance.build();\n\n container.replaceWith(rendered);\n } catch (error) {\n console.error(`Failed to load client component ${name}:`, error);\n\n container.textContent = `Error loading component: ${name}`;\n container.className = \"client-component-error\";\n }\n }\n}\n", "export function assert$(context?: any) {\n return context?.factory.createStringLiteral(\"assert\");\n}\n", "import { Message, MessageHandler } from \"../types\";\n\nexport abstract class BaseActor {\n private mailbox: Message[] = [];\n private isProcessing: boolean = false;\n private subscribers: Map<string, MessageHandler[]> = new Map();\n\n abstract send(to: string, message: { event: string; data: any }): void;\n\n public receive(message: Message) {\n this.mailbox.push(message);\n this.process();\n }\n\n public subscribe(tag: string, handler: MessageHandler) {\n if (!this.subscribers.has(tag)) {\n this.subscribers.set(tag, []);\n }\n this.subscribers.get(tag)!.push(handler);\n }\n\n public unsubscribe(tag: string, handler: MessageHandler) {\n const handlers = this.subscribers.get(tag);\n if (handlers) {\n const index = handlers.indexOf(handler);\n if (index > -1) {\n handlers.splice(index, 1);\n }\n }\n }\n\n private async process() {\n if (this.isProcessing) return;\n\n this.isProcessing = true;\n\n while (this.mailbox.length > 0) {\n const message = this.mailbox.shift()!;\n const handlers = this.subscribers.get(message.event);\n\n if (handlers) {\n for (const handler of handlers) {\n await handler(message);\n }\n }\n }\n\n this.isProcessing = false;\n }\n}\n", "export * from \"./factory\";\nexport * from \"./modules\";\n", "import express, { Express, Request, Response } from \"express\";\nimport http from \"http\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Server } from \"socket.io\";\n\nimport {\n Constructor,\n Compiler,\n CONTROLLER_PREFIX_KEY,\n HTTP_METHOD_KEY,\n PATH_KEY,\n HandlerParamType,\n PARAMS_META_KEY,\n DESIGN_PARAMTYPES,\n EXPRESS_ADAPTER_HOST,\n Injector,\n collectAllProvidersFromNode,\n CONTROLLER,\n BOOTSTRAP,\n jsx,\n BOOTSTRAP_VNODE,\n StreamRenderer,\n symbolValueReplacer,\n setCurrentInjector,\n ProviderNormalizer,\n store,\n SSE_ROUTE,\n Observable,\n EVENT_HANDLER,\n COMPONENT_ROUTE,\n ORCA_ELEMENT_TYPE,\n} from \"@/shared\";\nimport { Actor } from \"./modules\";\n\ninterface RouteMatch {\n component: Constructor;\n props: Record<string, any>;\n}\n\ninterface ParamMeta {\n type: HandlerParamType;\n key?: string;\n}\n\nfunction createErrorElement(message: string) {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"div\",\n props: {\n style:\n \"color: red; padding: 20px; border: 2px solid red; border-radius: 4px; margin: 20px;\",\n children: [\n {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"h2\",\n props: { children: \"Error\" },\n key: null,\n },\n {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"p\",\n props: { children: message },\n key: null,\n },\n ],\n },\n key: null,\n };\n}\n\nclass RouteMatcherService {\n private static parseUrl(url: string): [string, URLSearchParams] {\n const [urlPath, urlQuery] = url.split(\"?\");\n return [urlPath, new URLSearchParams(urlQuery || \"\")];\n }\n\n private static matchPathSegments(\n patternSegments: string[],\n urlSegments: string[]\n ): Record<string, string> | null {\n if (patternSegments.length !== urlSegments.length) return null;\n\n const props: Record<string, string> = {};\n\n for (let i = 0; i < patternSegments.length; i++) {\n const segment = patternSegments[i];\n\n if (segment.startsWith(\":\")) {\n const paramName = segment.slice(1);\n props[paramName] = decodeURIComponent(urlSegments[i]);\n } else if (segment !== urlSegments[i]) {\n return null;\n }\n }\n\n return props;\n }\n\n private static extractQueryParams(\n queryPattern: string,\n urlParams: URLSearchParams,\n routePattern: string\n ): Record<string, string> {\n const props: Record<string, string> = {};\n const queryParams = queryPattern.split(\"&\").filter(Boolean);\n\n for (const param of queryParams) {\n const isOptional = param.endsWith(\"*\");\n const paramName = isOptional ? param.slice(0, -1) : param;\n const paramValue = urlParams.get(paramName);\n\n if (paramValue === null) {\n if (!isOptional) {\n throw new Error(\n `Missing required query parameter \"${paramName}\" for route \"${routePattern}\"`\n );\n }\n continue;\n }\n\n props[paramName] = decodeURIComponent(paramValue);\n }\n\n return props;\n }\n\n public static match(url: string): RouteMatch | null {\n const components = store.get<Map<string, Constructor>>(\"components\");\n if (!components) return null;\n\n const [urlPath, urlParams] = this.parseUrl(url);\n const urlSegments = urlPath.split(\"/\").filter(Boolean);\n\n for (const [, component] of components.entries()) {\n const routePattern = Reflect.getMetadata(COMPONENT_ROUTE, component);\n if (!routePattern) continue;\n\n const [pathPattern, queryPattern] = routePattern.split(\"?\");\n const patternSegments = pathPattern.split(\"/\").filter(Boolean);\n\n const pathProps = this.matchPathSegments(patternSegments, urlSegments);\n if (pathProps === null) continue;\n\n const queryProps = queryPattern\n ? this.extractQueryParams(queryPattern, urlParams, routePattern)\n : {};\n\n return {\n component,\n props: { ...pathProps, ...queryProps },\n };\n }\n\n return null;\n }\n}\n\nclass ControllerRegistrationService {\n constructor(\n private readonly injector: Injector,\n private readonly app: Express\n ) {}\n\n private registerEventHandlers(\n CtrlCls: Constructor,\n instance: any,\n actor: Actor\n ): void {\n const eventHandlers = Reflect.ownKeys(CtrlCls.prototype).filter((key) =>\n Reflect.hasOwnMetadata(EVENT_HANDLER, CtrlCls.prototype, key)\n );\n\n for (const methodKey of eventHandlers) {\n const eventName = Reflect.getMetadata(\n EVENT_HANDLER,\n CtrlCls.prototype,\n methodKey\n ) as string;\n\n const handler = instance[methodKey];\n actor.subscribe(eventName, (data) => handler.call(instance, data));\n }\n }\n\n private buildMethodArgs(\n req: Request,\n paramsMeta: Record<number, ParamMeta>,\n designParams: any[]\n ): any[] {\n const args = Array(designParams.length).fill(undefined);\n\n for (let i = 0; i < designParams.length; i++) {\n const meta = paramsMeta[i];\n if (!meta) continue;\n\n const source = this.getParamSource(req, meta.type);\n args[i] = meta.key ? source?.[meta.key] : source;\n }\n\n return args;\n }\n\n private getParamSource(req: Request, type: HandlerParamType): any {\n switch (type) {\n case HandlerParamType.BODY:\n return req.body;\n case HandlerParamType.ROUTE_PARAM:\n return req.params;\n case HandlerParamType.QUERY:\n return req.query;\n default:\n return undefined;\n }\n }\n\n private async handleMethodResult(\n result: any,\n res: Response,\n isSSE: boolean\n ): Promise<void> {\n if (res.headersSent) return;\n\n if (isSSE && result instanceof Observable) {\n result.subscribe({\n next: (data: any) => {\n res.write(`data: ${JSON.stringify(data)}\\n\\n`);\n },\n error: (err: any) => {\n console.error(\"SSE error:\", err);\n res.end();\n },\n complete: () => {\n res.end();\n },\n });\n } else if (result !== undefined) {\n res.json(result);\n } else {\n res.end();\n }\n }\n\n private registerHttpMethods(\n CtrlCls: Constructor,\n instance: any,\n prefix: string\n ): void {\n const methods = Reflect.ownKeys(CtrlCls.prototype).filter((key) =>\n Reflect.hasOwnMetadata(HTTP_METHOD_KEY, CtrlCls.prototype, key)\n );\n\n for (const methodKey of methods) {\n this.registerHttpMethod(CtrlCls, instance, methodKey, prefix);\n }\n }\n\n private registerHttpMethod(\n CtrlCls: Constructor,\n instance: any,\n methodKey: string | symbol,\n prefix: string\n ): void {\n const httpMethod = Reflect.getMetadata(\n HTTP_METHOD_KEY,\n CtrlCls.prototype,\n methodKey\n ) as \"get\" | \"post\" | \"put\" | \"delete\" | \"patch\";\n\n const routePath: string =\n Reflect.getMetadata(PATH_KEY, CtrlCls.prototype, methodKey) ?? \"\";\n\n const fullPath = this.buildFullPath(prefix, routePath);\n const isSSE = Reflect.getMetadata(\n SSE_ROUTE,\n CtrlCls.prototype,\n methodKey\n ) as boolean;\n const paramsMeta: Record<number, ParamMeta> =\n Reflect.getMetadata(PARAMS_META_KEY, CtrlCls.prototype, methodKey) ?? {};\n\n this.app[httpMethod](fullPath, async (req, res) => {\n try {\n if (isSSE) {\n res.setHeader(\"Content-Type\", \"text/event-stream\");\n res.setHeader(\"Cache-Control\", \"no-cache\");\n res.setHeader(\"Connection\", \"keep-alive\");\n }\n\n const designParams: any[] =\n Reflect.getMetadata(\n DESIGN_PARAMTYPES,\n CtrlCls.prototype,\n methodKey\n ) ?? [];\n\n const args = this.buildMethodArgs(req, paramsMeta, designParams);\n const result = await instance[methodKey](...args);\n\n await this.handleMethodResult(result, res, isSSE);\n } catch (err: any) {\n res.send(err.message);\n }\n });\n }\n\n private buildFullPath(prefix: string, routePath: string): string {\n const normalizedPrefix =\n prefix === \"/\" ? \"\" : `/${prefix.replace(/^\\/+|\\/+$/g, \"\")}`;\n\n return (\n `${normalizedPrefix}/${routePath}`\n .replace(/\\/+/g, \"/\")\n .replace(/\\/$/, \"\") || \"/\"\n );\n }\n\n public register(CtrlCls: Constructor): void {\n const instance = this.injector.resolve(CtrlCls);\n const prefix: string =\n Reflect.getMetadata(CONTROLLER_PREFIX_KEY, CtrlCls) ?? \"/\";\n const actor = this.injector.resolve(Actor);\n\n this.registerEventHandlers(CtrlCls, instance, actor);\n this.registerHttpMethods(CtrlCls, instance, prefix);\n }\n}\n\nclass ComponentResolver {\n constructor(private readonly rootModule: Constructor) {}\n\n public resolve(\n componentName: string | undefined,\n body: any\n ): {\n component: Constructor | null;\n props: Record<string, any>;\n error: any;\n } {\n if (componentName === undefined || componentName === \"/\") {\n const bootstrap = Reflect.getMetadata(BOOTSTRAP, this.rootModule);\n\n if (!bootstrap) {\n return {\n component: null,\n props: {},\n error: createErrorElement(\"Bootstrap component not provided!\"),\n };\n }\n\n return {\n component: bootstrap,\n props: body,\n error: null,\n };\n }\n\n if (typeof componentName !== \"string\") {\n return {\n component: null,\n props: {},\n error: createErrorElement(\"Component name should be a string\"),\n };\n }\n\n if (componentName.startsWith(\"/\")) {\n const result = RouteMatcherService.match(componentName);\n\n if (!result) {\n return {\n component: null,\n props: {},\n error: createErrorElement(\n `No component found for route '${componentName}'`\n ),\n };\n }\n\n return {\n component: result.component,\n props: result.props,\n error: null,\n };\n }\n\n const component = store\n .get<Map<string, Constructor>>(\"components\")\n ?.get(componentName);\n\n if (!component) {\n return {\n component: null,\n props: {},\n error: createErrorElement(`Component '${componentName}' not provided!`),\n };\n }\n\n return {\n component,\n props: body,\n error: null,\n };\n }\n}\n\nclass OscRouteHandler {\n constructor(\n private readonly injector: Injector,\n private readonly componentResolver: ComponentResolver\n ) {}\n\n private async streamComponent(\n renderer: StreamRenderer,\n component: Constructor,\n props: Record<string, any>,\n res: Response\n ): Promise<void> {\n const stream = renderer.render(jsx(component, props));\n for await (const chunk of stream) {\n res.write(JSON.stringify(chunk, symbolValueReplacer) + \"\\n\");\n }\n }\n\n private async streamError(\n renderer: StreamRenderer,\n errorElement: any,\n res: Response\n ): Promise<void> {\n try {\n const stream = renderer.render(errorElement);\n for await (const chunk of stream) {\n res.write(JSON.stringify(chunk, symbolValueReplacer) + \"\\n\");\n }\n } catch (innerErr) {\n console.error(\"Failed to stream error:\", innerErr);\n res.write(\n JSON.stringify(\n {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"div\",\n props: { children: \"Critical error occurred\" },\n key: null,\n },\n symbolValueReplacer\n ) + \"\\n\"\n );\n }\n }\n\n public async handle(req: Request, res: Response): Promise<void> {\n const renderer = new StreamRenderer(this.injector);\n const componentName = req.query.c as string | undefined;\n\n try {\n const { component, props, error } = this.componentResolver.resolve(\n componentName,\n req.body\n );\n\n if (error) {\n await this.streamError(renderer, error, res);\n res.end();\n return;\n }\n\n await this.streamComponent(renderer, component!, props, res);\n } catch (err) {\n console.error(\"Streaming error:\", err);\n const errorElement = createErrorElement(\n err instanceof Error ? err.message : \"Unknown error occurred\"\n );\n await this.streamError(renderer, errorElement, res);\n }\n\n res.end();\n }\n}\n\nclass SocketService {\n public static setup(server: http.Server, injector: Injector): void {\n const io = new Server(server);\n\n io.on(\"connection\", (socket) => {\n const actor = injector.resolve(Actor);\n\n actor.register(socket.id, {\n send: (message) => {\n io.to(socket.id).emit(\"message\", message);\n },\n });\n\n socket.on(\"message\", (msg) => {\n const { to } = msg;\n if (to === \"server\") {\n actor.receive(msg);\n } else {\n actor.send(to, msg);\n }\n });\n });\n }\n}\n\nexport class NodeFactory {\n private static compileAndValidate(rootModule: Constructor): any {\n const compiler = new Compiler();\n const appNode = compiler.compile(rootModule);\n const validation = compiler.validate(appNode);\n\n if (!validation.valid) {\n console.error(\"Validation failed:\\n\" + validation.errors.join(\"\\n\\n\"));\n process.exit(1);\n }\n\n return appNode;\n }\n\n private static createRootInjector(\n appNode: any,\n app: Express,\n rootModule: Constructor\n ): Injector {\n const allProviders = collectAllProvidersFromNode(appNode);\n const rootControllers = [\n ...store.get<Set<Constructor>>(\"root_controllers\")!,\n ].map((p) => ProviderNormalizer.normalize(p));\n\n const bootstrap = Reflect.getMetadata(BOOTSTRAP, rootModule);\n\n return new Injector([\n ...allProviders,\n ...rootControllers,\n { provide: \"OSC_URL\", useValue: \"/osc\" },\n { provide: EXPRESS_ADAPTER_HOST, useValue: app },\n {\n provide: BOOTSTRAP_VNODE,\n useValue: bootstrap ? jsx(bootstrap, {}) : undefined,\n },\n { provide: Actor, useClass: Actor, eager: true },\n ]);\n }\n\n private static registerControllers(\n appNode: any,\n injector: Injector,\n app: Express\n ): void {\n const registrationService = new ControllerRegistrationService(\n injector,\n app\n );\n const rootControllers = [\n ...store.get<Set<Constructor>>(\"root_controllers\")!,\n ];\n\n rootControllers.forEach((ctrl) => registrationService.register(ctrl));\n\n appNode.traverse((node: any) => {\n const providers = [...node.getProviders().values()];\n\n const controllers = providers.filter((provider) =>\n Reflect.getMetadata(CONTROLLER, provider.provide)\n );\n\n controllers.forEach((c) => registrationService.register(c.useClass!));\n\n providers\n .filter((provider) => provider.eager)\n .forEach((p) => injector.resolve(p.provide));\n });\n }\n\n private static setupOscRoute(\n app: Express,\n injector: Injector,\n rootModule: Constructor\n ): void {\n const componentResolver = new ComponentResolver(rootModule);\n const oscHandler = new OscRouteHandler(injector, componentResolver);\n\n app.post(\"/osc\", (req, res) => oscHandler.handle(req, res));\n }\n\n public static async create(rootModule: Constructor): Promise<http.Server> {\n const app = express();\n app.use(express.json());\n\n const server = http.createServer(app);\n\n const appNode = this.compileAndValidate(rootModule);\n\n const rootInjector = this.createRootInjector(appNode, app, rootModule);\n setCurrentInjector(rootInjector);\n\n this.registerControllers(appNode, rootInjector, app);\n\n this.setupOscRoute(app, rootInjector, rootModule);\n\n SocketService.setup(server, rootInjector);\n\n return server;\n }\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { EXPRESS_ADAPTER_HOST, Inject, Injectable, } from \"@/shared\";\nimport express from \"express\";\nimport * as path from \"path\";\nexport class ServeStaticModule {\n static forRoot(options) {\n let ServeStaticService = class ServeStaticService {\n constructor(app) {\n this.app = app;\n if (!this.app)\n throw new Error(\"Couldn't find Express adapter!\");\n const resolvedPath = path.resolve(options.rootPath);\n const indexPath = path.join(resolvedPath, \"index.html\");\n this.app.use(express.static(resolvedPath));\n this.app.get(/.*/, (req, res) => {\n res.sendFile(indexPath);\n });\n }\n };\n ServeStaticService = __decorate([\n Injectable(),\n __param(0, Inject(EXPRESS_ADAPTER_HOST, { maybe: true })),\n __metadata(\"design:paramtypes\", [Object])\n ], ServeStaticService);\n return {\n module: ServeStaticModule,\n providers: [\n {\n provide: ServeStaticService,\n useClass: ServeStaticService,\n eager: true,\n },\n ],\n exports: [ServeStaticService],\n };\n }\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BaseActor, Injectable } from \"@/shared\";\nlet Actor = class Actor extends BaseActor {\n constructor() {\n super(...arguments);\n this.actors = new Map();\n }\n register(name, option) {\n this.actors.set(name, option);\n }\n send(to, message) {\n const actor = this.actors.get(to);\n if (actor) {\n actor.send({\n to,\n ...message,\n from: \"server\",\n });\n }\n }\n};\nActor = __decorate([\n Injectable()\n], Actor);\nexport { Actor };\nexport class ActorModule {\n static forRoot() {\n return {\n module: ActorModule,\n providers: [\n {\n provide: Actor,\n useClass: Actor,\n eager: true,\n },\n ],\n exports: [Actor],\n };\n }\n}\n", "import { DynamicModule, JSX } from \"@/shared\";\n\nexport class Navigate {\n public push(component: JSX.Element) {}\n\n public replace(component: JSX.Element) {}\n\n public goBack() {}\n\n public goForward() {}\n\n public canGoBack() {}\n\n public canGoForward() {}\n\n public getCurrentPage() {}\n\n public clear() {}\n}\n\nexport class RouterModule {\n static forRoot(): DynamicModule {\n return {\n module: RouterModule,\n providers: [Navigate],\n exports: [Navigate],\n };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAAA,OAAO;;;ACAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAM,QAAN,MAAY;AAAA,EAAZ;AACE,SAAQ,YAAY,oBAAI,IAAqB;AAAA;AAAA,EAE7C,IAAO,MAAc,OAAgB;AACnC,SAAK,UAAU,IAAI,MAAM,KAAK;AAAA,EAChC;AAAA,EAEA,IAAO,MAA6B;AAClC,WAAO,KAAK,UAAU,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,OAAU,MAAc,SAA8C;AACpE,UAAM,UAAU,KAAK,IAAO,IAAI;AAChC,UAAM,OAAO,QAAQ,OAAO;AAC5B,SAAK,IAAI,MAAM,IAAI;AAAA,EACrB;AACF;AAEO,IAAM,QAAQ,IAAI,MAAM;;;AClBxB,IAAM,mBAAmB,uBAAO,mBAAmB;AACnD,IAAM,gBAAgB,uBAAO,gBAAgB;AAC7C,IAAM,kBAAkB,uBAAO,kBAAkB;AACjD,IAAM,YAAY,uBAAO,gBAAgB;AACzC,IAAM,kBAAkB,uBAAO,sBAAsB;AACrD,IAAM,cAAc,uBAAO,cAAc;AACzC,IAAM,cAAc,uBAAO,cAAc;AACzC,IAAM,aAAa,uBAAO,iBAAiB;AAC3C,IAAM,YAAY,uBAAO,gBAAgB;AACzC,IAAM,sBAAsB,uBAAO,0BAA0B;AAC7D,IAAM,iBAAiB,uBAAO,qBAAqB;AACnD,IAAM,kBAAkB,uBAAO,sBAAsB;AACrD,IAAM,oBAAoB,uBAAO,mBAAmB;AACpD,IAAM,OAAO,uBAAO,WAAW;AAC/B,IAAM,oBAAoB;AAC1B,IAAM,aAAa,uBAAO,iBAAiB;AAC3C,IAAM,wBAAwB,uBAAO,uBAAuB;AAC5D,IAAM,kBAAkB,uBAAO,iBAAiB;AAChD,IAAM,kBAAkB,uBAAO,aAAa;AAC5C,IAAM,WAAW,uBAAO,WAAW;AACnC,IAAM,uBAAuB,uBAAO,cAAc;AAClD,IAAM,yBAAyB,uBAAO,wBAAwB;AAC9D,IAAM,YAAY,uBAAO,gBAAgB;AACzC,IAAM,gBAAgB,uBAAO,oBAAoB;AAGjD,IAAM,gBAAgB,uBAAO,IAAI,YAAY;AAC7C,IAAM,oBAAoB,uBAAO,IAAI,cAAc;AACnD,IAAM,qBAAqB,uBAAO,IAAI,eAAe;AACrD,IAAM,wBAAwB,uBAAO,IAAI,uBAAuB;AAChE,IAAM,yBAAyB,uBAAO,IAAI,wBAAwB;;;ACsBlE,IAAK,mBAAL,kBAAKA,sBAAL;AACL,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,cAAW;AAND,SAAAA;AAAA,GAAA;AASL,IAAK,aAAL,kBAAKC,gBAAL;AACL,EAAAA,YAAA,SAAM;AACN,EAAAA,YAAA,UAAO;AAFG,SAAAA;AAAA,GAAA;;;AC1DL,SAAS,OAAO,SAAS,CAAC,GAAG;AAChC,SAAO,SAAU,QAAQ;AACrB,YAAQ,eAAe,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM;AACpE,YAAQ,eAAe,kBAAkB,OAAO,gBAAgB,CAAC,GAAG,MAAM;AAC1E,YAAQ,eAAe,aAAa,OAAO,WAAW,CAAC,GAAG,MAAM;AAChE,YAAQ,eAAe,aAAa,OAAO,WAAW,CAAC,GAAG,MAAM;AAChE,YAAQ,eAAe,iBAAiB,OAAO,eAAe,CAAC,GAAG,MAAM;AACxE,YAAQ,eAAe,WAAW,OAAO,WAAW,MAAM;AAAA,EAC9D;AACJ;AACO,SAAS,aAAa;AACzB,SAAO,SAAU,QAAQ;AACrB,YAAQ,eAAe,YAAY,MAAM,MAAM;AAC/C,WAAO;AAAA,EACX;AACJ;AACO,SAAS,UAAU,SAAS,CAAC,GAAG;AACnC,SAAO,SAAU,QAAQ;AACrB,UAAM,OAAO,cAAc,CAAC,YAAY;AACpC,YAAM,OAAO,WAAW,oBAAI,IAAI;AAChC,WAAK,IAAI,OAAO,MAAM,MAAM;AAC5B,UAAI,OAAO,OAAO;AACd,cAAM,CAAC,WAAW,IAAI,OAAO,MAAM,MAAM,GAAG;AAC5C,aAAK,IAAI,aAAa,MAAM;AAAA,MAChC;AACA,aAAO;AAAA,IACX,CAAC;AACD,QAAI,OAAO,OAAO;AACd,cAAQ,eAAe,iBAAiB,OAAO,OAAO,MAAM;AAAA,IAChE;AACA,YAAQ,eAAe,WAAW,MAAM,MAAM;AAC9C,YAAQ,eAAe,qBAAqB,OAAO,aAAa,CAAC,GAAG,MAAM;AAC1E,YAAQ,eAAe,gBAAgB,OAAO,QAAQ,CAAC,GAAG,MAAM;AAChE,WAAO;AAAA,EACX;AACJ;AACO,SAAS,OAAO,OAAO,SAAS,CAAC,GAAG;AACvC,SAAO,SAAU,QAAQ,cAAc,gBAAgB;AACnD,UAAM,iBAAiB,QAAQ,eAAe,mBAAmB,MAAM,KAAK,oBAAI,IAAI;AACpF,mBAAe,IAAI,gBAAgB;AAAA,MAC/B;AAAA,MACA,GAAG;AAAA,IACP,CAAC;AACD,YAAQ,eAAe,mBAAmB,gBAAgB,MAAM;AAAA,EACpE;AACJ;AACO,SAAS,WAAW,QAAQ,UAAU,CAAC,GAAG;AAC7C,SAAO,SAAU,QAAQ;AACrB,eAAW,EAAE,MAAM;AACnB,QAAI,QAAQ,cAAc,QAAQ;AAC9B,YAAM,OAAO,oBAAoB,CAAC,YAAY;AAC1C,cAAM,OAAO,WAAW,oBAAI,IAAI;AAChC,aAAK,IAAI,MAAM;AACf,eAAO;AAAA,MACX,CAAC;AAAA,IACL;AACA,YAAQ,eAAe,uBAAuB,UAAU,KAAK,MAAM;AACnE,YAAQ,eAAe,YAAY,MAAM,MAAM;AAAA,EACnD;AACJ;AACA,SAAS,yBAAyB,MAAM,KAAK;AACzC,SAAO,SAAU,QAAQ,YAAY,OAAO;AACxC,UAAM,aAAa,QAAQ,YAAY,iBAAiB,QAAQ,UAAU,KAAK,CAAC;AAChF,eAAW,KAAK,IAAI,EAAE,KAAK,KAAK;AAChC,YAAQ,eAAe,iBAAiB,YAAY,QAAQ,UAAU;AAAA,EAC1E;AACJ;AACO,SAAS,MAAM,KAAK;AACvB,SAAO,0DAAuD,GAAG;AACrE;AACO,SAAS,KAAK,KAAK;AACtB,SAAO,4CAAgD,GAAG;AAC9D;AACO,SAAS,MAAM,KAAK;AACvB,SAAO,8CAAiD,GAAG;AAC/D;AACA,SAAS,kBAAkB,YAAYC,OAAM;AACzC,SAAO,SAAU,QAAQ,KAAK,YAAY;AACtC,YAAQ,eAAe,iBAAiB,YAAY,QAAQ,GAAG;AAC/D,YAAQ,eAAe,UAAUA,OAAM,QAAQ,GAAG;AAAA,EACtD;AACJ;AACO,SAAS,IAAIA,OAAM;AACtB,SAAO,mCAAkCA,SAAQ,EAAE;AACvD;AACO,SAAS,KAAKA,OAAM;AACvB,SAAO,qCAAmCA,SAAQ,EAAE;AACxD;AACO,SAAS,IAAIA,OAAM;AACtB,SAAO,SAAU,QAAQ,aAAa,YAAY;AAC9C,YAAQ,eAAe,WAAW,MAAM,QAAQ,WAAW;AAC3D,YAAQ,eAAe,UAAUA,OAAM,QAAQ,WAAW;AAC1D,YAAQ,eAAe,kCAAiC,QAAQ,WAAW;AAAA,EAC/E;AACJ;AACO,SAAS,UAAU,SAAS;AAC/B,SAAO,SAAU,QAAQ,aAAa,YAAY;AAC9C,YAAQ,eAAe,eAAe,SAAS,QAAQ,WAAW;AAAA,EACtE;AACJ;AACO,SAAS,aAAa,SAAS;AAClC,SAAO,SAAU,QAAQ,aAAa,YAAY;AAC9C,YAAQ,eAAe,wBAAwB,SAAS,QAAQ,WAAW;AAC3E,UAAM,iBAAiB,WAAW;AAClC,eAAW,QAAQ,kBAAmB,MAAM;AACxC,aAAO,eAAe,MAAM,MAAM,IAAI;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AACJ;AACO,SAAS,qBAAqB,QAAQ,aAAa;AACtD,SAAO,QAAQ,YAAY,wBAAwB,QAAQ,WAAW;AAC1E;AACO,SAAS,aAAa,QAAQ,aAAa;AAC9C,SAAO,QAAQ,YAAY,wBAAwB,QAAQ,WAAW;AAC1E;AACO,SAAS,sBAAsB,SAAS,YAAY;AACvD,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO,EAAE,cAAc,CAAC,EAAE;AAAA,EAC9B;AACA,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,MACH,cAAc,CAAC;AAAA,MACf,cAAc,QAAQ,CAAC;AAAA,IAC3B;AAAA,EACJ;AACA,QAAM,eAAe,QAAQ,MAAM,GAAG,EAAE;AACxC,QAAM,eAAe,QAAQ,QAAQ,SAAS,CAAC;AAC/C,MAAI,aAAa,WAAW,YAAY;AACpC,UAAM,IAAI,MAAM,4BAA4B,aAAa,MAAM,qCAAqC,UAAU,+BAA+B;AAAA,EACjJ;AACA,SAAO,EAAE,cAAc,aAAa;AACxC;;;ACrIO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,OAAO,UAAU,UAA4C;AAC3D,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO,EAAE,SAAS,UAAU,UAAU,UAAU,OAAO,YAAY;AAAA,IACrE;AACA,WAAO,EAAE,OAAO,aAAa,GAAG,SAAS;AAAA,EAC3C;AACF;AAEO,IAAM,OAAN,MAAW;AAAA,EAMhB,YAAmB,MAAc;AAAd;AALnB,SAAQ,WAAmB,CAAC;AAC5B,SAAQ,SAAS,oBAAI,IAA8B;AACnD,SAAQ,UAA2B,oBAAI,IAAI;AAC3C,SAAQ,YAAY,oBAAI,IAA0B;AAAA,EAEhB;AAAA,EAElC,SAAS,IAA0B;AACjC,OAAG,IAAI;AACP,SAAK,SAAS,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC;AAAA,EACrD;AAAA,EAEA,aAAa,WAAuC;AAClD,cAAU,QAAQ,CAAC,MAAM;AACvB,YAAM,aAAa,mBAAmB,UAAU,CAAC;AACjD,WAAK,UAAU,IAAI,WAAW,SAAS,UAAU;AAAA,IACnD,CAAC;AAAA,EACH;AAAA,EAEA,eAA0C;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,UAAkB;AAC5B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB,cAA4B;AACtD,SAAK,OAAO,IAAI,OAAO,YAAY;AAAA,EACrC;AAAA,EAEA,UAAU,OAAmB;AAC3B,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EAEA,YAA2C;AACzC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAA8B;AAC5B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAsB;AACpB,WAAO,KAAK;AAAA,EACd;AACF;;;ACxDO,IAAM,WAAN,MAAe;AAAA,EAClB,cAAc;AACV,SAAK,QAAQ,oBAAI,IAAI;AAAA,EACzB;AAAA,EACA,QAAQ,YAAY;AAChB,WAAO,KAAK,WAAW,UAAU;AAAA,EACrC;AAAA,EACA,WAAW,iBAAiB;AACxB,UAAM,SAAS,KAAK,gBAAgB,eAAe,IAC7C,gBAAgB,SAChB;AACN,QAAI,KAAK,MAAM,IAAI,OAAO,IAAI;AAC1B,aAAO,KAAK,MAAM,IAAI,OAAO,IAAI;AACrC,UAAM,OAAO,IAAI,KAAK,OAAO,IAAI;AACjC,SAAK,MAAM,IAAI,OAAO,MAAM,IAAI;AAChC,UAAM,UAAU,KAAK,WAAW,eAAe;AAC/C,SAAK,YAAY,QAAQ,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,CAAC,CAAC;AAC3D,UAAM,YAAY,KAAK,aAAa,eAAe;AACnD,UAAM,cAAc,KAAK,eAAe,eAAe;AACvD,UAAM,eAAe,KAAK,gBAAgB,eAAe;AACzD,KAAC,GAAG,WAAW,GAAG,WAAW,EAAE,QAAQ,CAAC,SAAS;AAC7C,YAAM,QAAQ,KAAK,iBAAiB,IAAI;AACxC,YAAM,OAAO,KAAK,oBAAoB,IAAI;AAC1C,WAAK,SAAS,OAAO,IAAI;AAAA,IAC7B,CAAC;AACD,SAAK,aAAa,SAAS;AAC3B,iBAAa,QAAQ,CAAC,QAAQ;AAC1B,WAAK,aAAa,CAAC,EAAE,SAAS,KAAK,UAAU,KAAK,OAAO,YAAY,CAAC,CAAC;AAAA,IAC3E,CAAC;AACD,gBAAY,QAAQ,CAAC,SAAS;AAC1B,WAAK,aAAa;AAAA,QACd,EAAE,SAAS,MAAM,UAAU,MAAM,OAAO,YAAY;AAAA,MACxD,CAAC;AAAA,IACL,CAAC;AACD,KAAC,GAAG,cAAc,GAAG,WAAW,EAAE,QAAQ,CAAC,SAAS;AAChD,UAAI,QAAQ,YAAY,WAAW,IAAI,GAAG;AACtC,cAAM,kBAAkB,KAAK,2BAA2B,IAAI;AAC5D,aAAK,SAAS,MAAM,eAAe;AACnC,cAAM,gBAAgB,QAAQ,YAAY,gBAAgB,IAAI,KAAK,CAAC;AACpE,cAAM,UAAU,CAAC,GAAG,iBAAiB,GAAG,aAAa;AACrD,aAAK,SAAS,MAAM,OAAO;AAC3B,cAAM,iBAAiB,QAAQ,YAAY,qBAAqB,IAAI,KAAK,CAAC;AAC1E,aAAK,aAAa,cAAc;AAChC,uBAAe,QAAQ,CAAC,OAAO;AAC3B,gBAAM,QAAQ,KAAK,iBAAiB,EAAE;AACtC,gBAAM,OAAO,KAAK,oBAAoB,EAAE;AACxC,eAAK,SAAS,OAAO,IAAI;AAAA,QAC7B,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AACD,SAAK,WAAW,eAAe,EAAE,QAAQ,CAAC,QAAQ,KAAK,UAAU,GAAG,CAAC;AACrE,WAAO;AAAA,EACX;AAAA,EACA,SAAS,UAAU;AACf,UAAM,SAAS,CAAC;AAChB,UAAM,WAAW,oBAAI,IAAI;AACzB,SAAK,gBAAgB,UAAU,QAAQ;AACvC,UAAM,YAAY,CAAC,UAAU,OAAO,UAAU,aAAa,MAAM,OAAO,OAAO,KAAK;AACpF,aAAS,QAAQ,CAAC,SAAS;AACvB,YAAM,aAAa,KAAK;AACxB,YAAM,iBAAiB,KAAK,UAAU;AACtC,YAAM,iBAAiB,KAAK,WAAW;AACvC,iBAAW,OAAO,gBAAgB;AAC9B,YAAI,CAAC,eAAe,IAAI,GAAG,GAAG;AAC1B,iBAAO,KAAK,2BAA2B,UAAU;AAAA,oBACxB,UAAU,GAAG,CAAC;AAAA,gFACyC;AAAA,QACpF;AAAA,MACJ;AACA,YAAM,OAAO,oBAAI,IAAI;AACrB,iBAAW,SAAS,eAAe,KAAK,GAAG;AACvC,YAAI,KAAK,IAAI,KAAK,GAAG;AACjB,iBAAO,KAAK,iCAAiC,UAAU;AAAA,YACtC,UAAU,KAAK,CAAC;AAAA,oCACG;AAAA,QACxC;AACA,aAAK,IAAI,KAAK;AAAA,MAClB;AACA,iBAAW,CAAC,OAAO,IAAI,KAAK,gBAAgB;AACxC,mBAAW,OAAO,MAAM;AACpB,cAAI,eAAe,IAAI,GAAG;AACtB;AACJ,gBAAM,kBAAkB,KAAK,oBAAoB,KAAK,MAAM,UAAU,oBAAI,IAAI,CAAC;AAC/E,cAAI,CAAC,iBAAiB;AAClB,kBAAM,WAAW,UAAU,KAAK;AAChC,kBAAM,UAAU,UAAU,GAAG;AAC7B,kBAAM,oBAAoB,MAAM,KAAK,SAAS,OAAO,CAAC,EACjD,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,EACpC,IAAI,CAAC,MAAM,EAAE,IAAI;AACtB,gBAAI,aAAa;AACjB,gBAAI,kBAAkB,SAAS,GAAG;AAC9B,2BACI;AAAA,aAAW,OAAO,qBAAqB,kBAAkB,KAAK,IAAI,CAAC;AAAA,wDACX,UAAU;AAAA,YAC1E,OACK;AACD,2BAAa;AAAA,aAAW,OAAO;AAAA,YACnC;AACA,mBAAO,KAAK,oCAAoC,UAAU;AAAA,MAC/C,QAAQ,eAAe,OAAO,IAAI,UAAU,EAAE;AAAA,UAC7D;AAAA,QACJ;AAAA,MACJ;AACA,qBAAe,QAAQ,CAAC,MAAM,UAAU;AACpC,YAAI,OAAO,UAAU,cACjB,QAAQ,YAAY,WAAW,KAAK,GAAG;AACvC,gBAAM,gBAAgB,QAAQ,YAAY,gBAAgB,KAAK,KAAK,CAAC;AACrE,wBAAc,QAAQ,CAAC,YAAY;AAC/B,gBAAI,OAAO,YAAY,cACnB,CAAC,QAAQ,YAAY,WAAW,OAAO,GAAG;AAC1C,qBAAO,KAAK,yCAAyC,UAAU;AAAA,gBAC1C,UAAU,KAAK,CAAC,YAAY,UAAU,OAAO,CAAC;AAAA,aACtD,UAAU,OAAO,CAAC,qDAAqD;AAAA,YACxF;AACA,gBAAI,CAAC,eAAe,IAAI,OAAO,GAAG;AAC9B,oBAAM,eAAe,KAAK,oBAAoB,SAAS,MAAM,UAAU,oBAAI,IAAI,CAAC;AAChF,kBAAI,CAAC,cAAc;AACf,uBAAO,KAAK,yCAAyC,UAAU;AAAA,gBAC1C,UAAU,KAAK,CAAC,cAAc,UAAU,OAAO,CAAC;AAAA,aACxD,UAAU,OAAO,CAAC,uCAAuC;AAAA,cAC1E;AAAA,YACJ;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AACD,WAAO,EAAE,OAAO,OAAO,WAAW,GAAG,OAAO;AAAA,EAChD;AAAA,EACA,gBAAgB,MAAM,WAAW,UAAU,oBAAI,IAAI,GAAG;AAClD,QAAI,QAAQ,IAAI,KAAK,IAAI;AACrB;AACJ,YAAQ,IAAI,KAAK,IAAI;AACrB,cAAU,IAAI,KAAK,MAAM,IAAI;AAC7B,SACK,YAAY,EACZ,QAAQ,CAAC,UAAU,KAAK,gBAAgB,OAAO,WAAW,OAAO,CAAC;AAAA,EAC3E;AAAA,EACA,oBAAoB,OAAO,UAAU,UAAU,UAAU,oBAAI,IAAI,GAAG;AAChE,QAAI,QAAQ,IAAI,SAAS,IAAI;AACzB,aAAO;AACX,YAAQ,IAAI,SAAS,IAAI;AACzB,eAAW,SAAS,SAAS,YAAY,GAAG;AACxC,UAAI,MAAM,UAAU,EAAE,IAAI,KAAK,KAAK,MAAM,WAAW,EAAE,IAAI,KAAK,GAAG;AAC/D,eAAO,MAAM;AAAA,MACjB;AACA,YAAM,QAAQ,KAAK,oBAAoB,OAAO,OAAO,UAAU,OAAO;AACtE,UAAI;AACA,eAAO;AAAA,IACf;AACA,WAAO;AAAA,EACX;AAAA,EACA,iBAAiB,UAAU;AACvB,WAAO,OAAO,aAAa,aAAa,WAAW,SAAS;AAAA,EAChE;AAAA,EACA,oBAAoB,MAAM;AACtB,QAAI,OAAO,SAAS,YAAY,UAAU,QAAQ,KAAK;AACnD,aAAO,KAAK;AAChB,QAAI,OAAO,SAAS,YAAY,KAAK;AACjC,aAAO,KAAK,2BAA2B,KAAK,QAAQ;AACxD,QAAI,OAAO,SAAS;AAChB,aAAO,KAAK,2BAA2B,IAAI;AAC/C,WAAO,CAAC;AAAA,EACZ;AAAA,EACA,2BAA2B,aAAa;AACpC,UAAM,eAAe,QAAQ,eAAe,mBAAmB,WAAW,KAAK,oBAAI,IAAI;AACvF,UAAM,aAAa,QAAQ,YAAY,mBAAmB,WAAW,KAAK,CAAC;AAC3E,WAAO,WACF,IAAI,CAAC,MAAM,UAAU;AACtB,YAAM,WAAW,aAAa,IAAI,KAAK;AACvC,UAAI,UAAU,OAAO;AACjB,eAAO;AAAA,MACX;AACA,aAAO,UAAU,SAAS;AAAA,IAC9B,CAAC,EACI,OAAO,CAAC,UAAU,QAAQ,KAAK,CAAC;AAAA,EACzC;AAAA,EACA,gBAAgB,GAAG;AACf,WAAO,OAAO,MAAM,YAAY,YAAY;AAAA,EAChD;AAAA,EACA,WAAW,GAAG;AACV,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,WAAW,CAAC;AACzB,WAAO,QAAQ,YAAY,aAAa,CAAC,KAAK,CAAC;AAAA,EACnD;AAAA,EACA,aAAa,GAAG;AACZ,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,aAAa,CAAC;AAC3B,WAAO,QAAQ,YAAY,eAAe,CAAC,KAAK,CAAC;AAAA,EACrD;AAAA,EACA,eAAe,GAAG;AACd,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,eAAe,CAAC;AAC7B,WAAO,QAAQ,YAAY,iBAAiB,CAAC,KAAK,CAAC;AAAA,EACvD;AAAA,EACA,gBAAgB,GAAG;AACf,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,gBAAgB,CAAC;AAC9B,WAAO,QAAQ,YAAY,kBAAkB,CAAC,KAAK,CAAC;AAAA,EACxD;AAAA,EACA,WAAW,GAAG;AACV,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,WAAW,CAAC;AACzB,WAAO,QAAQ,YAAY,aAAa,CAAC,KAAK,CAAC;AAAA,EACnD;AAAA,EACA,SAAS,MAAM,SAAS,IAAI,UAAU,oBAAI,IAAI,GAAG;AAC7C,QAAI,QAAQ,IAAI,KAAK,IAAI,GAAG;AACxB,cAAQ,IAAI,GAAG,MAAM,GAAG,KAAK,IAAI,aAAa;AAC9C;AAAA,IACJ;AACA,YAAQ,IAAI,KAAK,IAAI;AACrB,YAAQ,IAAI,GAAG,MAAM,GAAG,KAAK,IAAI,EAAE;AACnC,UAAM,SAAS,KAAK,UAAU;AAC9B,QAAI,OAAO,OAAO,GAAG;AACjB,cAAQ,IAAI,GAAG,MAAM,sBAAY;AACjC,YAAM,KAAK,OAAO,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,IAAI,GAAG,GAAG,QAAQ;AAC5D,cAAM,SAAS,MAAM,IAAI,SAAS,IAAI,iBAAO;AAC7C,cAAM,YAAY,OAAO,UAAU,aAAa,MAAM,OAAO,OAAO,KAAK;AACzE,cAAM,SAAS,KAAK,SACd,YAAO,KACJ,IAAI,CAAC,MAAO,OAAO,MAAM,aAAa,EAAE,OAAO,OAAO,CAAC,CAAE,EACzD,KAAK,IAAI,CAAC,MACb;AACN,gBAAQ,IAAI,GAAG,MAAM,UAAK,MAAM,IAAI,SAAS,GAAG,MAAM,EAAE;AAAA,MAC5D,CAAC;AAAA,IACL;AACA,UAAM,UAAU,KAAK,WAAW;AAChC,QAAI,QAAQ,OAAO,GAAG;AAClB,YAAM,QAAQ,MAAM,KAAK,OAAO,EAAE,IAAI,CAAC,MAAM,OAAO,MAAM,aAAa,EAAE,OAAO,OAAO,CAAC,CAAC;AACzF,cAAQ,IAAI,GAAG,MAAM,0BAAgB,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,IAC5D;AACA,UAAM,WAAW,KAAK,YAAY;AAClC,QAAI,SAAS,SAAS,GAAG;AACrB,cAAQ,IAAI,GAAG,MAAM,uBAAa;AAClC,eAAS,QAAQ,CAAC,OAAO,MAAM;AAC3B,cAAM,SAAS,MAAM,SAAS,SAAS;AACvC,cAAM,cAAc,UAAU,SAAS,QAAQ;AAC/C,aAAK,SAAS,OAAO,aAAa,IAAI,IAAI,OAAO,CAAC;AAAA,MACtD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;;;AC9OO,IAAM,WAAN,MAAe;AAAA,EAKpB,YAAY,WAAuB,QAAmB;AAJtD,SAAQ,gBAAgB,oBAAI,IAAqB;AACjD,SAAQ,cAAc,oBAAI,IAA0B;AAIlD,SAAK,SAAS;AACd,cAAU,QAAQ,CAAC,MAAM;AACvB,YAAM,aAAa,mBAAmB,UAAU,CAAC;AACjD,WAAK,YAAY,IAAI,WAAW,SAAS,UAAU;AAAA,IACrD,CAAC;AAAA,EACH;AAAA,EAEA,YAAY,UAAkC;AAC5C,UAAM,aAAa,mBAAmB,UAAU,QAAQ;AACxD,SAAK,YAAY,IAAI,WAAW,SAAS,UAAU;AAAA,EACrD;AAAA,EAEA,QAAW,OAAoB;AAC7B,QAAI,KAAK,cAAc,IAAI,KAAK,GAAG;AACjC,aAAO,KAAK,cAAc,IAAI,KAAK;AAAA,IACrC;AAEA,UAAM,WAAW,KAAK,YAAY,IAAI,KAAK;AAE3C,QAAI,CAAC,UAAU;AACb,UAAI,KAAK,QAAQ;AACf,eAAO,KAAK,OAAO,QAAQ,KAAK;AAAA,MAClC;AACA,YAAM,IAAI;AAAA,QACR,0BACE,OAAO,UAAU,aAAa,MAAM,OAAO,OAAO,KAAK,CACzD;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAW,KAAK,eAAe,QAAQ;AAE7C,QAAI,SAAS,UAAU,aAAa;AAClC,WAAK,cAAc,IAAI,OAAO,QAAQ;AAAA,IACxC;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,eAAe,UAAyB;AAC9C,QAAI,cAAc,YAAY,SAAS,aAAa;AAClD,aAAO,SAAS;AAClB,QAAI,SAAS,YAAa,QAAO,KAAK,QAAQ,SAAS,WAAW;AAClE,QAAI,SAAS,YAAY;AACvB,YAAMC,SAAQ,SAAS,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AAC7D,aAAO,SAAS,WAAW,GAAGA,KAAI;AAAA,IACpC;AAEA,UAAM,OAAO,SAAS,YAAa,SAAS;AAC5C,UAAM,OAAO,SAAS,QAAQ,KAAK,mBAAmB,IAAI;AAE1D,WAAO,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;AAAA,EACrD;AAAA,EAEQ,mBAAmB,MAAiC;AAC1D,UAAM,eAGF,QAAQ,eAAe,mBAAmB,IAAI,KAAK,oBAAI,IAAI;AAE/D,UAAM,aAAa,QAAQ,YAAY,mBAAmB,IAAI,KAAK,CAAC;AAEpE,WAAO,WACJ,IAAI,CAAC,MAAW,UAAkB;AACjC,YAAM,WAAW,aAAa,IAAI,KAAK;AACvC,aAAO,UAAU,SAAS;AAAA,IAC5B,CAAC,EACA,OAAO,CAAC,UAAoC,QAAQ,KAAK,CAAC;AAAA,EAC/D;AACF;AAEO,SAAS,4BACd,MACA,YAAY,oBAAI,IAAc,GAClB;AACZ,OAAK,aAAa,EAAE,QAAQ,CAAC,MAAM,UAAU,IAAI,CAAC,CAAC;AACnD,OACG,YAAY,EACZ,QAAQ,CAAC,UAAU,4BAA4B,OAAO,SAAS,CAAC;AACnE,SAAO,MAAM,KAAK,SAAS;AAC7B;;;ACxFA,IAAI,kBAAmC;AAEhC,SAAS,mBAAmB,UAAoB;AACrD,oBAAkB;AACpB;AAEO,SAAS,qBAAsC;AACpD,SAAO;AACT;;;ACVA,SAAS,MAAM,cAAc;AAOtB,SAAS,IAAI,MAAW,QAAa,UAA6B;AACvE,QAAM,MAAM,aAAa,SAAY,WAAW,QAAQ,OAAO;AAE/D,QAAM,QAAa,CAAC;AAEpB,MAAI,QAAQ;AACV,eAAW,YAAY,QAAQ;AAC7B,UAAI,aAAa,MAAO;AAExB,UAAI,aAAa,MAAO;AAExB,YAAM,QAAQ,IAAI,OAAO,QAAQ;AAAA,IACnC;AAAA,EACF;AAEA,MAAI,MAAM,aAAa,QAAW;AAChC,UAAM,WAAW,kBAAkB,MAAM,QAAQ;AAAA,EACnD;AAEA,MAAI,OAAO,SAAS,cAAc,KAAK,cAAc;AACnD,eAAW,YAAY,KAAK,cAAc;AACxC,UAAI,MAAM,QAAQ,MAAM,QAAW;AACjC,cAAM,QAAQ,IAAI,KAAK,aAAa,QAAQ;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAEA,SAAO,YAAY,MAAM,OAAO,GAAG;AACrC;AAEO,IAAM,OAAO;AAEb,SAAS,SAAS,OAAyB;AAChD,SAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,IAAI;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,EACP;AACF;AAEA,SAAS,YACP,MACA,OACA,KACa;AACb,SAAO;AAAA,IACL,UAAU;AAAA,IACV,IAAI,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,UAAoB;AAC7C,MAAI,aAAa,QAAQ,aAAa,QAAW;AAC/C,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,WAAO,eAAe,QAAQ;AAAA,EAChC;AAEA,QAAM,aAAoB,CAAC;AAE3B,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAM,QAAQ,eAAe,SAAS,CAAC,CAAC;AAExC,QAAI,UAAU,KAAM;AAEpB,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,KAAK,GAAG,KAAK;AAAA,IAC1B,OAAO;AACL,iBAAW,KAAK,KAAK;AAAA,IACvB;AAAA,EACF;AAEA,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,MAAI,WAAW,WAAW,EAAG,QAAO,WAAW,CAAC;AAChD,SAAO;AACT;AAEA,SAAS,eAAe,OAAiB;AACvC,MAAI,UAAU,QAAQ,UAAU,UAAa,OAAO,UAAU,WAAW;AACvE,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,KAAK;AAAA,EACrB;AAEA,MAAI,OAAO,UAAU,YAAY,MAAM,aAAa,mBAAmB;AACrE,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,MAAM,MAAM,IAAI;AAAA,EAC3D;AAEA,SAAO,OAAO,KAAK;AACrB;AAEO,SAAS,iBAAiBC,MAA2B;AAC1D,SACE,OAAOA,KAAI,SAAS,cACpBA,KAAI,KAAK,aACT,OAAOA,KAAI,KAAK,UAAU,UAAU;AAExC;AAEO,SAAS,mBAAmBA,MAA2B;AAC5D,SAAO,OAAOA,KAAI,SAAS;AAC7B;AAEO,SAAS,WAAWA,MAA2B;AACpD,SACE,OAAOA,KAAI,SAAS,cAAcA,KAAI,KAAK,GAAG,QAAQ;AAE1D;;;AC1HO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAAoB,cAAwB;AAAxB;AAAA,EAAyB;AAAA,EAE7C,OACE,OACA,iBAA2B,KAAK,cAC3B;AACL,QAAI,OAAO,MAAM,SAAS,YAAY;AACpC,YAAM,iBAAiB,MAAM;AAC7B,YAAM,cAAc,QAAQ,YAAY,WAAW,cAAc;AAEjE,UAAI,oBAAoB;AAExB,UAAI,aAAa;AACf,cAAM,iBACJ,QAAQ,YAAY,qBAAqB,cAAc,KAAK,CAAC;AAE/D,YAAI,eAAe,SAAS,GAAG;AAC7B,8BAAoB,IAAI;AAAA,YACtB,eAAe,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAAA,YACzD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,YAAM,WAAgB,kBAAkB,QAAQ,cAAc;AAE9D,eAAS,QAAQ,MAAM,SAAS,CAAC;AAEjC,YAAM,aAAa,SAAS,MAAM;AAElC,aAAO,KAAK,OAAO,YAAY,iBAAiB;AAAA,IAClD;AAEA,QAAI,OAAO,MAAM,SAAS,UAAU;AAClC,YAAM,EAAE,UAAU,GAAG,MAAM,IAAI,MAAM;AAErC,YAAM,WAAW,OAAO,QAAQ,KAAK,EAClC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAI,UAAU,KAAM,QAAO;AAC3B,YAAI,UAAU,SAAS,UAAU,QAAQ,UAAU;AACjD,iBAAO;AACT,eAAO,GAAG,GAAG,KAAK,KAAK,WAAW,OAAO,KAAK,CAAC,CAAC;AAAA,MAClD,CAAC,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,YAAM,UAAU,WACZ,IAAI,MAAM,IAAI,IAAI,QAAQ,MAC1B,IAAI,MAAM,IAAI;AAElB,YAAM,cAAc,CAAC,OAAO,MAAM,MAAM,SAAS,QAAQ,MAAM;AAC/D,UAAI,YAAY,SAAS,MAAM,IAAI,GAAG;AACpC,eAAO,WAAW,IAAI,MAAM,IAAI,IAAI,QAAQ,QAAQ,IAAI,MAAM,IAAI;AAAA,MACpE;AAEA,UAAI,eAAe;AACnB,UAAI,aAAa,UAAa,aAAa,MAAM;AAC/C,YAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,yBAAe,SACZ,IAAI,CAAC,UAAU;AACd,gBAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAC1D,qBAAO,KAAK,WAAW,OAAO,KAAK,CAAC;AAAA,YACtC;AACA,mBAAO,KAAK,OAAO,OAAO,cAAc;AAAA,UAC1C,CAAC,EACA,KAAK,EAAE;AAAA,QACZ,WAAW,OAAO,aAAa,YAAY,UAAU,UAAU;AAC7D,yBAAe,KAAK,OAAO,UAAU,cAAc;AAAA,QACrD,OAAO;AACL,yBAAe,KAAK,WAAW,OAAO,QAAQ,CAAC;AAAA,QACjD;AAAA,MACF;AAEA,aAAO,GAAG,OAAO,GAAG,YAAY,KAAK,MAAM,IAAI;AAAA,IACjD;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,WAAW,MAAsB;AACvC,UAAMC,OAA8B;AAAA,MAClC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,WAAO,KAAK,QAAQ,YAAY,CAAC,MAAMA,KAAI,CAAC,CAAC;AAAA,EAC/C;AACF;;;AC/FA,SAAS,iBAAiB;AAqBnB,IAAM,iBAAN,MAAqB;AAAA,EAQ1B,YACU,cACR,UAAiC,CAAC,GAClC;AAFQ;AAPV,SAAQ,UAAU,oBAAI,IAA0B;AAChD,SAAQ,eAAe,oBAAI,IAAY;AACvC,SAAQ,iBAA+C,CAAC;AAExD,SAAQ,YAAY;AAMlB,SAAK,UAAU;AAAA,MACb,SAAS,QAAQ,WAAW;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,OACE,OACA,iBAA2B,KAAK,cAC3B;AACL,WAAO,KAAK,OAAO,OAAO,cAAc;AAAA,EAC1C;AAAA,EAEA,OAAe,OAAO,OAAoB,gBAA0B;AAClE,SAAK,QAAQ,MAAM;AACnB,SAAK,iBAAiB,CAAC;AACvB,SAAK,iBAAiB,oBAAI,QAAQ;AAClC,SAAK,aAAa,MAAM;AAExB,UAAM,aAAa,MACjB,IAAI,QAAqB,CAACC,aAAY,KAAK,eAAe,KAAKA,QAAO,CAAC;AAEzE,QAAI;AACF,YAAM,OAAO,KAAK,cAAc,OAAO,cAAc;AACrD,YAAM,EAAE,GAAG,MAAM,QAAQ,SAAS;AAElC,aAAO,KAAK,QAAQ,OAAO,GAAG;AAC5B,cAAM,SAAS,MAAM,WAAW;AAChC,cAAM;AAAA,MACR;AAAA,IACF,UAAE;AACA,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEQ,cAAc,OAAoB,UAAyB;AACjE,QAAI,SAAS,QAAQ,OAAO,UAAU,SAAU,QAAO;AACvD,QAAI,MAAM,aAAa,kBAAmB,QAAO;AAEjD,QAAI,KAAK,eAAe,IAAI,KAAK,GAAG;AAClC,YAAM,IAAI;AAAA,QACR,0DAA0D,MAAM,MAAM,IAAI;AAAA,MAC5E;AAAA,IACF;AAEA,SAAK,eAAe,IAAI,KAAK;AAE7B,QAAI;AACF,UAAI,iBAAiB,KAAK,GAAG;AAC3B,eAAO,KAAK,qBAAqB,OAAO,QAAQ;AAAA,MAClD;AAEA,UAAI,mBAAmB,KAAK,GAAG;AAC7B,eAAO,KAAK,uBAAuB,OAAO,QAAQ;AAAA,MACpD;AAEA,UAAI,WAAW,KAAK,GAAG;AACrB,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,IAAI,MAAM;AAAA,UACV,OAAO;AAAA,YACL,UAAU,KAAK,YAAY,MAAM,OAAO,UAAU,QAAQ;AAAA,UAC5D;AAAA,UACA,KAAK;AAAA,QACP;AAAA,MACF;AAEA,aAAO;AAAA,IACT,UAAE;AACA,WAAK,eAAe,OAAO,KAAK;AAAA,IAClC;AAAA,EACF;AAAA,EAEQ,uBAAuB,OAAoB,UAAyB;AAC1E,UAAM,EAAE,yBAAyB,UAAU,GAAG,UAAU,IACtD,MAAM,SAAS,CAAC;AAElB,QAAI;AAEJ,QAAI,yBAAyB,QAAQ;AACnC,0BAAoB,KAAK;AAAA,QACvB,wBAAwB;AAAA,QACxB;AAAA,MACF;AAAA,IACF,OAAO;AACL,0BAAoB,KAAK,YAAY,UAAU,QAAQ;AAAA,IACzD;AAEA,QAAI,MAAM,QAAQ,OAAO,UAAU,MAAM,GAAG;AAC1C,YAAM,OAAO,UAAU,MAAM;AAE7B,UAAI;AACF,YAAI,IAAI,IAAI;AAAA,MACd,QAAQ;AACN,YACE,CAAC,KAAK,WAAW,GAAG,KACpB,CAAC,KAAK,WAAW,SAAS,KAC1B,CAAC,KAAK,WAAW,MAAM,GACvB;AACA,oBAAU,SAAS,IAAI,yBAAyB,IAAI;AAAA,QACtD;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM,MAAM;AAAA,MACZ,IAAI,MAAM;AAAA,MACV,OAAO;AAAA,QACL,GAAG;AAAA,QACH,UAAU;AAAA,MACZ;AAAA,MACA,KAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEQ,qBAAqB,OAAoB,UAAyB;AACxE,UAAM,iBAAiB,MAAM;AAC7B,UAAM,cAAc,QAAQ,YAAY,WAAW,cAAc;AAEjE,QAAI,oBAAoB;AAExB,QAAI,aAAa;AACf,YAAM,iBACJ,QAAQ,YAAY,qBAAqB,cAAc,KAAK,CAAC;AAE/D,UAAI,eAAe,SAAS,GAAG;AAC7B,4BAAoB,IAAI;AAAA,UACtB,eAAe,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAgB,kBAAkB,QAAQ,cAAc;AAE9D,UAAM,cAAc,OAAO;AAAA,MACzB,OAAO,eAAe,SAAS,SAAS,CAAC,CAAC;AAAA,IAC5C;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO,0BAA0B,SAAS,KAAK;AAAA,IACjD;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO,0BAA0B,MAAM,SAAS,CAAC,CAAC;AAAA,IACpD;AAEA,aAAS,QAAQ;AAEjB,UAAM,aAAa,SAAS,MAAM;AAElC,QAAI,sBAAsB,SAAS;AACjC,aAAO,KAAK,uBAAuB,OAAO,YAAY,iBAAiB;AAAA,IACzE;AAEA,WAAO,KAAK,cAAc,YAAY,iBAAiB;AAAA,EACzD;AAAA,EAEQ,YAAY,UAAe,UAAyB;AAC1D,QAAI,YAAY,KAAM,QAAO;AAC7B,QAAI,OAAO,aAAa,YAAY,OAAO,aAAa,UAAU;AAChE,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,aAAO,SAAS,IAAI,CAAC,MAAM,KAAK,cAAc,GAAG,QAAQ,CAAC;AAAA,IAC5D;AAEA,WAAO,KAAK,cAAc,UAAU,QAAQ;AAAA,EAC9C;AAAA,EAEQ,eAAe,MAAc,UAAyB;AAC5D,UAAM,EAAE,UAAAC,UAAS,IAAI;AAAA,MACnB,8BAA8B,IAAI;AAAA,IACpC;AAEA,UAAM,iBAAiB,CAAC,YAAsB;AAC5C,YAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,YAAM,QAA6B,CAAC;AAEpC,YAAM,QAAQ,QAAQ;AACtB,UAAI,OAAO;AACT,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,gBAAM,OAAO,MAAM,CAAC;AACpB,cAAI,OAAO,KAAK;AAEhB,cAAI,SAAS,SAAS;AACpB,mBAAO;AAAA,UACT,WAAW,SAAS,OAAO;AACzB,mBAAO;AAAA,UACT,WACE,CAAC,KAAK,WAAW,OAAO,KACxB,CAAC,KAAK,WAAW,OAAO,KACxB,KAAK,SAAS,GAAG,GACjB;AACA,mBAAO,KAAK;AAAA,cAAQ;AAAA,cAAa,CAAC,GAAW,WAC3C,OAAO,YAAY;AAAA,YACrB;AAAA,UACF;AAEA,gBAAM,IAAI,IAAI,KAAK;AAAA,QACrB;AAAA,MACF;AAEA,YAAM,WAAkB,CAAC;AACzB,YAAM,aAAa,QAAQ;AAE3B,UAAI,YAAY;AACd,iBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,gBAAM,QAAQ,WAAW,CAAC;AAC1B,gBAAM,YAAY,YAAY,KAAK;AACnC,cAAI,aAAa,MAAM;AACrB,qBAAS,KAAK,SAAS;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAEA,YAAM,aAAa;AAAA,QACjB,UAAU;AAAA,QACV,MAAM;AAAA,QACN,IAAI,KAAK,WAAW;AAAA,QACpB,OAAO;AAAA,UACL,GAAG;AAAA,UACH,UACE,SAAS,WAAW,IAChB,SACA,SAAS,WAAW,IACpB,SAAS,CAAC,IACV;AAAA,QACR;AAAA,QACA,KAAK;AAAA,MACP;AAEA,aAAO,KAAK,cAAc,YAAY,QAAQ;AAAA,IAChD;AAEA,UAAM,cAAc,CAAC,SAAmB;AACtC,UAAI,KAAK,aAAa,GAAG;AACvB,cAAM,OAAO,KAAK,eAAe;AACjC,cAAM,UAAU,KAAK,KAAK;AAC1B,eAAO,UAAU,OAAO;AAAA,MAC1B;AAEA,UAAI,KAAK,aAAa,GAAG;AACvB,eAAO,eAAe,IAAI;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,SAAgB,CAAC;AACvB,UAAM,eAAeA,UAAS,MAAM;AAEpC,QAAI,cAAc;AAChB,eAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,cAAM,OAAO,aAAa,CAAC;AAC3B,cAAM,YAAY,YAAY,IAAI;AAClC,YAAI,aAAa,MAAM;AACrB,iBAAO,KAAK,SAAS;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,WAAW,IACrB,SACA,OAAO,WAAW,IAClB,OAAO,CAAC,IACR;AAAA,EACN;AAAA,EAEQ,uBACN,OACA,SACA,UACA;AACA,UAAM,KAAK,MAAM;AACjB,UAAM,kBAAkB,IAAI,gBAAgB;AAE5C,UAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,YAAM,YAAY,WAAW,MAAM;AACjC,wBAAgB,MAAM;AACtB;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,KAAK,QAAQ,SAAS,oBACvC,KAAK,QAAQ,OACf;AAAA,UACF;AAAA,QACF;AAAA,MACF,GAAG,KAAK,QAAQ,OAAO;AAEvB,sBAAgB,OAAO,iBAAiB,SAAS,MAAM;AACrD,qBAAa,SAAS;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AAED,UAAM,QAAQ,QAAQ,KAAK,CAAC,SAAS,cAAc,CAAC,EACjD,KAAK,CAAC,WAAW;AAChB,aAAO,KAAK,MAAM;AAClB,aAAO,KAAK,cAAc,QAAQ,QAAQ;AAAA,IAC5C,CAAC,EACA,MAAM,CAAC,QAAQ,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,CAAC;AAEpD,SAAK,QAAQ,IAAI,IAAI,EAAE,iBAAiB,SAAS,MAAM,CAAC;AAExD,UACG,KAAK,CAAC,aAAa;AAClB,UAAI,KAAK,aAAa,IAAI,EAAE,EAAG;AAC/B,WAAK,aAAa,IAAI,EAAE;AAExB,WAAK,eAAe,MAAM,IAAI;AAAA,QAC5B,GAAG;AAAA,QACH,QAAQ;AAAA,MACV,CAAC;AAED,WAAK,QAAQ,OAAO,EAAE;AAAA,IACxB,CAAC,EACA,MAAM,CAAC,MAAM;AACZ,WAAK,eAAe,MAAM,IAAI;AAAA,QAC5B,UAAU;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR;AAAA,QACA,OAAO;AAAA,UACL,SAAS,OAAO,GAAG,KAAK,KAAK,OAAO,CAAC;AAAA,QACvC;AAAA,QACA,KAAK;AAAA,MACP,CAAC;AACD,WAAK,QAAQ,OAAO,EAAE;AAAA,IACxB,CAAC;AAEH,WAAO;AAAA,MACL,UAAU;AAAA,MACV;AAAA,MACA,MAAM;AAAA,MACN,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEQ,aAAqB;AAC3B,WAAO,OAAO,EAAE,KAAK,SAAS;AAAA,EAChC;AAAA,EAEQ,UAAU;AAChB,eAAW,EAAE,gBAAgB,KAAK,KAAK,QAAQ,OAAO,GAAG;AACvD,sBAAgB,MAAM;AAAA,IACxB;AACA,SAAK,QAAQ,MAAM;AACnB,SAAK,aAAa,MAAM;AACxB,SAAK,eAAe,SAAS;AAAA,EAC/B;AAAA,EAEA,SAAS;AACP,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,MAAM,mBAAmBC,MAA0C;AACjE,UAAM,MAAqB,CAAC;AAC5B,qBAAiB,OAAO,KAAK,OAAOA,MAAK,KAAK,YAAY,GAAG;AAC3D,UAAI,KAAK,GAAG;AAAA,IACd;AACA,WAAO;AAAA,EACT;AACF;;;AC/YO,IAAM,QAAN,MAAY;AAAA,EAKjB,YAAmB,KAAmB,IAAoC;AAAvD;AAAmB;AAFtC,oBAAoB,CAAC;AAAA,EAEsD;AAAA,EAE3E,MAAM,IAAY;AAChB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,SAAS,OAAqB;AAC5B,UAAM,SAAS;AACf,SAAK,SAAS,KAAK,KAAK;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,OAAoB;AAC9B,UAAM,QAAQ,KAAK,SAAS,QAAQ,KAAK;AACzC,QAAI,QAAQ,IAAI;AACd,WAAK,SAAS,OAAO,OAAO,CAAC;AAC7B,YAAM,SAAS;AAAA,IACjB;AAAA,EACF;AAAA,EAEA,SAAS,IAA0B;AACjC,QAAI,KAAK,OAAO,GAAI,QAAO;AAE3B,eAAW,SAAS,KAAK,UAAU;AACjC,YAAM,QAAQ,MAAM,SAAS,EAAE;AAC/B,UAAI,MAAO,QAAO;AAAA,IACpB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,IAAU;AACf,QAAI,KAAK,IAAI;AACX,WAAK,GAAG,KAAK,KAAK,EAAE;AAAA,IACtB,OAAO;AACL,UAAI,KAAK,IAAI,YAAY;AACvB,aAAK,IAAI,WAAW,aAAa,IAAI,KAAK,GAAG;AAAA,MAC/C;AAAA,IACF;AACA,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,UAAgB;AACd,eAAW,SAAS,KAAK,UAAU;AACjC,YAAM,QAAQ;AAAA,IAChB;AAEA,QAAI,KAAK,IAAI,YAAY;AACvB,WAAK,IAAI,WAAW,YAAY,KAAK,GAAG;AAAA,IAC1C;AAEA,QAAI,KAAK,QAAQ;AACf,WAAK,OAAO,YAAY,IAAI;AAAA,IAC9B;AAAA,EACF;AACF;;;AC5DO,SAAS,oBAAoB,KAAU,OAAY;AACxD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,YAAY,MAAM,WAAW;AAAA,EACtC;AACA,SAAO;AACT;AAEO,SAAS,mBAAmB,KAAU,OAAY;AACvD,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,WAAW,GAAG;AAC9D,WAAO,OAAO,IAAI,MAAM,MAAM,CAAC,CAAC;AAAA,EAClC;AACA,SAAO;AACT;;;ACVA,IAAI,gBAAqC;AACzC,IAAI,aAAa;AACjB,IAAI,iBAAiB,oBAAI,IAAkB;AAepC,SAAS,OAAU,cAA4B;AACpD,MAAI,QAAQ;AACZ,QAAM,cAAc,oBAAI,IAAkB;AAE1C,QAAM,SAAS,MAAM;AACnB,gBAAY,QAAQ,CAAC,QAAQ,eAAe,IAAI,GAAG,CAAC;AACpD,QAAI,eAAe,GAAG;AACpB,YAAM,UAAU,MAAM,KAAK,cAAc;AACzC,qBAAe,MAAM;AACrB,cAAQ,QAAQ,CAACC,YAAWA,QAAO,QAAQ,CAAC;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO;AAAA,IACL,WAAW;AAAA,IACX,cAAc;AAAA,IACd,IAAI,QAAW;AACb,UAAI,eAAe;AACjB,oBAAY,IAAI,aAAa;AAC7B,sBAAc,KAAK,IAAI,WAAW;AAAA,MACpC;AACA,aAAO;AAAA,IACT;AAAA,IACA,IAAI,MAAM,UAAa;AACrB,UAAI,UAAU,UAAU;AACtB,gBAAQ;AACR,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,OAAO,IAA2C;AAChE,QAAM,OAAO,oBAAI,IAAuB;AACxC,MAAI;AAEJ,QAAM,UAAwB,MAAM;AAClC,WAAO,QAAQ;AAAA,EACjB;AAEA,SAAO,OAAO;AAEd,SAAO,UAAU,MAAM;AACrB,QAAI,WAAW;AACb,gBAAU;AACV,kBAAY;AAAA,IACd;AAEA,SAAK,QAAQ,CAAC,SAAS,KAAK,OAAO,MAAM,CAAC;AAC1C,SAAK,MAAM;AAEX,UAAM,aAAa;AACnB,oBAAgB;AAEhB,QAAI;AACF,YAAM,SAAS,GAAG;AAClB,UAAI,OAAO,WAAW,YAAY;AAChC,oBAAY;AAAA,MACd;AAAA,IACF,UAAE;AACA,sBAAgB;AAAA,IAClB;AAAA,EACF;AAEA,SAAO,UAAU,MAAM;AACrB,QAAI,WAAW;AACb,gBAAU;AACV,kBAAY;AAAA,IACd;AACA,SAAK,QAAQ,CAAC,SAAS,KAAK,OAAO,MAAM,CAAC;AAC1C,SAAK,MAAM;AAAA,EACb;AAEA,SAAO,YAAY;AAEnB,SAAO,QAAQ;AAEf,SAAO,MAAM,OAAO,QAAQ;AAC9B;AAEO,SAAS,SAAY,IAAwB;AAClD,QAAM,MAAM,OAAO,GAAG,CAAC;AACvB,MAAI;AAEJ,YAAU,OAAO,MAAM;AACrB,QAAI,QAAQ,GAAG;AAAA,EACjB,CAAC;AAED,QAAM,iBAAiB;AACvB,QAAM,UAAU;AAEhB,EAAC,eAAuB,UAAU;AAElC,SAAO;AACT;AAEO,SAAS,MAAM,IAAsB;AAC1C;AACA,MAAI;AACF,OAAG;AAAA,EACL,UAAE;AACA;AACA,QAAI,eAAe,GAAG;AACpB,YAAM,UAAU,MAAM,KAAK,cAAc;AACzC,qBAAe,MAAM;AACrB,cAAQ,QAAQ,CAACA,YAAWA,QAAO,QAAQ,CAAC;AAAA,IAC9C;AAAA,EACF;AACF;AAEO,SAAS,SAAS,OAAqB;AAC5C,SAAO,SAAS,MAAM,cAAc;AACtC;AAEO,SAAS,WAAc,IAAmC;AAC/D,QAAM,WAA8B,CAAC;AACrC,QAAM,UAAU,MAAM;AACpB,aAAS,QAAQ,CAAC,YAAY,QAAQ,CAAC;AACvC,aAAS,SAAS;AAAA,EACpB;AAEA,QAAM,aAAa;AAEnB,QAAM,iBAAiB;AACvB,EAAC,WAAmB,SAAS,CAACC,QAAkC;AAC9D,UAAM,UAAU,eAAeA,GAAE;AACjC,aAAS,KAAK,OAAO;AACrB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,WAAO,GAAG,OAAO;AAAA,EACnB,UAAE;AACA,IAAC,WAAmB,SAAS;AAC7B,oBAAgB;AAAA,EAClB;AACF;AAEO,SAAS,UAAa,IAAgB;AAC3C,QAAM,aAAa;AACnB,kBAAgB;AAChB,MAAI;AACF,WAAO,GAAG;AAAA,EACZ,UAAE;AACA,oBAAgB;AAAA,EAClB;AACF;;;AC5JO,IAAM,aAAN,MAAoB;AAAA,EAGzB,YACU,UACR;AADQ;AAHV,0BAAiB;AAAA,EAId;AAAA,EAEI,UACL,gBACA,OACA,UACc;AACd,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,QAAI;AACJ,QAAI,iBAAiB;AAErB,QAAI,KAAK,UAAU;AACjB,UAAI;AACF,kBAAU,KAAK,SAAS,QAAQ;AAAA,MAClC,SAAS,KAAK;AACZ,YAAI,SAAS,OAAO;AAClB,cAAI;AACF,qBAAS,MAAM,GAAG;AAAA,UACpB,SAAS,GAAG;AACV,oBAAQ,MAAM,+CAA+C,CAAC;AAAA,UAChE;AAAA,QACF,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,aAAa,MAAM;AACjB,YAAI,eAAgB;AACpB,yBAAiB;AACjB,YAAI,SAAS;AACX,cAAI;AACF,oBAAQ;AAAA,UACV,SAAS,KAAK;AACZ,oBAAQ,MAAM,yBAAyB,GAAG;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EA0BO,QAAQ,YAA2D;AACxE,QAAI,WAAW,WAAW,GAAG;AAC3B,aAAO;AAAA,IACT;AACA,WAAO,WAAW,OAAO,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAW;AAAA,EAC9D;AACF;AAEO,SAAS,KAAQ,UAAsC;AAC5D,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI;AACF,iBAAW,SAAS,UAAU;AAC5B,iBAAS,KAAK,KAAK;AAAA,MACrB;AACA,eAAS,WAAW;AAAA,IACtB,SAAS,KAAK;AACZ,eAAS,QAAQ,GAAG;AAAA,IACtB;AAAA,EACF,CAAC;AACH;AAEO,SAAS,SAAS,IAAgC;AACvD,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI,QAAQ;AACZ,UAAM,KAAK,YAAY,MAAM;AAC3B,eAAS,KAAK,OAAO;AAAA,IACvB,GAAG,EAAE;AACL,WAAO,MAAM,cAAc,EAAE;AAAA,EAC/B,CAAC;AACH;AAEO,SAAS,MAAS,QAA4B;AACnD,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI;AACF,aAAO,QAAQ,CAAC,UAAU,SAAS,KAAK,KAAK,CAAC;AAC9C,eAAS,WAAW;AAAA,IACtB,SAAS,KAAK;AACZ,eAAS,QAAQ,GAAG;AAAA,IACtB;AAAA,EACF,CAAC;AACH;AAEO,SAAS,WACd,UACe;AACf,SAAO,IAAI,WAAc,QAAQ;AACnC;AAEO,SAAS,SACd,KACA,UACuB;AACvB,QAAM,MAAM,OAAsB,MAAS;AAE3C,QAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ;AACnC,QAAI,QAAQ;AAAA,EACd,CAAC;AAED,WAAS,YAAY;AAAA,IACnB,GAAI,SAAS,aAAa,CAAC;AAAA,IAC3B,MAAM,MAAM,YAAY;AAAA,EAC1B;AAEA,SAAO;AACT;AAEO,SAAS,aAAa,OAAqB;AAChD,SAAO,SAAS,MAAM,mBAAmB;AAC3C;AAGO,SAAS,IAAU,IAA6C;AACrE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,qBAAS,KAAK,GAAG,KAAK,CAAC;AAAA,UACzB,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,OACd,WACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,gBAAI,UAAU,KAAK,GAAG;AACpB,uBAAS,KAAK,KAAK;AAAA,YACrB;AAAA,UACF,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,IAAO,IAAgD;AACrE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,eAAG,KAAK;AACR,qBAAS,KAAK,KAAK;AAAA,UACrB,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,KAAQ,OAAuC;AAC7D,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,QAAQ;AACZ,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI,QAAQ,OAAO;AACjB,qBAAS,KAAK,KAAK;AACnB;AACA,gBAAI,UAAU,OAAO;AACnB,uBAAS,WAAW;AACpB,2BAAa,YAAY;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,KAAQ,OAAuC;AAC7D,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,UAAU;AACd,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI,UAAU,OAAO;AACnB;AAAA,UACF,OAAO;AACL,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAgB,IAAoC;AAClE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI;AACJ,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,uBAAa,SAAS;AACtB,sBAAY,WAAW,MAAM;AAC3B,qBAAS,KAAK,KAAK;AAAA,UACrB,GAAG,EAAE;AAAA,QACP;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM;AACX,qBAAa,SAAS;AACtB,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAgB,IAAoC;AAClE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,WAAW;AACf,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,gBAAM,MAAM,KAAK,IAAI;AACrB,cAAI,MAAM,YAAY,IAAI;AACxB,uBAAW;AACX,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,qBACd,SACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,UAAU;AACd,UAAI;AACJ,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,gBAAM,aACJ,CAAC,YAAY,UAAU,CAAC,QAAQ,MAAM,KAAK,IAAI,SAAS;AAE1D,cAAI,YAAY;AACd,sBAAU;AACV,mBAAO;AACP,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,UACd,IACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,oBAAyC;AAC7C,YAAM,oBAAoB,OAAO;AAAA,QAC/B,CAAC,UAAU;AACT,cAAI,mBAAmB;AACrB,8BAAkB,YAAY;AAAA,UAChC;AACA,cAAI;AACF,kBAAM,kBAAkB,GAAG,KAAK;AAChC,gCAAoB,gBAAgB;AAAA,cAClC,CAAC,eAAe,SAAS,KAAK,UAAU;AAAA,cACxC,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,YAC/B;AAAA,UACF,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM;AACX,YAAI,mBAAmB;AACrB,4BAAkB,YAAY;AAAA,QAChC;AACA,0BAAkB,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,SACd,IACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,qBAAqC,CAAC;AAC5C,UAAI,gBAAgB;AACpB,UAAI,cAAc;AAElB,YAAM,gBAAgB,MAAM;AAC1B,YAAI,iBAAiB,gBAAgB,GAAG;AACtC,mBAAS,WAAW;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,oBAAoB,OAAO;AAAA,QAC/B,CAAC,UAAU;AACT,cAAI;AACF,kBAAM,kBAAkB,GAAG,KAAK;AAChC;AACA,kBAAM,WAAW,gBAAgB;AAAA,cAC/B,CAAC,eAAe,SAAS,KAAK,UAAU;AAAA,cACxC,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,cAC7B,MAAM;AACJ;AACA,8BAAc;AAAA,cAChB;AAAA,YACF;AACA,+BAAmB,KAAK,QAAQ;AAAA,UAClC,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM;AACJ,0BAAgB;AAChB,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,aAAO,MAAM;AACX,2BAAmB,QAAQ,CAAC,QAAQ,IAAI,YAAY,CAAC;AACrD,0BAAkB,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,UACd,IACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,QAAa,CAAC;AACpB,UAAI,oBAAyC;AAC7C,UAAI,gBAAgB;AACpB,UAAI,eAAe;AAEnB,YAAM,cAAc,MAAM;AACxB,YAAI,gBAAgB,MAAM,WAAW,GAAG;AACtC,cAAI,iBAAiB,MAAM,WAAW,GAAG;AACvC,qBAAS,WAAW;AAAA,UACtB;AACA;AAAA,QACF;AAEA,uBAAe;AACf,cAAM,QAAQ,MAAM,MAAM;AAE1B,YAAI;AACF,gBAAM,kBAAkB,GAAG,KAAK;AAChC,8BAAoB,gBAAgB;AAAA,YAClC,CAAC,eAAe,SAAS,KAAK,UAAU;AAAA,YACxC,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,YAC7B,MAAM;AACJ,6BAAe;AACf,0BAAY;AAAA,YACd;AAAA,UACF;AAAA,QACF,SAAS,KAAK;AACZ,mBAAS,QAAQ,GAAG;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,oBAAoB,OAAO;AAAA,QAC/B,CAAC,UAAU;AACT,gBAAM,KAAK,KAAK;AAChB,sBAAY;AAAA,QACd;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM;AACJ,0BAAgB;AAChB,cAAI,MAAM,WAAW,KAAK,CAAC,cAAc;AACvC,qBAAS,WAAW;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAEA,aAAO,MAAM;AACX,YAAI,mBAAmB;AACrB,4BAAkB,YAAY;AAAA,QAChC;AACA,0BAAkB,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,WACd,SACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU,SAAS,KAAK,KAAK;AAAA,QAC9B,CAAC,QAAQ;AACP,cAAI;AACF,kBAAM,WAAW,QAAQ,GAAG;AAC5B,kBAAM,cAAc,SAAS;AAAA,cAC3B,CAAC,UAAU,SAAS,KAAK,KAAK;AAAA,cAC9B,CAAC,MAAM,SAAS,QAAQ,CAAC;AAAA,cACzB,MAAM,SAAS,WAAW;AAAA,YAC5B;AACA,YAAC,aAAqB,aAAa;AAAA,UACrC,SAAS,GAAG;AACV,qBAAS,QAAQ,CAAC;AAAA,UACpB;AAAA,QACF;AAAA,QACA,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM;AACX,YAAK,aAAqB,YAAY;AACpC,UAAC,aAAqB,WAAW,YAAY;AAAA,QAC/C;AACA,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAgB,QAAqC;AACnE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,aAAO,QAAQ,CAAC,UAAU,SAAS,KAAK,KAAK,CAAC;AAC9C,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU,SAAS,KAAK,KAAK;AAAA,QAC9B,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,KACd,aACA,MACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,MAAM;AACV,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,kBAAM,YAAY,KAAK,KAAK;AAC5B,qBAAS,KAAK,GAAG;AAAA,UACnB,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,OACd,aACA,MACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,MAAM;AACV,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,kBAAM,YAAY,KAAK,KAAK;AAAA,UAC9B,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM;AACJ,mBAAS,KAAK,GAAG;AACjB,mBAAS,WAAW;AAAA,QACtB;AAAA,MACF;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;;;ACjjBO,IAAM,UAAN,cAAyB,WAAc;AAAA,EAM5C,cAAc;AACZ,UAAM;AANR,SAAU,cAAgC,oBAAI,IAAI;AAClD,SAAU,eAAe;AACzB,SAAU,YAAY;AACtB,SAAU,eAAoB;AAAA,EAI9B;AAAA,EAEO,eAA8B;AACnC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,KAAK,UAAU,QAAQ;AAC5C,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AAAA,EAEO,UACL,gBACA,OACA,UACc;AACd,QAAI,KAAK,cAAc;AACrB,YAAM,MACJ,OAAO,mBAAmB,aAAa,EAAE,SAAS,IAAI;AACxD,UAAI,WAAW;AACf,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,QAAI,KAAK,WAAW;AAClB,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,SAAK,YAAY,IAAI,QAAQ;AAE7B,WAAO;AAAA,MACL,aAAa,MAAM;AACjB,aAAK,YAAY,OAAO,QAAQ;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEO,KAAK,OAAgB;AAC1B,QAAI,KAAK,gBAAgB,KAAK,UAAW;AAEzC,UAAM,qBAAqB,MAAM,KAAK,KAAK,WAAW;AACtD,uBAAmB,QAAQ,CAAC,aAAa;AACvC,UAAI,KAAK,YAAY,IAAI,QAAQ,GAAG;AAClC,YAAI;AACF,mBAAS,KAAK,KAAK;AAAA,QACrB,SAAS,KAAK;AACZ,kBAAQ,MAAM,sBAAsB,GAAG;AAAA,QACzC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,MAAM,KAAgB;AAC3B,QAAI,KAAK,gBAAgB,KAAK,UAAW;AAEzC,SAAK,YAAY;AACjB,SAAK,eAAe;AAEpB,eAAW,YAAY,KAAK,aAAa;AACvC,eAAS,QAAQ,GAAG;AAAA,IACtB;AAEA,SAAK,YAAY,MAAM;AAAA,EACzB;AAAA,EAEO,WAAiB;AACtB,QAAI,KAAK,gBAAgB,KAAK,UAAW;AAEzC,SAAK,eAAe;AACpB,UAAM,qBAAqB,MAAM,KAAK,KAAK,WAAW;AAEtD,uBAAmB,QAAQ,CAAC,aAAa;AACvC,UAAI,SAAS,UAAU;AACrB,YAAI;AACF,mBAAS,SAAS;AAAA,QACpB,SAAS,KAAK;AACZ,kBAAQ,MAAM,8BAA8B,GAAG;AAAA,QACjD;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,YAAY,MAAM;AAAA,EACzB;AACF;;;AC5FO,IAAM,kBAAN,cAAiC,QAAW;AAAA,EAGjD,YAAY,cAAiB;AAC3B,UAAM;AACN,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAW,SAAY;AACrB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,KAAK,OAAgB;AAC1B,SAAK,SAAS;AACd,UAAM,KAAK,KAAK;AAAA,EAClB;AAAA,EAEO,UACL,gBACA,OACA,UACc;AACd,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,QAAI,KAAK,WAAW;AAClB,eAAS,QAAQ,KAAK,YAAY;AAClC,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,QAAI,KAAK,cAAc;AACrB,eAAS,WAAW;AACpB,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,aAAS,KAAK,KAAK,MAAM;AACzB,WAAO,MAAM,UAAU,QAAQ;AAAA,EACjC;AACF;;;ACzCO,IAAe,gBAAf,MAA6B;AAAA,EAA7B;AACL,qBAA+B,CAAC;AAAA;AAAA,EAIhC,SAAe;AAAA,EAAC;AAAA,EAEhB,YAAkB;AAChB,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,SAAS,IAAgB;AACvB,SAAK,UAAU,KAAK,EAAE;AAAA,EACxB;AAGF;;;ACnBA,IAAI,aAA0C,SAAU,YAAY,QAAQ,KAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,IAAI,WAAW,CAAC,EAAG,MAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AAEA,IAAI,aAAa,MAAMC,YAAW;AAAA,EAC9B,IAAI,KAAK,EAAE,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AAC9C,WAAO,IAAI,WAAW,CAAC,eAAe;AAClC,YAAM,aAAa,IAAI,gBAAgB;AACvC,YAAM,KAAK;AAAA,QACP,QAAQ;AAAA,QACR,GAAG;AAAA,QACH,QAAQ,WAAW;AAAA,MACvB,CAAC,EACI,KAAK,OAAO,QAAQ;AACrB,YAAI,CAAC,IAAI,IAAI;AACT,gBAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,KAAK,IAAI,UAAU,EAAE;AAAA,QAC3D;AACA,YAAI,WAAW,QAAQ;AACnB,gBAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,qBAAW,KAAK,UAAU,KAAK,MAAM,KAAK,UAAU,IAAI,GAAG,OAAO,IAAI,IAAI;AAC1E,qBAAW,WAAW;AACtB;AAAA,QACJ;AACA,YAAI,WAAW,OAAO;AAClB,qBAAW,KAAK,GAAG;AACnB,qBAAW,WAAW;AACtB;AAAA,QACJ;AACA,cAAM,SAAS,IAAI,MAAM,UAAU;AACnC,YAAI,CAAC,QAAQ;AACT,gBAAM,IAAI,MAAM,8BAA8B;AAAA,QAClD;AACA,cAAM,UAAU,IAAI,YAAY;AAChC,YAAI,SAAS;AACb,eAAO,MAAM;AACT,gBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,cAAI,MAAM;AACN,gBAAI,WAAW,YAAY,OAAO,KAAK,GAAG;AACtC,kBAAI;AACA,2BAAW,KAAK,KAAK,MAAM,QAAQ,OAAO,CAAC;AAAA,cAC/C,SACO,KAAK;AACR,wBAAQ,KAAK,qCAAqC,GAAG;AAAA,cACzD;AAAA,YACJ;AACA;AAAA,UACJ;AACA,gBAAM,QAAQ,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AACpD,cAAI,WAAW,QAAQ;AACnB,uBAAW,KAAK,KAAK;AACrB;AAAA,UACJ;AACA,cAAI,WAAW,UAAU;AACrB,sBAAU;AACV,kBAAM,QAAQ,OAAO,MAAM,IAAI;AAC/B,qBAAS,MAAM,IAAI;AACnB,uBAAW,QAAQ,OAAO;AACtB,kBAAI,KAAK,KAAK,GAAG;AACb,oBAAI;AACA,6BAAW,KAAK,KAAK,MAAM,MAAM,OAAO,CAAC;AAAA,gBAC7C,SACO,KAAK;AACR,0BAAQ,MAAM,gCAAgC,MAAM,GAAG;AAAA,gBAC3D;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AACA,mBAAW,WAAW;AAAA,MAC1B,CAAC,EACI,MAAM,CAAC,QAAQ;AAChB,YAAI,IAAI,SAAS,cAAc;AAC3B,kBAAQ,IAAI,iBAAiB;AAAA,QACjC;AACA,mBAAW,QAAQ,GAAG;AAAA,MAC1B,CAAC;AACD,aAAO,MAAM;AACT,mBAAW,MAAM;AAAA,MACrB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,KAAK,KAAK,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AACrD,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,QAAI,QAAQ,CAAC,QAAQ,IAAI,cAAc,GAAG;AACtC,cAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAClD;AACA,UAAM,gBAAgB,SAAS,SACzB,OAAO,SAAS,WACZ,OACA,KAAK,UAAU,IAAI,IACvB;AACN,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,QACF,GAAG;AAAA,QACH,QAAQ;AAAA,QACR;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,IAAI,KAAK,SAAS;AACd,WAAO,KAAK,QAAQ,KAAK,OAAO,OAAO;AAAA,EAC3C;AAAA,EACA,MAAM,KAAK,SAAS;AAChB,WAAO,KAAK,QAAQ,KAAK,SAAS,OAAO;AAAA,EAC7C;AAAA,EACA,OAAO,KAAK,SAAS;AACjB,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB,GAAG;AAAA,MACH,MAAM;AAAA,QACF,GAAG,SAAS;AAAA,QACZ,QAAQ;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,QAAQ,KAAK,QAAQ,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AAChE,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,QAAI,QAAQ,CAAC,QAAQ,IAAI,cAAc,GAAG;AACtC,cAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAClD;AACA,UAAM,gBAAgB,SAAS,SACzB,OAAO,SAAS,WACZ,OACA,KAAK,UAAU,IAAI,IACvB;AACN,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,QACF,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AACA,aAAa,WAAW;AAAA,EACpB,WAAW;AACf,GAAG,UAAU;AAEb,IAAI,mBAAmB,MAAMC,kBAAiB;AAC9C;AACA,mBAAmB,WAAW;AAAA,EAC1B,OAAO;AAAA,IACH,WAAW,CAAC,UAAU;AAAA,IACtB,SAAS,CAAC,UAAU;AAAA,EACxB,CAAC;AACL,GAAG,gBAAgB;;;ACvIZ,IAAM,MAAN,MAAM,KAAI;AAAA,EA+Df,YAAoB,MAAmB;AAAnB;AA7DpB,SAAQ,cAAc,oBAAI,IAAyB;AA8DjD,SAAK,OAAO,IAAI,MAAM,MAAM,CAAC,KAAK,OAAO;AACvC,MAAC,IAAoB,YAAY,EAAE;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAhEA;AAAA,SAAwB,gBAAgB;AAAA;AAAA,EACxC;AAAA,SAAwB,WAAW,oBAAI,IAAI;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA;AAAA,EAQM,aAAaC,MAAwB;AAC1C,UAAM,EAAE,SAAS,MAAM,IAAI,KAAK,SAASA,MAAK,KAAK,IAAI;AAEvD,QAAIA,KAAI,MAAM,OAAO;AACnB,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,SAAK,KAAK,OAAO,OAAO;AAAA,EAC1B;AAAA,EAEO,aAAaA,MAAwB;AAC1C,QAAI,CAACA,KAAI,IAAI;AACX,cAAQ,KAAK,8BAA8B;AAC3C;AAAA,IACF;AAEA,UAAM,cAAc,KAAK,KAAK,SAASA,KAAI,EAAE;AAE7C,QAAI,aAAa;AACf,YAAM,cAAc,CAAC,GAAG,YAAY,QAAQ;AAC5C,kBAAY,WAAW,CAAC;AAExB,YAAM,EAAE,SAAS,MAAM,IAAI,KAAK;AAAA,QAC9BA;AAAA,QACA,YAAY,UAAU,KAAK;AAAA,MAC7B;AAEA,kBAAY,OAAO,OAAO;AAE1B,UAAI,OAAO;AACT,oBAAY,WAAW,MAAM;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,cAAQ,KAAK,iBAAiBA,KAAI,EAAE,+BAA+B;AACnE,WAAK,aAAaA,IAAG;AAAA,IACvB;AAAA,EACF;AAAA,EAEQ,SACNA,MACA,SACa;AACb,QAAIA,QAAO,MAAM;AACf,aAAO,EAAE,SAAS,SAAS,uBAAuB,EAAE;AAAA,IACtD;AAEA,QAAI,MAAM,QAAQA,IAAG,GAAG;AACtB,aAAO,KAAK,WAAWA,MAAK,OAAO;AAAA,IACrC;AAEA,QAAI,KAAK,YAAYA,IAAG,GAAG;AACzB,aAAO,KAAK,cAAc,OAAOA,IAAG,GAAG,OAAO;AAAA,IAChD;AAEA,QAAIA,KAAI,aAAa,wBAAwB;AAC3C,aAAO,KAAK,sBAAsBA,MAAK,OAAO;AAAA,IAChD;AAEA,QAAIA,KAAI,aAAa,uBAAuB;AAC1C,aAAO,KAAK,qBAAqBA,MAAK,OAAO;AAAA,IAC/C;AAEA,QAAI,mBAAmBA,IAAG,GAAG;AAC3B,aAAO,KAAK,sBAAsBA,MAAK,OAAO;AAAA,IAChD;AAEA,YAAQ,MAAM,qBAAqBA,IAAG;AACtC,UAAM,IAAI;AAAA,MACR,0BAA0B,OAAOA,IAAG,cAAc,OAAOA,KAAI,QAAQ,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EAEQ,qBAAqBA,MAAU,QAA4B;AACjE,UAAM,gBAAgBA,KAAI,MAAM;AAChC,UAAM,EAAE,IAAI,MAAAC,OAAM,KAAK,IAAI;AAE3B,UAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,cAAU,QAAQ,kBAAkB;AAEpC,UAAM,QAAQ,IAAI,MAAM,WAAW,CAAC,KAAK,OAAO;AAC9C,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AAED,QAAID,KAAI,IAAI;AACV,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,WAAO,SAAS,KAAK;AAErB,SAAK,oBAAoBC,OAAM,MAAMD,KAAI,OAAO,SAAS;AAEzD,WAAO,EAAE,SAAS,WAAW,MAAM;AAAA,EACrC;AAAA,EAEQ,sBAAsBA,MAAU,QAA4B;AAClE,UAAM,QAAQA,KAAI;AAClB,UAAM,MAAM,SAAS,cAAc,KAAK;AACxC,QAAI,QAAQ,MAAM;AAClB,QAAI,YAAY;AAChB,QAAI,cAAc;AAElB,UAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,KAAK,OAAO;AACxC,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AACD,UAAM,MAAM,KAAK;AACjB,WAAO,SAAS,KAAK;AAErB,UAAM,iBAAiB,KAAK,YAAY,IAAI,KAAK;AACjD,QAAI,gBAAgB;AAClB,iBAAW,MAAM,KAAK,wBAAwB,OAAO,cAAc,GAAG,CAAC;AAAA,IACzE;AAEA,WAAO,EAAE,SAAS,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEA,wBAAwB,OAAe,SAA4B;AACjE,UAAM,QAAQ,KAAK,KAAK,SAAS,KAAK;AACtC,QAAI,CAAC,OAAO;AACV,cAAQ,KAAK,aAAa,KAAK,YAAY;AAC3C,WAAK,YAAY,IAAI,OAAO,OAAO;AACnC;AAAA,IACF;AAEA,QAAI;AACF,YAAM,WAAW,CAAC;AAElB,YAAM,EAAE,SAAS,OAAO,SAAS,IAAI,KAAK,SAAS,SAAS,KAAK;AAEjE,YAAM,OAAO,OAAO;AAEpB,UAAI,UAAU;AACZ,cAAM,WAAW,SAAS;AAAA,MAC5B;AAEA,WAAK,YAAY,OAAO,KAAK;AAAA,IAC/B,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK,KAAK,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EAEQ,cAAc,MAAc,QAA4B;AAC9D,UAAM,WAAW,SAAS,eAAe,IAAI;AAC7C,UAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,KAAK,OAAO;AAC7C,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AACD,WAAO,SAAS,KAAK;AACrB,WAAO,EAAE,SAAS,UAAU,MAAM;AAAA,EACpC;AAAA,EAEQ,YAAY,MAAoB;AACtC,WACE,OAAO,SAAS,YAChB,OAAO,SAAS,YAChB,OAAO,SAAS;AAAA,EAEpB;AAAA,EAEQ,WAAW,OAAsB,QAA4B;AACnE,UAAM,WAAW,SAAS,uBAAuB;AACjD,UAAM,SAAkB,CAAC;AAEzB,UAAM,QAAQ,CAAC,UAAU;AACvB,YAAM,EAAE,SAAS,MAAM,IAAI,KAAK,SAAS,OAAO,MAAM;AACtD,eAAS,YAAY,OAAO;AAC5B,UAAI,OAAO;AACT,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS,SAAS;AAAA,EAC7B;AAAA,EAEQ,SAAS,KAAsB;AACrC,WAAO,KAAI,SAAS,IAAI,GAAG;AAAA,EAC7B;AAAA,EAEQ,sBAAsBA,MAAkB,QAA4B;AAC1E,UAAM,MAAMA,KAAI;AAChB,UAAM,QAAQ,KAAK,SAAS,GAAG;AAG/B,UAAM,MAAM,QACR,SAAS,gBAAgB,KAAI,eAAe,GAAG,IAC/C,SAAS,cAAc,GAAG;AAE9B,UAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,KAAK,OAAO;AACxC,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AAED,WAAO,SAAS,KAAK;AAErB,QAAIA,KAAI,IAAI;AACV,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,QAAIA,KAAI,OAAO;AACb,WAAK,gBAAgBA,KAAI,OAAO,KAAK,OAAO,KAAK;AAAA,IACnD;AAEA,QAAIA,KAAI,OAAO,YAAY,MAAM;AAC/B,YAAM,EAAE,SAAS,SAAS,IAAI,KAAK,SAASA,KAAI,MAAM,UAAU,KAAK;AACrE,UAAI,YAAY,QAAQ;AAAA,IAC1B;AAEA,WAAO,EAAE,SAAS,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEQ,gBACN,OACA,KACA,OACA,QAAiB,OACX;AACN,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,UAAI,QAAQ,cAAc,SAAS,MAAM;AACvC;AAAA,MACF;AAEA,YAAM,UAAU,KAAK,sBAAsB,GAAG;AAE9C,UAAI,YAAY,WAAW,OAAO,UAAU,UAAU;AACpD,aAAK,YAAY,OAAO,GAAkB;AAC1C;AAAA,MACF;AAEA,UAAI,OAAO,UAAU,WAAW;AAC9B,aAAK,oBAAoB,SAAS,OAAO,KAAK,KAAK;AACnD;AAAA,MACF;AAGA,UAAI,OAAO;AACT,aAAK,gBAAgB,SAAS,OAAO,KAAK,GAAG,GAAG;AAAA,MAClD,OAAO;AACL,YAAI,aAAa,SAAS,OAAO,KAAK,CAAC;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,gBAAgB,KAAa,OAAe,KAAoB;AAEtE,QAAI,QAAQ,UAAU,QAAQ,cAAc;AAC1C,UAAI,eAAe,gCAAgC,QAAQ,KAAK;AAAA,IAClE,OAAO;AACL,UAAI,aAAa,KAAK,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEQ,sBAAsB,KAAqB;AACjD,QAAI,QAAQ,YAAa,QAAO;AAChC,QAAI,QAAQ,UAAW,QAAO;AAC9B,WAAO;AAAA,EACT;AAAA,EAEQ,YAAY,QAA6B,KAAwB;AACvE,UAAM,cAAc,OAAO,QAAQ,MAAM,EACtC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACf,YAAM,WAAW,EAAE,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE;AACjE,aAAO,GAAG,QAAQ,IAAI,CAAC;AAAA,IACzB,CAAC,EACA,KAAK,GAAG;AACX,QAAI,aAAa,SAAS,WAAW;AAAA,EACvC;AAAA,EAEQ,oBACN,KACA,OACA,KACA,QAAiB,OACX;AACN,QAAI,OAAO;AACT,UAAI,aAAa,KAAK,EAAE;AAAA,IAC1B,OAAO;AACL,UAAI,gBAAgB,GAAG;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,MAAc,oBACZC,OACA,MACA,OACA,WACe;AACf,QAAI;AAeF,UAASC,YAAT,SAAkB,KAAkBC,WAAoB;AACtD,YAAI,KAAK,IAAI,GAAG,EAAG;AACnB,aAAK,IAAI,GAAG;AAEZ,QAAAA,UAAS,YAAY;AAAA,UACnB,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACT,CAAC;AAED,cAAM,YACJ,QAAQ,YAAY,mBAAmB,GAAG,KAAK,CAAC;AAElD,cAAM,eACJ,QAAQ,YAAY,gBAAgB,GAAG,KAAK,CAAC;AAE/C,kBACG,OAAO,CAAC,MAAM,KAAK,MAAM,MAAM,EAC/B,QAAQ,CAAC,MAAMA,UAAS,YAAY,CAAC,CAAC;AAEzC,qBAAa,QAAQ,CAAC,SAASD,UAAS,MAAMC,SAAQ,CAAC;AAAA,MACzD;AArBS,qBAAAD;AAdT,YAAM,SAAS,MAAM,OAAOD;AAC5B,YAAM,iBAA8B,OAAO,IAAI;AAE/C,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,MAAM,aAAa,IAAI,iBAAiBA,KAAI,EAAE;AAAA,MAC1D;AAEA,YAAM,WAAW,mBAAmB;AACpC,UAAI,YAAY,MAAM;AACpB,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAEA,YAAM,OAAO,oBAAI,IAAiB;AAyBlC,MAAAC,UAAS,gBAAgB,QAAQ;AAEjC,YAAM,aAAa,EAAE,GAAG,MAAM;AAC9B,aAAO,WAAW;AAElB,YAAM,WAAW,SAAS,QAAQ,cAAc;AAChD,eAAS,aAAa;AACtB,eAAS,QAAQ;AAEjB,UAAI,OAAO,SAAS,UAAU,YAAY;AACxC,cAAM,IAAI,MAAM,aAAa,IAAI,6BAA6B;AAAA,MAChE;AAEA,YAAM,WAAW,SAAS,MAAM;AAEhC,gBAAU,YAAY,QAAQ;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,mCAAmC,IAAI,KAAK,KAAK;AAE/D,gBAAU,cAAc,4BAA4B,IAAI;AACxD,gBAAU,YAAY;AAAA,IACxB;AAAA,EACF;AACF;;;ACvbO,SAAS,QAAQ,SAAe;AACrC,SAAO,SAAS,QAAQ,oBAAoB,QAAQ;AACtD;;;ACAO,IAAe,YAAf,MAAyB;AAAA,EAAzB;AACL,SAAQ,UAAqB,CAAC;AAC9B,SAAQ,eAAwB;AAChC,SAAQ,cAA6C,oBAAI,IAAI;AAAA;AAAA,EAItD,QAAQ,SAAkB;AAC/B,SAAK,QAAQ,KAAK,OAAO;AACzB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,UAAU,KAAa,SAAyB;AACrD,QAAI,CAAC,KAAK,YAAY,IAAI,GAAG,GAAG;AAC9B,WAAK,YAAY,IAAI,KAAK,CAAC,CAAC;AAAA,IAC9B;AACA,SAAK,YAAY,IAAI,GAAG,EAAG,KAAK,OAAO;AAAA,EACzC;AAAA,EAEO,YAAY,KAAa,SAAyB;AACvD,UAAM,WAAW,KAAK,YAAY,IAAI,GAAG;AACzC,QAAI,UAAU;AACZ,YAAM,QAAQ,SAAS,QAAQ,OAAO;AACtC,UAAI,QAAQ,IAAI;AACd,iBAAS,OAAO,OAAO,CAAC;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,UAAU;AACtB,QAAI,KAAK,aAAc;AAEvB,SAAK,eAAe;AAEpB,WAAO,KAAK,QAAQ,SAAS,GAAG;AAC9B,YAAM,UAAU,KAAK,QAAQ,MAAM;AACnC,YAAM,WAAW,KAAK,YAAY,IAAI,QAAQ,KAAK;AAEnD,UAAI,UAAU;AACZ,mBAAW,WAAW,UAAU;AAC9B,gBAAM,QAAQ,OAAO;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,SAAK,eAAe;AAAA,EACtB;AACF;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,OAAOE,cAA6C;AACpD,OAAO,UAAU;AACjB,SAAS,MAAMC,eAAc;AAC7B,SAAS,cAAc;;;ACUvB,OAAO,aAAa;AACpB,YAAY,UAAU;AAdtB,IAAIC,cAA0C,SAAU,YAAY,QAAQ,KAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,IAAI,WAAW,CAAC,EAAG,MAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AACA,IAAI,aAA0C,SAAU,GAAG,GAAG;AAC1D,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,QAAO,QAAQ,SAAS,GAAG,CAAC;AAC3G;AACA,IAAI,UAAoC,SAAU,YAAY,WAAW;AACrE,SAAO,SAAU,QAAQ,KAAK;AAAE,cAAU,QAAQ,KAAK,UAAU;AAAA,EAAG;AACxE;AAIO,IAAM,oBAAN,MAAM,mBAAkB;AAAA,EAC3B,OAAO,QAAQ,SAAS;AACpB,QAAI,qBAAqB,MAAM,mBAAmB;AAAA,MAC9C,YAAY,KAAK;AACb,aAAK,MAAM;AACX,YAAI,CAAC,KAAK;AACN,gBAAM,IAAI,MAAM,gCAAgC;AACpD,cAAM,eAAoB,aAAQ,QAAQ,QAAQ;AAClD,cAAM,YAAiB,UAAK,cAAc,YAAY;AACtD,aAAK,IAAI,IAAI,QAAQ,OAAO,YAAY,CAAC;AACzC,aAAK,IAAI,IAAI,MAAM,CAAC,KAAK,QAAQ;AAC7B,cAAI,SAAS,SAAS;AAAA,QAC1B,CAAC;AAAA,MACL;AAAA,IACJ;AACA,yBAAqBA,YAAW;AAAA,MAC5B,WAAW;AAAA,MACX,QAAQ,GAAG,OAAO,sBAAsB,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,MACxD,WAAW,qBAAqB,CAAC,MAAM,CAAC;AAAA,IAC5C,GAAG,kBAAkB;AACrB,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,WAAW;AAAA,QACP;AAAA,UACI,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,MACA,SAAS,CAAC,kBAAkB;AAAA,IAChC;AAAA,EACJ;AACJ;;;AC/CA,IAAIC,cAA0C,SAAU,YAAY,QAAQ,KAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,IAAI,WAAW,CAAC,EAAG,MAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AAEA,IAAI,QAAQ,MAAMC,eAAc,UAAU;AAAA,EACtC,cAAc;AACV,UAAM,GAAG,SAAS;AAClB,SAAK,SAAS,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA,SAAS,MAAM,QAAQ;AACnB,SAAK,OAAO,IAAI,MAAM,MAAM;AAAA,EAChC;AAAA,EACA,KAAK,IAAI,SAAS;AACd,UAAM,QAAQ,KAAK,OAAO,IAAI,EAAE;AAChC,QAAI,OAAO;AACP,YAAM,KAAK;AAAA,QACP;AAAA,QACA,GAAG;AAAA,QACH,MAAM;AAAA,MACV,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AACA,QAAQD,YAAW;AAAA,EACf,WAAW;AACf,GAAG,KAAK;AAED,IAAM,cAAN,MAAM,aAAY;AAAA,EACrB,OAAO,UAAU;AACb,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,WAAW;AAAA,QACP;AAAA,UACI,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,MACA,SAAS,CAAC,KAAK;AAAA,IACnB;AAAA,EACJ;AACJ;;;AC1CO,IAAM,WAAN,MAAe;AAAA,EACb,KAAK,WAAwB;AAAA,EAAC;AAAA,EAE9B,QAAQ,WAAwB;AAAA,EAAC;AAAA,EAEjC,SAAS;AAAA,EAAC;AAAA,EAEV,YAAY;AAAA,EAAC;AAAA,EAEb,YAAY;AAAA,EAAC;AAAA,EAEb,eAAe;AAAA,EAAC;AAAA,EAEhB,iBAAiB;AAAA,EAAC;AAAA,EAElB,QAAQ;AAAA,EAAC;AAClB;AAEO,IAAM,eAAN,MAAM,cAAa;AAAA,EACxB,OAAO,UAAyB;AAC9B,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,WAAW,CAAC,QAAQ;AAAA,MACpB,SAAS,CAAC,QAAQ;AAAA,IACpB;AAAA,EACF;AACF;;;AHgBA,SAAS,mBAAmB,SAAiB;AAC3C,SAAO;AAAA,IACL,UAAU;AAAA,IACV,IAAIE,QAAO;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OACE;AAAA,MACF,UAAU;AAAA,QACR;AAAA,UACE,UAAU;AAAA,UACV,IAAIA,QAAO;AAAA,UACX,MAAM;AAAA,UACN,OAAO,EAAE,UAAU,QAAQ;AAAA,UAC3B,KAAK;AAAA,QACP;AAAA,QACA;AAAA,UACE,UAAU;AAAA,UACV,IAAIA,QAAO;AAAA,UACX,MAAM;AAAA,UACN,OAAO,EAAE,UAAU,QAAQ;AAAA,UAC3B,KAAK;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK;AAAA,EACP;AACF;AAEA,IAAM,sBAAN,MAA0B;AAAA,EACxB,OAAe,SAAS,KAAwC;AAC9D,UAAM,CAAC,SAAS,QAAQ,IAAI,IAAI,MAAM,GAAG;AACzC,WAAO,CAAC,SAAS,IAAI,gBAAgB,YAAY,EAAE,CAAC;AAAA,EACtD;AAAA,EAEA,OAAe,kBACb,iBACA,aAC+B;AAC/B,QAAI,gBAAgB,WAAW,YAAY,OAAQ,QAAO;AAE1D,UAAM,QAAgC,CAAC;AAEvC,aAAS,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;AAC/C,YAAM,UAAU,gBAAgB,CAAC;AAEjC,UAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,cAAM,YAAY,QAAQ,MAAM,CAAC;AACjC,cAAM,SAAS,IAAI,mBAAmB,YAAY,CAAC,CAAC;AAAA,MACtD,WAAW,YAAY,YAAY,CAAC,GAAG;AACrC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAe,mBACb,cACA,WACA,cACwB;AACxB,UAAM,QAAgC,CAAC;AACvC,UAAM,cAAc,aAAa,MAAM,GAAG,EAAE,OAAO,OAAO;AAE1D,eAAW,SAAS,aAAa;AAC/B,YAAM,aAAa,MAAM,SAAS,GAAG;AACrC,YAAM,YAAY,aAAa,MAAM,MAAM,GAAG,EAAE,IAAI;AACpD,YAAM,aAAa,UAAU,IAAI,SAAS;AAE1C,UAAI,eAAe,MAAM;AACvB,YAAI,CAAC,YAAY;AACf,gBAAM,IAAI;AAAA,YACR,qCAAqC,SAAS,gBAAgB,YAAY;AAAA,UAC5E;AAAA,QACF;AACA;AAAA,MACF;AAEA,YAAM,SAAS,IAAI,mBAAmB,UAAU;AAAA,IAClD;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAc,MAAM,KAAgC;AAClD,UAAM,aAAa,MAAM,IAA8B,YAAY;AACnE,QAAI,CAAC,WAAY,QAAO;AAExB,UAAM,CAAC,SAAS,SAAS,IAAI,KAAK,SAAS,GAAG;AAC9C,UAAM,cAAc,QAAQ,MAAM,GAAG,EAAE,OAAO,OAAO;AAErD,eAAW,CAAC,EAAE,SAAS,KAAK,WAAW,QAAQ,GAAG;AAChD,YAAM,eAAe,QAAQ,YAAY,iBAAiB,SAAS;AACnE,UAAI,CAAC,aAAc;AAEnB,YAAM,CAAC,aAAa,YAAY,IAAI,aAAa,MAAM,GAAG;AAC1D,YAAM,kBAAkB,YAAY,MAAM,GAAG,EAAE,OAAO,OAAO;AAE7D,YAAM,YAAY,KAAK,kBAAkB,iBAAiB,WAAW;AACrE,UAAI,cAAc,KAAM;AAExB,YAAM,aAAa,eACf,KAAK,mBAAmB,cAAc,WAAW,YAAY,IAC7D,CAAC;AAEL,aAAO;AAAA,QACL;AAAA,QACA,OAAO,EAAE,GAAG,WAAW,GAAG,WAAW;AAAA,MACvC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAM,gCAAN,MAAoC;AAAA,EAClC,YACmB,UACA,KACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEK,sBACN,SACA,UACA,OACM;AACN,UAAM,gBAAgB,QAAQ,QAAQ,QAAQ,SAAS,EAAE;AAAA,MAAO,CAAC,QAC/D,QAAQ,eAAe,eAAe,QAAQ,WAAW,GAAG;AAAA,IAC9D;AAEA,eAAW,aAAa,eAAe;AACrC,YAAM,YAAY,QAAQ;AAAA,QACxB;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,MACF;AAEA,YAAM,UAAU,SAAS,SAAS;AAClC,YAAM,UAAU,WAAW,CAAC,SAAS,QAAQ,KAAK,UAAU,IAAI,CAAC;AAAA,IACnE;AAAA,EACF;AAAA,EAEQ,gBACN,KACA,YACA,cACO;AACP,UAAM,OAAO,MAAM,aAAa,MAAM,EAAE,KAAK,MAAS;AAEtD,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,YAAM,OAAO,WAAW,CAAC;AACzB,UAAI,CAAC,KAAM;AAEX,YAAM,SAAS,KAAK,eAAe,KAAK,KAAK,IAAI;AACjD,WAAK,CAAC,IAAI,KAAK,MAAM,SAAS,KAAK,GAAG,IAAI;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,eAAe,KAAc,MAA6B;AAChE,YAAQ,MAAM;AAAA,MACZ;AACE,eAAO,IAAI;AAAA,MACb;AACE,eAAO,IAAI;AAAA,MACb;AACE,eAAO,IAAI;AAAA,MACb;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAAA,EAEA,MAAc,mBACZ,QACA,KACA,OACe;AACf,QAAI,IAAI,YAAa;AAErB,QAAI,SAAS,kBAAkB,YAAY;AACzC,aAAO,UAAU;AAAA,QACf,MAAM,CAAC,SAAc;AACnB,cAAI,MAAM,SAAS,KAAK,UAAU,IAAI,CAAC;AAAA;AAAA,CAAM;AAAA,QAC/C;AAAA,QACA,OAAO,CAAC,QAAa;AACnB,kBAAQ,MAAM,cAAc,GAAG;AAC/B,cAAI,IAAI;AAAA,QACV;AAAA,QACA,UAAU,MAAM;AACd,cAAI,IAAI;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH,WAAW,WAAW,QAAW;AAC/B,UAAI,KAAK,MAAM;AAAA,IACjB,OAAO;AACL,UAAI,IAAI;AAAA,IACV;AAAA,EACF;AAAA,EAEQ,oBACN,SACA,UACA,QACM;AACN,UAAM,UAAU,QAAQ,QAAQ,QAAQ,SAAS,EAAE;AAAA,MAAO,CAAC,QACzD,QAAQ,eAAe,iBAAiB,QAAQ,WAAW,GAAG;AAAA,IAChE;AAEA,eAAW,aAAa,SAAS;AAC/B,WAAK,mBAAmB,SAAS,UAAU,WAAW,MAAM;AAAA,IAC9D;AAAA,EACF;AAAA,EAEQ,mBACN,SACA,UACA,WACA,QACM;AACN,UAAM,aAAa,QAAQ;AAAA,MACzB;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AAEA,UAAM,YACJ,QAAQ,YAAY,UAAU,QAAQ,WAAW,SAAS,KAAK;AAEjE,UAAM,WAAW,KAAK,cAAc,QAAQ,SAAS;AACrD,UAAM,QAAQ,QAAQ;AAAA,MACpB;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AACA,UAAM,aACJ,QAAQ,YAAY,iBAAiB,QAAQ,WAAW,SAAS,KAAK,CAAC;AAEzE,SAAK,IAAI,UAAU,EAAE,UAAU,OAAO,KAAK,QAAQ;AACjD,UAAI;AACF,YAAI,OAAO;AACT,cAAI,UAAU,gBAAgB,mBAAmB;AACjD,cAAI,UAAU,iBAAiB,UAAU;AACzC,cAAI,UAAU,cAAc,YAAY;AAAA,QAC1C;AAEA,cAAM,eACJ,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,UACR;AAAA,QACF,KAAK,CAAC;AAER,cAAM,OAAO,KAAK,gBAAgB,KAAK,YAAY,YAAY;AAC/D,cAAM,SAAS,MAAM,SAAS,SAAS,EAAE,GAAG,IAAI;AAEhD,cAAM,KAAK,mBAAmB,QAAQ,KAAK,KAAK;AAAA,MAClD,SAAS,KAAU;AACjB,YAAI,KAAK,IAAI,OAAO;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,cAAc,QAAgB,WAA2B;AAC/D,UAAM,mBACJ,WAAW,MAAM,KAAK,IAAI,OAAO,QAAQ,cAAc,EAAE,CAAC;AAE5D,WACE,GAAG,gBAAgB,IAAI,SAAS,GAC7B,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,EAAE,KAAK;AAAA,EAE7B;AAAA,EAEO,SAAS,SAA4B;AAC1C,UAAM,WAAW,KAAK,SAAS,QAAQ,OAAO;AAC9C,UAAM,SACJ,QAAQ,YAAY,uBAAuB,OAAO,KAAK;AACzD,UAAM,QAAQ,KAAK,SAAS,QAAQ,KAAK;AAEzC,SAAK,sBAAsB,SAAS,UAAU,KAAK;AACnD,SAAK,oBAAoB,SAAS,UAAU,MAAM;AAAA,EACpD;AACF;AAEA,IAAM,oBAAN,MAAwB;AAAA,EACtB,YAA6B,YAAyB;AAAzB;AAAA,EAA0B;AAAA,EAEhD,QACL,eACA,MAKA;AACA,QAAI,kBAAkB,UAAa,kBAAkB,KAAK;AACxD,YAAM,YAAY,QAAQ,YAAY,WAAW,KAAK,UAAU;AAEhE,UAAI,CAAC,WAAW;AACd,eAAO;AAAA,UACL,WAAW;AAAA,UACX,OAAO,CAAC;AAAA,UACR,OAAO,mBAAmB,mCAAmC;AAAA,QAC/D;AAAA,MACF;AAEA,aAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,OAAO,kBAAkB,UAAU;AACrC,aAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO,CAAC;AAAA,QACR,OAAO,mBAAmB,mCAAmC;AAAA,MAC/D;AAAA,IACF;AAEA,QAAI,cAAc,WAAW,GAAG,GAAG;AACjC,YAAM,SAAS,oBAAoB,MAAM,aAAa;AAEtD,UAAI,CAAC,QAAQ;AACX,eAAO;AAAA,UACL,WAAW;AAAA,UACX,OAAO,CAAC;AAAA,UACR,OAAO;AAAA,YACL,iCAAiC,aAAa;AAAA,UAChD;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL,WAAW,OAAO;AAAA,QAClB,OAAO,OAAO;AAAA,QACd,OAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,YAAY,MACf,IAA8B,YAAY,GACzC,IAAI,aAAa;AAErB,QAAI,CAAC,WAAW;AACd,aAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO,CAAC;AAAA,QACR,OAAO,mBAAmB,cAAc,aAAa,iBAAiB;AAAA,MACxE;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,kBAAN,MAAsB;AAAA,EACpB,YACmB,UACA,mBACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAc,gBACZ,UACA,WACA,OACA,KACe;AACf,UAAM,SAAS,SAAS,OAAO,IAAI,WAAW,KAAK,CAAC;AACpD,qBAAiB,SAAS,QAAQ;AAChC,UAAI,MAAM,KAAK,UAAU,OAAO,mBAAmB,IAAI,IAAI;AAAA,IAC7D;AAAA,EACF;AAAA,EAEA,MAAc,YACZ,UACA,cACA,KACe;AACf,QAAI;AACF,YAAM,SAAS,SAAS,OAAO,YAAY;AAC3C,uBAAiB,SAAS,QAAQ;AAChC,YAAI,MAAM,KAAK,UAAU,OAAO,mBAAmB,IAAI,IAAI;AAAA,MAC7D;AAAA,IACF,SAAS,UAAU;AACjB,cAAQ,MAAM,2BAA2B,QAAQ;AACjD,UAAI;AAAA,QACF,KAAK;AAAA,UACH;AAAA,YACE,UAAU;AAAA,YACV,IAAIA,QAAO;AAAA,YACX,MAAM;AAAA,YACN,OAAO,EAAE,UAAU,0BAA0B;AAAA,YAC7C,KAAK;AAAA,UACP;AAAA,UACA;AAAA,QACF,IAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,KAAc,KAA8B;AAC9D,UAAM,WAAW,IAAI,eAAe,KAAK,QAAQ;AACjD,UAAM,gBAAgB,IAAI,MAAM;AAEhC,QAAI;AACF,YAAM,EAAE,WAAW,OAAO,MAAM,IAAI,KAAK,kBAAkB;AAAA,QACzD;AAAA,QACA,IAAI;AAAA,MACN;AAEA,UAAI,OAAO;AACT,cAAM,KAAK,YAAY,UAAU,OAAO,GAAG;AAC3C,YAAI,IAAI;AACR;AAAA,MACF;AAEA,YAAM,KAAK,gBAAgB,UAAU,WAAY,OAAO,GAAG;AAAA,IAC7D,SAAS,KAAK;AACZ,cAAQ,MAAM,oBAAoB,GAAG;AACrC,YAAM,eAAe;AAAA,QACnB,eAAe,QAAQ,IAAI,UAAU;AAAA,MACvC;AACA,YAAM,KAAK,YAAY,UAAU,cAAc,GAAG;AAAA,IACpD;AAEA,QAAI,IAAI;AAAA,EACV;AACF;AAEA,IAAM,gBAAN,MAAoB;AAAA,EAClB,OAAc,MAAM,QAAqB,UAA0B;AACjE,UAAM,KAAK,IAAI,OAAO,MAAM;AAE5B,OAAG,GAAG,cAAc,CAAC,WAAW;AAC9B,YAAM,QAAQ,SAAS,QAAQ,KAAK;AAEpC,YAAM,SAAS,OAAO,IAAI;AAAA,QACxB,MAAM,CAAC,YAAY;AACjB,aAAG,GAAG,OAAO,EAAE,EAAE,KAAK,WAAW,OAAO;AAAA,QAC1C;AAAA,MACF,CAAC;AAED,aAAO,GAAG,WAAW,CAAC,QAAQ;AAC5B,cAAM,EAAE,GAAG,IAAI;AACf,YAAI,OAAO,UAAU;AACnB,gBAAM,QAAQ,GAAG;AAAA,QACnB,OAAO;AACL,gBAAM,KAAK,IAAI,GAAG;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,cAAN,MAAkB;AAAA,EACvB,OAAe,mBAAmB,YAA8B;AAC9D,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,UAAU,SAAS,QAAQ,UAAU;AAC3C,UAAM,aAAa,SAAS,SAAS,OAAO;AAE5C,QAAI,CAAC,WAAW,OAAO;AACrB,cAAQ,MAAM,yBAAyB,WAAW,OAAO,KAAK,MAAM,CAAC;AACrE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAe,mBACb,SACA,KACA,YACU;AACV,UAAM,eAAe,4BAA4B,OAAO;AACxD,UAAM,kBAAkB;AAAA,MACtB,GAAG,MAAM,IAAsB,kBAAkB;AAAA,IACnD,EAAE,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAE5C,UAAM,YAAY,QAAQ,YAAY,WAAW,UAAU;AAE3D,WAAO,IAAI,SAAS;AAAA,MAClB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,EAAE,SAAS,WAAW,UAAU,OAAO;AAAA,MACvC,EAAE,SAAS,sBAAsB,UAAU,IAAI;AAAA,MAC/C;AAAA,QACE,SAAS;AAAA,QACT,UAAU,YAAY,IAAI,WAAW,CAAC,CAAC,IAAI;AAAA,MAC7C;AAAA,MACA,EAAE,SAAS,OAAO,UAAU,OAAO,OAAO,KAAK;AAAA,IACjD,CAAC;AAAA,EACH;AAAA,EAEA,OAAe,oBACb,SACA,UACA,KACM;AACN,UAAM,sBAAsB,IAAI;AAAA,MAC9B;AAAA,MACA;AAAA,IACF;AACA,UAAM,kBAAkB;AAAA,MACtB,GAAG,MAAM,IAAsB,kBAAkB;AAAA,IACnD;AAEA,oBAAgB,QAAQ,CAAC,SAAS,oBAAoB,SAAS,IAAI,CAAC;AAEpE,YAAQ,SAAS,CAAC,SAAc;AAC9B,YAAM,YAAY,CAAC,GAAG,KAAK,aAAa,EAAE,OAAO,CAAC;AAElD,YAAM,cAAc,UAAU;AAAA,QAAO,CAAC,aACpC,QAAQ,YAAY,YAAY,SAAS,OAAO;AAAA,MAClD;AAEA,kBAAY,QAAQ,CAAC,MAAM,oBAAoB,SAAS,EAAE,QAAS,CAAC;AAEpE,gBACG,OAAO,CAAC,aAAa,SAAS,KAAK,EACnC,QAAQ,CAAC,MAAM,SAAS,QAAQ,EAAE,OAAO,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AAAA,EAEA,OAAe,cACb,KACA,UACA,YACM;AACN,UAAM,oBAAoB,IAAI,kBAAkB,UAAU;AAC1D,UAAM,aAAa,IAAI,gBAAgB,UAAU,iBAAiB;AAElE,QAAI,KAAK,QAAQ,CAAC,KAAK,QAAQ,WAAW,OAAO,KAAK,GAAG,CAAC;AAAA,EAC5D;AAAA,EAEA,aAAoB,OAAO,YAA+C;AACxE,UAAM,MAAMC,SAAQ;AACpB,QAAI,IAAIA,SAAQ,KAAK,CAAC;AAEtB,UAAM,SAAS,KAAK,aAAa,GAAG;AAEpC,UAAM,UAAU,KAAK,mBAAmB,UAAU;AAElD,UAAM,eAAe,KAAK,mBAAmB,SAAS,KAAK,UAAU;AACrE,uBAAmB,YAAY;AAE/B,SAAK,oBAAoB,SAAS,cAAc,GAAG;AAEnD,SAAK,cAAc,KAAK,cAAc,UAAU;AAEhD,kBAAc,MAAM,QAAQ,YAAY;AAExC,WAAO;AAAA,EACT;AACF;",
|
|
4
|
+
"sourcesContent": ["import \"reflect-metadata\";\n\nimport * as shared from \"./shared\";\nexport { shared };\n\nexport * from \"./shared/types\";\nexport * from \"./shared/symbols\";\nexport * from \"./shared/decorators\";\nexport * from \"./shared/module\";\nexport * from \"./shared/jsx\";\nexport * from \"./shared/observable\";\nexport * from \"./shared/signal\";\nexport * from \"./shared/json\";\nexport * from \"./shared/component\";\nexport * from \"./shared/module_libs\";\nexport * from \"./shared/dom\";\nexport * from \"./shared/macros\";\n\nimport * as node from \"./node\";\nexport { node };\n\nexport * from \"./node/factory\";\nexport * from \"./node/modules\";\n", "export * from \"./decorators\";\nexport * from \"./symbols\";\nexport * from \"./types\";\nexport * from \"./module\";\nexport * from \"./jsx\";\nexport * from \"./renderers\";\nexport * from \"./json\";\nexport * from \"./signal\";\nexport * from \"./observable\";\nexport * from \"./store\";\nexport * from \"./component\";\nexport * from \"./module_libs\";\nexport * from \"./dom\";\nexport * from \"./macros\";\nexport * from \"./providers\";\n", "class Store {\n private namespace = new Map<string, unknown>();\n\n set<T>(name: string, value: T): void {\n this.namespace.set(name, value);\n }\n\n get<T>(name: string): T | undefined {\n return this.namespace.get(name) as T | undefined;\n }\n\n update<T>(name: string, updater: (current: T | undefined) => T): void {\n const current = this.get<T>(name);\n const next = updater(current);\n this.set(name, next);\n }\n}\n\nexport const store = new Store();\n", "export const DECLARATIONS_KEY = Symbol(\"orca:declarations\");\nexport const PROVIDERS_KEY = Symbol(\"orca:providers\");\nexport const CONTROLLERS_KEY = Symbol(\"orca:controllers\");\nexport const BOOTSTRAP = Symbol(\"orca:bootstrap\");\nexport const BOOTSTRAP_VNODE = Symbol(\"orca:bootstrap:vnode\");\nexport const IMPORTS_KEY = Symbol(\"orca:imports\");\nexport const EXPORTS_KEY = Symbol(\"orca:exports\");\nexport const INJECTABLE = Symbol(\"orca:injectable\");\nexport const COMPONENT = Symbol(\"orca:component\");\nexport const COMPONENT_PROVIDERS = Symbol(\"orca:component:providers\");\nexport const COMPONENT_DEPS = Symbol(\"orca:component:deps\");\nexport const COMPONENT_ROUTE = Symbol(\"orca:component:route\");\nexport const INJECT_TOKENS_KEY = Symbol(\"orca:injectTokens\");\nexport const NODE = Symbol(\"orca:node\");\nexport const DESIGN_PARAMTYPES = \"design:paramtypes\";\nexport const CONTROLLER = Symbol(\"orca:controller\");\nexport const CONTROLLER_PREFIX_KEY = Symbol(\"orca:controllerPrefix\");\nexport const PARAMS_META_KEY = Symbol(\"orca:paramsMeta\");\nexport const HTTP_METHOD_KEY = Symbol(\"orca:method\");\nexport const PATH_KEY = Symbol(\"orca:path\");\nexport const EXPRESS_ADAPTER_HOST = Symbol(\"orca:express\");\nexport const SIGNATURE_METADATA_KEY = Symbol(\"orca:signature:schemas\");\nexport const SSE_ROUTE = Symbol(\"orca:sse:route\");\nexport const EVENT_HANDLER = Symbol(\"orca:event:handler\");\n\n// over the wire symbols\nexport const ERROR_ELEMENT = Symbol.for(\"orca:error\");\nexport const ORCA_ELEMENT_TYPE = Symbol.for(\"orca:element\");\nexport const ORCA_FRAGMENT_TYPE = Symbol.for(\"orca:fragment\");\nexport const ORCA_CLIENT_COMPONENT = Symbol.for(\"orca.client.component\");\nexport const PENDING_REFERENCE_TYPE = Symbol.for(\"orca:pending_reference\");\n", "export type Constructor<T = any> = new (...args: any[]) => T;\n\nexport type Token<T> = Constructor<T> | string | symbol;\n\nexport type Scope = \"singleton\" | \"transient\";\n\nexport interface Provider<T = any> {\n provide: Token<T>;\n useClass?: Constructor<T>;\n useValue?: T;\n useFactory?: (...args: any[]) => T;\n scope?: Scope;\n useExisting?: Token<T>;\n deps?: Token<any>[];\n eager?: boolean;\n}\n\nexport interface DynamicModule {\n module: Constructor;\n providers?: (Provider | Constructor)[];\n controllers?: Constructor[];\n declarations?: Constructor[];\n imports?: IModule[];\n exports?: Token<any>[];\n}\n\nexport type IModule = Constructor | DynamicModule;\n\nexport interface ModuleParams {\n declarations?: Constructor[];\n controllers?: Constructor[];\n providers?: (Provider | Constructor)[];\n imports?: IModule[];\n exports?: Token<any>[];\n bootstrap?: Constructor;\n}\n\nexport interface ComponentParams {\n providers?: (Provider | Constructor)[];\n deps?: Constructor[];\n route?: string;\n}\n\nexport interface InjectParams {\n maybe?: boolean;\n}\n\nexport interface InjectedToken<T> {\n token: Token<T>;\n maybe?: boolean;\n}\n\nexport enum HandlerParamType {\n ROUTE_PARAM = \"ROUTE_PARAM\",\n BODY = \"BODY\",\n QUERY = \"QUERY\",\n HEADERS = \"HEADERS\",\n REQUEST = \"REQUEST\",\n RESPONSE = \"RESPONSE\",\n}\n\nexport enum HttpMethod {\n GET = \"get\",\n POST = \"post\",\n}\n\nexport type MethodDecorator = <T>(\n target: Object,\n propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<T>\n) => void | TypedPropertyDescriptor<T>;\n\nexport interface Signal<T> {\n get value(): T;\n set value(newValue: T);\n}\n\nexport type Subscriber = () => void;\n\nexport interface Observer<T> {\n next: (value: T) => void;\n error?: (err: any) => void;\n complete?: () => void;\n}\n\nexport type ValidatableSchema = {\n parse: (input: any) => any;\n};\n\nexport interface ControllerParams {\n providedIn?: string;\n}\n\nexport interface Option {\n send: (message: Message) => void;\n}\n\nexport interface Message {\n to: string;\n from: string;\n data: any;\n event: string;\n}\n\nexport type MessageHandler = (data: any) => void | Promise<void>;\n", "import { store } from \"./store\";\nimport { BOOTSTRAP, COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, COMPONENT_ROUTE, CONTROLLER, CONTROLLER_PREFIX_KEY, CONTROLLERS_KEY, DECLARATIONS_KEY, EVENT_HANDLER, EXPORTS_KEY, HTTP_METHOD_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, INJECTABLE, PARAMS_META_KEY, PATH_KEY, PROVIDERS_KEY, SIGNATURE_METADATA_KEY, SSE_ROUTE, } from \"./symbols\";\nimport { HandlerParamType, HttpMethod, } from \"./types\";\nexport function Module(params = {}) {\n return function (target) {\n Reflect.defineMetadata(PROVIDERS_KEY, params.providers || [], target);\n Reflect.defineMetadata(DECLARATIONS_KEY, params.declarations || [], target);\n Reflect.defineMetadata(IMPORTS_KEY, params.imports || [], target);\n Reflect.defineMetadata(EXPORTS_KEY, params.exports || [], target);\n Reflect.defineMetadata(CONTROLLERS_KEY, params.controllers || [], target);\n Reflect.defineMetadata(BOOTSTRAP, params.bootstrap, target);\n };\n}\nexport function Injectable() {\n return function (target) {\n Reflect.defineMetadata(INJECTABLE, true, target);\n return target;\n };\n}\nexport function Component(params = {}) {\n return function (target) {\n store.update(\"components\", (current) => {\n const next = current ?? new Map();\n next.set(target.name, target);\n if (params.route) {\n const [pathPattern] = params.route.split(\"?\");\n next.set(pathPattern, target);\n }\n return next;\n });\n if (params.route) {\n Reflect.defineMetadata(COMPONENT_ROUTE, params.route, target);\n }\n Reflect.defineMetadata(COMPONENT, true, target);\n Reflect.defineMetadata(COMPONENT_PROVIDERS, params.providers || [], target);\n Reflect.defineMetadata(COMPONENT_DEPS, params.deps || [], target);\n return target;\n };\n}\nexport function Inject(token, params = {}) {\n return function (target, _propertyKey, parameterIndex) {\n const existingTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, target) || new Map();\n existingTokens.set(parameterIndex, {\n token: token,\n ...params,\n });\n Reflect.defineMetadata(INJECT_TOKENS_KEY, existingTokens, target);\n };\n}\nexport function Controller(prefix, options = {}) {\n return function (target) {\n Injectable()(target);\n if (options.providedIn == \"root\") {\n store.update(\"root_controllers\", (current) => {\n const next = current ?? new Set();\n next.add(target);\n return next;\n });\n }\n Reflect.defineMetadata(CONTROLLER_PREFIX_KEY, prefix ?? \"/\", target);\n Reflect.defineMetadata(CONTROLLER, true, target);\n };\n}\nfunction getHandlerParamDecorator(type, key) {\n return function (target, methodName, index) {\n const paramsMeta = Reflect.getMetadata(PARAMS_META_KEY, target, methodName) ?? {};\n paramsMeta[index] = { key, type };\n Reflect.defineMetadata(PARAMS_META_KEY, paramsMeta, target, methodName);\n };\n}\nexport function Param(key) {\n return getHandlerParamDecorator(HandlerParamType.ROUTE_PARAM, key);\n}\nexport function Body(key) {\n return getHandlerParamDecorator(HandlerParamType.BODY, key);\n}\nexport function Query(key) {\n return getHandlerParamDecorator(HandlerParamType.QUERY, key);\n}\nfunction getRouteDecorator(httpMethod, path) {\n return function (target, key, descriptor) {\n Reflect.defineMetadata(HTTP_METHOD_KEY, httpMethod, target, key);\n Reflect.defineMetadata(PATH_KEY, path, target, key);\n };\n}\nexport function Get(path) {\n return getRouteDecorator(HttpMethod.GET, path ?? \"\");\n}\nexport function Post(path) {\n return getRouteDecorator(HttpMethod.POST, path ?? \"\");\n}\nexport function Sse(path) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(SSE_ROUTE, true, target, propertyKey);\n Reflect.defineMetadata(PATH_KEY, path, target, propertyKey);\n Reflect.defineMetadata(HTTP_METHOD_KEY, HttpMethod.GET, target, propertyKey);\n };\n}\nexport function Subscribe(pattern) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(EVENT_HANDLER, pattern, target, propertyKey);\n };\n}\nexport function Signature(...schemas) {\n return function (target, propertyKey, descriptor) {\n Reflect.defineMetadata(SIGNATURE_METADATA_KEY, schemas, target, propertyKey);\n const originalMethod = descriptor.value;\n descriptor.value = async function (...args) {\n return originalMethod.apply(this, args);\n };\n return descriptor;\n };\n}\nexport function getSignatureMetadata(target, propertyKey) {\n return Reflect.getMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function hasSignature(target, propertyKey) {\n return Reflect.hasMetadata(SIGNATURE_METADATA_KEY, target, propertyKey);\n}\nexport function parseSignatureSchemas(schemas, paramCount) {\n if (schemas.length === 0) {\n return { paramSchemas: [] };\n }\n if (schemas.length === 1) {\n return {\n paramSchemas: [],\n returnSchema: schemas[0],\n };\n }\n const paramSchemas = schemas.slice(0, -1);\n const returnSchema = schemas[schemas.length - 1];\n if (paramSchemas.length !== paramCount) {\n throw new Error(`@Signature decorator has ${paramSchemas.length} parameter schemas but method has ${paramCount} parameters. They must match.`);\n }\n return { paramSchemas, returnSchema };\n}\n", "import { Constructor, Provider, Token } from \"../types\";\n\nexport class ProviderNormalizer {\n static normalize(provider: Provider | Constructor): Provider {\n if (typeof provider === \"function\") {\n return { provide: provider, useClass: provider, scope: \"singleton\" };\n }\n return { scope: \"singleton\", ...provider };\n }\n}\n\nexport class Node {\n private children: Node[] = [];\n private tokens = new Map<Token<any>, Token<any>[]>();\n private exports: Set<Token<any>> = new Set();\n private providers = new Map<Token<any>, Provider>();\n\n constructor(public name: string) {}\n\n traverse(cb: (node: Node) => void) {\n cb(this);\n this.children.forEach((child) => child.traverse(cb));\n }\n\n addProviders(providers: (Provider | Constructor)[]) {\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providers.set(normalized.provide, normalized);\n });\n }\n\n getProviders(): Map<Token<any>, Provider> {\n return this.providers;\n }\n\n setChildren(children: Node[]) {\n this.children = children;\n }\n\n addToken(token: Token<any>, dependencies: Token<any>[]) {\n this.tokens.set(token, dependencies);\n }\n\n addExport(token: Token<any>) {\n this.exports.add(token);\n }\n\n getTokens(): Map<Token<any>, Token<any>[]> {\n return this.tokens;\n }\n\n getExports(): Set<Token<any>> {\n return this.exports;\n }\n\n getChildren(): Node[] {\n return this.children;\n }\n}\n", "import { COMPONENT, COMPONENT_DEPS, COMPONENT_PROVIDERS, CONTROLLERS_KEY, DECLARATIONS_KEY, DESIGN_PARAMTYPES, EXPORTS_KEY, IMPORTS_KEY, INJECT_TOKENS_KEY, PROVIDERS_KEY, } from \"../symbols\";\nimport { Node } from \"./node\";\nexport class Compiler {\n constructor() {\n this.nodes = new Map();\n }\n compile(rootModule) {\n return this.createNode(rootModule);\n }\n createNode(moduleOrDynamic) {\n const target = this.isDynamicModule(moduleOrDynamic)\n ? moduleOrDynamic.module\n : moduleOrDynamic;\n if (this.nodes.has(target.name))\n return this.nodes.get(target.name);\n const node = new Node(target.name);\n this.nodes.set(target.name, node);\n const imports = this.getImports(moduleOrDynamic);\n node.setChildren(imports.map((imp) => this.createNode(imp)));\n const providers = this.getProviders(moduleOrDynamic);\n const controllers = this.getControllers(moduleOrDynamic);\n const declarations = this.getDeclarations(moduleOrDynamic);\n [...providers, ...controllers].forEach((item) => {\n const token = this.getProviderToken(item);\n const deps = this.extractDependencies(item);\n node.addToken(token, deps);\n });\n node.addProviders(providers);\n declarations.forEach((dec) => {\n node.addProviders([{ provide: dec, useClass: dec, scope: \"transient\" }]);\n });\n controllers.forEach((ctrl) => {\n node.addProviders([\n { provide: ctrl, useClass: ctrl, scope: \"singleton\" },\n ]);\n });\n [...declarations, ...controllers].forEach((comp) => {\n if (Reflect.getMetadata(COMPONENT, comp)) {\n const constructorDeps = this.getConstructorDependencies(comp);\n node.addToken(comp, constructorDeps);\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, comp) || [];\n const allDeps = [...constructorDeps, ...componentDeps];\n node.addToken(comp, allDeps);\n const localProviders = Reflect.getMetadata(COMPONENT_PROVIDERS, comp) || [];\n node.addProviders(localProviders);\n localProviders.forEach((lp) => {\n const token = this.getProviderToken(lp);\n const deps = this.extractDependencies(lp);\n node.addToken(token, deps);\n });\n }\n });\n this.getExports(moduleOrDynamic).forEach((exp) => node.addExport(exp));\n return node;\n }\n validate(rootNode) {\n const errors = [];\n const allNodes = new Map();\n this.collectAllNodes(rootNode, allNodes);\n const tokenName = (token) => typeof token === \"function\" ? token.name : String(token);\n allNodes.forEach((node) => {\n const moduleName = node.name;\n const providedTokens = node.getTokens();\n const exportedTokens = node.getExports();\n for (const exp of exportedTokens) {\n if (!providedTokens.has(exp)) {\n errors.push(`EXPORT ERROR in module \"${moduleName}\":\\n` +\n ` Exports token \"${tokenName(exp)}\" but this module does not provide it.\\n` +\n ` \u2192 Add it to providers/controllers/declarations, or remove from exports.`);\n }\n }\n const seen = new Set();\n for (const token of providedTokens.keys()) {\n if (seen.has(token)) {\n errors.push(`DUPLICATE PROVIDER in module \"${moduleName}\":\\n` +\n ` Token \"${tokenName(token)}\" is registered more than once.\\n` +\n ` \u2192 Remove duplicate entries.`);\n }\n seen.add(token);\n }\n for (const [token, deps] of providedTokens) {\n for (const dep of deps) {\n if (providedTokens.has(dep))\n continue;\n const providingModule = this.findProvidingModule(dep, node, allNodes, new Set());\n if (!providingModule) {\n const consumer = tokenName(token);\n const missing = tokenName(dep);\n const possibleProviders = Array.from(allNodes.values())\n .filter((n) => n.getTokens().has(dep))\n .map((n) => n.name);\n let suggestion = \"\";\n if (possibleProviders.length > 0) {\n suggestion =\n `\\n \u2192 \"${missing}\" IS provided in: ${possibleProviders.join(\", \")}\\n` +\n ` \u2192 Ensure one of those modules exports it AND \"${moduleName}\" imports that module.`;\n }\n else {\n suggestion = `\\n \u2192 \"${missing}\" is not provided anywhere. Add a provider for it.`;\n }\n errors.push(`UNRESOLVED DEPENDENCY in module \"${moduleName}\":\\n` +\n ` \"${consumer}\" requires \"${missing}\"${suggestion}`);\n }\n }\n }\n providedTokens.forEach((deps, token) => {\n if (typeof token === \"function\" &&\n Reflect.getMetadata(COMPONENT, token)) {\n const componentDeps = Reflect.getMetadata(COMPONENT_DEPS, token) || [];\n componentDeps.forEach((depComp) => {\n if (typeof depComp === \"function\" &&\n !Reflect.getMetadata(COMPONENT, depComp)) {\n errors.push(`COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" lists \"${tokenName(depComp)}\" in deps\\n` +\n ` \u2192 \"${tokenName(depComp)}\" is not a component (missing @Component decorator)`);\n }\n if (!providedTokens.has(depComp)) {\n const providingMod = this.findProvidingModule(depComp, node, allNodes, new Set());\n if (!providingMod) {\n errors.push(`COMPONENT DEPENDENCY ERROR in module \"${moduleName}\":\\n` +\n ` Component \"${tokenName(token)}\" renders \"${tokenName(depComp)}\"\\n` +\n ` \u2192 \"${tokenName(depComp)}\" must be in declarations or imported`);\n }\n }\n });\n }\n });\n });\n return { valid: errors.length === 0, errors };\n }\n collectAllNodes(node, collected, visited = new Set()) {\n if (visited.has(node.name))\n return;\n visited.add(node.name);\n collected.set(node.name, node);\n node\n .getChildren()\n .forEach((child) => this.collectAllNodes(child, collected, visited));\n }\n findProvidingModule(token, fromNode, allNodes, visited = new Set()) {\n if (visited.has(fromNode.name))\n return null;\n visited.add(fromNode.name);\n for (const child of fromNode.getChildren()) {\n if (child.getTokens().has(token) && child.getExports().has(token)) {\n return child.name;\n }\n const found = this.findProvidingModule(token, child, allNodes, visited);\n if (found)\n return found;\n }\n return null;\n }\n getProviderToken(provider) {\n return typeof provider === \"function\" ? provider : provider.provide;\n }\n extractDependencies(item) {\n if (typeof item === \"object\" && \"deps\" in item && item.deps)\n return item.deps;\n if (typeof item === \"object\" && item.useClass)\n return this.getConstructorDependencies(item.useClass);\n if (typeof item === \"function\")\n return this.getConstructorDependencies(item);\n return [];\n }\n getConstructorDependencies(constructor) {\n const injectTokens = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, constructor) || new Map();\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, constructor) || [];\n return paramTypes\n .map((type, index) => {\n const injected = injectTokens.get(index);\n if (injected?.maybe) {\n return null;\n }\n return injected?.token ?? type;\n })\n .filter((token) => Boolean(token));\n }\n isDynamicModule(m) {\n return typeof m === \"object\" && \"module\" in m;\n }\n getImports(m) {\n if (this.isDynamicModule(m))\n return m.imports || [];\n return Reflect.getMetadata(IMPORTS_KEY, m) || [];\n }\n getProviders(m) {\n if (this.isDynamicModule(m))\n return m.providers || [];\n return Reflect.getMetadata(PROVIDERS_KEY, m) || [];\n }\n getControllers(m) {\n if (this.isDynamicModule(m))\n return m.controllers || [];\n return Reflect.getMetadata(CONTROLLERS_KEY, m) || [];\n }\n getDeclarations(m) {\n if (this.isDynamicModule(m))\n return m.declarations || [];\n return Reflect.getMetadata(DECLARATIONS_KEY, m) || [];\n }\n getExports(m) {\n if (this.isDynamicModule(m))\n return m.exports || [];\n return Reflect.getMetadata(EXPORTS_KEY, m) || [];\n }\n printDAG(node, indent = \"\", visited = new Set()) {\n if (visited.has(node.name)) {\n console.log(`${indent}${node.name} (circular)`);\n return;\n }\n visited.add(node.name);\n console.log(`${indent}${node.name}`);\n const tokens = node.getTokens();\n if (tokens.size > 0) {\n console.log(`${indent}\u251C\u2500 Tokens:`);\n Array.from(tokens.entries()).forEach(([token, deps], i, arr) => {\n const prefix = i === arr.length - 1 ? \"\u2514\u2500\" : \"\u251C\u2500\";\n const tokenName = typeof token === \"function\" ? token.name : String(token);\n const depStr = deps.length\n ? ` \u2192 [${deps\n .map((d) => (typeof d === \"function\" ? d.name : String(d)))\n .join(\", \")}]`\n : \"\";\n console.log(`${indent}\u2502 ${prefix} ${tokenName}${depStr}`);\n });\n }\n const exports = node.getExports();\n if (exports.size > 0) {\n const names = Array.from(exports).map((t) => typeof t === \"function\" ? t.name : String(t));\n console.log(`${indent}\u251C\u2500 Exports: [${names.join(\", \")}]`);\n }\n const children = node.getChildren();\n if (children.length > 0) {\n console.log(`${indent}\u2514\u2500 Imports:`);\n children.forEach((child, i) => {\n const isLast = i === children.length - 1;\n const childIndent = indent + (isLast ? \" \" : \"\u2502 \");\n this.printDAG(child, childIndent, new Set(visited));\n });\n }\n }\n}\n", "import { DESIGN_PARAMTYPES, INJECT_TOKENS_KEY } from \"../symbols\";\nimport { Constructor, InjectedToken, Provider, Token } from \"../types\";\nimport { Node, ProviderNormalizer } from \"./node\";\n\nexport class Injector {\n private instanceCache = new Map<Token<any>, any>();\n private providerMap = new Map<Token<any>, Provider>();\n private parent?: Injector;\n\n constructor(providers: Provider[], parent?: Injector) {\n this.parent = parent;\n providers.forEach((p) => {\n const normalized = ProviderNormalizer.normalize(p);\n this.providerMap.set(normalized.provide, normalized);\n });\n }\n\n addProvider(provider: Provider | Constructor) {\n const normalized = ProviderNormalizer.normalize(provider);\n this.providerMap.set(normalized.provide, normalized);\n }\n\n resolve<T>(token: Token<T>): T {\n if (this.instanceCache.has(token)) {\n return this.instanceCache.get(token);\n }\n\n const provider = this.providerMap.get(token);\n\n if (!provider) {\n if (this.parent) {\n return this.parent.resolve(token);\n }\n throw new Error(\n `No provider for token: ${\n typeof token === \"function\" ? token.name : String(token)\n }`\n );\n }\n\n const instance = this.createInstance(provider);\n\n if (provider.scope !== \"transient\") {\n this.instanceCache.set(token, instance);\n }\n\n return instance as T;\n }\n\n private createInstance(provider: Provider): any {\n if (\"useValue\" in provider && provider.useValue !== undefined)\n return provider.useValue;\n if (provider.useExisting) return this.resolve(provider.useExisting);\n if (provider.useFactory) {\n const deps = (provider.deps || []).map((d) => this.resolve(d));\n return provider.useFactory(...deps);\n }\n\n const Ctor = provider.useClass || (provider.provide as Constructor);\n const deps = provider.deps || this.getConstructorDeps(Ctor);\n\n return new Ctor(...deps.map((d) => this.resolve(d)));\n }\n\n private getConstructorDeps(ctor: Constructor): Token<any>[] {\n const injectTokens: Map<\n number,\n InjectedToken<any>\n > = Reflect.getOwnMetadata(INJECT_TOKENS_KEY, ctor) || new Map();\n\n const paramTypes = Reflect.getMetadata(DESIGN_PARAMTYPES, ctor) || [];\n\n return paramTypes\n .map((type: any, index: number) => {\n const injected = injectTokens.get(index);\n return injected?.token ?? type;\n })\n .filter((token: any): token is Token<any> => Boolean(token));\n }\n}\n\nexport function collectAllProvidersFromNode(\n node: Node,\n collected = new Set<Provider>()\n): Provider[] {\n node.getProviders().forEach((p) => collected.add(p));\n node\n .getChildren()\n .forEach((child) => collectAllProvidersFromNode(child, collected));\n return Array.from(collected);\n}\n", "import { Injector } from \"./injector\";\n\nlet currentInjector: Injector | null = null;\n\nexport function setCurrentInjector(injector: Injector) {\n currentInjector = injector;\n}\n\nexport function getCurrentInjector(): Injector | null {\n return currentInjector;\n}\n", "import { v4 as uuidv4 } from \"uuid\";\n\nimport { ORCA_ELEMENT_TYPE, ORCA_FRAGMENT_TYPE } from \"../symbols\";\nimport { JSX } from \"./types\";\n\nexport { JSX };\n\nexport function jsx(type: any, config: any, maybeKey?: any): JSX.Element {\n const key = maybeKey !== undefined ? maybeKey : config?.key ?? null;\n\n const props: any = {};\n\n if (config) {\n for (const propName in config) {\n if (propName === \"key\") continue;\n\n if (propName === \"ref\") continue;\n\n props[propName] = config[propName];\n }\n }\n\n if (props.children !== undefined) {\n props.children = normalizeChildren(props.children);\n }\n\n if (typeof type === \"function\" && type.defaultProps) {\n for (const propName in type.defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = type.defaultProps[propName];\n }\n }\n }\n\n return createVNode(type, props, key);\n}\n\nexport const jsxs = jsx;\n\nexport function Fragment(props: any): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: ORCA_FRAGMENT_TYPE,\n id: \"00000000-0000-0000-0000-000000000000\",\n props,\n key: null,\n };\n}\n\nfunction createVNode(\n type: any,\n props: any,\n key: string | number | null\n): JSX.Element {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type,\n props,\n key,\n };\n}\n\nfunction normalizeChildren(children: any): any {\n if (children === null || children === undefined) {\n return null;\n }\n\n if (!Array.isArray(children)) {\n return normalizeChild(children);\n }\n\n const normalized: any[] = [];\n\n for (let i = 0; i < children.length; i++) {\n const child = normalizeChild(children[i]);\n\n if (child === null) continue;\n\n if (Array.isArray(child)) {\n normalized.push(...child);\n } else {\n normalized.push(child);\n }\n }\n\n if (normalized.length === 0) return null;\n if (normalized.length === 1) return normalized[0];\n return normalized;\n}\n\nfunction normalizeChild(child: any): any {\n if (child === null || child === undefined || typeof child === \"boolean\") {\n return null;\n }\n\n if (typeof child === \"number\") {\n return String(child);\n }\n\n if (typeof child === \"string\" || child.$$typeof === ORCA_ELEMENT_TYPE) {\n return child;\n }\n\n if (Array.isArray(child)) {\n return child.map(normalizeChild).filter((c) => c !== null);\n }\n\n return String(child);\n}\n\nexport function isClassComponent(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" &&\n jsx.type.prototype &&\n typeof jsx.type.prototype.build === \"function\"\n );\n}\n\nexport function isIntrinsicElement(jsx: JSX.Element): boolean {\n return typeof jsx.type === \"string\";\n}\n\nexport function isFragment(jsx: JSX.Element): boolean {\n return (\n typeof jsx.type === \"function\" && jsx.type()?.type == ORCA_FRAGMENT_TYPE\n );\n}\n", "import { JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport { COMPONENT, COMPONENT_PROVIDERS } from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\nexport class StringRenderer {\n constructor(private rootInjector: Injector) {}\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector\n ): any {\n if (typeof vnode.type === \"function\") {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = parentInjector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n parentInjector\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n\n instance.props = vnode.props || {};\n\n const childVNode = instance.build();\n\n return this.render(childVNode, componentInjector);\n }\n\n if (typeof vnode.type === \"string\") {\n const { children, ...attrs } = vnode.props;\n\n const attrsStr = Object.entries(attrs)\n .map(([key, value]) => {\n if (value === true) return key;\n if (value === false || value === null || value === undefined)\n return \"\";\n return `${key}=\"${this.escapeHtml(String(value))}\"`;\n })\n .filter(Boolean)\n .join(\" \");\n\n const openTag = attrsStr\n ? `<${vnode.type} ${attrsStr}>`\n : `<${vnode.type}>`;\n\n const selfClosing = [\"img\", \"br\", \"hr\", \"input\", \"meta\", \"link\"];\n if (selfClosing.includes(vnode.type)) {\n return attrsStr ? `<${vnode.type} ${attrsStr} />` : `<${vnode.type} />`;\n }\n\n let childrenHtml = \"\";\n if (children !== undefined && children !== null) {\n if (Array.isArray(children)) {\n childrenHtml = children\n .map((child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return this.escapeHtml(String(child));\n }\n return this.render(child, parentInjector);\n })\n .join(\"\");\n } else if (typeof children === \"object\" && \"type\" in children) {\n childrenHtml = this.render(children, parentInjector);\n } else {\n childrenHtml = this.escapeHtml(String(children));\n }\n }\n\n return `${openTag}${childrenHtml}</${vnode.type}>`;\n }\n\n return \"\";\n }\n\n private escapeHtml(text: string): string {\n const map: Record<string, string> = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n };\n return text.replace(/[&<>\"']/g, (m) => map[m]);\n }\n}\n", "import { parseHTML } from \"linkedom\";\nimport { isClassComponent, isFragment, isIntrinsicElement, JSX } from \"../jsx\";\nimport { Injector, ProviderNormalizer } from \"../module\";\nimport {\n COMPONENT,\n COMPONENT_PROVIDERS,\n ERROR_ELEMENT,\n ORCA_ELEMENT_TYPE,\n PENDING_REFERENCE_TYPE,\n} from \"../symbols\";\nimport { Constructor, Provider } from \"../types\";\n\ninterface PendingEntry {\n abortController: AbortController;\n promise: Promise<any>;\n}\n\nexport interface StreamRendererOptions {\n timeout?: number;\n}\n\nexport class StreamRenderer {\n private options: Required<StreamRendererOptions>;\n private pending = new Map<string, PendingEntry>();\n private processedIds = new Set<string>();\n private queueResolvers: ((u: JSX.Element) => void)[] = [];\n private renderingNodes!: WeakSet<object>;\n private idCounter = 0;\n\n constructor(\n private rootInjector: Injector,\n options: StreamRendererOptions = {},\n ) {\n this.options = {\n timeout: options.timeout ?? 30000,\n };\n }\n\n render(\n vnode: JSX.Element,\n parentInjector: Injector = this.rootInjector,\n ): any {\n return this.stream(vnode, parentInjector);\n }\n\n private async *stream(vnode: JSX.Element, parentInjector: Injector) {\n this.pending.clear();\n this.queueResolvers = [];\n this.renderingNodes = new WeakSet();\n this.processedIds.clear();\n\n const nextUpdate = () =>\n new Promise<JSX.Element>((resolve) => this.queueResolvers.push(resolve));\n\n try {\n const root = this.buildSyncTree(vnode, parentInjector);\n yield { ...root, action: \"insert\" };\n\n while (this.pending.size > 0) {\n const update = await nextUpdate();\n yield update;\n }\n } finally {\n this.cleanup();\n }\n }\n\n private buildSyncTree(vnode: JSX.Element, injector: Injector): any {\n if (vnode == null || typeof vnode !== \"object\") return vnode;\n if (vnode.$$typeof !== ORCA_ELEMENT_TYPE) return vnode;\n\n if (this.renderingNodes.has(vnode)) {\n throw new Error(\n `Circular reference detected while rendering component \"${vnode.type?.name}\".`,\n );\n }\n\n this.renderingNodes.add(vnode);\n\n try {\n if (isClassComponent(vnode)) {\n return this.renderClassComponent(vnode, injector);\n }\n\n if (isIntrinsicElement(vnode)) {\n return this.renderIntrinsicElement(vnode, injector);\n }\n\n if (isFragment(vnode)) {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: null,\n id: vnode.id,\n props: {\n children: this.mapChildren(vnode.props?.children, injector),\n },\n key: null,\n };\n }\n\n return vnode;\n } finally {\n this.renderingNodes.delete(vnode);\n }\n }\n\n private renderIntrinsicElement(vnode: JSX.Element, injector: Injector): any {\n const { dangerouslySetInnerHTML, children, ...restProps } =\n vnode.props || {};\n\n let processedChildren;\n\n if (dangerouslySetInnerHTML?.__html) {\n processedChildren = this.parseHTMLToJSX(\n dangerouslySetInnerHTML.__html,\n injector,\n );\n } else {\n processedChildren = this.mapChildren(children, injector);\n }\n\n if (vnode.type == \"a\" && restProps[\"href\"]) {\n const href = restProps[\"href\"];\n\n try {\n new URL(href);\n } catch {\n if (\n !href.startsWith(\"#\") &&\n !href.startsWith(\"mailto:\") &&\n !href.startsWith(\"tel:\")\n ) {\n restProps[\"onclick\"] = `Orca.navigate(event, '${href}')`;\n }\n }\n }\n\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: vnode.type,\n id: vnode.id,\n props: {\n ...restProps,\n children: processedChildren,\n },\n key: vnode.key ?? null,\n };\n }\n\n private renderClassComponent(vnode: JSX.Element, injector: Injector): any {\n const ComponentClass = vnode.type;\n const isComponent = Reflect.getMetadata(COMPONENT, ComponentClass);\n\n let componentInjector = injector;\n\n if (isComponent) {\n const localProviders: (Provider | Constructor)[] =\n Reflect.getMetadata(COMPONENT_PROVIDERS, ComponentClass) || [];\n\n if (localProviders.length > 0) {\n componentInjector = new Injector(\n localProviders.map((p) => ProviderNormalizer.normalize(p)),\n injector,\n );\n }\n }\n\n const instance: any = componentInjector.resolve(ComponentClass);\n\n const mergedProps = Object.create(\n Object.getPrototypeOf(instance.props || {}),\n );\n\n Object.defineProperties(\n mergedProps,\n Object.getOwnPropertyDescriptors(instance.props || {}),\n );\n\n Object.defineProperties(\n mergedProps,\n Object.getOwnPropertyDescriptors(vnode.props || {}),\n );\n\n instance.props = mergedProps;\n\n const childVNode = instance.build();\n\n if (childVNode instanceof Promise) {\n return this.createPendingReference(vnode, childVNode, componentInjector);\n }\n\n return this.buildSyncTree(childVNode, componentInjector);\n }\n\n private mapChildren(children: any, injector: Injector): any {\n if (children == null) return undefined;\n if (typeof children === \"string\" || typeof children === \"number\") {\n return children;\n }\n\n if (Array.isArray(children)) {\n return children.map((c) => this.buildSyncTree(c, injector));\n }\n\n return this.buildSyncTree(children, injector);\n }\n\n private parseHTMLToJSX(html: string, injector: Injector): any {\n const { document } = parseHTML(\n `<!doctype html><html><body>${html}</body></html>`,\n );\n\n const convertElement = (element: any): any => {\n const tagName = element.tagName.toLowerCase();\n const props: Record<string, any> = {};\n\n const attrs = element.attributes;\n if (attrs) {\n for (let i = 0; i < attrs.length; i++) {\n const attr = attrs[i];\n let name = attr.name;\n\n if (name === \"class\") {\n name = \"className\";\n } else if (name === \"for\") {\n name = \"htmlFor\";\n } else if (\n !name.startsWith(\"data-\") &&\n !name.startsWith(\"aria-\") &&\n name.includes(\"-\")\n ) {\n name = name.replace(/-([a-z])/g, (_: string, letter: string) =>\n letter.toUpperCase(),\n );\n }\n\n props[name] = attr.value;\n }\n }\n\n const children: any[] = [];\n const childNodes = element.childNodes;\n\n if (childNodes) {\n for (let i = 0; i < childNodes.length; i++) {\n const child = childNodes[i];\n const converted = convertNode(child);\n if (converted != null) {\n children.push(converted);\n }\n }\n }\n\n const jsxElement = {\n $$typeof: ORCA_ELEMENT_TYPE,\n type: tagName,\n id: this.generateId(),\n props: {\n ...props,\n children:\n children.length === 0\n ? undefined\n : children.length === 1\n ? children[0]\n : children,\n },\n key: null,\n };\n\n return this.buildSyncTree(jsxElement, injector);\n };\n\n const convertNode = (node: any): any => {\n if (node.nodeType === 3) {\n const text = node.textContent || \"\";\n const trimmed = text.trim();\n return trimmed ? text : null;\n }\n\n if (node.nodeType === 1) {\n return convertElement(node);\n }\n\n return null;\n };\n\n const result: any[] = [];\n const bodyChildren = document.body?.childNodes;\n\n if (bodyChildren) {\n for (let i = 0; i < bodyChildren.length; i++) {\n const node = bodyChildren[i];\n const converted = convertNode(node);\n if (converted != null) {\n result.push(converted);\n }\n }\n }\n\n return result.length === 0\n ? undefined\n : result.length === 1\n ? result[0]\n : result;\n }\n\n private createPendingReference(\n vnode: JSX.Element,\n promise: Promise<any>,\n injector: Injector,\n ) {\n const id = vnode.id;\n const abortController = new AbortController();\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n const timeoutId = setTimeout(() => {\n abortController.abort();\n reject(\n new Error(\n `Component ${vnode.type.name || \"Unknown\"} timed out after ${\n this.options.timeout\n }ms`,\n ),\n );\n }, this.options.timeout);\n\n abortController.signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n });\n });\n\n const raced = Promise.race([promise, timeoutPromise])\n .then((result) => {\n result.id = vnode.id;\n return this.buildSyncTree(result, injector);\n })\n .catch((err) => Promise.reject({ id, error: err }));\n\n this.pending.set(id, { abortController, promise: raced });\n\n raced\n .then((resolved) => {\n if (this.processedIds.has(id)) return;\n this.processedIds.add(id);\n\n this.queueResolvers.shift()?.({\n ...resolved,\n action: \"update\",\n });\n\n this.pending.delete(id);\n })\n .catch((e) => {\n this.queueResolvers.shift()?.({\n $$typeof: ERROR_ELEMENT,\n type: \"error\",\n action: \"error\",\n id,\n props: {\n message: String(e?.error) || String(e),\n },\n key: null,\n });\n this.pending.delete(id);\n });\n\n return {\n $$typeof: PENDING_REFERENCE_TYPE,\n id,\n type: \"ref\",\n props: vnode.props,\n key: vnode.key ?? null,\n };\n }\n\n private generateId(): string {\n return `jsx_${++this.idCounter}`;\n }\n\n private cleanup() {\n for (const { abortController } of this.pending.values()) {\n abortController.abort();\n }\n this.pending.clear();\n this.processedIds.clear();\n this.queueResolvers.length = 0;\n }\n\n cancel() {\n this.cleanup();\n }\n\n async renderToCompletion(jsx: JSX.Element): Promise<JSX.Element[]> {\n const out: JSX.Element[] = [];\n for await (const upd of this.stream(jsx, this.rootInjector)) {\n out.push(upd);\n }\n return out;\n }\n}\n", "export class VNode {\n id?: string;\n parent?: VNode;\n children: VNode[] = [];\n\n constructor(public dom: Node, private cb?: (old: Node, nw: Node) => void) {}\n\n setId(id: string) {\n this.id = id;\n }\n\n addChild(child: VNode): VNode {\n child.parent = this;\n this.children.push(child);\n return child;\n }\n\n removeChild(child: VNode): void {\n const index = this.children.indexOf(child);\n if (index > -1) {\n this.children.splice(index, 1);\n child.parent = undefined;\n }\n }\n\n findById(id: string): VNode | null {\n if (this.id === id) return this;\n\n for (const child of this.children) {\n const found = child.findById(id);\n if (found) return found;\n }\n\n return null;\n }\n\n attach(nw: Node) {\n if (this.cb) {\n this.cb(this.dom, nw);\n } else {\n if (this.dom.parentNode) {\n this.dom.parentNode.replaceChild(nw, this.dom);\n }\n }\n this.dom = nw;\n }\n\n unmount(): void {\n for (const child of this.children) {\n child.unmount();\n }\n\n if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n\n if (this.parent) {\n this.parent.removeChild(this);\n }\n }\n}\n", "export function symbolValueReplacer(key: any, value: any) {\n if (typeof value === \"symbol\") {\n return `@@Symbol:${value.description}`;\n }\n return value;\n}\n\nexport function symbolValueReviver(key: any, value: any) {\n if (typeof value === \"string\" && value.startsWith(\"@@Symbol:\")) {\n return Symbol.for(value.slice(9));\n }\n return value;\n}\n", "import { Signal } from \"@/shared\";\n\nlet currentEffect: EffectRunner | null = null;\nlet batchDepth = 0;\nlet pendingEffects = new Set<EffectRunner>();\n\ninterface InternalSignal<T> extends Signal<T> {\n _isSignal: true;\n _subscribers: Set<EffectRunner>;\n}\n\ninterface EffectRunner {\n (): void;\n execute(): void;\n cleanup(): void;\n deps: Set<Set<EffectRunner>>;\n cleanupFn?: () => void;\n}\n\nexport function signal<T>(initialValue: T): Signal<T> {\n let value = initialValue;\n const subscribers = new Set<EffectRunner>();\n\n const notify = () => {\n subscribers.forEach((sub) => pendingEffects.add(sub));\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n effects.forEach((effect) => effect.execute());\n }\n };\n\n return {\n _isSignal: true as const,\n _subscribers: subscribers,\n get value(): T {\n if (currentEffect) {\n subscribers.add(currentEffect);\n currentEffect.deps.add(subscribers);\n }\n return value;\n },\n set value(newValue: T) {\n if (value !== newValue) {\n value = newValue;\n notify();\n }\n },\n } as InternalSignal<T>;\n}\n\nexport function effect(fn: () => void | (() => void)): () => void {\n const deps = new Set<Set<EffectRunner>>();\n let cleanupFn: (() => void) | undefined;\n\n const runner: EffectRunner = (() => {\n runner.execute();\n }) as EffectRunner;\n\n runner.deps = deps;\n\n runner.execute = () => {\n if (cleanupFn) {\n cleanupFn();\n cleanupFn = undefined;\n }\n\n deps.forEach((subs) => subs.delete(runner));\n deps.clear();\n\n const prevEffect = currentEffect;\n currentEffect = runner;\n\n try {\n const result = fn();\n if (typeof result === \"function\") {\n cleanupFn = result;\n }\n } finally {\n currentEffect = prevEffect;\n }\n };\n\n runner.cleanup = () => {\n if (cleanupFn) {\n cleanupFn();\n cleanupFn = undefined;\n }\n deps.forEach((subs) => subs.delete(runner));\n deps.clear();\n };\n\n runner.cleanupFn = cleanupFn;\n\n runner.execute();\n\n return () => runner.cleanup();\n}\n\nexport function computed<T>(fn: () => T): Signal<T> {\n const sig = signal(fn());\n let cleanup: (() => void) | undefined;\n\n cleanup = effect(() => {\n sig.value = fn();\n });\n\n const originalSignal = sig as InternalSignal<T>;\n const dispose = cleanup;\n\n (originalSignal as any).dispose = dispose;\n\n return sig;\n}\n\nexport function batch(fn: () => void): void {\n batchDepth++;\n try {\n fn();\n } finally {\n batchDepth--;\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n effects.forEach((effect) => effect.execute());\n }\n }\n}\n\nexport function isSignal(value: any): boolean {\n return value && value._isSignal === true;\n}\n\nexport function createRoot<T>(fn: (dispose: () => void) => T): T {\n const cleanups: Array<() => void> = [];\n const dispose = () => {\n cleanups.forEach((cleanup) => cleanup());\n cleanups.length = 0;\n };\n\n const prevEffect = currentEffect;\n\n const originalEffect = effect;\n (globalThis as any).effect = (fn: () => void | (() => void)) => {\n const cleanup = originalEffect(fn);\n cleanups.push(cleanup);\n return cleanup;\n };\n\n try {\n return fn(dispose);\n } finally {\n (globalThis as any).effect = originalEffect;\n currentEffect = prevEffect;\n }\n}\n\nexport function untracked<T>(fn: () => T): T {\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n return fn();\n } finally {\n currentEffect = prevEffect;\n }\n}\n", "import { Observer, Signal } from \"@/shared\";\nimport { signal } from \"../signal\";\n\nexport interface Subscription {\n unsubscribe(): void;\n}\n\nexport type OperatorFunction<T, R> = (source: Observable<T>) => Observable<R>;\n\nexport class Observable<T> {\n __isObservable = true;\n\n constructor(\n private producer?: (observer: Observer<T>) => void | (() => void)\n ) {}\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void\n ): Subscription {\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n let cleanup: (() => void) | void;\n let isUnsubscribed = false;\n\n if (this.producer) {\n try {\n cleanup = this.producer(observer);\n } catch (err) {\n if (observer.error) {\n try {\n observer.error(err);\n } catch (e) {\n console.error(\"Error in error handler during subscription:\", e);\n }\n } else {\n throw err;\n }\n }\n }\n\n return {\n unsubscribe: () => {\n if (isUnsubscribed) return;\n isUnsubscribed = true;\n if (cleanup) {\n try {\n cleanup();\n } catch (err) {\n console.error(\"Error during cleanup:\", err);\n }\n }\n },\n };\n }\n\n pipe(): Observable<T>;\n pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n pipe<A, B>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>\n ): Observable<B>;\n pipe<A, B, C>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>\n ): Observable<C>;\n pipe<A, B, C, D>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>\n ): Observable<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorFunction<T, A>,\n op2: OperatorFunction<A, B>,\n op3: OperatorFunction<B, C>,\n op4: OperatorFunction<C, D>,\n op5: OperatorFunction<D, E>\n ): Observable<E>;\n public pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n if (operations.length === 0) {\n return this;\n }\n return operations.reduce((prev, fn) => fn(prev), this as any);\n }\n}\n\nexport function from<T>(iterable: Iterable<T>): Observable<T> {\n return new Observable((observer) => {\n try {\n for (const value of iterable) {\n observer.next(value);\n }\n observer.complete?.();\n } catch (err) {\n observer.error?.(err);\n }\n });\n}\n\nexport function interval(ms: number): Observable<number> {\n return new Observable((observer) => {\n let count = 0;\n const id = setInterval(() => {\n observer.next(count++);\n }, ms);\n return () => clearInterval(id);\n });\n}\n\nexport function of<T>(...values: T[]): Observable<T> {\n return new Observable((observer) => {\n try {\n values.forEach((value) => observer.next(value));\n observer.complete?.();\n } catch (err) {\n observer.error?.(err);\n }\n });\n}\n\nexport function observable<T>(\n producer?: ((observer: Observer<T>) => void | (() => void)) | undefined\n): Observable<T> {\n return new Observable<T>(producer);\n}\n\nexport function toSignal<T>(\n obs: Observable<T>,\n instance: any\n): Signal<T | undefined> {\n const sig = signal<T | undefined>(undefined);\n\n const subst = obs.subscribe((val) => {\n sig.value = val;\n });\n\n instance.__cleanup = [\n ...(instance.__cleanup || []),\n () => subst.unsubscribe(),\n ];\n\n return sig;\n}\n\nexport function isObservable(value: any): boolean {\n return value && value.__isObservable === true;\n}\n\n// Operators\nexport function map<T, R>(fn: (value: T) => R): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n const subscription = source.subscribe(\n (value) => {\n try {\n observer.next(fn(value));\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function filter<T>(\n predicate: (value: T) => boolean\n): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n const subscription = source.subscribe(\n (value) => {\n try {\n if (predicate(value)) {\n observer.next(value);\n }\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function tap<T>(fn: (value: T) => void): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n const subscription = source.subscribe(\n (value) => {\n try {\n fn(value);\n observer.next(value);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function take<T>(count: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let taken = 0;\n const subscription = source.subscribe(\n (value) => {\n if (taken < count) {\n observer.next(value);\n taken++;\n if (taken === count) {\n observer.complete?.();\n subscription.unsubscribe();\n }\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function skip<T>(count: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let skipped = 0;\n const subscription = source.subscribe(\n (value) => {\n if (skipped < count) {\n skipped++;\n } else {\n observer.next(value);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function debounceTime<T>(ms: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let timeoutId: any;\n const subscription = source.subscribe(\n (value) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n observer.next(value);\n }, ms);\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => {\n clearTimeout(timeoutId);\n subscription.unsubscribe();\n };\n });\n };\n}\n\nexport function throttleTime<T>(ms: number): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let lastEmit = 0;\n const subscription = source.subscribe(\n (value) => {\n const now = Date.now();\n if (now - lastEmit >= ms) {\n lastEmit = now;\n observer.next(value);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function distinctUntilChanged<T>(\n compare?: (a: T, b: T) => boolean\n): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n let hasLast = false;\n let last: T;\n const subscription = source.subscribe(\n (value) => {\n const isDistinct =\n !hasLast || (compare ? !compare(last, value) : last !== value);\n\n if (isDistinct) {\n hasLast = true;\n last = value;\n observer.next(value);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function switchMap<T, R>(\n fn: (value: T) => Observable<R>\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n let innerSubscription: Subscription | null = null;\n const outerSubscription = source.subscribe(\n (value) => {\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n try {\n const innerObservable = fn(value);\n innerSubscription = innerObservable.subscribe(\n (innerValue) => observer.next(innerValue),\n (err) => observer.error?.(err)\n );\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => {\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n outerSubscription.unsubscribe();\n };\n });\n };\n}\n\nexport function mergeMap<T, R>(\n fn: (value: T) => Observable<R>\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n const innerSubscriptions: Subscription[] = [];\n let outerComplete = false;\n let activeCount = 0;\n\n const checkComplete = () => {\n if (outerComplete && activeCount === 0) {\n observer.complete?.();\n }\n };\n\n const outerSubscription = source.subscribe(\n (value) => {\n try {\n const innerObservable = fn(value);\n activeCount++;\n const innerSub = innerObservable.subscribe(\n (innerValue) => observer.next(innerValue),\n (err) => observer.error?.(err),\n () => {\n activeCount--;\n checkComplete();\n }\n );\n innerSubscriptions.push(innerSub);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => {\n outerComplete = true;\n checkComplete();\n }\n );\n\n return () => {\n innerSubscriptions.forEach((sub) => sub.unsubscribe());\n outerSubscription.unsubscribe();\n };\n });\n };\n}\n\nexport function concatMap<T, R>(\n fn: (value: T) => Observable<R>\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n const queue: T[] = [];\n let innerSubscription: Subscription | null = null;\n let outerComplete = false;\n let isProcessing = false;\n\n const processNext = () => {\n if (isProcessing || queue.length === 0) {\n if (outerComplete && queue.length === 0) {\n observer.complete?.();\n }\n return;\n }\n\n isProcessing = true;\n const value = queue.shift()!;\n\n try {\n const innerObservable = fn(value);\n innerSubscription = innerObservable.subscribe(\n (innerValue) => observer.next(innerValue),\n (err) => observer.error?.(err),\n () => {\n isProcessing = false;\n processNext();\n }\n );\n } catch (err) {\n observer.error?.(err);\n }\n };\n\n const outerSubscription = source.subscribe(\n (value) => {\n queue.push(value);\n processNext();\n },\n (err) => observer.error?.(err),\n () => {\n outerComplete = true;\n if (queue.length === 0 && !isProcessing) {\n observer.complete?.();\n }\n }\n );\n\n return () => {\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n outerSubscription.unsubscribe();\n };\n });\n };\n}\n\nexport function catchError<T>(\n handler: (err: any) => Observable<T>\n): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n const subscription = source.subscribe(\n (value) => observer.next(value),\n (err) => {\n try {\n const fallback = handler(err);\n const fallbackSub = fallback.subscribe(\n (value) => observer.next(value),\n (e) => observer.error?.(e),\n () => observer.complete?.()\n );\n (subscription as any).__fallback = fallbackSub;\n } catch (e) {\n observer.error?.(e);\n }\n },\n () => observer.complete?.()\n );\n return () => {\n if ((subscription as any).__fallback) {\n (subscription as any).__fallback.unsubscribe();\n }\n subscription.unsubscribe();\n };\n });\n };\n}\n\nexport function startWith<T>(...values: T[]): OperatorFunction<T, T> {\n return (source: Observable<T>) => {\n return new Observable<T>((observer) => {\n values.forEach((value) => observer.next(value));\n const subscription = source.subscribe(\n (value) => observer.next(value),\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function scan<T, R>(\n accumulator: (acc: R, value: T) => R,\n seed: R\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n let acc = seed;\n const subscription = source.subscribe(\n (value) => {\n try {\n acc = accumulator(acc, value);\n observer.next(acc);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => observer.complete?.()\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n\nexport function reduce<T, R>(\n accumulator: (acc: R, value: T) => R,\n seed: R\n): OperatorFunction<T, R> {\n return (source: Observable<T>) => {\n return new Observable<R>((observer) => {\n let acc = seed;\n const subscription = source.subscribe(\n (value) => {\n try {\n acc = accumulator(acc, value);\n } catch (err) {\n observer.error?.(err);\n }\n },\n (err) => observer.error?.(err),\n () => {\n observer.next(acc);\n observer.complete?.();\n }\n );\n return () => subscription.unsubscribe();\n });\n };\n}\n", "import { Observer } from \"../types\";\nimport { Observable, Subscription } from \"./observable\";\n\nexport class Subject<T> extends Observable<T> {\n protected subscribers: Set<Observer<T>> = new Set();\n protected _isCompleted = false;\n protected _hasError = false;\n protected _thrownError: any = null;\n\n constructor() {\n super();\n }\n\n public asObservable(): Observable<T> {\n return new Observable<T>((observer) => {\n const subscription = this.subscribe(observer);\n return () => subscription.unsubscribe();\n });\n }\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void,\n ): Subscription {\n if (this._isCompleted) {\n const obs =\n typeof observerOrNext === \"function\" ? { complete } : observerOrNext;\n obs.complete?.();\n return { unsubscribe: () => {} };\n }\n\n if (this._hasError) {\n return { unsubscribe: () => {} };\n }\n\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n this.subscribers.add(observer);\n\n return {\n unsubscribe: () => {\n this.subscribers.delete(observer);\n },\n };\n }\n\n public next(value: T): void {\n if (this._isCompleted || this._hasError) return;\n\n const currentSubscribers = Array.from(this.subscribers);\n currentSubscribers.forEach((observer) => {\n if (this.subscribers.has(observer)) {\n try {\n observer.next(value);\n } catch (err) {\n console.error(\"Error in observer:\", err);\n }\n }\n });\n }\n\n public error(err: any): void {\n if (this._isCompleted || this._hasError) return;\n\n this._hasError = true;\n this._thrownError = err;\n\n for (const observer of this.subscribers) {\n observer.error?.(err);\n }\n\n this.subscribers.clear();\n }\n\n public complete(): void {\n if (this._isCompleted || this._hasError) return;\n\n this._isCompleted = true;\n const currentSubscribers = Array.from(this.subscribers);\n\n currentSubscribers.forEach((observer) => {\n if (observer.complete) {\n try {\n observer.complete();\n } catch (err) {\n console.error(\"Error in complete handler:\", err);\n }\n }\n });\n\n this.subscribers.clear();\n }\n}\n", "import { Observer } from \"../types\";\nimport { Subscription } from \"./observable\";\nimport { Subject } from \"./subject\";\n\nexport class BehaviorSubject<T> extends Subject<T> {\n private _value: T;\n\n constructor(initialValue: T) {\n super();\n this._value = initialValue;\n }\n\n public get $value(): T {\n return this._value;\n }\n\n public next(value: T): void {\n this._value = value;\n super.next(value);\n }\n\n public subscribe(\n observerOrNext: Observer<T> | ((value: T) => void),\n error?: (err: any) => void,\n complete?: () => void,\n ): Subscription {\n const observer: Observer<T> =\n typeof observerOrNext === \"function\"\n ? { next: observerOrNext, error, complete }\n : observerOrNext;\n\n if (this._hasError) {\n observer.error?.(this._thrownError);\n return { unsubscribe: () => {} };\n }\n\n if (this._isCompleted) {\n observer.complete?.();\n return { unsubscribe: () => {} };\n }\n\n observer.next(this._value);\n return super.subscribe(observer);\n }\n}\n", "import { JSX } from \"./jsx\";\nimport { Injector } from \"./module\";\n\nexport abstract class OrcaComponent {\n __cleanup: Array<() => void> = [];\n __injector!: Injector;\n props!: any;\n\n onInit(): void {}\n\n onDestroy(): void {\n this.__cleanup.forEach((cb) => cb());\n }\n\n pushDrop(fn: () => void) {\n this.__cleanup.push(fn);\n }\n\n abstract build(): Node | JSX.Element | Promise<JSX.Element>;\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Injectable, Module, Observable } from \"@/shared\";\nlet HttpClient = class HttpClient {\n get(url, { stream = \"json\", reviver, init } = {}) {\n return new Observable((subscriber) => {\n const controller = new AbortController();\n fetch(url, {\n method: \"GET\",\n ...init,\n signal: controller.signal,\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n if (stream === \"json\") {\n const data = await res.json();\n subscriber.next(reviver ? JSON.parse(JSON.stringify(data), reviver) : data);\n subscriber.complete?.();\n return;\n }\n if (stream === \"raw\") {\n subscriber.next(res);\n subscriber.complete?.();\n return;\n }\n const reader = res.body?.getReader();\n if (!reader) {\n throw new Error(\"ReadableStream not supported\");\n }\n const decoder = new TextDecoder();\n let buffer = \"\";\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n if (stream === \"ndjson\" && buffer.trim()) {\n try {\n subscriber.next(JSON.parse(buffer, reviver));\n }\n catch (err) {\n console.warn(\"Failed to parse remaining buffer:\", err);\n }\n }\n break;\n }\n const chunk = decoder.decode(value, { stream: true });\n if (stream === \"text\") {\n subscriber.next(chunk);\n continue;\n }\n if (stream === \"ndjson\") {\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop();\n for (const line of lines) {\n if (line.trim()) {\n try {\n subscriber.next(JSON.parse(line, reviver));\n }\n catch (err) {\n console.error(\"Failed to parse NDJSON line:\", line, err);\n }\n }\n }\n }\n }\n subscriber.complete?.();\n })\n .catch((err) => {\n if (err.name === \"AbortError\") {\n console.log(\"Request aborted\");\n }\n subscriber.error?.(err);\n });\n return () => {\n controller.abort();\n };\n });\n }\n post(url, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method: \"POST\",\n headers,\n body: processedBody,\n },\n });\n }\n put(url, options) {\n return this.request(url, \"PUT\", options);\n }\n patch(url, options) {\n return this.request(url, \"PATCH\", options);\n }\n delete(url, options) {\n return this.get(url, {\n ...options,\n init: {\n ...options?.init,\n method: \"DELETE\",\n },\n });\n }\n request(url, method, { body, stream = \"json\", reviver, init } = {}) {\n const headers = new Headers(init?.headers);\n if (body && !headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json\");\n }\n const processedBody = body !== undefined\n ? typeof body === \"string\"\n ? body\n : JSON.stringify(body)\n : undefined;\n return this.get(url, {\n stream,\n reviver,\n init: {\n ...init,\n method,\n headers,\n body: processedBody,\n },\n });\n }\n};\nHttpClient = __decorate([\n Injectable()\n], HttpClient);\nexport { HttpClient };\nlet HttpClientModule = class HttpClientModule {\n};\nHttpClientModule = __decorate([\n Module({\n providers: [HttpClient],\n exports: [HttpClient],\n })\n], HttpClientModule);\nexport { HttpClientModule };\n", "import {\n COMPONENT_DEPS,\n Constructor,\n DESIGN_PARAMTYPES,\n getCurrentInjector,\n Injector,\n isIntrinsicElement,\n JSX,\n ORCA_CLIENT_COMPONENT,\n PENDING_REFERENCE_TYPE,\n VNode,\n} from \"@/shared\";\n\ninterface BuildResult {\n domNode: Node;\n vnode?: VNode;\n}\n\nexport class OSC {\n public tree: VNode;\n private pendingRefs = new Map<string, JSX.Element>();\n private static readonly SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\n private static readonly SVG_TAGS = new Set([\n \"svg\",\n \"circle\",\n \"rect\",\n \"line\",\n \"path\",\n \"polygon\",\n \"polyline\",\n \"ellipse\",\n \"text\",\n \"tspan\",\n \"g\",\n \"defs\",\n \"use\",\n \"symbol\",\n \"marker\",\n \"clipPath\",\n \"mask\",\n \"pattern\",\n \"linearGradient\",\n \"radialGradient\",\n \"stop\",\n \"animate\",\n \"animateTransform\",\n \"foreignObject\",\n \"image\",\n \"textPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"metadata\",\n \"title\",\n \"desc\",\n \"switch\",\n \"view\",\n ]);\n\n constructor(private root: HTMLElement) {\n this.tree = new VNode(root, (old, nw) => {\n (old as HTMLElement).replaceWith(nw);\n });\n }\n\n public handleInsert(jsx: JSX.Element): void {\n const { domNode, vnode } = this.buildDOM(jsx, this.tree);\n\n if (jsx.id && vnode) {\n vnode.setId(jsx.id);\n }\n\n this.tree.attach(domNode);\n }\n\n public handleUpdate(jsx: JSX.Element): void {\n if (!jsx.id) {\n console.warn(\"Update action requires an id\");\n return;\n }\n\n const targetVNode = this.tree.findById(jsx.id);\n\n if (targetVNode) {\n const oldChildren = [...targetVNode.children];\n targetVNode.children = [];\n\n const { domNode, vnode } = this.buildDOM(\n jsx,\n targetVNode.parent || this.tree,\n );\n\n targetVNode.attach(domNode);\n\n if (vnode) {\n targetVNode.children = vnode.children;\n }\n } else {\n console.warn(`Update target ${jsx.id} not found, inserting instead`);\n this.handleInsert(jsx);\n }\n }\n\n private buildDOM(\n jsx: JSX.Element | JSX.Element[],\n vparent: VNode,\n ): BuildResult {\n if (jsx == null) {\n return { domNode: document.createDocumentFragment() };\n }\n\n if (Array.isArray(jsx)) {\n return this.buildArray(jsx, vparent);\n }\n\n if (this.isPrimitive(jsx)) {\n return this.buildTextNode(String(jsx), vparent);\n }\n\n if (jsx.$$typeof === PENDING_REFERENCE_TYPE) {\n return this.buildPendingReference(jsx, vparent);\n }\n\n if (jsx.$$typeof === ORCA_CLIENT_COMPONENT) {\n return this.buildClientComponent(jsx, vparent);\n }\n\n if (isIntrinsicElement(jsx)) {\n return this.buildIntrinsicElement(jsx, vparent);\n }\n\n console.error(\"Unsupported node:\", jsx);\n throw new Error(\n `Unsupported node type: ${typeof jsx}, $typeof: ${String(jsx.$$typeof)}`,\n );\n }\n\n private buildClientComponent(jsx: any, parent: VNode): BuildResult {\n const componentInfo = jsx.props.__clientComponent;\n const { id, path, name } = componentInfo;\n\n const container = document.createElement(\"div\");\n container.dataset.clientComponent = id;\n\n const vnode = new VNode(container, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n parent.addChild(vnode);\n\n this.loadClientComponent(path, name, jsx.props, container);\n\n return { domNode: container, vnode };\n }\n\n private buildPendingReference(jsx: any, parent: VNode): BuildResult {\n const refId = jsx.id;\n const div = document.createElement(\"div\");\n div.dataset.ref = refId;\n div.className = \"loading\";\n div.textContent = \"Loading...\";\n\n const vnode = new VNode(div, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n vnode.setId(refId);\n parent.addChild(vnode);\n\n const pendingContent = this.pendingRefs.get(refId);\n if (pendingContent) {\n setTimeout(() => this.resolvePendingReference(refId, pendingContent), 0);\n }\n\n return { domNode: div, vnode };\n }\n\n resolvePendingReference(refId: string, content: JSX.Element): void {\n const vnode = this.tree.findById(refId);\n if (!vnode) {\n console.warn(`Reference ${refId} not found`);\n this.pendingRefs.set(refId, content);\n return;\n }\n\n try {\n vnode.children = [];\n\n const { domNode, vnode: newVNode } = this.buildDOM(content, vnode);\n\n vnode.attach(domNode);\n\n if (newVNode) {\n vnode.children = newVNode.children;\n }\n\n this.pendingRefs.delete(refId);\n } catch (error) {\n console.error(`Error resolving reference ${refId}:`, error);\n }\n }\n\n private buildTextNode(text: string, parent: VNode): BuildResult {\n const textNode = document.createTextNode(text);\n const vnode = new VNode(textNode, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n parent.addChild(vnode);\n return { domNode: textNode, vnode };\n }\n\n private isPrimitive(node: any): boolean {\n return (\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"boolean\"\n );\n }\n\n private buildArray(nodes: JSX.Element[], parent: VNode): BuildResult {\n const fragment = document.createDocumentFragment();\n const vnodes: VNode[] = [];\n\n nodes.forEach((child) => {\n const { domNode, vnode } = this.buildDOM(child, parent);\n fragment.appendChild(domNode);\n if (vnode) {\n vnodes.push(vnode);\n }\n });\n\n return { domNode: fragment };\n }\n\n private isSVGTag(tag: string): boolean {\n return OSC.SVG_TAGS.has(tag);\n }\n\n private buildIntrinsicElement(jsx: JSX.Element, parent: VNode): BuildResult {\n const tag = jsx.type;\n const isSVG = this.isSVGTag(tag);\n\n // Create element with proper namespace for SVG\n const dom = isSVG\n ? document.createElementNS(OSC.SVG_NAMESPACE, tag)\n : document.createElement(tag);\n\n const vnode = new VNode(dom, (old, nw) => {\n if (old.parentNode) {\n old.parentNode.replaceChild(nw, old);\n }\n });\n\n parent.addChild(vnode);\n\n if (jsx.id) {\n vnode.setId(jsx.id);\n }\n\n if (jsx.props) {\n this.buildAttributes(jsx.props, dom, vnode, isSVG);\n }\n\n if (jsx.props?.children != null) {\n const { domNode: childDom } = this.buildDOM(jsx.props.children, vnode);\n dom.appendChild(childDom);\n }\n\n return { domNode: dom, vnode };\n }\n\n private buildAttributes(\n props: Record<string, any>,\n dom: Element,\n vnode: VNode,\n isSVG: boolean = false,\n ): void {\n for (const [key, value] of Object.entries(props)) {\n if (key === \"children\" || value == null) {\n continue;\n }\n\n const attrKey = this.normalizeAttributeKey(key);\n\n if (attrKey === \"style\" && typeof value === \"object\") {\n this.applyStyles(value, dom as HTMLElement);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n this.setBooleanAttribute(attrKey, value, dom, isSVG);\n continue;\n }\n\n // For SVG elements, use setAttributeNS for certain attributes\n if (isSVG) {\n this.setSVGAttribute(attrKey, String(value), dom);\n } else {\n dom.setAttribute(attrKey, String(value));\n }\n }\n }\n\n private setSVGAttribute(key: string, value: string, dom: Element): void {\n // SVG href attributes need the xlink namespace\n if (key === \"href\" || key === \"xlink:href\") {\n dom.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", value);\n } else {\n dom.setAttribute(key, value);\n }\n }\n\n private normalizeAttributeKey(key: string): string {\n if (key === \"className\") return \"class\";\n if (key === \"htmlFor\") return \"for\";\n return key;\n }\n\n private applyStyles(styles: Record<string, any>, dom: HTMLElement): void {\n const styleString = Object.entries(styles)\n .map(([k, v]) => {\n const kebabKey = k.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n return `${kebabKey}:${v}`;\n })\n .join(\";\");\n dom.setAttribute(\"style\", styleString);\n }\n\n private setBooleanAttribute(\n key: string,\n value: boolean,\n dom: Element,\n isSVG: boolean = false,\n ): void {\n if (value) {\n dom.setAttribute(key, \"\");\n } else {\n dom.removeAttribute(key);\n }\n }\n\n private async loadClientComponent(\n path: string,\n name: string,\n props: Record<string, any>,\n container: HTMLElement,\n ): Promise<void> {\n try {\n const module = await import(path);\n const ComponentClass: Constructor = module[name];\n\n if (!ComponentClass) {\n throw new Error(`Component ${name} not found in ${path}`);\n }\n\n const injector = getCurrentInjector();\n if (injector == null) {\n throw new Error(\"Couldn't find an injector\");\n }\n\n const seen = new Set<Constructor>();\n\n function register(Cls: Constructor, injector: Injector) {\n if (seen.has(Cls)) return;\n seen.add(Cls);\n\n injector.addProvider({\n provide: Cls,\n useClass: Cls,\n scope: \"transient\",\n });\n\n const paramDeps: Constructor[] =\n Reflect.getMetadata(DESIGN_PARAMTYPES, Cls) ?? [];\n\n const explicitDeps: Constructor[] =\n Reflect.getMetadata(COMPONENT_DEPS, Cls) ?? [];\n\n paramDeps\n .filter((d) => d && d !== Object)\n .forEach((d) => injector.addProvider(d));\n\n explicitDeps.forEach((deps) => register(deps, injector));\n }\n\n register(ComponentClass, injector);\n\n const cleanProps = { ...props };\n delete cleanProps.__clientComponent;\n\n const instance = injector.resolve(ComponentClass);\n instance.__injector = injector;\n instance.props = cleanProps;\n\n if (typeof instance.build !== \"function\") {\n throw new Error(`Component ${name} does not implement build()`);\n }\n\n const rendered = instance.build();\n\n container.replaceWith(rendered);\n } catch (error) {\n console.error(`Failed to load client component ${name}:`, error);\n\n container.textContent = `Error loading component: ${name}`;\n container.className = \"client-component-error\";\n }\n }\n}\n", "export function assert$(context?: any) {\n return context?.factory.createStringLiteral(\"assert\");\n}\n", "import { Message, MessageHandler } from \"../types\";\n\nexport abstract class BaseActor {\n private mailbox: Message[] = [];\n private isProcessing: boolean = false;\n private subscribers: Map<string, MessageHandler[]> = new Map();\n\n abstract send(to: string, message: { event: string; data: any }): void;\n\n public receive(message: Message) {\n this.mailbox.push(message);\n this.process();\n }\n\n public subscribe(tag: string, handler: MessageHandler) {\n if (!this.subscribers.has(tag)) {\n this.subscribers.set(tag, []);\n }\n this.subscribers.get(tag)!.push(handler);\n }\n\n public unsubscribe(tag: string, handler: MessageHandler) {\n const handlers = this.subscribers.get(tag);\n if (handlers) {\n const index = handlers.indexOf(handler);\n if (index > -1) {\n handlers.splice(index, 1);\n }\n }\n }\n\n private async process() {\n if (this.isProcessing) return;\n\n this.isProcessing = true;\n\n while (this.mailbox.length > 0) {\n const message = this.mailbox.shift()!;\n const handlers = this.subscribers.get(message.event);\n\n if (handlers) {\n for (const handler of handlers) {\n await handler(message);\n }\n }\n }\n\n this.isProcessing = false;\n }\n}\n", "export * from \"./factory\";\nexport * from \"./modules\";\n", "import express, { Express, Request, Response } from \"express\";\nimport http from \"http\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Server } from \"socket.io\";\n\nimport {\n Constructor,\n Compiler,\n CONTROLLER_PREFIX_KEY,\n HTTP_METHOD_KEY,\n PATH_KEY,\n HandlerParamType,\n PARAMS_META_KEY,\n DESIGN_PARAMTYPES,\n EXPRESS_ADAPTER_HOST,\n Injector,\n collectAllProvidersFromNode,\n CONTROLLER,\n BOOTSTRAP,\n jsx,\n BOOTSTRAP_VNODE,\n StreamRenderer,\n symbolValueReplacer,\n setCurrentInjector,\n ProviderNormalizer,\n store,\n SSE_ROUTE,\n Observable,\n EVENT_HANDLER,\n COMPONENT_ROUTE,\n ORCA_ELEMENT_TYPE,\n} from \"@/shared\";\nimport { Actor } from \"./modules\";\n\ninterface RouteMatch {\n component: Constructor;\n props: Record<string, any>;\n}\n\ninterface ParamMeta {\n type: HandlerParamType;\n key?: string;\n}\n\nfunction createErrorElement(message: string) {\n return {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"div\",\n props: {\n style:\n \"color: red; padding: 20px; border: 2px solid red; border-radius: 4px; margin: 20px;\",\n children: [\n {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"h2\",\n props: { children: \"Error\" },\n key: null,\n },\n {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"p\",\n props: { children: message },\n key: null,\n },\n ],\n },\n key: null,\n };\n}\n\nclass RouteMatcherService {\n private static parseUrl(url: string): [string, URLSearchParams] {\n const [urlPath, urlQuery] = url.split(\"?\");\n return [urlPath, new URLSearchParams(urlQuery || \"\")];\n }\n\n private static matchPathSegments(\n patternSegments: string[],\n urlSegments: string[]\n ): Record<string, string> | null {\n if (patternSegments.length !== urlSegments.length) return null;\n\n const props: Record<string, string> = {};\n\n for (let i = 0; i < patternSegments.length; i++) {\n const segment = patternSegments[i];\n\n if (segment.startsWith(\":\")) {\n const paramName = segment.slice(1);\n props[paramName] = decodeURIComponent(urlSegments[i]);\n } else if (segment !== urlSegments[i]) {\n return null;\n }\n }\n\n return props;\n }\n\n private static extractQueryParams(\n queryPattern: string,\n urlParams: URLSearchParams,\n routePattern: string\n ): Record<string, string> {\n const props: Record<string, string> = {};\n const queryParams = queryPattern.split(\"&\").filter(Boolean);\n\n for (const param of queryParams) {\n const isOptional = param.endsWith(\"*\");\n const paramName = isOptional ? param.slice(0, -1) : param;\n const paramValue = urlParams.get(paramName);\n\n if (paramValue === null) {\n if (!isOptional) {\n throw new Error(\n `Missing required query parameter \"${paramName}\" for route \"${routePattern}\"`\n );\n }\n continue;\n }\n\n props[paramName] = decodeURIComponent(paramValue);\n }\n\n return props;\n }\n\n public static match(url: string): RouteMatch | null {\n const components = store.get<Map<string, Constructor>>(\"components\");\n if (!components) return null;\n\n const [urlPath, urlParams] = this.parseUrl(url);\n const urlSegments = urlPath.split(\"/\").filter(Boolean);\n\n for (const [, component] of components.entries()) {\n const routePattern = Reflect.getMetadata(COMPONENT_ROUTE, component);\n if (!routePattern) continue;\n\n const [pathPattern, queryPattern] = routePattern.split(\"?\");\n const patternSegments = pathPattern.split(\"/\").filter(Boolean);\n\n const pathProps = this.matchPathSegments(patternSegments, urlSegments);\n if (pathProps === null) continue;\n\n const queryProps = queryPattern\n ? this.extractQueryParams(queryPattern, urlParams, routePattern)\n : {};\n\n return {\n component,\n props: { ...pathProps, ...queryProps },\n };\n }\n\n return null;\n }\n}\n\nclass ControllerRegistrationService {\n constructor(\n private readonly injector: Injector,\n private readonly app: Express\n ) {}\n\n private registerEventHandlers(\n CtrlCls: Constructor,\n instance: any,\n actor: Actor\n ): void {\n const eventHandlers = Reflect.ownKeys(CtrlCls.prototype).filter((key) =>\n Reflect.hasOwnMetadata(EVENT_HANDLER, CtrlCls.prototype, key)\n );\n\n for (const methodKey of eventHandlers) {\n const eventName = Reflect.getMetadata(\n EVENT_HANDLER,\n CtrlCls.prototype,\n methodKey\n ) as string;\n\n const handler = instance[methodKey];\n actor.subscribe(eventName, (data) => handler.call(instance, data));\n }\n }\n\n private buildMethodArgs(\n req: Request,\n paramsMeta: Record<number, ParamMeta>,\n designParams: any[]\n ): any[] {\n const args = Array(designParams.length).fill(undefined);\n\n for (let i = 0; i < designParams.length; i++) {\n const meta = paramsMeta[i];\n if (!meta) continue;\n\n const source = this.getParamSource(req, meta.type);\n args[i] = meta.key ? source?.[meta.key] : source;\n }\n\n return args;\n }\n\n private getParamSource(req: Request, type: HandlerParamType): any {\n switch (type) {\n case HandlerParamType.BODY:\n return req.body;\n case HandlerParamType.ROUTE_PARAM:\n return req.params;\n case HandlerParamType.QUERY:\n return req.query;\n default:\n return undefined;\n }\n }\n\n private async handleMethodResult(\n result: any,\n res: Response,\n isSSE: boolean\n ): Promise<void> {\n if (res.headersSent) return;\n\n if (isSSE && result instanceof Observable) {\n result.subscribe({\n next: (data: any) => {\n res.write(`data: ${JSON.stringify(data)}\\n\\n`);\n },\n error: (err: any) => {\n console.error(\"SSE error:\", err);\n res.end();\n },\n complete: () => {\n res.end();\n },\n });\n } else if (result !== undefined) {\n res.json(result);\n } else {\n res.end();\n }\n }\n\n private registerHttpMethods(\n CtrlCls: Constructor,\n instance: any,\n prefix: string\n ): void {\n const methods = Reflect.ownKeys(CtrlCls.prototype).filter((key) =>\n Reflect.hasOwnMetadata(HTTP_METHOD_KEY, CtrlCls.prototype, key)\n );\n\n for (const methodKey of methods) {\n this.registerHttpMethod(CtrlCls, instance, methodKey, prefix);\n }\n }\n\n private registerHttpMethod(\n CtrlCls: Constructor,\n instance: any,\n methodKey: string | symbol,\n prefix: string\n ): void {\n const httpMethod = Reflect.getMetadata(\n HTTP_METHOD_KEY,\n CtrlCls.prototype,\n methodKey\n ) as \"get\" | \"post\" | \"put\" | \"delete\" | \"patch\";\n\n const routePath: string =\n Reflect.getMetadata(PATH_KEY, CtrlCls.prototype, methodKey) ?? \"\";\n\n const fullPath = this.buildFullPath(prefix, routePath);\n const isSSE = Reflect.getMetadata(\n SSE_ROUTE,\n CtrlCls.prototype,\n methodKey\n ) as boolean;\n const paramsMeta: Record<number, ParamMeta> =\n Reflect.getMetadata(PARAMS_META_KEY, CtrlCls.prototype, methodKey) ?? {};\n\n this.app[httpMethod](fullPath, async (req, res) => {\n try {\n if (isSSE) {\n res.setHeader(\"Content-Type\", \"text/event-stream\");\n res.setHeader(\"Cache-Control\", \"no-cache\");\n res.setHeader(\"Connection\", \"keep-alive\");\n }\n\n const designParams: any[] =\n Reflect.getMetadata(\n DESIGN_PARAMTYPES,\n CtrlCls.prototype,\n methodKey\n ) ?? [];\n\n const args = this.buildMethodArgs(req, paramsMeta, designParams);\n const result = await instance[methodKey](...args);\n\n await this.handleMethodResult(result, res, isSSE);\n } catch (err: any) {\n res.send(err.message);\n }\n });\n }\n\n private buildFullPath(prefix: string, routePath: string): string {\n const normalizedPrefix =\n prefix === \"/\" ? \"\" : `/${prefix.replace(/^\\/+|\\/+$/g, \"\")}`;\n\n return (\n `${normalizedPrefix}/${routePath}`\n .replace(/\\/+/g, \"/\")\n .replace(/\\/$/, \"\") || \"/\"\n );\n }\n\n public register(CtrlCls: Constructor): void {\n const instance = this.injector.resolve(CtrlCls);\n const prefix: string =\n Reflect.getMetadata(CONTROLLER_PREFIX_KEY, CtrlCls) ?? \"/\";\n const actor = this.injector.resolve(Actor);\n\n this.registerEventHandlers(CtrlCls, instance, actor);\n this.registerHttpMethods(CtrlCls, instance, prefix);\n }\n}\n\nclass ComponentResolver {\n constructor(private readonly rootModule: Constructor) {}\n\n public resolve(\n componentName: string | undefined,\n body: any\n ): {\n component: Constructor | null;\n props: Record<string, any>;\n error: any;\n } {\n if (componentName === undefined || componentName === \"/\") {\n const bootstrap = Reflect.getMetadata(BOOTSTRAP, this.rootModule);\n\n if (!bootstrap) {\n return {\n component: null,\n props: {},\n error: createErrorElement(\"Bootstrap component not provided!\"),\n };\n }\n\n return {\n component: bootstrap,\n props: body,\n error: null,\n };\n }\n\n if (typeof componentName !== \"string\") {\n return {\n component: null,\n props: {},\n error: createErrorElement(\"Component name should be a string\"),\n };\n }\n\n if (componentName.startsWith(\"/\")) {\n const result = RouteMatcherService.match(componentName);\n\n if (!result) {\n return {\n component: null,\n props: {},\n error: createErrorElement(\n `No component found for route '${componentName}'`\n ),\n };\n }\n\n return {\n component: result.component,\n props: result.props,\n error: null,\n };\n }\n\n const component = store\n .get<Map<string, Constructor>>(\"components\")\n ?.get(componentName);\n\n if (!component) {\n return {\n component: null,\n props: {},\n error: createErrorElement(`Component '${componentName}' not provided!`),\n };\n }\n\n return {\n component,\n props: body,\n error: null,\n };\n }\n}\n\nclass OscRouteHandler {\n constructor(\n private readonly injector: Injector,\n private readonly componentResolver: ComponentResolver\n ) {}\n\n private async streamComponent(\n renderer: StreamRenderer,\n component: Constructor,\n props: Record<string, any>,\n res: Response\n ): Promise<void> {\n const stream = renderer.render(jsx(component, props));\n for await (const chunk of stream) {\n res.write(JSON.stringify(chunk, symbolValueReplacer) + \"\\n\");\n }\n }\n\n private async streamError(\n renderer: StreamRenderer,\n errorElement: any,\n res: Response\n ): Promise<void> {\n try {\n const stream = renderer.render(errorElement);\n for await (const chunk of stream) {\n res.write(JSON.stringify(chunk, symbolValueReplacer) + \"\\n\");\n }\n } catch (innerErr) {\n console.error(\"Failed to stream error:\", innerErr);\n res.write(\n JSON.stringify(\n {\n $$typeof: ORCA_ELEMENT_TYPE,\n id: uuidv4(),\n type: \"div\",\n props: { children: \"Critical error occurred\" },\n key: null,\n },\n symbolValueReplacer\n ) + \"\\n\"\n );\n }\n }\n\n public async handle(req: Request, res: Response): Promise<void> {\n const renderer = new StreamRenderer(this.injector);\n const componentName = req.query.c as string | undefined;\n\n try {\n const { component, props, error } = this.componentResolver.resolve(\n componentName,\n req.body\n );\n\n if (error) {\n await this.streamError(renderer, error, res);\n res.end();\n return;\n }\n\n await this.streamComponent(renderer, component!, props, res);\n } catch (err) {\n console.error(\"Streaming error:\", err);\n const errorElement = createErrorElement(\n err instanceof Error ? err.message : \"Unknown error occurred\"\n );\n await this.streamError(renderer, errorElement, res);\n }\n\n res.end();\n }\n}\n\nclass SocketService {\n public static setup(server: http.Server, injector: Injector): void {\n const io = new Server(server);\n\n io.on(\"connection\", (socket) => {\n const actor = injector.resolve(Actor);\n\n actor.register(socket.id, {\n send: (message) => {\n io.to(socket.id).emit(\"message\", message);\n },\n });\n\n socket.on(\"message\", (msg) => {\n const { to } = msg;\n if (to === \"server\") {\n actor.receive(msg);\n } else {\n actor.send(to, msg);\n }\n });\n });\n }\n}\n\nexport class NodeFactory {\n private static compileAndValidate(rootModule: Constructor): any {\n const compiler = new Compiler();\n const appNode = compiler.compile(rootModule);\n const validation = compiler.validate(appNode);\n\n if (!validation.valid) {\n console.error(\"Validation failed:\\n\" + validation.errors.join(\"\\n\\n\"));\n process.exit(1);\n }\n\n return appNode;\n }\n\n private static createRootInjector(\n appNode: any,\n app: Express,\n rootModule: Constructor\n ): Injector {\n const allProviders = collectAllProvidersFromNode(appNode);\n const rootControllers = [\n ...store.get<Set<Constructor>>(\"root_controllers\")!,\n ].map((p) => ProviderNormalizer.normalize(p));\n\n const bootstrap = Reflect.getMetadata(BOOTSTRAP, rootModule);\n\n return new Injector([\n ...allProviders,\n ...rootControllers,\n { provide: \"OSC_URL\", useValue: \"/osc\" },\n { provide: EXPRESS_ADAPTER_HOST, useValue: app },\n {\n provide: BOOTSTRAP_VNODE,\n useValue: bootstrap ? jsx(bootstrap, {}) : undefined,\n },\n { provide: Actor, useClass: Actor, eager: true },\n ]);\n }\n\n private static registerControllers(\n appNode: any,\n injector: Injector,\n app: Express\n ): void {\n const registrationService = new ControllerRegistrationService(\n injector,\n app\n );\n const rootControllers = [\n ...store.get<Set<Constructor>>(\"root_controllers\")!,\n ];\n\n rootControllers.forEach((ctrl) => registrationService.register(ctrl));\n\n appNode.traverse((node: any) => {\n const providers = [...node.getProviders().values()];\n\n const controllers = providers.filter((provider) =>\n Reflect.getMetadata(CONTROLLER, provider.provide)\n );\n\n controllers.forEach((c) => registrationService.register(c.useClass!));\n\n providers\n .filter((provider) => provider.eager)\n .forEach((p) => injector.resolve(p.provide));\n });\n }\n\n private static setupOscRoute(\n app: Express,\n injector: Injector,\n rootModule: Constructor\n ): void {\n const componentResolver = new ComponentResolver(rootModule);\n const oscHandler = new OscRouteHandler(injector, componentResolver);\n\n app.post(\"/osc\", (req, res) => oscHandler.handle(req, res));\n }\n\n public static async create(rootModule: Constructor): Promise<http.Server> {\n const app = express();\n app.use(express.json());\n\n const server = http.createServer(app);\n\n const appNode = this.compileAndValidate(rootModule);\n\n const rootInjector = this.createRootInjector(appNode, app, rootModule);\n setCurrentInjector(rootInjector);\n\n this.registerControllers(appNode, rootInjector, app);\n\n this.setupOscRoute(app, rootInjector, rootModule);\n\n SocketService.setup(server, rootInjector);\n\n return server;\n }\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { EXPRESS_ADAPTER_HOST, Inject, Injectable, } from \"@/shared\";\nimport express from \"express\";\nimport * as path from \"path\";\nexport class ServeStaticModule {\n static forRoot(options) {\n let ServeStaticService = class ServeStaticService {\n constructor(app) {\n this.app = app;\n if (!this.app)\n throw new Error(\"Couldn't find Express adapter!\");\n const resolvedPath = path.resolve(options.rootPath);\n const indexPath = path.join(resolvedPath, \"index.html\");\n this.app.use(express.static(resolvedPath));\n this.app.get(/.*/, (req, res) => {\n res.sendFile(indexPath);\n });\n }\n };\n ServeStaticService = __decorate([\n Injectable(),\n __param(0, Inject(EXPRESS_ADAPTER_HOST, { maybe: true })),\n __metadata(\"design:paramtypes\", [Object])\n ], ServeStaticService);\n return {\n module: ServeStaticModule,\n providers: [\n {\n provide: ServeStaticService,\n useClass: ServeStaticService,\n eager: true,\n },\n ],\n exports: [ServeStaticService],\n };\n }\n}\n", "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BaseActor, Injectable } from \"@/shared\";\nlet Actor = class Actor extends BaseActor {\n constructor() {\n super(...arguments);\n this.actors = new Map();\n }\n register(name, option) {\n this.actors.set(name, option);\n }\n send(to, message) {\n const actor = this.actors.get(to);\n if (actor) {\n actor.send({\n to,\n ...message,\n from: \"server\",\n });\n }\n }\n};\nActor = __decorate([\n Injectable()\n], Actor);\nexport { Actor };\nexport class ActorModule {\n static forRoot() {\n return {\n module: ActorModule,\n providers: [\n {\n provide: Actor,\n useClass: Actor,\n eager: true,\n },\n ],\n exports: [Actor],\n };\n }\n}\n", "import { DynamicModule, JSX } from \"@/shared\";\n\nexport class Navigate {\n public push(component: JSX.Element) {}\n\n public replace(component: JSX.Element) {}\n\n public goBack() {}\n\n public goForward() {}\n\n public canGoBack() {}\n\n public canGoForward() {}\n\n public getCurrentPage() {}\n\n public clear() {}\n}\n\nexport class RouterModule {\n static forRoot(): DynamicModule {\n return {\n module: RouterModule,\n providers: [Navigate],\n exports: [Navigate],\n };\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAAA,OAAO;;;ACAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAM,QAAN,MAAY;AAAA,EAAZ;AACE,SAAQ,YAAY,oBAAI,IAAqB;AAAA;AAAA,EAE7C,IAAO,MAAc,OAAgB;AACnC,SAAK,UAAU,IAAI,MAAM,KAAK;AAAA,EAChC;AAAA,EAEA,IAAO,MAA6B;AAClC,WAAO,KAAK,UAAU,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,OAAU,MAAc,SAA8C;AACpE,UAAM,UAAU,KAAK,IAAO,IAAI;AAChC,UAAM,OAAO,QAAQ,OAAO;AAC5B,SAAK,IAAI,MAAM,IAAI;AAAA,EACrB;AACF;AAEO,IAAM,QAAQ,IAAI,MAAM;;;AClBxB,IAAM,mBAAmB,uBAAO,mBAAmB;AACnD,IAAM,gBAAgB,uBAAO,gBAAgB;AAC7C,IAAM,kBAAkB,uBAAO,kBAAkB;AACjD,IAAM,YAAY,uBAAO,gBAAgB;AACzC,IAAM,kBAAkB,uBAAO,sBAAsB;AACrD,IAAM,cAAc,uBAAO,cAAc;AACzC,IAAM,cAAc,uBAAO,cAAc;AACzC,IAAM,aAAa,uBAAO,iBAAiB;AAC3C,IAAM,YAAY,uBAAO,gBAAgB;AACzC,IAAM,sBAAsB,uBAAO,0BAA0B;AAC7D,IAAM,iBAAiB,uBAAO,qBAAqB;AACnD,IAAM,kBAAkB,uBAAO,sBAAsB;AACrD,IAAM,oBAAoB,uBAAO,mBAAmB;AACpD,IAAM,OAAO,uBAAO,WAAW;AAC/B,IAAM,oBAAoB;AAC1B,IAAM,aAAa,uBAAO,iBAAiB;AAC3C,IAAM,wBAAwB,uBAAO,uBAAuB;AAC5D,IAAM,kBAAkB,uBAAO,iBAAiB;AAChD,IAAM,kBAAkB,uBAAO,aAAa;AAC5C,IAAM,WAAW,uBAAO,WAAW;AACnC,IAAM,uBAAuB,uBAAO,cAAc;AAClD,IAAM,yBAAyB,uBAAO,wBAAwB;AAC9D,IAAM,YAAY,uBAAO,gBAAgB;AACzC,IAAM,gBAAgB,uBAAO,oBAAoB;AAGjD,IAAM,gBAAgB,uBAAO,IAAI,YAAY;AAC7C,IAAM,oBAAoB,uBAAO,IAAI,cAAc;AACnD,IAAM,qBAAqB,uBAAO,IAAI,eAAe;AACrD,IAAM,wBAAwB,uBAAO,IAAI,uBAAuB;AAChE,IAAM,yBAAyB,uBAAO,IAAI,wBAAwB;;;ACsBlE,IAAK,mBAAL,kBAAKA,sBAAL;AACL,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,cAAW;AAND,SAAAA;AAAA,GAAA;AASL,IAAK,aAAL,kBAAKC,gBAAL;AACL,EAAAA,YAAA,SAAM;AACN,EAAAA,YAAA,UAAO;AAFG,SAAAA;AAAA,GAAA;;;AC1DL,SAAS,OAAO,SAAS,CAAC,GAAG;AAChC,SAAO,SAAU,QAAQ;AACrB,YAAQ,eAAe,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM;AACpE,YAAQ,eAAe,kBAAkB,OAAO,gBAAgB,CAAC,GAAG,MAAM;AAC1E,YAAQ,eAAe,aAAa,OAAO,WAAW,CAAC,GAAG,MAAM;AAChE,YAAQ,eAAe,aAAa,OAAO,WAAW,CAAC,GAAG,MAAM;AAChE,YAAQ,eAAe,iBAAiB,OAAO,eAAe,CAAC,GAAG,MAAM;AACxE,YAAQ,eAAe,WAAW,OAAO,WAAW,MAAM;AAAA,EAC9D;AACJ;AACO,SAAS,aAAa;AACzB,SAAO,SAAU,QAAQ;AACrB,YAAQ,eAAe,YAAY,MAAM,MAAM;AAC/C,WAAO;AAAA,EACX;AACJ;AACO,SAAS,UAAU,SAAS,CAAC,GAAG;AACnC,SAAO,SAAU,QAAQ;AACrB,UAAM,OAAO,cAAc,CAAC,YAAY;AACpC,YAAM,OAAO,WAAW,oBAAI,IAAI;AAChC,WAAK,IAAI,OAAO,MAAM,MAAM;AAC5B,UAAI,OAAO,OAAO;AACd,cAAM,CAAC,WAAW,IAAI,OAAO,MAAM,MAAM,GAAG;AAC5C,aAAK,IAAI,aAAa,MAAM;AAAA,MAChC;AACA,aAAO;AAAA,IACX,CAAC;AACD,QAAI,OAAO,OAAO;AACd,cAAQ,eAAe,iBAAiB,OAAO,OAAO,MAAM;AAAA,IAChE;AACA,YAAQ,eAAe,WAAW,MAAM,MAAM;AAC9C,YAAQ,eAAe,qBAAqB,OAAO,aAAa,CAAC,GAAG,MAAM;AAC1E,YAAQ,eAAe,gBAAgB,OAAO,QAAQ,CAAC,GAAG,MAAM;AAChE,WAAO;AAAA,EACX;AACJ;AACO,SAAS,OAAO,OAAO,SAAS,CAAC,GAAG;AACvC,SAAO,SAAU,QAAQ,cAAc,gBAAgB;AACnD,UAAM,iBAAiB,QAAQ,eAAe,mBAAmB,MAAM,KAAK,oBAAI,IAAI;AACpF,mBAAe,IAAI,gBAAgB;AAAA,MAC/B;AAAA,MACA,GAAG;AAAA,IACP,CAAC;AACD,YAAQ,eAAe,mBAAmB,gBAAgB,MAAM;AAAA,EACpE;AACJ;AACO,SAAS,WAAW,QAAQ,UAAU,CAAC,GAAG;AAC7C,SAAO,SAAU,QAAQ;AACrB,eAAW,EAAE,MAAM;AACnB,QAAI,QAAQ,cAAc,QAAQ;AAC9B,YAAM,OAAO,oBAAoB,CAAC,YAAY;AAC1C,cAAM,OAAO,WAAW,oBAAI,IAAI;AAChC,aAAK,IAAI,MAAM;AACf,eAAO;AAAA,MACX,CAAC;AAAA,IACL;AACA,YAAQ,eAAe,uBAAuB,UAAU,KAAK,MAAM;AACnE,YAAQ,eAAe,YAAY,MAAM,MAAM;AAAA,EACnD;AACJ;AACA,SAAS,yBAAyB,MAAM,KAAK;AACzC,SAAO,SAAU,QAAQ,YAAY,OAAO;AACxC,UAAM,aAAa,QAAQ,YAAY,iBAAiB,QAAQ,UAAU,KAAK,CAAC;AAChF,eAAW,KAAK,IAAI,EAAE,KAAK,KAAK;AAChC,YAAQ,eAAe,iBAAiB,YAAY,QAAQ,UAAU;AAAA,EAC1E;AACJ;AACO,SAAS,MAAM,KAAK;AACvB,SAAO,0DAAuD,GAAG;AACrE;AACO,SAAS,KAAK,KAAK;AACtB,SAAO,4CAAgD,GAAG;AAC9D;AACO,SAAS,MAAM,KAAK;AACvB,SAAO,8CAAiD,GAAG;AAC/D;AACA,SAAS,kBAAkB,YAAYC,OAAM;AACzC,SAAO,SAAU,QAAQ,KAAK,YAAY;AACtC,YAAQ,eAAe,iBAAiB,YAAY,QAAQ,GAAG;AAC/D,YAAQ,eAAe,UAAUA,OAAM,QAAQ,GAAG;AAAA,EACtD;AACJ;AACO,SAAS,IAAIA,OAAM;AACtB,SAAO,mCAAkCA,SAAQ,EAAE;AACvD;AACO,SAAS,KAAKA,OAAM;AACvB,SAAO,qCAAmCA,SAAQ,EAAE;AACxD;AACO,SAAS,IAAIA,OAAM;AACtB,SAAO,SAAU,QAAQ,aAAa,YAAY;AAC9C,YAAQ,eAAe,WAAW,MAAM,QAAQ,WAAW;AAC3D,YAAQ,eAAe,UAAUA,OAAM,QAAQ,WAAW;AAC1D,YAAQ,eAAe,kCAAiC,QAAQ,WAAW;AAAA,EAC/E;AACJ;AACO,SAAS,UAAU,SAAS;AAC/B,SAAO,SAAU,QAAQ,aAAa,YAAY;AAC9C,YAAQ,eAAe,eAAe,SAAS,QAAQ,WAAW;AAAA,EACtE;AACJ;AACO,SAAS,aAAa,SAAS;AAClC,SAAO,SAAU,QAAQ,aAAa,YAAY;AAC9C,YAAQ,eAAe,wBAAwB,SAAS,QAAQ,WAAW;AAC3E,UAAM,iBAAiB,WAAW;AAClC,eAAW,QAAQ,kBAAmB,MAAM;AACxC,aAAO,eAAe,MAAM,MAAM,IAAI;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AACJ;AACO,SAAS,qBAAqB,QAAQ,aAAa;AACtD,SAAO,QAAQ,YAAY,wBAAwB,QAAQ,WAAW;AAC1E;AACO,SAAS,aAAa,QAAQ,aAAa;AAC9C,SAAO,QAAQ,YAAY,wBAAwB,QAAQ,WAAW;AAC1E;AACO,SAAS,sBAAsB,SAAS,YAAY;AACvD,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO,EAAE,cAAc,CAAC,EAAE;AAAA,EAC9B;AACA,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,MACH,cAAc,CAAC;AAAA,MACf,cAAc,QAAQ,CAAC;AAAA,IAC3B;AAAA,EACJ;AACA,QAAM,eAAe,QAAQ,MAAM,GAAG,EAAE;AACxC,QAAM,eAAe,QAAQ,QAAQ,SAAS,CAAC;AAC/C,MAAI,aAAa,WAAW,YAAY;AACpC,UAAM,IAAI,MAAM,4BAA4B,aAAa,MAAM,qCAAqC,UAAU,+BAA+B;AAAA,EACjJ;AACA,SAAO,EAAE,cAAc,aAAa;AACxC;;;ACrIO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,OAAO,UAAU,UAA4C;AAC3D,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO,EAAE,SAAS,UAAU,UAAU,UAAU,OAAO,YAAY;AAAA,IACrE;AACA,WAAO,EAAE,OAAO,aAAa,GAAG,SAAS;AAAA,EAC3C;AACF;AAEO,IAAM,OAAN,MAAW;AAAA,EAMhB,YAAmB,MAAc;AAAd;AALnB,SAAQ,WAAmB,CAAC;AAC5B,SAAQ,SAAS,oBAAI,IAA8B;AACnD,SAAQ,UAA2B,oBAAI,IAAI;AAC3C,SAAQ,YAAY,oBAAI,IAA0B;AAAA,EAEhB;AAAA,EAElC,SAAS,IAA0B;AACjC,OAAG,IAAI;AACP,SAAK,SAAS,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC;AAAA,EACrD;AAAA,EAEA,aAAa,WAAuC;AAClD,cAAU,QAAQ,CAAC,MAAM;AACvB,YAAM,aAAa,mBAAmB,UAAU,CAAC;AACjD,WAAK,UAAU,IAAI,WAAW,SAAS,UAAU;AAAA,IACnD,CAAC;AAAA,EACH;AAAA,EAEA,eAA0C;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,UAAkB;AAC5B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB,cAA4B;AACtD,SAAK,OAAO,IAAI,OAAO,YAAY;AAAA,EACrC;AAAA,EAEA,UAAU,OAAmB;AAC3B,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EAEA,YAA2C;AACzC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAA8B;AAC5B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAsB;AACpB,WAAO,KAAK;AAAA,EACd;AACF;;;ACxDO,IAAM,WAAN,MAAe;AAAA,EAClB,cAAc;AACV,SAAK,QAAQ,oBAAI,IAAI;AAAA,EACzB;AAAA,EACA,QAAQ,YAAY;AAChB,WAAO,KAAK,WAAW,UAAU;AAAA,EACrC;AAAA,EACA,WAAW,iBAAiB;AACxB,UAAM,SAAS,KAAK,gBAAgB,eAAe,IAC7C,gBAAgB,SAChB;AACN,QAAI,KAAK,MAAM,IAAI,OAAO,IAAI;AAC1B,aAAO,KAAK,MAAM,IAAI,OAAO,IAAI;AACrC,UAAM,OAAO,IAAI,KAAK,OAAO,IAAI;AACjC,SAAK,MAAM,IAAI,OAAO,MAAM,IAAI;AAChC,UAAM,UAAU,KAAK,WAAW,eAAe;AAC/C,SAAK,YAAY,QAAQ,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,CAAC,CAAC;AAC3D,UAAM,YAAY,KAAK,aAAa,eAAe;AACnD,UAAM,cAAc,KAAK,eAAe,eAAe;AACvD,UAAM,eAAe,KAAK,gBAAgB,eAAe;AACzD,KAAC,GAAG,WAAW,GAAG,WAAW,EAAE,QAAQ,CAAC,SAAS;AAC7C,YAAM,QAAQ,KAAK,iBAAiB,IAAI;AACxC,YAAM,OAAO,KAAK,oBAAoB,IAAI;AAC1C,WAAK,SAAS,OAAO,IAAI;AAAA,IAC7B,CAAC;AACD,SAAK,aAAa,SAAS;AAC3B,iBAAa,QAAQ,CAAC,QAAQ;AAC1B,WAAK,aAAa,CAAC,EAAE,SAAS,KAAK,UAAU,KAAK,OAAO,YAAY,CAAC,CAAC;AAAA,IAC3E,CAAC;AACD,gBAAY,QAAQ,CAAC,SAAS;AAC1B,WAAK,aAAa;AAAA,QACd,EAAE,SAAS,MAAM,UAAU,MAAM,OAAO,YAAY;AAAA,MACxD,CAAC;AAAA,IACL,CAAC;AACD,KAAC,GAAG,cAAc,GAAG,WAAW,EAAE,QAAQ,CAAC,SAAS;AAChD,UAAI,QAAQ,YAAY,WAAW,IAAI,GAAG;AACtC,cAAM,kBAAkB,KAAK,2BAA2B,IAAI;AAC5D,aAAK,SAAS,MAAM,eAAe;AACnC,cAAM,gBAAgB,QAAQ,YAAY,gBAAgB,IAAI,KAAK,CAAC;AACpE,cAAM,UAAU,CAAC,GAAG,iBAAiB,GAAG,aAAa;AACrD,aAAK,SAAS,MAAM,OAAO;AAC3B,cAAM,iBAAiB,QAAQ,YAAY,qBAAqB,IAAI,KAAK,CAAC;AAC1E,aAAK,aAAa,cAAc;AAChC,uBAAe,QAAQ,CAAC,OAAO;AAC3B,gBAAM,QAAQ,KAAK,iBAAiB,EAAE;AACtC,gBAAM,OAAO,KAAK,oBAAoB,EAAE;AACxC,eAAK,SAAS,OAAO,IAAI;AAAA,QAC7B,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AACD,SAAK,WAAW,eAAe,EAAE,QAAQ,CAAC,QAAQ,KAAK,UAAU,GAAG,CAAC;AACrE,WAAO;AAAA,EACX;AAAA,EACA,SAAS,UAAU;AACf,UAAM,SAAS,CAAC;AAChB,UAAM,WAAW,oBAAI,IAAI;AACzB,SAAK,gBAAgB,UAAU,QAAQ;AACvC,UAAM,YAAY,CAAC,UAAU,OAAO,UAAU,aAAa,MAAM,OAAO,OAAO,KAAK;AACpF,aAAS,QAAQ,CAAC,SAAS;AACvB,YAAM,aAAa,KAAK;AACxB,YAAM,iBAAiB,KAAK,UAAU;AACtC,YAAM,iBAAiB,KAAK,WAAW;AACvC,iBAAW,OAAO,gBAAgB;AAC9B,YAAI,CAAC,eAAe,IAAI,GAAG,GAAG;AAC1B,iBAAO,KAAK,2BAA2B,UAAU;AAAA,oBACxB,UAAU,GAAG,CAAC;AAAA,gFACyC;AAAA,QACpF;AAAA,MACJ;AACA,YAAM,OAAO,oBAAI,IAAI;AACrB,iBAAW,SAAS,eAAe,KAAK,GAAG;AACvC,YAAI,KAAK,IAAI,KAAK,GAAG;AACjB,iBAAO,KAAK,iCAAiC,UAAU;AAAA,YACtC,UAAU,KAAK,CAAC;AAAA,oCACG;AAAA,QACxC;AACA,aAAK,IAAI,KAAK;AAAA,MAClB;AACA,iBAAW,CAAC,OAAO,IAAI,KAAK,gBAAgB;AACxC,mBAAW,OAAO,MAAM;AACpB,cAAI,eAAe,IAAI,GAAG;AACtB;AACJ,gBAAM,kBAAkB,KAAK,oBAAoB,KAAK,MAAM,UAAU,oBAAI,IAAI,CAAC;AAC/E,cAAI,CAAC,iBAAiB;AAClB,kBAAM,WAAW,UAAU,KAAK;AAChC,kBAAM,UAAU,UAAU,GAAG;AAC7B,kBAAM,oBAAoB,MAAM,KAAK,SAAS,OAAO,CAAC,EACjD,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,EACpC,IAAI,CAAC,MAAM,EAAE,IAAI;AACtB,gBAAI,aAAa;AACjB,gBAAI,kBAAkB,SAAS,GAAG;AAC9B,2BACI;AAAA,aAAW,OAAO,qBAAqB,kBAAkB,KAAK,IAAI,CAAC;AAAA,wDACX,UAAU;AAAA,YAC1E,OACK;AACD,2BAAa;AAAA,aAAW,OAAO;AAAA,YACnC;AACA,mBAAO,KAAK,oCAAoC,UAAU;AAAA,MAC/C,QAAQ,eAAe,OAAO,IAAI,UAAU,EAAE;AAAA,UAC7D;AAAA,QACJ;AAAA,MACJ;AACA,qBAAe,QAAQ,CAAC,MAAM,UAAU;AACpC,YAAI,OAAO,UAAU,cACjB,QAAQ,YAAY,WAAW,KAAK,GAAG;AACvC,gBAAM,gBAAgB,QAAQ,YAAY,gBAAgB,KAAK,KAAK,CAAC;AACrE,wBAAc,QAAQ,CAAC,YAAY;AAC/B,gBAAI,OAAO,YAAY,cACnB,CAAC,QAAQ,YAAY,WAAW,OAAO,GAAG;AAC1C,qBAAO,KAAK,yCAAyC,UAAU;AAAA,gBAC1C,UAAU,KAAK,CAAC,YAAY,UAAU,OAAO,CAAC;AAAA,aACtD,UAAU,OAAO,CAAC,qDAAqD;AAAA,YACxF;AACA,gBAAI,CAAC,eAAe,IAAI,OAAO,GAAG;AAC9B,oBAAM,eAAe,KAAK,oBAAoB,SAAS,MAAM,UAAU,oBAAI,IAAI,CAAC;AAChF,kBAAI,CAAC,cAAc;AACf,uBAAO,KAAK,yCAAyC,UAAU;AAAA,gBAC1C,UAAU,KAAK,CAAC,cAAc,UAAU,OAAO,CAAC;AAAA,aACxD,UAAU,OAAO,CAAC,uCAAuC;AAAA,cAC1E;AAAA,YACJ;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AACD,WAAO,EAAE,OAAO,OAAO,WAAW,GAAG,OAAO;AAAA,EAChD;AAAA,EACA,gBAAgB,MAAM,WAAW,UAAU,oBAAI,IAAI,GAAG;AAClD,QAAI,QAAQ,IAAI,KAAK,IAAI;AACrB;AACJ,YAAQ,IAAI,KAAK,IAAI;AACrB,cAAU,IAAI,KAAK,MAAM,IAAI;AAC7B,SACK,YAAY,EACZ,QAAQ,CAAC,UAAU,KAAK,gBAAgB,OAAO,WAAW,OAAO,CAAC;AAAA,EAC3E;AAAA,EACA,oBAAoB,OAAO,UAAU,UAAU,UAAU,oBAAI,IAAI,GAAG;AAChE,QAAI,QAAQ,IAAI,SAAS,IAAI;AACzB,aAAO;AACX,YAAQ,IAAI,SAAS,IAAI;AACzB,eAAW,SAAS,SAAS,YAAY,GAAG;AACxC,UAAI,MAAM,UAAU,EAAE,IAAI,KAAK,KAAK,MAAM,WAAW,EAAE,IAAI,KAAK,GAAG;AAC/D,eAAO,MAAM;AAAA,MACjB;AACA,YAAM,QAAQ,KAAK,oBAAoB,OAAO,OAAO,UAAU,OAAO;AACtE,UAAI;AACA,eAAO;AAAA,IACf;AACA,WAAO;AAAA,EACX;AAAA,EACA,iBAAiB,UAAU;AACvB,WAAO,OAAO,aAAa,aAAa,WAAW,SAAS;AAAA,EAChE;AAAA,EACA,oBAAoB,MAAM;AACtB,QAAI,OAAO,SAAS,YAAY,UAAU,QAAQ,KAAK;AACnD,aAAO,KAAK;AAChB,QAAI,OAAO,SAAS,YAAY,KAAK;AACjC,aAAO,KAAK,2BAA2B,KAAK,QAAQ;AACxD,QAAI,OAAO,SAAS;AAChB,aAAO,KAAK,2BAA2B,IAAI;AAC/C,WAAO,CAAC;AAAA,EACZ;AAAA,EACA,2BAA2B,aAAa;AACpC,UAAM,eAAe,QAAQ,eAAe,mBAAmB,WAAW,KAAK,oBAAI,IAAI;AACvF,UAAM,aAAa,QAAQ,YAAY,mBAAmB,WAAW,KAAK,CAAC;AAC3E,WAAO,WACF,IAAI,CAAC,MAAM,UAAU;AACtB,YAAM,WAAW,aAAa,IAAI,KAAK;AACvC,UAAI,UAAU,OAAO;AACjB,eAAO;AAAA,MACX;AACA,aAAO,UAAU,SAAS;AAAA,IAC9B,CAAC,EACI,OAAO,CAAC,UAAU,QAAQ,KAAK,CAAC;AAAA,EACzC;AAAA,EACA,gBAAgB,GAAG;AACf,WAAO,OAAO,MAAM,YAAY,YAAY;AAAA,EAChD;AAAA,EACA,WAAW,GAAG;AACV,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,WAAW,CAAC;AACzB,WAAO,QAAQ,YAAY,aAAa,CAAC,KAAK,CAAC;AAAA,EACnD;AAAA,EACA,aAAa,GAAG;AACZ,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,aAAa,CAAC;AAC3B,WAAO,QAAQ,YAAY,eAAe,CAAC,KAAK,CAAC;AAAA,EACrD;AAAA,EACA,eAAe,GAAG;AACd,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,eAAe,CAAC;AAC7B,WAAO,QAAQ,YAAY,iBAAiB,CAAC,KAAK,CAAC;AAAA,EACvD;AAAA,EACA,gBAAgB,GAAG;AACf,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,gBAAgB,CAAC;AAC9B,WAAO,QAAQ,YAAY,kBAAkB,CAAC,KAAK,CAAC;AAAA,EACxD;AAAA,EACA,WAAW,GAAG;AACV,QAAI,KAAK,gBAAgB,CAAC;AACtB,aAAO,EAAE,WAAW,CAAC;AACzB,WAAO,QAAQ,YAAY,aAAa,CAAC,KAAK,CAAC;AAAA,EACnD;AAAA,EACA,SAAS,MAAM,SAAS,IAAI,UAAU,oBAAI,IAAI,GAAG;AAC7C,QAAI,QAAQ,IAAI,KAAK,IAAI,GAAG;AACxB,cAAQ,IAAI,GAAG,MAAM,GAAG,KAAK,IAAI,aAAa;AAC9C;AAAA,IACJ;AACA,YAAQ,IAAI,KAAK,IAAI;AACrB,YAAQ,IAAI,GAAG,MAAM,GAAG,KAAK,IAAI,EAAE;AACnC,UAAM,SAAS,KAAK,UAAU;AAC9B,QAAI,OAAO,OAAO,GAAG;AACjB,cAAQ,IAAI,GAAG,MAAM,sBAAY;AACjC,YAAM,KAAK,OAAO,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,IAAI,GAAG,GAAG,QAAQ;AAC5D,cAAM,SAAS,MAAM,IAAI,SAAS,IAAI,iBAAO;AAC7C,cAAM,YAAY,OAAO,UAAU,aAAa,MAAM,OAAO,OAAO,KAAK;AACzE,cAAM,SAAS,KAAK,SACd,YAAO,KACJ,IAAI,CAAC,MAAO,OAAO,MAAM,aAAa,EAAE,OAAO,OAAO,CAAC,CAAE,EACzD,KAAK,IAAI,CAAC,MACb;AACN,gBAAQ,IAAI,GAAG,MAAM,UAAK,MAAM,IAAI,SAAS,GAAG,MAAM,EAAE;AAAA,MAC5D,CAAC;AAAA,IACL;AACA,UAAM,UAAU,KAAK,WAAW;AAChC,QAAI,QAAQ,OAAO,GAAG;AAClB,YAAM,QAAQ,MAAM,KAAK,OAAO,EAAE,IAAI,CAAC,MAAM,OAAO,MAAM,aAAa,EAAE,OAAO,OAAO,CAAC,CAAC;AACzF,cAAQ,IAAI,GAAG,MAAM,0BAAgB,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,IAC5D;AACA,UAAM,WAAW,KAAK,YAAY;AAClC,QAAI,SAAS,SAAS,GAAG;AACrB,cAAQ,IAAI,GAAG,MAAM,uBAAa;AAClC,eAAS,QAAQ,CAAC,OAAO,MAAM;AAC3B,cAAM,SAAS,MAAM,SAAS,SAAS;AACvC,cAAM,cAAc,UAAU,SAAS,QAAQ;AAC/C,aAAK,SAAS,OAAO,aAAa,IAAI,IAAI,OAAO,CAAC;AAAA,MACtD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;;;AC9OO,IAAM,WAAN,MAAe;AAAA,EAKpB,YAAY,WAAuB,QAAmB;AAJtD,SAAQ,gBAAgB,oBAAI,IAAqB;AACjD,SAAQ,cAAc,oBAAI,IAA0B;AAIlD,SAAK,SAAS;AACd,cAAU,QAAQ,CAAC,MAAM;AACvB,YAAM,aAAa,mBAAmB,UAAU,CAAC;AACjD,WAAK,YAAY,IAAI,WAAW,SAAS,UAAU;AAAA,IACrD,CAAC;AAAA,EACH;AAAA,EAEA,YAAY,UAAkC;AAC5C,UAAM,aAAa,mBAAmB,UAAU,QAAQ;AACxD,SAAK,YAAY,IAAI,WAAW,SAAS,UAAU;AAAA,EACrD;AAAA,EAEA,QAAW,OAAoB;AAC7B,QAAI,KAAK,cAAc,IAAI,KAAK,GAAG;AACjC,aAAO,KAAK,cAAc,IAAI,KAAK;AAAA,IACrC;AAEA,UAAM,WAAW,KAAK,YAAY,IAAI,KAAK;AAE3C,QAAI,CAAC,UAAU;AACb,UAAI,KAAK,QAAQ;AACf,eAAO,KAAK,OAAO,QAAQ,KAAK;AAAA,MAClC;AACA,YAAM,IAAI;AAAA,QACR,0BACE,OAAO,UAAU,aAAa,MAAM,OAAO,OAAO,KAAK,CACzD;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAW,KAAK,eAAe,QAAQ;AAE7C,QAAI,SAAS,UAAU,aAAa;AAClC,WAAK,cAAc,IAAI,OAAO,QAAQ;AAAA,IACxC;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,eAAe,UAAyB;AAC9C,QAAI,cAAc,YAAY,SAAS,aAAa;AAClD,aAAO,SAAS;AAClB,QAAI,SAAS,YAAa,QAAO,KAAK,QAAQ,SAAS,WAAW;AAClE,QAAI,SAAS,YAAY;AACvB,YAAMC,SAAQ,SAAS,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AAC7D,aAAO,SAAS,WAAW,GAAGA,KAAI;AAAA,IACpC;AAEA,UAAM,OAAO,SAAS,YAAa,SAAS;AAC5C,UAAM,OAAO,SAAS,QAAQ,KAAK,mBAAmB,IAAI;AAE1D,WAAO,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;AAAA,EACrD;AAAA,EAEQ,mBAAmB,MAAiC;AAC1D,UAAM,eAGF,QAAQ,eAAe,mBAAmB,IAAI,KAAK,oBAAI,IAAI;AAE/D,UAAM,aAAa,QAAQ,YAAY,mBAAmB,IAAI,KAAK,CAAC;AAEpE,WAAO,WACJ,IAAI,CAAC,MAAW,UAAkB;AACjC,YAAM,WAAW,aAAa,IAAI,KAAK;AACvC,aAAO,UAAU,SAAS;AAAA,IAC5B,CAAC,EACA,OAAO,CAAC,UAAoC,QAAQ,KAAK,CAAC;AAAA,EAC/D;AACF;AAEO,SAAS,4BACd,MACA,YAAY,oBAAI,IAAc,GAClB;AACZ,OAAK,aAAa,EAAE,QAAQ,CAAC,MAAM,UAAU,IAAI,CAAC,CAAC;AACnD,OACG,YAAY,EACZ,QAAQ,CAAC,UAAU,4BAA4B,OAAO,SAAS,CAAC;AACnE,SAAO,MAAM,KAAK,SAAS;AAC7B;;;ACxFA,IAAI,kBAAmC;AAEhC,SAAS,mBAAmB,UAAoB;AACrD,oBAAkB;AACpB;AAEO,SAAS,qBAAsC;AACpD,SAAO;AACT;;;ACVA,SAAS,MAAM,cAAc;AAOtB,SAAS,IAAI,MAAW,QAAa,UAA6B;AACvE,QAAM,MAAM,aAAa,SAAY,WAAW,QAAQ,OAAO;AAE/D,QAAM,QAAa,CAAC;AAEpB,MAAI,QAAQ;AACV,eAAW,YAAY,QAAQ;AAC7B,UAAI,aAAa,MAAO;AAExB,UAAI,aAAa,MAAO;AAExB,YAAM,QAAQ,IAAI,OAAO,QAAQ;AAAA,IACnC;AAAA,EACF;AAEA,MAAI,MAAM,aAAa,QAAW;AAChC,UAAM,WAAW,kBAAkB,MAAM,QAAQ;AAAA,EACnD;AAEA,MAAI,OAAO,SAAS,cAAc,KAAK,cAAc;AACnD,eAAW,YAAY,KAAK,cAAc;AACxC,UAAI,MAAM,QAAQ,MAAM,QAAW;AACjC,cAAM,QAAQ,IAAI,KAAK,aAAa,QAAQ;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAEA,SAAO,YAAY,MAAM,OAAO,GAAG;AACrC;AAEO,IAAM,OAAO;AAEb,SAAS,SAAS,OAAyB;AAChD,SAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,IAAI;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,EACP;AACF;AAEA,SAAS,YACP,MACA,OACA,KACa;AACb,SAAO;AAAA,IACL,UAAU;AAAA,IACV,IAAI,OAAO;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,UAAoB;AAC7C,MAAI,aAAa,QAAQ,aAAa,QAAW;AAC/C,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,WAAO,eAAe,QAAQ;AAAA,EAChC;AAEA,QAAM,aAAoB,CAAC;AAE3B,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAM,QAAQ,eAAe,SAAS,CAAC,CAAC;AAExC,QAAI,UAAU,KAAM;AAEpB,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,KAAK,GAAG,KAAK;AAAA,IAC1B,OAAO;AACL,iBAAW,KAAK,KAAK;AAAA,IACvB;AAAA,EACF;AAEA,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,MAAI,WAAW,WAAW,EAAG,QAAO,WAAW,CAAC;AAChD,SAAO;AACT;AAEA,SAAS,eAAe,OAAiB;AACvC,MAAI,UAAU,QAAQ,UAAU,UAAa,OAAO,UAAU,WAAW;AACvE,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,KAAK;AAAA,EACrB;AAEA,MAAI,OAAO,UAAU,YAAY,MAAM,aAAa,mBAAmB;AACrE,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC,MAAM,MAAM,IAAI;AAAA,EAC3D;AAEA,SAAO,OAAO,KAAK;AACrB;AAEO,SAAS,iBAAiBC,MAA2B;AAC1D,SACE,OAAOA,KAAI,SAAS,cACpBA,KAAI,KAAK,aACT,OAAOA,KAAI,KAAK,UAAU,UAAU;AAExC;AAEO,SAAS,mBAAmBA,MAA2B;AAC5D,SAAO,OAAOA,KAAI,SAAS;AAC7B;AAEO,SAAS,WAAWA,MAA2B;AACpD,SACE,OAAOA,KAAI,SAAS,cAAcA,KAAI,KAAK,GAAG,QAAQ;AAE1D;;;AC1HO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAAoB,cAAwB;AAAxB;AAAA,EAAyB;AAAA,EAE7C,OACE,OACA,iBAA2B,KAAK,cAC3B;AACL,QAAI,OAAO,MAAM,SAAS,YAAY;AACpC,YAAM,iBAAiB,MAAM;AAC7B,YAAM,cAAc,QAAQ,YAAY,WAAW,cAAc;AAEjE,UAAI,oBAAoB;AAExB,UAAI,aAAa;AACf,cAAM,iBACJ,QAAQ,YAAY,qBAAqB,cAAc,KAAK,CAAC;AAE/D,YAAI,eAAe,SAAS,GAAG;AAC7B,8BAAoB,IAAI;AAAA,YACtB,eAAe,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAAA,YACzD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,YAAM,WAAgB,kBAAkB,QAAQ,cAAc;AAE9D,eAAS,QAAQ,MAAM,SAAS,CAAC;AAEjC,YAAM,aAAa,SAAS,MAAM;AAElC,aAAO,KAAK,OAAO,YAAY,iBAAiB;AAAA,IAClD;AAEA,QAAI,OAAO,MAAM,SAAS,UAAU;AAClC,YAAM,EAAE,UAAU,GAAG,MAAM,IAAI,MAAM;AAErC,YAAM,WAAW,OAAO,QAAQ,KAAK,EAClC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAI,UAAU,KAAM,QAAO;AAC3B,YAAI,UAAU,SAAS,UAAU,QAAQ,UAAU;AACjD,iBAAO;AACT,eAAO,GAAG,GAAG,KAAK,KAAK,WAAW,OAAO,KAAK,CAAC,CAAC;AAAA,MAClD,CAAC,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,YAAM,UAAU,WACZ,IAAI,MAAM,IAAI,IAAI,QAAQ,MAC1B,IAAI,MAAM,IAAI;AAElB,YAAM,cAAc,CAAC,OAAO,MAAM,MAAM,SAAS,QAAQ,MAAM;AAC/D,UAAI,YAAY,SAAS,MAAM,IAAI,GAAG;AACpC,eAAO,WAAW,IAAI,MAAM,IAAI,IAAI,QAAQ,QAAQ,IAAI,MAAM,IAAI;AAAA,MACpE;AAEA,UAAI,eAAe;AACnB,UAAI,aAAa,UAAa,aAAa,MAAM;AAC/C,YAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,yBAAe,SACZ,IAAI,CAAC,UAAU;AACd,gBAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAC1D,qBAAO,KAAK,WAAW,OAAO,KAAK,CAAC;AAAA,YACtC;AACA,mBAAO,KAAK,OAAO,OAAO,cAAc;AAAA,UAC1C,CAAC,EACA,KAAK,EAAE;AAAA,QACZ,WAAW,OAAO,aAAa,YAAY,UAAU,UAAU;AAC7D,yBAAe,KAAK,OAAO,UAAU,cAAc;AAAA,QACrD,OAAO;AACL,yBAAe,KAAK,WAAW,OAAO,QAAQ,CAAC;AAAA,QACjD;AAAA,MACF;AAEA,aAAO,GAAG,OAAO,GAAG,YAAY,KAAK,MAAM,IAAI;AAAA,IACjD;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,WAAW,MAAsB;AACvC,UAAMC,OAA8B;AAAA,MAClC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,WAAO,KAAK,QAAQ,YAAY,CAAC,MAAMA,KAAI,CAAC,CAAC;AAAA,EAC/C;AACF;;;AC/FA,SAAS,iBAAiB;AAqBnB,IAAM,iBAAN,MAAqB;AAAA,EAQ1B,YACU,cACR,UAAiC,CAAC,GAClC;AAFQ;AAPV,SAAQ,UAAU,oBAAI,IAA0B;AAChD,SAAQ,eAAe,oBAAI,IAAY;AACvC,SAAQ,iBAA+C,CAAC;AAExD,SAAQ,YAAY;AAMlB,SAAK,UAAU;AAAA,MACb,SAAS,QAAQ,WAAW;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,OACE,OACA,iBAA2B,KAAK,cAC3B;AACL,WAAO,KAAK,OAAO,OAAO,cAAc;AAAA,EAC1C;AAAA,EAEA,OAAe,OAAO,OAAoB,gBAA0B;AAClE,SAAK,QAAQ,MAAM;AACnB,SAAK,iBAAiB,CAAC;AACvB,SAAK,iBAAiB,oBAAI,QAAQ;AAClC,SAAK,aAAa,MAAM;AAExB,UAAM,aAAa,MACjB,IAAI,QAAqB,CAACC,aAAY,KAAK,eAAe,KAAKA,QAAO,CAAC;AAEzE,QAAI;AACF,YAAM,OAAO,KAAK,cAAc,OAAO,cAAc;AACrD,YAAM,EAAE,GAAG,MAAM,QAAQ,SAAS;AAElC,aAAO,KAAK,QAAQ,OAAO,GAAG;AAC5B,cAAM,SAAS,MAAM,WAAW;AAChC,cAAM;AAAA,MACR;AAAA,IACF,UAAE;AACA,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEQ,cAAc,OAAoB,UAAyB;AACjE,QAAI,SAAS,QAAQ,OAAO,UAAU,SAAU,QAAO;AACvD,QAAI,MAAM,aAAa,kBAAmB,QAAO;AAEjD,QAAI,KAAK,eAAe,IAAI,KAAK,GAAG;AAClC,YAAM,IAAI;AAAA,QACR,0DAA0D,MAAM,MAAM,IAAI;AAAA,MAC5E;AAAA,IACF;AAEA,SAAK,eAAe,IAAI,KAAK;AAE7B,QAAI;AACF,UAAI,iBAAiB,KAAK,GAAG;AAC3B,eAAO,KAAK,qBAAqB,OAAO,QAAQ;AAAA,MAClD;AAEA,UAAI,mBAAmB,KAAK,GAAG;AAC7B,eAAO,KAAK,uBAAuB,OAAO,QAAQ;AAAA,MACpD;AAEA,UAAI,WAAW,KAAK,GAAG;AACrB,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,IAAI,MAAM;AAAA,UACV,OAAO;AAAA,YACL,UAAU,KAAK,YAAY,MAAM,OAAO,UAAU,QAAQ;AAAA,UAC5D;AAAA,UACA,KAAK;AAAA,QACP;AAAA,MACF;AAEA,aAAO;AAAA,IACT,UAAE;AACA,WAAK,eAAe,OAAO,KAAK;AAAA,IAClC;AAAA,EACF;AAAA,EAEQ,uBAAuB,OAAoB,UAAyB;AAC1E,UAAM,EAAE,yBAAyB,UAAU,GAAG,UAAU,IACtD,MAAM,SAAS,CAAC;AAElB,QAAI;AAEJ,QAAI,yBAAyB,QAAQ;AACnC,0BAAoB,KAAK;AAAA,QACvB,wBAAwB;AAAA,QACxB;AAAA,MACF;AAAA,IACF,OAAO;AACL,0BAAoB,KAAK,YAAY,UAAU,QAAQ;AAAA,IACzD;AAEA,QAAI,MAAM,QAAQ,OAAO,UAAU,MAAM,GAAG;AAC1C,YAAM,OAAO,UAAU,MAAM;AAE7B,UAAI;AACF,YAAI,IAAI,IAAI;AAAA,MACd,QAAQ;AACN,YACE,CAAC,KAAK,WAAW,GAAG,KACpB,CAAC,KAAK,WAAW,SAAS,KAC1B,CAAC,KAAK,WAAW,MAAM,GACvB;AACA,oBAAU,SAAS,IAAI,yBAAyB,IAAI;AAAA,QACtD;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM,MAAM;AAAA,MACZ,IAAI,MAAM;AAAA,MACV,OAAO;AAAA,QACL,GAAG;AAAA,QACH,UAAU;AAAA,MACZ;AAAA,MACA,KAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEQ,qBAAqB,OAAoB,UAAyB;AACxE,UAAM,iBAAiB,MAAM;AAC7B,UAAM,cAAc,QAAQ,YAAY,WAAW,cAAc;AAEjE,QAAI,oBAAoB;AAExB,QAAI,aAAa;AACf,YAAM,iBACJ,QAAQ,YAAY,qBAAqB,cAAc,KAAK,CAAC;AAE/D,UAAI,eAAe,SAAS,GAAG;AAC7B,4BAAoB,IAAI;AAAA,UACtB,eAAe,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAgB,kBAAkB,QAAQ,cAAc;AAE9D,UAAM,cAAc,OAAO;AAAA,MACzB,OAAO,eAAe,SAAS,SAAS,CAAC,CAAC;AAAA,IAC5C;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO,0BAA0B,SAAS,SAAS,CAAC,CAAC;AAAA,IACvD;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO,0BAA0B,MAAM,SAAS,CAAC,CAAC;AAAA,IACpD;AAEA,aAAS,QAAQ;AAEjB,UAAM,aAAa,SAAS,MAAM;AAElC,QAAI,sBAAsB,SAAS;AACjC,aAAO,KAAK,uBAAuB,OAAO,YAAY,iBAAiB;AAAA,IACzE;AAEA,WAAO,KAAK,cAAc,YAAY,iBAAiB;AAAA,EACzD;AAAA,EAEQ,YAAY,UAAe,UAAyB;AAC1D,QAAI,YAAY,KAAM,QAAO;AAC7B,QAAI,OAAO,aAAa,YAAY,OAAO,aAAa,UAAU;AAChE,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,aAAO,SAAS,IAAI,CAAC,MAAM,KAAK,cAAc,GAAG,QAAQ,CAAC;AAAA,IAC5D;AAEA,WAAO,KAAK,cAAc,UAAU,QAAQ;AAAA,EAC9C;AAAA,EAEQ,eAAe,MAAc,UAAyB;AAC5D,UAAM,EAAE,UAAAC,UAAS,IAAI;AAAA,MACnB,8BAA8B,IAAI;AAAA,IACpC;AAEA,UAAM,iBAAiB,CAAC,YAAsB;AAC5C,YAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,YAAM,QAA6B,CAAC;AAEpC,YAAM,QAAQ,QAAQ;AACtB,UAAI,OAAO;AACT,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,gBAAM,OAAO,MAAM,CAAC;AACpB,cAAI,OAAO,KAAK;AAEhB,cAAI,SAAS,SAAS;AACpB,mBAAO;AAAA,UACT,WAAW,SAAS,OAAO;AACzB,mBAAO;AAAA,UACT,WACE,CAAC,KAAK,WAAW,OAAO,KACxB,CAAC,KAAK,WAAW,OAAO,KACxB,KAAK,SAAS,GAAG,GACjB;AACA,mBAAO,KAAK;AAAA,cAAQ;AAAA,cAAa,CAAC,GAAW,WAC3C,OAAO,YAAY;AAAA,YACrB;AAAA,UACF;AAEA,gBAAM,IAAI,IAAI,KAAK;AAAA,QACrB;AAAA,MACF;AAEA,YAAM,WAAkB,CAAC;AACzB,YAAM,aAAa,QAAQ;AAE3B,UAAI,YAAY;AACd,iBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,gBAAM,QAAQ,WAAW,CAAC;AAC1B,gBAAM,YAAY,YAAY,KAAK;AACnC,cAAI,aAAa,MAAM;AACrB,qBAAS,KAAK,SAAS;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAEA,YAAM,aAAa;AAAA,QACjB,UAAU;AAAA,QACV,MAAM;AAAA,QACN,IAAI,KAAK,WAAW;AAAA,QACpB,OAAO;AAAA,UACL,GAAG;AAAA,UACH,UACE,SAAS,WAAW,IAChB,SACA,SAAS,WAAW,IACpB,SAAS,CAAC,IACV;AAAA,QACR;AAAA,QACA,KAAK;AAAA,MACP;AAEA,aAAO,KAAK,cAAc,YAAY,QAAQ;AAAA,IAChD;AAEA,UAAM,cAAc,CAAC,SAAmB;AACtC,UAAI,KAAK,aAAa,GAAG;AACvB,cAAM,OAAO,KAAK,eAAe;AACjC,cAAM,UAAU,KAAK,KAAK;AAC1B,eAAO,UAAU,OAAO;AAAA,MAC1B;AAEA,UAAI,KAAK,aAAa,GAAG;AACvB,eAAO,eAAe,IAAI;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,SAAgB,CAAC;AACvB,UAAM,eAAeA,UAAS,MAAM;AAEpC,QAAI,cAAc;AAChB,eAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,cAAM,OAAO,aAAa,CAAC;AAC3B,cAAM,YAAY,YAAY,IAAI;AAClC,YAAI,aAAa,MAAM;AACrB,iBAAO,KAAK,SAAS;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,OAAO,WAAW,IACrB,SACA,OAAO,WAAW,IAClB,OAAO,CAAC,IACR;AAAA,EACN;AAAA,EAEQ,uBACN,OACA,SACA,UACA;AACA,UAAM,KAAK,MAAM;AACjB,UAAM,kBAAkB,IAAI,gBAAgB;AAE5C,UAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,YAAM,YAAY,WAAW,MAAM;AACjC,wBAAgB,MAAM;AACtB;AAAA,UACE,IAAI;AAAA,YACF,aAAa,MAAM,KAAK,QAAQ,SAAS,oBACvC,KAAK,QAAQ,OACf;AAAA,UACF;AAAA,QACF;AAAA,MACF,GAAG,KAAK,QAAQ,OAAO;AAEvB,sBAAgB,OAAO,iBAAiB,SAAS,MAAM;AACrD,qBAAa,SAAS;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AAED,UAAM,QAAQ,QAAQ,KAAK,CAAC,SAAS,cAAc,CAAC,EACjD,KAAK,CAAC,WAAW;AAChB,aAAO,KAAK,MAAM;AAClB,aAAO,KAAK,cAAc,QAAQ,QAAQ;AAAA,IAC5C,CAAC,EACA,MAAM,CAAC,QAAQ,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,CAAC;AAEpD,SAAK,QAAQ,IAAI,IAAI,EAAE,iBAAiB,SAAS,MAAM,CAAC;AAExD,UACG,KAAK,CAAC,aAAa;AAClB,UAAI,KAAK,aAAa,IAAI,EAAE,EAAG;AAC/B,WAAK,aAAa,IAAI,EAAE;AAExB,WAAK,eAAe,MAAM,IAAI;AAAA,QAC5B,GAAG;AAAA,QACH,QAAQ;AAAA,MACV,CAAC;AAED,WAAK,QAAQ,OAAO,EAAE;AAAA,IACxB,CAAC,EACA,MAAM,CAAC,MAAM;AACZ,WAAK,eAAe,MAAM,IAAI;AAAA,QAC5B,UAAU;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR;AAAA,QACA,OAAO;AAAA,UACL,SAAS,OAAO,GAAG,KAAK,KAAK,OAAO,CAAC;AAAA,QACvC;AAAA,QACA,KAAK;AAAA,MACP,CAAC;AACD,WAAK,QAAQ,OAAO,EAAE;AAAA,IACxB,CAAC;AAEH,WAAO;AAAA,MACL,UAAU;AAAA,MACV;AAAA,MACA,MAAM;AAAA,MACN,OAAO,MAAM;AAAA,MACb,KAAK,MAAM,OAAO;AAAA,IACpB;AAAA,EACF;AAAA,EAEQ,aAAqB;AAC3B,WAAO,OAAO,EAAE,KAAK,SAAS;AAAA,EAChC;AAAA,EAEQ,UAAU;AAChB,eAAW,EAAE,gBAAgB,KAAK,KAAK,QAAQ,OAAO,GAAG;AACvD,sBAAgB,MAAM;AAAA,IACxB;AACA,SAAK,QAAQ,MAAM;AACnB,SAAK,aAAa,MAAM;AACxB,SAAK,eAAe,SAAS;AAAA,EAC/B;AAAA,EAEA,SAAS;AACP,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,MAAM,mBAAmBC,MAA0C;AACjE,UAAM,MAAqB,CAAC;AAC5B,qBAAiB,OAAO,KAAK,OAAOA,MAAK,KAAK,YAAY,GAAG;AAC3D,UAAI,KAAK,GAAG;AAAA,IACd;AACA,WAAO;AAAA,EACT;AACF;;;AC/YO,IAAM,QAAN,MAAY;AAAA,EAKjB,YAAmB,KAAmB,IAAoC;AAAvD;AAAmB;AAFtC,oBAAoB,CAAC;AAAA,EAEsD;AAAA,EAE3E,MAAM,IAAY;AAChB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,SAAS,OAAqB;AAC5B,UAAM,SAAS;AACf,SAAK,SAAS,KAAK,KAAK;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,OAAoB;AAC9B,UAAM,QAAQ,KAAK,SAAS,QAAQ,KAAK;AACzC,QAAI,QAAQ,IAAI;AACd,WAAK,SAAS,OAAO,OAAO,CAAC;AAC7B,YAAM,SAAS;AAAA,IACjB;AAAA,EACF;AAAA,EAEA,SAAS,IAA0B;AACjC,QAAI,KAAK,OAAO,GAAI,QAAO;AAE3B,eAAW,SAAS,KAAK,UAAU;AACjC,YAAM,QAAQ,MAAM,SAAS,EAAE;AAC/B,UAAI,MAAO,QAAO;AAAA,IACpB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,IAAU;AACf,QAAI,KAAK,IAAI;AACX,WAAK,GAAG,KAAK,KAAK,EAAE;AAAA,IACtB,OAAO;AACL,UAAI,KAAK,IAAI,YAAY;AACvB,aAAK,IAAI,WAAW,aAAa,IAAI,KAAK,GAAG;AAAA,MAC/C;AAAA,IACF;AACA,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,UAAgB;AACd,eAAW,SAAS,KAAK,UAAU;AACjC,YAAM,QAAQ;AAAA,IAChB;AAEA,QAAI,KAAK,IAAI,YAAY;AACvB,WAAK,IAAI,WAAW,YAAY,KAAK,GAAG;AAAA,IAC1C;AAEA,QAAI,KAAK,QAAQ;AACf,WAAK,OAAO,YAAY,IAAI;AAAA,IAC9B;AAAA,EACF;AACF;;;AC5DO,SAAS,oBAAoB,KAAU,OAAY;AACxD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,YAAY,MAAM,WAAW;AAAA,EACtC;AACA,SAAO;AACT;AAEO,SAAS,mBAAmB,KAAU,OAAY;AACvD,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,WAAW,GAAG;AAC9D,WAAO,OAAO,IAAI,MAAM,MAAM,CAAC,CAAC;AAAA,EAClC;AACA,SAAO;AACT;;;ACVA,IAAI,gBAAqC;AACzC,IAAI,aAAa;AACjB,IAAI,iBAAiB,oBAAI,IAAkB;AAepC,SAAS,OAAU,cAA4B;AACpD,MAAI,QAAQ;AACZ,QAAM,cAAc,oBAAI,IAAkB;AAE1C,QAAM,SAAS,MAAM;AACnB,gBAAY,QAAQ,CAAC,QAAQ,eAAe,IAAI,GAAG,CAAC;AACpD,QAAI,eAAe,GAAG;AACpB,YAAM,UAAU,MAAM,KAAK,cAAc;AACzC,qBAAe,MAAM;AACrB,cAAQ,QAAQ,CAACC,YAAWA,QAAO,QAAQ,CAAC;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO;AAAA,IACL,WAAW;AAAA,IACX,cAAc;AAAA,IACd,IAAI,QAAW;AACb,UAAI,eAAe;AACjB,oBAAY,IAAI,aAAa;AAC7B,sBAAc,KAAK,IAAI,WAAW;AAAA,MACpC;AACA,aAAO;AAAA,IACT;AAAA,IACA,IAAI,MAAM,UAAa;AACrB,UAAI,UAAU,UAAU;AACtB,gBAAQ;AACR,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,OAAO,IAA2C;AAChE,QAAM,OAAO,oBAAI,IAAuB;AACxC,MAAI;AAEJ,QAAM,UAAwB,MAAM;AAClC,WAAO,QAAQ;AAAA,EACjB;AAEA,SAAO,OAAO;AAEd,SAAO,UAAU,MAAM;AACrB,QAAI,WAAW;AACb,gBAAU;AACV,kBAAY;AAAA,IACd;AAEA,SAAK,QAAQ,CAAC,SAAS,KAAK,OAAO,MAAM,CAAC;AAC1C,SAAK,MAAM;AAEX,UAAM,aAAa;AACnB,oBAAgB;AAEhB,QAAI;AACF,YAAM,SAAS,GAAG;AAClB,UAAI,OAAO,WAAW,YAAY;AAChC,oBAAY;AAAA,MACd;AAAA,IACF,UAAE;AACA,sBAAgB;AAAA,IAClB;AAAA,EACF;AAEA,SAAO,UAAU,MAAM;AACrB,QAAI,WAAW;AACb,gBAAU;AACV,kBAAY;AAAA,IACd;AACA,SAAK,QAAQ,CAAC,SAAS,KAAK,OAAO,MAAM,CAAC;AAC1C,SAAK,MAAM;AAAA,EACb;AAEA,SAAO,YAAY;AAEnB,SAAO,QAAQ;AAEf,SAAO,MAAM,OAAO,QAAQ;AAC9B;AAEO,SAAS,SAAY,IAAwB;AAClD,QAAM,MAAM,OAAO,GAAG,CAAC;AACvB,MAAI;AAEJ,YAAU,OAAO,MAAM;AACrB,QAAI,QAAQ,GAAG;AAAA,EACjB,CAAC;AAED,QAAM,iBAAiB;AACvB,QAAM,UAAU;AAEhB,EAAC,eAAuB,UAAU;AAElC,SAAO;AACT;AAEO,SAAS,MAAM,IAAsB;AAC1C;AACA,MAAI;AACF,OAAG;AAAA,EACL,UAAE;AACA;AACA,QAAI,eAAe,GAAG;AACpB,YAAM,UAAU,MAAM,KAAK,cAAc;AACzC,qBAAe,MAAM;AACrB,cAAQ,QAAQ,CAACA,YAAWA,QAAO,QAAQ,CAAC;AAAA,IAC9C;AAAA,EACF;AACF;AAEO,SAAS,SAAS,OAAqB;AAC5C,SAAO,SAAS,MAAM,cAAc;AACtC;AAEO,SAAS,WAAc,IAAmC;AAC/D,QAAM,WAA8B,CAAC;AACrC,QAAM,UAAU,MAAM;AACpB,aAAS,QAAQ,CAAC,YAAY,QAAQ,CAAC;AACvC,aAAS,SAAS;AAAA,EACpB;AAEA,QAAM,aAAa;AAEnB,QAAM,iBAAiB;AACvB,EAAC,WAAmB,SAAS,CAACC,QAAkC;AAC9D,UAAM,UAAU,eAAeA,GAAE;AACjC,aAAS,KAAK,OAAO;AACrB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,WAAO,GAAG,OAAO;AAAA,EACnB,UAAE;AACA,IAAC,WAAmB,SAAS;AAC7B,oBAAgB;AAAA,EAClB;AACF;AAEO,SAAS,UAAa,IAAgB;AAC3C,QAAM,aAAa;AACnB,kBAAgB;AAChB,MAAI;AACF,WAAO,GAAG;AAAA,EACZ,UAAE;AACA,oBAAgB;AAAA,EAClB;AACF;;;AC5JO,IAAM,aAAN,MAAoB;AAAA,EAGzB,YACU,UACR;AADQ;AAHV,0BAAiB;AAAA,EAId;AAAA,EAEI,UACL,gBACA,OACA,UACc;AACd,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,QAAI;AACJ,QAAI,iBAAiB;AAErB,QAAI,KAAK,UAAU;AACjB,UAAI;AACF,kBAAU,KAAK,SAAS,QAAQ;AAAA,MAClC,SAAS,KAAK;AACZ,YAAI,SAAS,OAAO;AAClB,cAAI;AACF,qBAAS,MAAM,GAAG;AAAA,UACpB,SAAS,GAAG;AACV,oBAAQ,MAAM,+CAA+C,CAAC;AAAA,UAChE;AAAA,QACF,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,aAAa,MAAM;AACjB,YAAI,eAAgB;AACpB,yBAAiB;AACjB,YAAI,SAAS;AACX,cAAI;AACF,oBAAQ;AAAA,UACV,SAAS,KAAK;AACZ,oBAAQ,MAAM,yBAAyB,GAAG;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EA0BO,QAAQ,YAA2D;AACxE,QAAI,WAAW,WAAW,GAAG;AAC3B,aAAO;AAAA,IACT;AACA,WAAO,WAAW,OAAO,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAW;AAAA,EAC9D;AACF;AAEO,SAAS,KAAQ,UAAsC;AAC5D,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI;AACF,iBAAW,SAAS,UAAU;AAC5B,iBAAS,KAAK,KAAK;AAAA,MACrB;AACA,eAAS,WAAW;AAAA,IACtB,SAAS,KAAK;AACZ,eAAS,QAAQ,GAAG;AAAA,IACtB;AAAA,EACF,CAAC;AACH;AAEO,SAAS,SAAS,IAAgC;AACvD,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI,QAAQ;AACZ,UAAM,KAAK,YAAY,MAAM;AAC3B,eAAS,KAAK,OAAO;AAAA,IACvB,GAAG,EAAE;AACL,WAAO,MAAM,cAAc,EAAE;AAAA,EAC/B,CAAC;AACH;AAEO,SAAS,MAAS,QAA4B;AACnD,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI;AACF,aAAO,QAAQ,CAAC,UAAU,SAAS,KAAK,KAAK,CAAC;AAC9C,eAAS,WAAW;AAAA,IACtB,SAAS,KAAK;AACZ,eAAS,QAAQ,GAAG;AAAA,IACtB;AAAA,EACF,CAAC;AACH;AAEO,SAAS,WACd,UACe;AACf,SAAO,IAAI,WAAc,QAAQ;AACnC;AAEO,SAAS,SACd,KACA,UACuB;AACvB,QAAM,MAAM,OAAsB,MAAS;AAE3C,QAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ;AACnC,QAAI,QAAQ;AAAA,EACd,CAAC;AAED,WAAS,YAAY;AAAA,IACnB,GAAI,SAAS,aAAa,CAAC;AAAA,IAC3B,MAAM,MAAM,YAAY;AAAA,EAC1B;AAEA,SAAO;AACT;AAEO,SAAS,aAAa,OAAqB;AAChD,SAAO,SAAS,MAAM,mBAAmB;AAC3C;AAGO,SAAS,IAAU,IAA6C;AACrE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,qBAAS,KAAK,GAAG,KAAK,CAAC;AAAA,UACzB,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,OACd,WACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,gBAAI,UAAU,KAAK,GAAG;AACpB,uBAAS,KAAK,KAAK;AAAA,YACrB;AAAA,UACF,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,IAAO,IAAgD;AACrE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,eAAG,KAAK;AACR,qBAAS,KAAK,KAAK;AAAA,UACrB,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,KAAQ,OAAuC;AAC7D,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,QAAQ;AACZ,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI,QAAQ,OAAO;AACjB,qBAAS,KAAK,KAAK;AACnB;AACA,gBAAI,UAAU,OAAO;AACnB,uBAAS,WAAW;AACpB,2BAAa,YAAY;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,KAAQ,OAAuC;AAC7D,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,UAAU;AACd,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI,UAAU,OAAO;AACnB;AAAA,UACF,OAAO;AACL,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAgB,IAAoC;AAClE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI;AACJ,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,uBAAa,SAAS;AACtB,sBAAY,WAAW,MAAM;AAC3B,qBAAS,KAAK,KAAK;AAAA,UACrB,GAAG,EAAE;AAAA,QACP;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM;AACX,qBAAa,SAAS;AACtB,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAgB,IAAoC;AAClE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,WAAW;AACf,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,gBAAM,MAAM,KAAK,IAAI;AACrB,cAAI,MAAM,YAAY,IAAI;AACxB,uBAAW;AACX,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,qBACd,SACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,UAAU;AACd,UAAI;AACJ,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,gBAAM,aACJ,CAAC,YAAY,UAAU,CAAC,QAAQ,MAAM,KAAK,IAAI,SAAS;AAE1D,cAAI,YAAY;AACd,sBAAU;AACV,mBAAO;AACP,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,UACd,IACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,oBAAyC;AAC7C,YAAM,oBAAoB,OAAO;AAAA,QAC/B,CAAC,UAAU;AACT,cAAI,mBAAmB;AACrB,8BAAkB,YAAY;AAAA,UAChC;AACA,cAAI;AACF,kBAAM,kBAAkB,GAAG,KAAK;AAChC,gCAAoB,gBAAgB;AAAA,cAClC,CAAC,eAAe,SAAS,KAAK,UAAU;AAAA,cACxC,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,YAC/B;AAAA,UACF,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM;AACX,YAAI,mBAAmB;AACrB,4BAAkB,YAAY;AAAA,QAChC;AACA,0BAAkB,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,SACd,IACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,qBAAqC,CAAC;AAC5C,UAAI,gBAAgB;AACpB,UAAI,cAAc;AAElB,YAAM,gBAAgB,MAAM;AAC1B,YAAI,iBAAiB,gBAAgB,GAAG;AACtC,mBAAS,WAAW;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,oBAAoB,OAAO;AAAA,QAC/B,CAAC,UAAU;AACT,cAAI;AACF,kBAAM,kBAAkB,GAAG,KAAK;AAChC;AACA,kBAAM,WAAW,gBAAgB;AAAA,cAC/B,CAAC,eAAe,SAAS,KAAK,UAAU;AAAA,cACxC,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,cAC7B,MAAM;AACJ;AACA,8BAAc;AAAA,cAChB;AAAA,YACF;AACA,+BAAmB,KAAK,QAAQ;AAAA,UAClC,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM;AACJ,0BAAgB;AAChB,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,aAAO,MAAM;AACX,2BAAmB,QAAQ,CAAC,QAAQ,IAAI,YAAY,CAAC;AACrD,0BAAkB,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,UACd,IACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,QAAa,CAAC;AACpB,UAAI,oBAAyC;AAC7C,UAAI,gBAAgB;AACpB,UAAI,eAAe;AAEnB,YAAM,cAAc,MAAM;AACxB,YAAI,gBAAgB,MAAM,WAAW,GAAG;AACtC,cAAI,iBAAiB,MAAM,WAAW,GAAG;AACvC,qBAAS,WAAW;AAAA,UACtB;AACA;AAAA,QACF;AAEA,uBAAe;AACf,cAAM,QAAQ,MAAM,MAAM;AAE1B,YAAI;AACF,gBAAM,kBAAkB,GAAG,KAAK;AAChC,8BAAoB,gBAAgB;AAAA,YAClC,CAAC,eAAe,SAAS,KAAK,UAAU;AAAA,YACxC,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,YAC7B,MAAM;AACJ,6BAAe;AACf,0BAAY;AAAA,YACd;AAAA,UACF;AAAA,QACF,SAAS,KAAK;AACZ,mBAAS,QAAQ,GAAG;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,oBAAoB,OAAO;AAAA,QAC/B,CAAC,UAAU;AACT,gBAAM,KAAK,KAAK;AAChB,sBAAY;AAAA,QACd;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM;AACJ,0BAAgB;AAChB,cAAI,MAAM,WAAW,KAAK,CAAC,cAAc;AACvC,qBAAS,WAAW;AAAA,UACtB;AAAA,QACF;AAAA,MACF;AAEA,aAAO,MAAM;AACX,YAAI,mBAAmB;AACrB,4BAAkB,YAAY;AAAA,QAChC;AACA,0BAAkB,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,WACd,SACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU,SAAS,KAAK,KAAK;AAAA,QAC9B,CAAC,QAAQ;AACP,cAAI;AACF,kBAAM,WAAW,QAAQ,GAAG;AAC5B,kBAAM,cAAc,SAAS;AAAA,cAC3B,CAAC,UAAU,SAAS,KAAK,KAAK;AAAA,cAC9B,CAAC,MAAM,SAAS,QAAQ,CAAC;AAAA,cACzB,MAAM,SAAS,WAAW;AAAA,YAC5B;AACA,YAAC,aAAqB,aAAa;AAAA,UACrC,SAAS,GAAG;AACV,qBAAS,QAAQ,CAAC;AAAA,UACpB;AAAA,QACF;AAAA,QACA,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM;AACX,YAAK,aAAqB,YAAY;AACpC,UAAC,aAAqB,WAAW,YAAY;AAAA,QAC/C;AACA,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAgB,QAAqC;AACnE,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,aAAO,QAAQ,CAAC,UAAU,SAAS,KAAK,KAAK,CAAC;AAC9C,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU,SAAS,KAAK,KAAK;AAAA,QAC9B,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,KACd,aACA,MACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,MAAM;AACV,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,kBAAM,YAAY,KAAK,KAAK;AAC5B,qBAAS,KAAK,GAAG;AAAA,UACnB,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM,SAAS,WAAW;AAAA,MAC5B;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;AAEO,SAAS,OACd,aACA,MACwB;AACxB,SAAO,CAAC,WAA0B;AAChC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,UAAI,MAAM;AACV,YAAM,eAAe,OAAO;AAAA,QAC1B,CAAC,UAAU;AACT,cAAI;AACF,kBAAM,YAAY,KAAK,KAAK;AAAA,UAC9B,SAAS,KAAK;AACZ,qBAAS,QAAQ,GAAG;AAAA,UACtB;AAAA,QACF;AAAA,QACA,CAAC,QAAQ,SAAS,QAAQ,GAAG;AAAA,QAC7B,MAAM;AACJ,mBAAS,KAAK,GAAG;AACjB,mBAAS,WAAW;AAAA,QACtB;AAAA,MACF;AACA,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AACF;;;ACjjBO,IAAM,UAAN,cAAyB,WAAc;AAAA,EAM5C,cAAc;AACZ,UAAM;AANR,SAAU,cAAgC,oBAAI,IAAI;AAClD,SAAU,eAAe;AACzB,SAAU,YAAY;AACtB,SAAU,eAAoB;AAAA,EAI9B;AAAA,EAEO,eAA8B;AACnC,WAAO,IAAI,WAAc,CAAC,aAAa;AACrC,YAAM,eAAe,KAAK,UAAU,QAAQ;AAC5C,aAAO,MAAM,aAAa,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AAAA,EAEO,UACL,gBACA,OACA,UACc;AACd,QAAI,KAAK,cAAc;AACrB,YAAM,MACJ,OAAO,mBAAmB,aAAa,EAAE,SAAS,IAAI;AACxD,UAAI,WAAW;AACf,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,QAAI,KAAK,WAAW;AAClB,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,SAAK,YAAY,IAAI,QAAQ;AAE7B,WAAO;AAAA,MACL,aAAa,MAAM;AACjB,aAAK,YAAY,OAAO,QAAQ;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEO,KAAK,OAAgB;AAC1B,QAAI,KAAK,gBAAgB,KAAK,UAAW;AAEzC,UAAM,qBAAqB,MAAM,KAAK,KAAK,WAAW;AACtD,uBAAmB,QAAQ,CAAC,aAAa;AACvC,UAAI,KAAK,YAAY,IAAI,QAAQ,GAAG;AAClC,YAAI;AACF,mBAAS,KAAK,KAAK;AAAA,QACrB,SAAS,KAAK;AACZ,kBAAQ,MAAM,sBAAsB,GAAG;AAAA,QACzC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,MAAM,KAAgB;AAC3B,QAAI,KAAK,gBAAgB,KAAK,UAAW;AAEzC,SAAK,YAAY;AACjB,SAAK,eAAe;AAEpB,eAAW,YAAY,KAAK,aAAa;AACvC,eAAS,QAAQ,GAAG;AAAA,IACtB;AAEA,SAAK,YAAY,MAAM;AAAA,EACzB;AAAA,EAEO,WAAiB;AACtB,QAAI,KAAK,gBAAgB,KAAK,UAAW;AAEzC,SAAK,eAAe;AACpB,UAAM,qBAAqB,MAAM,KAAK,KAAK,WAAW;AAEtD,uBAAmB,QAAQ,CAAC,aAAa;AACvC,UAAI,SAAS,UAAU;AACrB,YAAI;AACF,mBAAS,SAAS;AAAA,QACpB,SAAS,KAAK;AACZ,kBAAQ,MAAM,8BAA8B,GAAG;AAAA,QACjD;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,YAAY,MAAM;AAAA,EACzB;AACF;;;AC5FO,IAAM,kBAAN,cAAiC,QAAW;AAAA,EAGjD,YAAY,cAAiB;AAC3B,UAAM;AACN,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAW,SAAY;AACrB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,KAAK,OAAgB;AAC1B,SAAK,SAAS;AACd,UAAM,KAAK,KAAK;AAAA,EAClB;AAAA,EAEO,UACL,gBACA,OACA,UACc;AACd,UAAM,WACJ,OAAO,mBAAmB,aACtB,EAAE,MAAM,gBAAgB,OAAO,SAAS,IACxC;AAEN,QAAI,KAAK,WAAW;AAClB,eAAS,QAAQ,KAAK,YAAY;AAClC,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,QAAI,KAAK,cAAc;AACrB,eAAS,WAAW;AACpB,aAAO,EAAE,aAAa,MAAM;AAAA,MAAC,EAAE;AAAA,IACjC;AAEA,aAAS,KAAK,KAAK,MAAM;AACzB,WAAO,MAAM,UAAU,QAAQ;AAAA,EACjC;AACF;;;ACzCO,IAAe,gBAAf,MAA6B;AAAA,EAA7B;AACL,qBAA+B,CAAC;AAAA;AAAA,EAIhC,SAAe;AAAA,EAAC;AAAA,EAEhB,YAAkB;AAChB,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,SAAS,IAAgB;AACvB,SAAK,UAAU,KAAK,EAAE;AAAA,EACxB;AAGF;;;ACnBA,IAAI,aAA0C,SAAU,YAAY,QAAQ,KAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,IAAI,WAAW,CAAC,EAAG,MAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AAEA,IAAI,aAAa,MAAMC,YAAW;AAAA,EAC9B,IAAI,KAAK,EAAE,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AAC9C,WAAO,IAAI,WAAW,CAAC,eAAe;AAClC,YAAM,aAAa,IAAI,gBAAgB;AACvC,YAAM,KAAK;AAAA,QACP,QAAQ;AAAA,QACR,GAAG;AAAA,QACH,QAAQ,WAAW;AAAA,MACvB,CAAC,EACI,KAAK,OAAO,QAAQ;AACrB,YAAI,CAAC,IAAI,IAAI;AACT,gBAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,KAAK,IAAI,UAAU,EAAE;AAAA,QAC3D;AACA,YAAI,WAAW,QAAQ;AACnB,gBAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,qBAAW,KAAK,UAAU,KAAK,MAAM,KAAK,UAAU,IAAI,GAAG,OAAO,IAAI,IAAI;AAC1E,qBAAW,WAAW;AACtB;AAAA,QACJ;AACA,YAAI,WAAW,OAAO;AAClB,qBAAW,KAAK,GAAG;AACnB,qBAAW,WAAW;AACtB;AAAA,QACJ;AACA,cAAM,SAAS,IAAI,MAAM,UAAU;AACnC,YAAI,CAAC,QAAQ;AACT,gBAAM,IAAI,MAAM,8BAA8B;AAAA,QAClD;AACA,cAAM,UAAU,IAAI,YAAY;AAChC,YAAI,SAAS;AACb,eAAO,MAAM;AACT,gBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,cAAI,MAAM;AACN,gBAAI,WAAW,YAAY,OAAO,KAAK,GAAG;AACtC,kBAAI;AACA,2BAAW,KAAK,KAAK,MAAM,QAAQ,OAAO,CAAC;AAAA,cAC/C,SACO,KAAK;AACR,wBAAQ,KAAK,qCAAqC,GAAG;AAAA,cACzD;AAAA,YACJ;AACA;AAAA,UACJ;AACA,gBAAM,QAAQ,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AACpD,cAAI,WAAW,QAAQ;AACnB,uBAAW,KAAK,KAAK;AACrB;AAAA,UACJ;AACA,cAAI,WAAW,UAAU;AACrB,sBAAU;AACV,kBAAM,QAAQ,OAAO,MAAM,IAAI;AAC/B,qBAAS,MAAM,IAAI;AACnB,uBAAW,QAAQ,OAAO;AACtB,kBAAI,KAAK,KAAK,GAAG;AACb,oBAAI;AACA,6BAAW,KAAK,KAAK,MAAM,MAAM,OAAO,CAAC;AAAA,gBAC7C,SACO,KAAK;AACR,0BAAQ,MAAM,gCAAgC,MAAM,GAAG;AAAA,gBAC3D;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AACA,mBAAW,WAAW;AAAA,MAC1B,CAAC,EACI,MAAM,CAAC,QAAQ;AAChB,YAAI,IAAI,SAAS,cAAc;AAC3B,kBAAQ,IAAI,iBAAiB;AAAA,QACjC;AACA,mBAAW,QAAQ,GAAG;AAAA,MAC1B,CAAC;AACD,aAAO,MAAM;AACT,mBAAW,MAAM;AAAA,MACrB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,KAAK,KAAK,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AACrD,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,QAAI,QAAQ,CAAC,QAAQ,IAAI,cAAc,GAAG;AACtC,cAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAClD;AACA,UAAM,gBAAgB,SAAS,SACzB,OAAO,SAAS,WACZ,OACA,KAAK,UAAU,IAAI,IACvB;AACN,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,QACF,GAAG;AAAA,QACH,QAAQ;AAAA,QACR;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,IAAI,KAAK,SAAS;AACd,WAAO,KAAK,QAAQ,KAAK,OAAO,OAAO;AAAA,EAC3C;AAAA,EACA,MAAM,KAAK,SAAS;AAChB,WAAO,KAAK,QAAQ,KAAK,SAAS,OAAO;AAAA,EAC7C;AAAA,EACA,OAAO,KAAK,SAAS;AACjB,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB,GAAG;AAAA,MACH,MAAM;AAAA,QACF,GAAG,SAAS;AAAA,QACZ,QAAQ;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EACA,QAAQ,KAAK,QAAQ,EAAE,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG;AAChE,UAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,QAAI,QAAQ,CAAC,QAAQ,IAAI,cAAc,GAAG;AACtC,cAAQ,IAAI,gBAAgB,kBAAkB;AAAA,IAClD;AACA,UAAM,gBAAgB,SAAS,SACzB,OAAO,SAAS,WACZ,OACA,KAAK,UAAU,IAAI,IACvB;AACN,WAAO,KAAK,IAAI,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,QACF,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AACA,aAAa,WAAW;AAAA,EACpB,WAAW;AACf,GAAG,UAAU;AAEb,IAAI,mBAAmB,MAAMC,kBAAiB;AAC9C;AACA,mBAAmB,WAAW;AAAA,EAC1B,OAAO;AAAA,IACH,WAAW,CAAC,UAAU;AAAA,IACtB,SAAS,CAAC,UAAU;AAAA,EACxB,CAAC;AACL,GAAG,gBAAgB;;;ACvIZ,IAAM,MAAN,MAAM,KAAI;AAAA,EA+Df,YAAoB,MAAmB;AAAnB;AA7DpB,SAAQ,cAAc,oBAAI,IAAyB;AA8DjD,SAAK,OAAO,IAAI,MAAM,MAAM,CAAC,KAAK,OAAO;AACvC,MAAC,IAAoB,YAAY,EAAE;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAhEA;AAAA,SAAwB,gBAAgB;AAAA;AAAA,EACxC;AAAA,SAAwB,WAAW,oBAAI,IAAI;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA;AAAA,EAQM,aAAaC,MAAwB;AAC1C,UAAM,EAAE,SAAS,MAAM,IAAI,KAAK,SAASA,MAAK,KAAK,IAAI;AAEvD,QAAIA,KAAI,MAAM,OAAO;AACnB,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,SAAK,KAAK,OAAO,OAAO;AAAA,EAC1B;AAAA,EAEO,aAAaA,MAAwB;AAC1C,QAAI,CAACA,KAAI,IAAI;AACX,cAAQ,KAAK,8BAA8B;AAC3C;AAAA,IACF;AAEA,UAAM,cAAc,KAAK,KAAK,SAASA,KAAI,EAAE;AAE7C,QAAI,aAAa;AACf,YAAM,cAAc,CAAC,GAAG,YAAY,QAAQ;AAC5C,kBAAY,WAAW,CAAC;AAExB,YAAM,EAAE,SAAS,MAAM,IAAI,KAAK;AAAA,QAC9BA;AAAA,QACA,YAAY,UAAU,KAAK;AAAA,MAC7B;AAEA,kBAAY,OAAO,OAAO;AAE1B,UAAI,OAAO;AACT,oBAAY,WAAW,MAAM;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,cAAQ,KAAK,iBAAiBA,KAAI,EAAE,+BAA+B;AACnE,WAAK,aAAaA,IAAG;AAAA,IACvB;AAAA,EACF;AAAA,EAEQ,SACNA,MACA,SACa;AACb,QAAIA,QAAO,MAAM;AACf,aAAO,EAAE,SAAS,SAAS,uBAAuB,EAAE;AAAA,IACtD;AAEA,QAAI,MAAM,QAAQA,IAAG,GAAG;AACtB,aAAO,KAAK,WAAWA,MAAK,OAAO;AAAA,IACrC;AAEA,QAAI,KAAK,YAAYA,IAAG,GAAG;AACzB,aAAO,KAAK,cAAc,OAAOA,IAAG,GAAG,OAAO;AAAA,IAChD;AAEA,QAAIA,KAAI,aAAa,wBAAwB;AAC3C,aAAO,KAAK,sBAAsBA,MAAK,OAAO;AAAA,IAChD;AAEA,QAAIA,KAAI,aAAa,uBAAuB;AAC1C,aAAO,KAAK,qBAAqBA,MAAK,OAAO;AAAA,IAC/C;AAEA,QAAI,mBAAmBA,IAAG,GAAG;AAC3B,aAAO,KAAK,sBAAsBA,MAAK,OAAO;AAAA,IAChD;AAEA,YAAQ,MAAM,qBAAqBA,IAAG;AACtC,UAAM,IAAI;AAAA,MACR,0BAA0B,OAAOA,IAAG,cAAc,OAAOA,KAAI,QAAQ,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EAEQ,qBAAqBA,MAAU,QAA4B;AACjE,UAAM,gBAAgBA,KAAI,MAAM;AAChC,UAAM,EAAE,IAAI,MAAAC,OAAM,KAAK,IAAI;AAE3B,UAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,cAAU,QAAQ,kBAAkB;AAEpC,UAAM,QAAQ,IAAI,MAAM,WAAW,CAAC,KAAK,OAAO;AAC9C,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AAED,QAAID,KAAI,IAAI;AACV,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,WAAO,SAAS,KAAK;AAErB,SAAK,oBAAoBC,OAAM,MAAMD,KAAI,OAAO,SAAS;AAEzD,WAAO,EAAE,SAAS,WAAW,MAAM;AAAA,EACrC;AAAA,EAEQ,sBAAsBA,MAAU,QAA4B;AAClE,UAAM,QAAQA,KAAI;AAClB,UAAM,MAAM,SAAS,cAAc,KAAK;AACxC,QAAI,QAAQ,MAAM;AAClB,QAAI,YAAY;AAChB,QAAI,cAAc;AAElB,UAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,KAAK,OAAO;AACxC,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AACD,UAAM,MAAM,KAAK;AACjB,WAAO,SAAS,KAAK;AAErB,UAAM,iBAAiB,KAAK,YAAY,IAAI,KAAK;AACjD,QAAI,gBAAgB;AAClB,iBAAW,MAAM,KAAK,wBAAwB,OAAO,cAAc,GAAG,CAAC;AAAA,IACzE;AAEA,WAAO,EAAE,SAAS,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEA,wBAAwB,OAAe,SAA4B;AACjE,UAAM,QAAQ,KAAK,KAAK,SAAS,KAAK;AACtC,QAAI,CAAC,OAAO;AACV,cAAQ,KAAK,aAAa,KAAK,YAAY;AAC3C,WAAK,YAAY,IAAI,OAAO,OAAO;AACnC;AAAA,IACF;AAEA,QAAI;AACF,YAAM,WAAW,CAAC;AAElB,YAAM,EAAE,SAAS,OAAO,SAAS,IAAI,KAAK,SAAS,SAAS,KAAK;AAEjE,YAAM,OAAO,OAAO;AAEpB,UAAI,UAAU;AACZ,cAAM,WAAW,SAAS;AAAA,MAC5B;AAEA,WAAK,YAAY,OAAO,KAAK;AAAA,IAC/B,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK,KAAK,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EAEQ,cAAc,MAAc,QAA4B;AAC9D,UAAM,WAAW,SAAS,eAAe,IAAI;AAC7C,UAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,KAAK,OAAO;AAC7C,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AACD,WAAO,SAAS,KAAK;AACrB,WAAO,EAAE,SAAS,UAAU,MAAM;AAAA,EACpC;AAAA,EAEQ,YAAY,MAAoB;AACtC,WACE,OAAO,SAAS,YAChB,OAAO,SAAS,YAChB,OAAO,SAAS;AAAA,EAEpB;AAAA,EAEQ,WAAW,OAAsB,QAA4B;AACnE,UAAM,WAAW,SAAS,uBAAuB;AACjD,UAAM,SAAkB,CAAC;AAEzB,UAAM,QAAQ,CAAC,UAAU;AACvB,YAAM,EAAE,SAAS,MAAM,IAAI,KAAK,SAAS,OAAO,MAAM;AACtD,eAAS,YAAY,OAAO;AAC5B,UAAI,OAAO;AACT,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS,SAAS;AAAA,EAC7B;AAAA,EAEQ,SAAS,KAAsB;AACrC,WAAO,KAAI,SAAS,IAAI,GAAG;AAAA,EAC7B;AAAA,EAEQ,sBAAsBA,MAAkB,QAA4B;AAC1E,UAAM,MAAMA,KAAI;AAChB,UAAM,QAAQ,KAAK,SAAS,GAAG;AAG/B,UAAM,MAAM,QACR,SAAS,gBAAgB,KAAI,eAAe,GAAG,IAC/C,SAAS,cAAc,GAAG;AAE9B,UAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,KAAK,OAAO;AACxC,UAAI,IAAI,YAAY;AAClB,YAAI,WAAW,aAAa,IAAI,GAAG;AAAA,MACrC;AAAA,IACF,CAAC;AAED,WAAO,SAAS,KAAK;AAErB,QAAIA,KAAI,IAAI;AACV,YAAM,MAAMA,KAAI,EAAE;AAAA,IACpB;AAEA,QAAIA,KAAI,OAAO;AACb,WAAK,gBAAgBA,KAAI,OAAO,KAAK,OAAO,KAAK;AAAA,IACnD;AAEA,QAAIA,KAAI,OAAO,YAAY,MAAM;AAC/B,YAAM,EAAE,SAAS,SAAS,IAAI,KAAK,SAASA,KAAI,MAAM,UAAU,KAAK;AACrE,UAAI,YAAY,QAAQ;AAAA,IAC1B;AAEA,WAAO,EAAE,SAAS,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEQ,gBACN,OACA,KACA,OACA,QAAiB,OACX;AACN,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,UAAI,QAAQ,cAAc,SAAS,MAAM;AACvC;AAAA,MACF;AAEA,YAAM,UAAU,KAAK,sBAAsB,GAAG;AAE9C,UAAI,YAAY,WAAW,OAAO,UAAU,UAAU;AACpD,aAAK,YAAY,OAAO,GAAkB;AAC1C;AAAA,MACF;AAEA,UAAI,OAAO,UAAU,WAAW;AAC9B,aAAK,oBAAoB,SAAS,OAAO,KAAK,KAAK;AACnD;AAAA,MACF;AAGA,UAAI,OAAO;AACT,aAAK,gBAAgB,SAAS,OAAO,KAAK,GAAG,GAAG;AAAA,MAClD,OAAO;AACL,YAAI,aAAa,SAAS,OAAO,KAAK,CAAC;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,gBAAgB,KAAa,OAAe,KAAoB;AAEtE,QAAI,QAAQ,UAAU,QAAQ,cAAc;AAC1C,UAAI,eAAe,gCAAgC,QAAQ,KAAK;AAAA,IAClE,OAAO;AACL,UAAI,aAAa,KAAK,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEQ,sBAAsB,KAAqB;AACjD,QAAI,QAAQ,YAAa,QAAO;AAChC,QAAI,QAAQ,UAAW,QAAO;AAC9B,WAAO;AAAA,EACT;AAAA,EAEQ,YAAY,QAA6B,KAAwB;AACvE,UAAM,cAAc,OAAO,QAAQ,MAAM,EACtC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACf,YAAM,WAAW,EAAE,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE;AACjE,aAAO,GAAG,QAAQ,IAAI,CAAC;AAAA,IACzB,CAAC,EACA,KAAK,GAAG;AACX,QAAI,aAAa,SAAS,WAAW;AAAA,EACvC;AAAA,EAEQ,oBACN,KACA,OACA,KACA,QAAiB,OACX;AACN,QAAI,OAAO;AACT,UAAI,aAAa,KAAK,EAAE;AAAA,IAC1B,OAAO;AACL,UAAI,gBAAgB,GAAG;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,MAAc,oBACZC,OACA,MACA,OACA,WACe;AACf,QAAI;AAeF,UAASC,YAAT,SAAkB,KAAkBC,WAAoB;AACtD,YAAI,KAAK,IAAI,GAAG,EAAG;AACnB,aAAK,IAAI,GAAG;AAEZ,QAAAA,UAAS,YAAY;AAAA,UACnB,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACT,CAAC;AAED,cAAM,YACJ,QAAQ,YAAY,mBAAmB,GAAG,KAAK,CAAC;AAElD,cAAM,eACJ,QAAQ,YAAY,gBAAgB,GAAG,KAAK,CAAC;AAE/C,kBACG,OAAO,CAAC,MAAM,KAAK,MAAM,MAAM,EAC/B,QAAQ,CAAC,MAAMA,UAAS,YAAY,CAAC,CAAC;AAEzC,qBAAa,QAAQ,CAAC,SAASD,UAAS,MAAMC,SAAQ,CAAC;AAAA,MACzD;AArBS,qBAAAD;AAdT,YAAM,SAAS,MAAM,OAAOD;AAC5B,YAAM,iBAA8B,OAAO,IAAI;AAE/C,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,MAAM,aAAa,IAAI,iBAAiBA,KAAI,EAAE;AAAA,MAC1D;AAEA,YAAM,WAAW,mBAAmB;AACpC,UAAI,YAAY,MAAM;AACpB,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAEA,YAAM,OAAO,oBAAI,IAAiB;AAyBlC,MAAAC,UAAS,gBAAgB,QAAQ;AAEjC,YAAM,aAAa,EAAE,GAAG,MAAM;AAC9B,aAAO,WAAW;AAElB,YAAM,WAAW,SAAS,QAAQ,cAAc;AAChD,eAAS,aAAa;AACtB,eAAS,QAAQ;AAEjB,UAAI,OAAO,SAAS,UAAU,YAAY;AACxC,cAAM,IAAI,MAAM,aAAa,IAAI,6BAA6B;AAAA,MAChE;AAEA,YAAM,WAAW,SAAS,MAAM;AAEhC,gBAAU,YAAY,QAAQ;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,mCAAmC,IAAI,KAAK,KAAK;AAE/D,gBAAU,cAAc,4BAA4B,IAAI;AACxD,gBAAU,YAAY;AAAA,IACxB;AAAA,EACF;AACF;;;ACvbO,SAAS,QAAQ,SAAe;AACrC,SAAO,SAAS,QAAQ,oBAAoB,QAAQ;AACtD;;;ACAO,IAAe,YAAf,MAAyB;AAAA,EAAzB;AACL,SAAQ,UAAqB,CAAC;AAC9B,SAAQ,eAAwB;AAChC,SAAQ,cAA6C,oBAAI,IAAI;AAAA;AAAA,EAItD,QAAQ,SAAkB;AAC/B,SAAK,QAAQ,KAAK,OAAO;AACzB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,UAAU,KAAa,SAAyB;AACrD,QAAI,CAAC,KAAK,YAAY,IAAI,GAAG,GAAG;AAC9B,WAAK,YAAY,IAAI,KAAK,CAAC,CAAC;AAAA,IAC9B;AACA,SAAK,YAAY,IAAI,GAAG,EAAG,KAAK,OAAO;AAAA,EACzC;AAAA,EAEO,YAAY,KAAa,SAAyB;AACvD,UAAM,WAAW,KAAK,YAAY,IAAI,GAAG;AACzC,QAAI,UAAU;AACZ,YAAM,QAAQ,SAAS,QAAQ,OAAO;AACtC,UAAI,QAAQ,IAAI;AACd,iBAAS,OAAO,OAAO,CAAC;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,UAAU;AACtB,QAAI,KAAK,aAAc;AAEvB,SAAK,eAAe;AAEpB,WAAO,KAAK,QAAQ,SAAS,GAAG;AAC9B,YAAM,UAAU,KAAK,QAAQ,MAAM;AACnC,YAAM,WAAW,KAAK,YAAY,IAAI,QAAQ,KAAK;AAEnD,UAAI,UAAU;AACZ,mBAAW,WAAW,UAAU;AAC9B,gBAAM,QAAQ,OAAO;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,SAAK,eAAe;AAAA,EACtB;AACF;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,OAAOE,cAA6C;AACpD,OAAO,UAAU;AACjB,SAAS,MAAMC,eAAc;AAC7B,SAAS,cAAc;;;ACUvB,OAAO,aAAa;AACpB,YAAY,UAAU;AAdtB,IAAIC,cAA0C,SAAU,YAAY,QAAQ,KAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,IAAI,WAAW,CAAC,EAAG,MAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AACA,IAAI,aAA0C,SAAU,GAAG,GAAG;AAC1D,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,QAAO,QAAQ,SAAS,GAAG,CAAC;AAC3G;AACA,IAAI,UAAoC,SAAU,YAAY,WAAW;AACrE,SAAO,SAAU,QAAQ,KAAK;AAAE,cAAU,QAAQ,KAAK,UAAU;AAAA,EAAG;AACxE;AAIO,IAAM,oBAAN,MAAM,mBAAkB;AAAA,EAC3B,OAAO,QAAQ,SAAS;AACpB,QAAI,qBAAqB,MAAM,mBAAmB;AAAA,MAC9C,YAAY,KAAK;AACb,aAAK,MAAM;AACX,YAAI,CAAC,KAAK;AACN,gBAAM,IAAI,MAAM,gCAAgC;AACpD,cAAM,eAAoB,aAAQ,QAAQ,QAAQ;AAClD,cAAM,YAAiB,UAAK,cAAc,YAAY;AACtD,aAAK,IAAI,IAAI,QAAQ,OAAO,YAAY,CAAC;AACzC,aAAK,IAAI,IAAI,MAAM,CAAC,KAAK,QAAQ;AAC7B,cAAI,SAAS,SAAS;AAAA,QAC1B,CAAC;AAAA,MACL;AAAA,IACJ;AACA,yBAAqBA,YAAW;AAAA,MAC5B,WAAW;AAAA,MACX,QAAQ,GAAG,OAAO,sBAAsB,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,MACxD,WAAW,qBAAqB,CAAC,MAAM,CAAC;AAAA,IAC5C,GAAG,kBAAkB;AACrB,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,WAAW;AAAA,QACP;AAAA,UACI,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,MACA,SAAS,CAAC,kBAAkB;AAAA,IAChC;AAAA,EACJ;AACJ;;;AC/CA,IAAIC,cAA0C,SAAU,YAAY,QAAQ,KAAK,MAAM;AACnF,MAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,IAAI,WAAW,CAAC,EAAG,MAAK,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAO,IAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AAEA,IAAI,QAAQ,MAAMC,eAAc,UAAU;AAAA,EACtC,cAAc;AACV,UAAM,GAAG,SAAS;AAClB,SAAK,SAAS,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA,SAAS,MAAM,QAAQ;AACnB,SAAK,OAAO,IAAI,MAAM,MAAM;AAAA,EAChC;AAAA,EACA,KAAK,IAAI,SAAS;AACd,UAAM,QAAQ,KAAK,OAAO,IAAI,EAAE;AAChC,QAAI,OAAO;AACP,YAAM,KAAK;AAAA,QACP;AAAA,QACA,GAAG;AAAA,QACH,MAAM;AAAA,MACV,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AACA,QAAQD,YAAW;AAAA,EACf,WAAW;AACf,GAAG,KAAK;AAED,IAAM,cAAN,MAAM,aAAY;AAAA,EACrB,OAAO,UAAU;AACb,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,WAAW;AAAA,QACP;AAAA,UACI,SAAS;AAAA,UACT,UAAU;AAAA,UACV,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,MACA,SAAS,CAAC,KAAK;AAAA,IACnB;AAAA,EACJ;AACJ;;;AC1CO,IAAM,WAAN,MAAe;AAAA,EACb,KAAK,WAAwB;AAAA,EAAC;AAAA,EAE9B,QAAQ,WAAwB;AAAA,EAAC;AAAA,EAEjC,SAAS;AAAA,EAAC;AAAA,EAEV,YAAY;AAAA,EAAC;AAAA,EAEb,YAAY;AAAA,EAAC;AAAA,EAEb,eAAe;AAAA,EAAC;AAAA,EAEhB,iBAAiB;AAAA,EAAC;AAAA,EAElB,QAAQ;AAAA,EAAC;AAClB;AAEO,IAAM,eAAN,MAAM,cAAa;AAAA,EACxB,OAAO,UAAyB;AAC9B,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,WAAW,CAAC,QAAQ;AAAA,MACpB,SAAS,CAAC,QAAQ;AAAA,IACpB;AAAA,EACF;AACF;;;AHgBA,SAAS,mBAAmB,SAAiB;AAC3C,SAAO;AAAA,IACL,UAAU;AAAA,IACV,IAAIE,QAAO;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OACE;AAAA,MACF,UAAU;AAAA,QACR;AAAA,UACE,UAAU;AAAA,UACV,IAAIA,QAAO;AAAA,UACX,MAAM;AAAA,UACN,OAAO,EAAE,UAAU,QAAQ;AAAA,UAC3B,KAAK;AAAA,QACP;AAAA,QACA;AAAA,UACE,UAAU;AAAA,UACV,IAAIA,QAAO;AAAA,UACX,MAAM;AAAA,UACN,OAAO,EAAE,UAAU,QAAQ;AAAA,UAC3B,KAAK;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK;AAAA,EACP;AACF;AAEA,IAAM,sBAAN,MAA0B;AAAA,EACxB,OAAe,SAAS,KAAwC;AAC9D,UAAM,CAAC,SAAS,QAAQ,IAAI,IAAI,MAAM,GAAG;AACzC,WAAO,CAAC,SAAS,IAAI,gBAAgB,YAAY,EAAE,CAAC;AAAA,EACtD;AAAA,EAEA,OAAe,kBACb,iBACA,aAC+B;AAC/B,QAAI,gBAAgB,WAAW,YAAY,OAAQ,QAAO;AAE1D,UAAM,QAAgC,CAAC;AAEvC,aAAS,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;AAC/C,YAAM,UAAU,gBAAgB,CAAC;AAEjC,UAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,cAAM,YAAY,QAAQ,MAAM,CAAC;AACjC,cAAM,SAAS,IAAI,mBAAmB,YAAY,CAAC,CAAC;AAAA,MACtD,WAAW,YAAY,YAAY,CAAC,GAAG;AACrC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAe,mBACb,cACA,WACA,cACwB;AACxB,UAAM,QAAgC,CAAC;AACvC,UAAM,cAAc,aAAa,MAAM,GAAG,EAAE,OAAO,OAAO;AAE1D,eAAW,SAAS,aAAa;AAC/B,YAAM,aAAa,MAAM,SAAS,GAAG;AACrC,YAAM,YAAY,aAAa,MAAM,MAAM,GAAG,EAAE,IAAI;AACpD,YAAM,aAAa,UAAU,IAAI,SAAS;AAE1C,UAAI,eAAe,MAAM;AACvB,YAAI,CAAC,YAAY;AACf,gBAAM,IAAI;AAAA,YACR,qCAAqC,SAAS,gBAAgB,YAAY;AAAA,UAC5E;AAAA,QACF;AACA;AAAA,MACF;AAEA,YAAM,SAAS,IAAI,mBAAmB,UAAU;AAAA,IAClD;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAc,MAAM,KAAgC;AAClD,UAAM,aAAa,MAAM,IAA8B,YAAY;AACnE,QAAI,CAAC,WAAY,QAAO;AAExB,UAAM,CAAC,SAAS,SAAS,IAAI,KAAK,SAAS,GAAG;AAC9C,UAAM,cAAc,QAAQ,MAAM,GAAG,EAAE,OAAO,OAAO;AAErD,eAAW,CAAC,EAAE,SAAS,KAAK,WAAW,QAAQ,GAAG;AAChD,YAAM,eAAe,QAAQ,YAAY,iBAAiB,SAAS;AACnE,UAAI,CAAC,aAAc;AAEnB,YAAM,CAAC,aAAa,YAAY,IAAI,aAAa,MAAM,GAAG;AAC1D,YAAM,kBAAkB,YAAY,MAAM,GAAG,EAAE,OAAO,OAAO;AAE7D,YAAM,YAAY,KAAK,kBAAkB,iBAAiB,WAAW;AACrE,UAAI,cAAc,KAAM;AAExB,YAAM,aAAa,eACf,KAAK,mBAAmB,cAAc,WAAW,YAAY,IAC7D,CAAC;AAEL,aAAO;AAAA,QACL;AAAA,QACA,OAAO,EAAE,GAAG,WAAW,GAAG,WAAW;AAAA,MACvC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAM,gCAAN,MAAoC;AAAA,EAClC,YACmB,UACA,KACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEK,sBACN,SACA,UACA,OACM;AACN,UAAM,gBAAgB,QAAQ,QAAQ,QAAQ,SAAS,EAAE;AAAA,MAAO,CAAC,QAC/D,QAAQ,eAAe,eAAe,QAAQ,WAAW,GAAG;AAAA,IAC9D;AAEA,eAAW,aAAa,eAAe;AACrC,YAAM,YAAY,QAAQ;AAAA,QACxB;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,MACF;AAEA,YAAM,UAAU,SAAS,SAAS;AAClC,YAAM,UAAU,WAAW,CAAC,SAAS,QAAQ,KAAK,UAAU,IAAI,CAAC;AAAA,IACnE;AAAA,EACF;AAAA,EAEQ,gBACN,KACA,YACA,cACO;AACP,UAAM,OAAO,MAAM,aAAa,MAAM,EAAE,KAAK,MAAS;AAEtD,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,YAAM,OAAO,WAAW,CAAC;AACzB,UAAI,CAAC,KAAM;AAEX,YAAM,SAAS,KAAK,eAAe,KAAK,KAAK,IAAI;AACjD,WAAK,CAAC,IAAI,KAAK,MAAM,SAAS,KAAK,GAAG,IAAI;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,eAAe,KAAc,MAA6B;AAChE,YAAQ,MAAM;AAAA,MACZ;AACE,eAAO,IAAI;AAAA,MACb;AACE,eAAO,IAAI;AAAA,MACb;AACE,eAAO,IAAI;AAAA,MACb;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAAA,EAEA,MAAc,mBACZ,QACA,KACA,OACe;AACf,QAAI,IAAI,YAAa;AAErB,QAAI,SAAS,kBAAkB,YAAY;AACzC,aAAO,UAAU;AAAA,QACf,MAAM,CAAC,SAAc;AACnB,cAAI,MAAM,SAAS,KAAK,UAAU,IAAI,CAAC;AAAA;AAAA,CAAM;AAAA,QAC/C;AAAA,QACA,OAAO,CAAC,QAAa;AACnB,kBAAQ,MAAM,cAAc,GAAG;AAC/B,cAAI,IAAI;AAAA,QACV;AAAA,QACA,UAAU,MAAM;AACd,cAAI,IAAI;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH,WAAW,WAAW,QAAW;AAC/B,UAAI,KAAK,MAAM;AAAA,IACjB,OAAO;AACL,UAAI,IAAI;AAAA,IACV;AAAA,EACF;AAAA,EAEQ,oBACN,SACA,UACA,QACM;AACN,UAAM,UAAU,QAAQ,QAAQ,QAAQ,SAAS,EAAE;AAAA,MAAO,CAAC,QACzD,QAAQ,eAAe,iBAAiB,QAAQ,WAAW,GAAG;AAAA,IAChE;AAEA,eAAW,aAAa,SAAS;AAC/B,WAAK,mBAAmB,SAAS,UAAU,WAAW,MAAM;AAAA,IAC9D;AAAA,EACF;AAAA,EAEQ,mBACN,SACA,UACA,WACA,QACM;AACN,UAAM,aAAa,QAAQ;AAAA,MACzB;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AAEA,UAAM,YACJ,QAAQ,YAAY,UAAU,QAAQ,WAAW,SAAS,KAAK;AAEjE,UAAM,WAAW,KAAK,cAAc,QAAQ,SAAS;AACrD,UAAM,QAAQ,QAAQ;AAAA,MACpB;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AACA,UAAM,aACJ,QAAQ,YAAY,iBAAiB,QAAQ,WAAW,SAAS,KAAK,CAAC;AAEzE,SAAK,IAAI,UAAU,EAAE,UAAU,OAAO,KAAK,QAAQ;AACjD,UAAI;AACF,YAAI,OAAO;AACT,cAAI,UAAU,gBAAgB,mBAAmB;AACjD,cAAI,UAAU,iBAAiB,UAAU;AACzC,cAAI,UAAU,cAAc,YAAY;AAAA,QAC1C;AAEA,cAAM,eACJ,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,UACR;AAAA,QACF,KAAK,CAAC;AAER,cAAM,OAAO,KAAK,gBAAgB,KAAK,YAAY,YAAY;AAC/D,cAAM,SAAS,MAAM,SAAS,SAAS,EAAE,GAAG,IAAI;AAEhD,cAAM,KAAK,mBAAmB,QAAQ,KAAK,KAAK;AAAA,MAClD,SAAS,KAAU;AACjB,YAAI,KAAK,IAAI,OAAO;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,cAAc,QAAgB,WAA2B;AAC/D,UAAM,mBACJ,WAAW,MAAM,KAAK,IAAI,OAAO,QAAQ,cAAc,EAAE,CAAC;AAE5D,WACE,GAAG,gBAAgB,IAAI,SAAS,GAC7B,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,EAAE,KAAK;AAAA,EAE7B;AAAA,EAEO,SAAS,SAA4B;AAC1C,UAAM,WAAW,KAAK,SAAS,QAAQ,OAAO;AAC9C,UAAM,SACJ,QAAQ,YAAY,uBAAuB,OAAO,KAAK;AACzD,UAAM,QAAQ,KAAK,SAAS,QAAQ,KAAK;AAEzC,SAAK,sBAAsB,SAAS,UAAU,KAAK;AACnD,SAAK,oBAAoB,SAAS,UAAU,MAAM;AAAA,EACpD;AACF;AAEA,IAAM,oBAAN,MAAwB;AAAA,EACtB,YAA6B,YAAyB;AAAzB;AAAA,EAA0B;AAAA,EAEhD,QACL,eACA,MAKA;AACA,QAAI,kBAAkB,UAAa,kBAAkB,KAAK;AACxD,YAAM,YAAY,QAAQ,YAAY,WAAW,KAAK,UAAU;AAEhE,UAAI,CAAC,WAAW;AACd,eAAO;AAAA,UACL,WAAW;AAAA,UACX,OAAO,CAAC;AAAA,UACR,OAAO,mBAAmB,mCAAmC;AAAA,QAC/D;AAAA,MACF;AAEA,aAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,OAAO,kBAAkB,UAAU;AACrC,aAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO,CAAC;AAAA,QACR,OAAO,mBAAmB,mCAAmC;AAAA,MAC/D;AAAA,IACF;AAEA,QAAI,cAAc,WAAW,GAAG,GAAG;AACjC,YAAM,SAAS,oBAAoB,MAAM,aAAa;AAEtD,UAAI,CAAC,QAAQ;AACX,eAAO;AAAA,UACL,WAAW;AAAA,UACX,OAAO,CAAC;AAAA,UACR,OAAO;AAAA,YACL,iCAAiC,aAAa;AAAA,UAChD;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL,WAAW,OAAO;AAAA,QAClB,OAAO,OAAO;AAAA,QACd,OAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,YAAY,MACf,IAA8B,YAAY,GACzC,IAAI,aAAa;AAErB,QAAI,CAAC,WAAW;AACd,aAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO,CAAC;AAAA,QACR,OAAO,mBAAmB,cAAc,aAAa,iBAAiB;AAAA,MACxE;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,kBAAN,MAAsB;AAAA,EACpB,YACmB,UACA,mBACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAc,gBACZ,UACA,WACA,OACA,KACe;AACf,UAAM,SAAS,SAAS,OAAO,IAAI,WAAW,KAAK,CAAC;AACpD,qBAAiB,SAAS,QAAQ;AAChC,UAAI,MAAM,KAAK,UAAU,OAAO,mBAAmB,IAAI,IAAI;AAAA,IAC7D;AAAA,EACF;AAAA,EAEA,MAAc,YACZ,UACA,cACA,KACe;AACf,QAAI;AACF,YAAM,SAAS,SAAS,OAAO,YAAY;AAC3C,uBAAiB,SAAS,QAAQ;AAChC,YAAI,MAAM,KAAK,UAAU,OAAO,mBAAmB,IAAI,IAAI;AAAA,MAC7D;AAAA,IACF,SAAS,UAAU;AACjB,cAAQ,MAAM,2BAA2B,QAAQ;AACjD,UAAI;AAAA,QACF,KAAK;AAAA,UACH;AAAA,YACE,UAAU;AAAA,YACV,IAAIA,QAAO;AAAA,YACX,MAAM;AAAA,YACN,OAAO,EAAE,UAAU,0BAA0B;AAAA,YAC7C,KAAK;AAAA,UACP;AAAA,UACA;AAAA,QACF,IAAI;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,KAAc,KAA8B;AAC9D,UAAM,WAAW,IAAI,eAAe,KAAK,QAAQ;AACjD,UAAM,gBAAgB,IAAI,MAAM;AAEhC,QAAI;AACF,YAAM,EAAE,WAAW,OAAO,MAAM,IAAI,KAAK,kBAAkB;AAAA,QACzD;AAAA,QACA,IAAI;AAAA,MACN;AAEA,UAAI,OAAO;AACT,cAAM,KAAK,YAAY,UAAU,OAAO,GAAG;AAC3C,YAAI,IAAI;AACR;AAAA,MACF;AAEA,YAAM,KAAK,gBAAgB,UAAU,WAAY,OAAO,GAAG;AAAA,IAC7D,SAAS,KAAK;AACZ,cAAQ,MAAM,oBAAoB,GAAG;AACrC,YAAM,eAAe;AAAA,QACnB,eAAe,QAAQ,IAAI,UAAU;AAAA,MACvC;AACA,YAAM,KAAK,YAAY,UAAU,cAAc,GAAG;AAAA,IACpD;AAEA,QAAI,IAAI;AAAA,EACV;AACF;AAEA,IAAM,gBAAN,MAAoB;AAAA,EAClB,OAAc,MAAM,QAAqB,UAA0B;AACjE,UAAM,KAAK,IAAI,OAAO,MAAM;AAE5B,OAAG,GAAG,cAAc,CAAC,WAAW;AAC9B,YAAM,QAAQ,SAAS,QAAQ,KAAK;AAEpC,YAAM,SAAS,OAAO,IAAI;AAAA,QACxB,MAAM,CAAC,YAAY;AACjB,aAAG,GAAG,OAAO,EAAE,EAAE,KAAK,WAAW,OAAO;AAAA,QAC1C;AAAA,MACF,CAAC;AAED,aAAO,GAAG,WAAW,CAAC,QAAQ;AAC5B,cAAM,EAAE,GAAG,IAAI;AACf,YAAI,OAAO,UAAU;AACnB,gBAAM,QAAQ,GAAG;AAAA,QACnB,OAAO;AACL,gBAAM,KAAK,IAAI,GAAG;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAEO,IAAM,cAAN,MAAkB;AAAA,EACvB,OAAe,mBAAmB,YAA8B;AAC9D,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,UAAU,SAAS,QAAQ,UAAU;AAC3C,UAAM,aAAa,SAAS,SAAS,OAAO;AAE5C,QAAI,CAAC,WAAW,OAAO;AACrB,cAAQ,MAAM,yBAAyB,WAAW,OAAO,KAAK,MAAM,CAAC;AACrE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAe,mBACb,SACA,KACA,YACU;AACV,UAAM,eAAe,4BAA4B,OAAO;AACxD,UAAM,kBAAkB;AAAA,MACtB,GAAG,MAAM,IAAsB,kBAAkB;AAAA,IACnD,EAAE,IAAI,CAAC,MAAM,mBAAmB,UAAU,CAAC,CAAC;AAE5C,UAAM,YAAY,QAAQ,YAAY,WAAW,UAAU;AAE3D,WAAO,IAAI,SAAS;AAAA,MAClB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,EAAE,SAAS,WAAW,UAAU,OAAO;AAAA,MACvC,EAAE,SAAS,sBAAsB,UAAU,IAAI;AAAA,MAC/C;AAAA,QACE,SAAS;AAAA,QACT,UAAU,YAAY,IAAI,WAAW,CAAC,CAAC,IAAI;AAAA,MAC7C;AAAA,MACA,EAAE,SAAS,OAAO,UAAU,OAAO,OAAO,KAAK;AAAA,IACjD,CAAC;AAAA,EACH;AAAA,EAEA,OAAe,oBACb,SACA,UACA,KACM;AACN,UAAM,sBAAsB,IAAI;AAAA,MAC9B;AAAA,MACA;AAAA,IACF;AACA,UAAM,kBAAkB;AAAA,MACtB,GAAG,MAAM,IAAsB,kBAAkB;AAAA,IACnD;AAEA,oBAAgB,QAAQ,CAAC,SAAS,oBAAoB,SAAS,IAAI,CAAC;AAEpE,YAAQ,SAAS,CAAC,SAAc;AAC9B,YAAM,YAAY,CAAC,GAAG,KAAK,aAAa,EAAE,OAAO,CAAC;AAElD,YAAM,cAAc,UAAU;AAAA,QAAO,CAAC,aACpC,QAAQ,YAAY,YAAY,SAAS,OAAO;AAAA,MAClD;AAEA,kBAAY,QAAQ,CAAC,MAAM,oBAAoB,SAAS,EAAE,QAAS,CAAC;AAEpE,gBACG,OAAO,CAAC,aAAa,SAAS,KAAK,EACnC,QAAQ,CAAC,MAAM,SAAS,QAAQ,EAAE,OAAO,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AAAA,EAEA,OAAe,cACb,KACA,UACA,YACM;AACN,UAAM,oBAAoB,IAAI,kBAAkB,UAAU;AAC1D,UAAM,aAAa,IAAI,gBAAgB,UAAU,iBAAiB;AAElE,QAAI,KAAK,QAAQ,CAAC,KAAK,QAAQ,WAAW,OAAO,KAAK,GAAG,CAAC;AAAA,EAC5D;AAAA,EAEA,aAAoB,OAAO,YAA+C;AACxE,UAAM,MAAMC,SAAQ;AACpB,QAAI,IAAIA,SAAQ,KAAK,CAAC;AAEtB,UAAM,SAAS,KAAK,aAAa,GAAG;AAEpC,UAAM,UAAU,KAAK,mBAAmB,UAAU;AAElD,UAAM,eAAe,KAAK,mBAAmB,SAAS,KAAK,UAAU;AACrE,uBAAmB,YAAY;AAE/B,SAAK,oBAAoB,SAAS,cAAc,GAAG;AAEnD,SAAK,cAAc,KAAK,cAAc,UAAU;AAEhD,kBAAc,MAAM,QAAQ,YAAY;AAExC,WAAO;AAAA,EACT;AACF;",
|
|
6
6
|
"names": ["HandlerParamType", "HttpMethod", "path", "deps", "jsx", "map", "resolve", "document", "jsx", "effect", "fn", "HttpClient", "HttpClientModule", "jsx", "path", "register", "injector", "express", "uuidv4", "__decorate", "__decorate", "Actor", "uuidv4", "express"]
|
|
7
7
|
}
|