tildefriends/deps/perfetto/engine_bundle.js.map

1 line
458 KiB
Plaintext

{"version":3,"file":"engine_bundle.js","sources":["../../../out/ui/src/gen/perfetto_version.ts","../../../out/ui/src/base/logging.ts","../../../out/ui/src/base/deferred.ts","../../../out/ui/ui/tsc/gen/trace_processor.js","../../../out/ui/src/engine/wasm_bridge.ts","../../../out/ui/src/engine/index.ts"],"sourcesContent":["export const VERSION = \"v22.1-e780c370b\";\nexport const SCM_REVISION = \"e780c370b9272c36eab718bacaa100537fd8d215\";","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as version from '../gen/perfetto_version';\n\nexport type ErrorHandler = (err: string) => void;\n\nlet errorHandler: ErrorHandler = (_: string) => {};\n\nexport function assertExists<A>(value: A | null | undefined): A {\n if (value === null || value === undefined) {\n throw new Error('Value doesn\\'t exist');\n }\n return value;\n}\n\nexport function assertTrue(value: boolean, optMsg?: string) {\n if (value !== true) {\n throw new Error(optMsg ? optMsg : 'Failed assertion');\n }\n}\n\nexport function assertFalse(value: boolean, optMsg?: string) {\n assertTrue(!value, optMsg);\n}\n\nexport function setErrorHandler(handler: ErrorHandler) {\n errorHandler = handler;\n}\n\nexport function reportError(err: ErrorEvent|PromiseRejectionEvent|{}) {\n let errLog = '';\n let errorObj = undefined;\n\n if (err instanceof ErrorEvent) {\n errLog = err.message;\n errorObj = err.error;\n } else if (err instanceof PromiseRejectionEvent) {\n errLog = `${err.reason}`;\n errorObj = err.reason;\n } else {\n errLog = `${err}`;\n }\n if (errorObj !== undefined && errorObj !== null) {\n const errStack = (errorObj as {stack?: string}).stack;\n errLog += '\\n';\n errLog += errStack !== undefined ? errStack : JSON.stringify(errorObj);\n }\n errLog += '\\n\\n';\n errLog += `${version.VERSION} ${version.SCM_REVISION}\\n`;\n errLog += `UA: ${navigator.userAgent}\\n`;\n\n console.error(errLog, err);\n errorHandler(errLog);\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// tslint:disable:no-any\n\n/**\n * Promise wrapper with exposed resolve and reject callbacks.\n */\nexport interface Deferred<T> extends Promise<T> {\n readonly resolve: (value?: T|PromiseLike<T>) => void;\n readonly reject: (reason?: any) => void;\n}\n\n/**\n * Create a promise with exposed resolve and reject callbacks.\n */\nexport function defer<T>(): Deferred<T> {\n let resolve = null as any;\n let reject = null as any;\n const p = new Promise((res, rej) => [resolve, reject] = [res, rej]);\n return Object.assign(p, {resolve, reject}) as any;\n}\n","\nvar trace_processor_wasm = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(trace_processor_wasm) {\n trace_processor_wasm = trace_processor_wasm || {};\n\nvar Module = typeof trace_processor_wasm !== \"undefined\" ? trace_processor_wasm : {};\n\nvar readyPromiseResolve, readyPromiseReject;\n\nModule[\"ready\"] = new Promise(function(resolve, reject) {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n});\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_main\")) {\n Object.defineProperty(Module[\"ready\"], \"_main\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_main\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_stack_get_end\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_end\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_end\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_stack_get_free\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_free\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_free\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_stack_init\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_init\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_init\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_stackSave\")) {\n Object.defineProperty(Module[\"ready\"], \"_stackSave\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_stackSave\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_stackRestore\")) {\n Object.defineProperty(Module[\"ready\"], \"_stackRestore\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_stackRestore\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_stackAlloc\")) {\n Object.defineProperty(Module[\"ready\"], \"_stackAlloc\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_stackAlloc\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"___wasm_call_ctors\")) {\n Object.defineProperty(Module[\"ready\"], \"___wasm_call_ctors\", {\n configurable: true,\n get: function() {\n abort(\"You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"___wasm_call_ctors\", {\n configurable: true,\n set: function() {\n abort(\"You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_fflush\")) {\n Object.defineProperty(Module[\"ready\"], \"_fflush\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_fflush\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"___errno_location\")) {\n Object.defineProperty(Module[\"ready\"], \"___errno_location\", {\n configurable: true,\n get: function() {\n abort(\"You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"___errno_location\", {\n configurable: true,\n set: function() {\n abort(\"You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_malloc\")) {\n Object.defineProperty(Module[\"ready\"], \"_malloc\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_malloc\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_free\")) {\n Object.defineProperty(Module[\"ready\"], \"_free\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_free\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_memalign\")) {\n Object.defineProperty(Module[\"ready\"], \"_memalign\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_memalign\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_memset\")) {\n Object.defineProperty(Module[\"ready\"], \"_memset\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _memset on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_memset\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _memset on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"__get_tzname\")) {\n Object.defineProperty(Module[\"ready\"], \"__get_tzname\", {\n configurable: true,\n get: function() {\n abort(\"You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"__get_tzname\", {\n configurable: true,\n set: function() {\n abort(\"You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"__get_daylight\")) {\n Object.defineProperty(Module[\"ready\"], \"__get_daylight\", {\n configurable: true,\n get: function() {\n abort(\"You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"__get_daylight\", {\n configurable: true,\n set: function() {\n abort(\"You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"__get_timezone\")) {\n Object.defineProperty(Module[\"ready\"], \"__get_timezone\", {\n configurable: true,\n get: function() {\n abort(\"You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"__get_timezone\", {\n configurable: true,\n set: function() {\n abort(\"You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_main_thread_process_queued_calls\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_main_thread_process_queued_calls\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_main_thread_process_queued_calls\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_usleep\")) {\n Object.defineProperty(Module[\"ready\"], \"_usleep\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _usleep on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_usleep\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _usleep on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"onRuntimeInitialized\")) {\n Object.defineProperty(Module[\"ready\"], \"onRuntimeInitialized\", {\n configurable: true,\n get: function() {\n abort(\"You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"onRuntimeInitialized\", {\n configurable: true,\n set: function() {\n abort(\"You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nvar moduleOverrides = {};\n\nvar key;\n\nfor (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n}\n\nvar arguments_ = [];\n\nvar thisProgram = \"./this.program\";\n\nvar quit_ = function(status, toThrow) {\n throw toThrow;\n};\n\nvar ENVIRONMENT_IS_WEB = false;\n\nvar ENVIRONMENT_IS_WORKER = false;\n\nvar ENVIRONMENT_IS_NODE = false;\n\nvar ENVIRONMENT_IS_SHELL = false;\n\nENVIRONMENT_IS_WEB = typeof window === \"object\";\n\nENVIRONMENT_IS_WORKER = typeof importScripts === \"function\";\n\nENVIRONMENT_IS_NODE = typeof process === \"object\" && typeof process.versions === \"object\" && typeof process.versions.node === \"string\";\n\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\n\nif (Module[\"ENVIRONMENT\"]) {\n throw new Error(\"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)\");\n}\n\nvar scriptDirectory = \"\";\n\nfunction locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory);\n }\n return scriptDirectory + path;\n}\n\nvar read_, readAsync, readBinary, setWindowTitle;\n\nvar nodeFS;\n\nvar nodePath;\n\nif (ENVIRONMENT_IS_NODE) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = require(\"path\").dirname(scriptDirectory) + \"/\";\n } else {\n scriptDirectory = __dirname + \"/\";\n }\n read_ = function shell_read(filename, binary) {\n if (!nodeFS) nodeFS = require(\"fs\");\n if (!nodePath) nodePath = require(\"path\");\n filename = nodePath[\"normalize\"](filename);\n return nodeFS[\"readFileSync\"](filename, binary ? null : \"utf8\");\n };\n readBinary = function readBinary(filename) {\n var ret = read_(filename, true);\n if (!ret.buffer) {\n ret = new Uint8Array(ret);\n }\n assert(ret.buffer);\n return ret;\n };\n if (process[\"argv\"].length > 1) {\n thisProgram = process[\"argv\"][1].replace(/\\\\/g, \"/\");\n }\n arguments_ = process[\"argv\"].slice(2);\n process[\"on\"](\"uncaughtException\", function(ex) {\n if (!(ex instanceof ExitStatus)) {\n throw ex;\n }\n });\n process[\"on\"](\"unhandledRejection\", abort);\n quit_ = function(status) {\n process[\"exit\"](status);\n };\n Module[\"inspect\"] = function() {\n return \"[Emscripten Module object]\";\n };\n} else if (ENVIRONMENT_IS_SHELL) {\n if (typeof read != \"undefined\") {\n read_ = function shell_read(f) {\n return read(f);\n };\n }\n readBinary = function readBinary(f) {\n var data;\n if (typeof readbuffer === \"function\") {\n return new Uint8Array(readbuffer(f));\n }\n data = read(f, \"binary\");\n assert(typeof data === \"object\");\n return data;\n };\n if (typeof scriptArgs != \"undefined\") {\n arguments_ = scriptArgs;\n } else if (typeof arguments != \"undefined\") {\n arguments_ = arguments;\n }\n if (typeof quit === \"function\") {\n quit_ = function(status) {\n quit(status);\n };\n }\n if (typeof print !== \"undefined\") {\n if (typeof console === \"undefined\") console = {};\n console.log = print;\n console.warn = console.error = typeof printErr !== \"undefined\" ? printErr : print;\n }\n} else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (typeof document !== \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (_scriptDir) {\n scriptDirectory = _scriptDir;\n }\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf(\"/\") + 1);\n } else {\n scriptDirectory = \"\";\n }\n {\n read_ = function(url) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = function(url) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = function(url, onload, onerror) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = function() {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = function(title) {\n document.title = title;\n };\n} else {\n throw new Error(\"environment detection error\");\n}\n\nvar out = Module[\"print\"] || console.log.bind(console);\n\nvar err = Module[\"printErr\"] || console.warn.bind(console);\n\nfor (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n}\n\nmoduleOverrides = null;\n\nif (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"arguments\")) Object.defineProperty(Module, \"arguments\", {\n configurable: true,\n get: function() {\n abort(\"Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"thisProgram\")) Object.defineProperty(Module, \"thisProgram\", {\n configurable: true,\n get: function() {\n abort(\"Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (Module[\"quit\"]) quit_ = Module[\"quit\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"quit\")) Object.defineProperty(Module, \"quit\", {\n configurable: true,\n get: function() {\n abort(\"Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nassert(typeof Module[\"memoryInitializerPrefixURL\"] === \"undefined\", \"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"pthreadMainPrefixURL\"] === \"undefined\", \"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"cdInitializerPrefixURL\"] === \"undefined\", \"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"filePackagePrefixURL\"] === \"undefined\", \"Module.filePackagePrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"read\"] === \"undefined\", \"Module.read option was removed (modify read_ in JS)\");\n\nassert(typeof Module[\"readAsync\"] === \"undefined\", \"Module.readAsync option was removed (modify readAsync in JS)\");\n\nassert(typeof Module[\"readBinary\"] === \"undefined\", \"Module.readBinary option was removed (modify readBinary in JS)\");\n\nassert(typeof Module[\"setWindowTitle\"] === \"undefined\", \"Module.setWindowTitle option was removed (modify setWindowTitle in JS)\");\n\nassert(typeof Module[\"TOTAL_MEMORY\"] === \"undefined\", \"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY\");\n\nif (!Object.getOwnPropertyDescriptor(Module, \"read\")) Object.defineProperty(Module, \"read\", {\n configurable: true,\n get: function() {\n abort(\"Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readAsync\")) Object.defineProperty(Module, \"readAsync\", {\n configurable: true,\n get: function() {\n abort(\"Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readBinary\")) Object.defineProperty(Module, \"readBinary\", {\n configurable: true,\n get: function() {\n abort(\"Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setWindowTitle\")) Object.defineProperty(Module, \"setWindowTitle\", {\n configurable: true,\n get: function() {\n abort(\"Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nvar STACK_ALIGN = 16;\n\nfunction alignMemory(size, factor) {\n if (!factor) factor = STACK_ALIGN;\n return Math.ceil(size / factor) * factor;\n}\n\nfunction warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n}\n\nfunction convertJsFunctionToWasm(func, sig) {\n if (typeof WebAssembly.Function === \"function\") {\n var typeNames = {\n \"i\": \"i32\",\n \"j\": \"i64\",\n \"f\": \"f32\",\n \"d\": \"f64\"\n };\n var type = {\n parameters: [],\n results: sig[0] == \"v\" ? [] : [ typeNames[sig[0]] ]\n };\n for (var i = 1; i < sig.length; ++i) {\n type.parameters.push(typeNames[sig[i]]);\n }\n return new WebAssembly.Function(type, func);\n }\n var typeSection = [ 1, 0, 1, 96 ];\n var sigRet = sig.slice(0, 1);\n var sigParam = sig.slice(1);\n var typeCodes = {\n \"i\": 127,\n \"j\": 126,\n \"f\": 125,\n \"d\": 124\n };\n typeSection.push(sigParam.length);\n for (var i = 0; i < sigParam.length; ++i) {\n typeSection.push(typeCodes[sigParam[i]]);\n }\n if (sigRet == \"v\") {\n typeSection.push(0);\n } else {\n typeSection = typeSection.concat([ 1, typeCodes[sigRet] ]);\n }\n typeSection[1] = typeSection.length - 2;\n var bytes = new Uint8Array([ 0, 97, 115, 109, 1, 0, 0, 0 ].concat(typeSection, [ 2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0 ]));\n var module = new WebAssembly.Module(bytes);\n var instance = new WebAssembly.Instance(module, {\n \"e\": {\n \"f\": func\n }\n });\n var wrappedFunc = instance.exports[\"f\"];\n return wrappedFunc;\n}\n\nvar freeTableIndexes = [];\n\nvar functionsInTableMap;\n\nfunction getEmptyTableSlot() {\n if (freeTableIndexes.length) {\n return freeTableIndexes.pop();\n }\n try {\n wasmTable.grow(1);\n } catch (err) {\n if (!(err instanceof RangeError)) {\n throw err;\n }\n throw \"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\";\n }\n return wasmTable.length - 1;\n}\n\nfunction addFunctionWasm(func, sig) {\n if (!functionsInTableMap) {\n functionsInTableMap = new WeakMap();\n for (var i = 0; i < wasmTable.length; i++) {\n var item = wasmTable.get(i);\n if (item) {\n functionsInTableMap.set(item, i);\n }\n }\n }\n if (functionsInTableMap.has(func)) {\n return functionsInTableMap.get(func);\n }\n var ret = getEmptyTableSlot();\n try {\n wasmTable.set(ret, func);\n } catch (err) {\n if (!(err instanceof TypeError)) {\n throw err;\n }\n assert(typeof sig !== \"undefined\", \"Missing signature argument to addFunction: \" + func);\n var wrapped = convertJsFunctionToWasm(func, sig);\n wasmTable.set(ret, wrapped);\n }\n functionsInTableMap.set(func, ret);\n return ret;\n}\n\nfunction addFunction(func, sig) {\n assert(typeof func !== \"undefined\");\n return addFunctionWasm(func, sig);\n}\n\nvar tempRet0 = 0;\n\nvar setTempRet0 = function(value) {\n tempRet0 = value;\n};\n\nvar wasmBinary;\n\nif (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"wasmBinary\")) Object.defineProperty(Module, \"wasmBinary\", {\n configurable: true,\n get: function() {\n abort(\"Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nvar noExitRuntime;\n\nif (Module[\"noExitRuntime\"]) noExitRuntime = Module[\"noExitRuntime\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"noExitRuntime\")) Object.defineProperty(Module, \"noExitRuntime\", {\n configurable: true,\n get: function() {\n abort(\"Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (typeof WebAssembly !== \"object\") {\n abort(\"no native wasm support detected\");\n}\n\nvar wasmMemory;\n\nvar ABORT = false;\n\nvar EXITSTATUS;\n\nfunction assert(condition, text) {\n if (!condition) {\n abort(\"Assertion failed: \" + text);\n }\n}\n\nfunction getCFunc(ident) {\n var func = Module[\"_\" + ident];\n assert(func, \"Cannot call unknown function \" + ident + \", make sure it is exported\");\n return func;\n}\n\nfunction ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n \"string\": function(str) {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n return ret;\n },\n \"array\": function(arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n }\n };\n function convertReturnValue(ret) {\n if (returnType === \"string\") return UTF8ToString(ret);\n if (returnType === \"boolean\") return Boolean(ret);\n return ret;\n }\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n assert(returnType !== \"array\", 'Return type should not be \"array\".');\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) stackRestore(stack);\n return ret;\n}\n\nvar ALLOC_STACK = 1;\n\nvar UTF8Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf8\") : undefined;\n\nfunction UTF8ArrayToString(heap, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(heap.subarray(idx, endPtr));\n } else {\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heap[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heap[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n var u2 = heap[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n if ((u0 & 248) != 240) warnOnce(\"Invalid UTF-8 leading byte 0x\" + u0.toString(16) + \" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!\");\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n }\n return str;\n}\n\nfunction UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n}\n\nfunction stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n heap[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n heap[outIdx++] = 192 | u >> 6;\n heap[outIdx++] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n heap[outIdx++] = 224 | u >> 12;\n heap[outIdx++] = 128 | u >> 6 & 63;\n heap[outIdx++] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx) break;\n if (u >= 2097152) warnOnce(\"Invalid Unicode code point 0x\" + u.toString(16) + \" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).\");\n heap[outIdx++] = 240 | u >> 18;\n heap[outIdx++] = 128 | u >> 12 & 63;\n heap[outIdx++] = 128 | u >> 6 & 63;\n heap[outIdx++] = 128 | u & 63;\n }\n }\n heap[outIdx] = 0;\n return outIdx - startIdx;\n}\n\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\n assert(typeof maxBytesToWrite == \"number\", \"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n}\n\nfunction lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;\n if (u <= 127) ++len; else if (u <= 2047) len += 2; else if (u <= 65535) len += 3; else len += 4;\n }\n return len;\n}\n\nvar UTF16Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;\n\nfunction allocateUTF8(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n}\n\nfunction allocateUTF8OnStack(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = stackAlloc(size);\n stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n}\n\nfunction writeArrayToMemory(array, buffer) {\n assert(array.length >= 0, \"writeArrayToMemory array must have a length (should be an array or typed array)\");\n HEAP8.set(array, buffer);\n}\n\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n assert(str.charCodeAt(i) === str.charCodeAt(i) & 255);\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }\n if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n}\n\nfunction alignUp(x, multiple) {\n if (x % multiple > 0) {\n x += multiple - x % multiple;\n }\n return x;\n}\n\nvar buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n\nfunction updateGlobalBufferAndViews(buf) {\n buffer = buf;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(buf);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(buf);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(buf);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(buf);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(buf);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(buf);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(buf);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(buf);\n}\n\nvar TOTAL_STACK = 5242880;\n\nif (Module[\"TOTAL_STACK\"]) assert(TOTAL_STACK === Module[\"TOTAL_STACK\"], \"the stack size can no longer be determined at runtime\");\n\nvar INITIAL_MEMORY = Module[\"INITIAL_MEMORY\"] || 33554432;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"INITIAL_MEMORY\")) Object.defineProperty(Module, \"INITIAL_MEMORY\", {\n configurable: true,\n get: function() {\n abort(\"Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nassert(INITIAL_MEMORY >= TOTAL_STACK, \"INITIAL_MEMORY should be larger than TOTAL_STACK, was \" + INITIAL_MEMORY + \"! (TOTAL_STACK=\" + TOTAL_STACK + \")\");\n\nassert(typeof Int32Array !== \"undefined\" && typeof Float64Array !== \"undefined\" && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, \"JS engine does not provide full typed array support\");\n\nassert(!Module[\"wasmMemory\"], \"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally\");\n\nassert(INITIAL_MEMORY == 33554432, \"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically\");\n\nvar wasmTable;\n\nfunction writeStackCookie() {\n var max = _emscripten_stack_get_end();\n assert((max & 3) == 0);\n HEAPU32[(max >> 2) + 1] = 34821223;\n HEAPU32[(max >> 2) + 2] = 2310721022;\n HEAP32[0] = 1668509029;\n}\n\nfunction checkStackCookie() {\n if (ABORT) return;\n var max = _emscripten_stack_get_end();\n var cookie1 = HEAPU32[(max >> 2) + 1];\n var cookie2 = HEAPU32[(max >> 2) + 2];\n if (cookie1 != 34821223 || cookie2 != 2310721022) {\n abort(\"Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x\" + cookie2.toString(16) + \" \" + cookie1.toString(16));\n }\n if (HEAP32[0] !== 1668509029) abort(\"Runtime error: The application has corrupted its heap memory area (address zero)!\");\n}\n\n(function() {\n var h16 = new Int16Array(1);\n var h8 = new Int8Array(h16.buffer);\n h16[0] = 25459;\n if (h8[0] !== 115 || h8[1] !== 99) throw \"Runtime error: expected the system to be little-endian!\";\n})();\n\nvar __ATPRERUN__ = [];\n\nvar __ATINIT__ = [];\n\nvar __ATMAIN__ = [];\n\nvar __ATPOSTRUN__ = [];\n\nvar runtimeInitialized = false;\n\nvar runtimeExited = false;\n\n__ATINIT__.push({\n func: function() {\n ___wasm_call_ctors();\n }\n});\n\nfunction preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [ Module[\"preRun\"] ];\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n}\n\nfunction initRuntime() {\n checkStackCookie();\n assert(!runtimeInitialized);\n runtimeInitialized = true;\n if (!Module[\"noFSInit\"] && !FS.init.initialized) FS.init();\n TTY.init();\n callRuntimeCallbacks(__ATINIT__);\n}\n\nfunction preMain() {\n checkStackCookie();\n FS.ignorePermissions = false;\n callRuntimeCallbacks(__ATMAIN__);\n}\n\nfunction exitRuntime() {\n checkStackCookie();\n runtimeExited = true;\n}\n\nfunction postRun() {\n checkStackCookie();\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [ Module[\"postRun\"] ];\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n}\n\nfunction addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n}\n\nfunction addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n}\n\nassert(Math.imul, \"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nassert(Math.fround, \"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nassert(Math.clz32, \"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nassert(Math.trunc, \"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nvar runDependencies = 0;\n\nvar runDependencyWatcher = null;\n\nvar dependenciesFulfilled = null;\n\nvar runDependencyTracking = {};\n\nfunction getUniqueRunDependency(id) {\n var orig = id;\n while (1) {\n if (!runDependencyTracking[id]) return id;\n id = orig + Math.random();\n }\n}\n\nfunction addRunDependency(id) {\n runDependencies++;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (id) {\n assert(!runDependencyTracking[id]);\n runDependencyTracking[id] = 1;\n if (runDependencyWatcher === null && typeof setInterval !== \"undefined\") {\n runDependencyWatcher = setInterval(function() {\n if (ABORT) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n return;\n }\n var shown = false;\n for (var dep in runDependencyTracking) {\n if (!shown) {\n shown = true;\n err(\"still waiting on run dependencies:\");\n }\n err(\"dependency: \" + dep);\n }\n if (shown) {\n err(\"(end of list)\");\n }\n }, 1e4);\n }\n } else {\n err(\"warning: run dependency added without ID\");\n }\n}\n\nfunction removeRunDependency(id) {\n runDependencies--;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (id) {\n assert(runDependencyTracking[id]);\n delete runDependencyTracking[id];\n } else {\n err(\"warning: run dependency removed without ID\");\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n}\n\nModule[\"preloadedImages\"] = {};\n\nModule[\"preloadedAudios\"] = {};\n\nfunction abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }\n what += \"\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n var output = \"abort(\" + what + \") at \" + stackTrace();\n what = output;\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e;\n}\n\nfunction hasPrefix(str, prefix) {\n return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0;\n}\n\nvar dataURIPrefix = \"data:application/octet-stream;base64,\";\n\nfunction isDataURI(filename) {\n return hasPrefix(filename, dataURIPrefix);\n}\n\nvar fileURIPrefix = \"file://\";\n\nfunction isFileURI(filename) {\n return hasPrefix(filename, fileURIPrefix);\n}\n\nfunction createExportWrapper(name, fixedasm) {\n return function() {\n var displayName = name;\n var asm = fixedasm;\n if (!fixedasm) {\n asm = Module[\"asm\"];\n }\n assert(runtimeInitialized, \"native function `\" + displayName + \"` called before runtime initialization\");\n assert(!runtimeExited, \"native function `\" + displayName + \"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)\");\n if (!asm[name]) {\n assert(asm[name], \"exported native function `\" + displayName + \"` not found\");\n }\n return asm[name].apply(null, arguments);\n };\n}\n\nvar wasmBinaryFile = \"trace_processor.wasm\";\n\nif (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n}\n\nfunction getBinary(file) {\n try {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n if (readBinary) {\n return readBinary(file);\n } else {\n throw \"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)\";\n }\n } catch (err) {\n abort(err);\n }\n}\n\nfunction getBinaryPromise() {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch === \"function\" && !isFileURI(wasmBinaryFile)) {\n return fetch(wasmBinaryFile, {\n credentials: \"same-origin\"\n }).then(function(response) {\n if (!response[\"ok\"]) {\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\n }\n return response[\"arrayBuffer\"]();\n }).catch(function() {\n return getBinary(wasmBinaryFile);\n });\n } else {\n if (readAsync) {\n return new Promise(function(resolve, reject) {\n readAsync(wasmBinaryFile, function(response) {\n resolve(new Uint8Array(response));\n }, reject);\n });\n }\n }\n }\n return Promise.resolve().then(function() {\n return getBinary(wasmBinaryFile);\n });\n}\n\nfunction instantiateSync(file, info) {\n var instance;\n var module;\n var binary;\n try {\n binary = getBinary(file);\n module = new WebAssembly.Module(binary);\n instance = new WebAssembly.Instance(module, info);\n } catch (e) {\n var str = e.toString();\n err(\"failed to compile wasm module: \" + str);\n if (str.indexOf(\"imported Memory\") >= 0 || str.indexOf(\"memory import\") >= 0) {\n err(\"Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time).\");\n }\n throw e;\n }\n return [ instance, module ];\n}\n\nfunction createWasm() {\n var info = {\n \"env\": asmLibraryArg,\n \"wasi_snapshot_preview1\": asmLibraryArg\n };\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module[\"asm\"] = exports;\n wasmMemory = Module[\"asm\"][\"memory\"];\n assert(wasmMemory, \"memory not found in wasm exports\");\n updateGlobalBufferAndViews(wasmMemory.buffer);\n wasmTable = Module[\"asm\"][\"__indirect_function_table\"];\n assert(wasmTable, \"table not found in wasm exports\");\n removeRunDependency(\"wasm-instantiate\");\n }\n addRunDependency(\"wasm-instantiate\");\n var trueModule = Module;\n if (Module[\"instantiateWasm\"]) {\n try {\n var exports = Module[\"instantiateWasm\"](info, receiveInstance);\n return exports;\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n return false;\n }\n }\n var result = instantiateSync(wasmBinaryFile, info);\n receiveInstance(result[0], result[1]);\n return Module[\"asm\"];\n}\n\nvar tempDouble;\n\nvar tempI64;\n\nfunction callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n if (typeof callback == \"function\") {\n callback(Module);\n continue;\n }\n var func = callback.func;\n if (typeof func === \"number\") {\n if (callback.arg === undefined) {\n wasmTable.get(func)();\n } else {\n wasmTable.get(func)(callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n}\n\nfunction demangle(func) {\n warnOnce(\"warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling\");\n return func;\n}\n\nfunction demangleAll(text) {\n var regex = /\\b_Z[\\w\\d_]+/g;\n return text.replace(regex, function(x) {\n var y = demangle(x);\n return x === y ? x : y + \" [\" + x + \"]\";\n });\n}\n\nfunction jsStackTrace() {\n var error = new Error();\n if (!error.stack) {\n try {\n throw new Error();\n } catch (e) {\n error = e;\n }\n if (!error.stack) {\n return \"(no stack trace available)\";\n }\n }\n return error.stack.toString();\n}\n\nfunction stackTrace() {\n var js = jsStackTrace();\n if (Module[\"extraStackTrace\"]) js += \"\\n\" + Module[\"extraStackTrace\"]();\n return demangleAll(js);\n}\n\nfunction _atexit(func, arg) {}\n\nfunction ___cxa_atexit(a0, a1) {\n return _atexit(a0, a1);\n}\n\nfunction _tzset() {\n if (_tzset.called) return;\n _tzset.called = true;\n var currentYear = new Date().getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n HEAP32[__get_timezone() >> 2] = stdTimezoneOffset * 60;\n HEAP32[__get_daylight() >> 2] = Number(winterOffset != summerOffset);\n function extractZone(date) {\n var match = date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);\n return match ? match[1] : \"GMT\";\n }\n var winterName = extractZone(winter);\n var summerName = extractZone(summer);\n var winterNamePtr = allocateUTF8(winterName);\n var summerNamePtr = allocateUTF8(summerName);\n if (summerOffset < winterOffset) {\n HEAP32[__get_tzname() >> 2] = winterNamePtr;\n HEAP32[__get_tzname() + 4 >> 2] = summerNamePtr;\n } else {\n HEAP32[__get_tzname() >> 2] = summerNamePtr;\n HEAP32[__get_tzname() + 4 >> 2] = winterNamePtr;\n }\n}\n\nfunction _localtime_r(time, tmPtr) {\n _tzset();\n var date = new Date(HEAP32[time >> 2] * 1e3);\n HEAP32[tmPtr >> 2] = date.getSeconds();\n HEAP32[tmPtr + 4 >> 2] = date.getMinutes();\n HEAP32[tmPtr + 8 >> 2] = date.getHours();\n HEAP32[tmPtr + 12 >> 2] = date.getDate();\n HEAP32[tmPtr + 16 >> 2] = date.getMonth();\n HEAP32[tmPtr + 20 >> 2] = date.getFullYear() - 1900;\n HEAP32[tmPtr + 24 >> 2] = date.getDay();\n var start = new Date(date.getFullYear(), 0, 1);\n var yday = (date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24) | 0;\n HEAP32[tmPtr + 28 >> 2] = yday;\n HEAP32[tmPtr + 36 >> 2] = -(date.getTimezoneOffset() * 60);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n HEAP32[tmPtr + 32 >> 2] = dst;\n var zonePtr = HEAP32[__get_tzname() + (dst ? 4 : 0) >> 2];\n HEAP32[tmPtr + 40 >> 2] = zonePtr;\n return tmPtr;\n}\n\nfunction ___localtime_r(a0, a1) {\n return _localtime_r(a0, a1);\n}\n\nvar PATH = {\n splitPath: function(filename) {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n },\n normalizeArray: function(parts, allowAboveRoot) {\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {\n for (;up; up--) {\n parts.unshift(\"..\");\n }\n }\n return parts;\n },\n normalize: function(path) {\n var isAbsolute = path.charAt(0) === \"/\", trailingSlash = path.substr(-1) === \"/\";\n path = PATH.normalizeArray(path.split(\"/\").filter(function(p) {\n return !!p;\n }), !isAbsolute).join(\"/\");\n if (!path && !isAbsolute) {\n path = \".\";\n }\n if (path && trailingSlash) {\n path += \"/\";\n }\n return (isAbsolute ? \"/\" : \"\") + path;\n },\n dirname: function(path) {\n var result = PATH.splitPath(path), root = result[0], dir = result[1];\n if (!root && !dir) {\n return \".\";\n }\n if (dir) {\n dir = dir.substr(0, dir.length - 1);\n }\n return root + dir;\n },\n basename: function(path) {\n if (path === \"/\") return \"/\";\n path = PATH.normalize(path);\n path = path.replace(/\\/$/, \"\");\n var lastSlash = path.lastIndexOf(\"/\");\n if (lastSlash === -1) return path;\n return path.substr(lastSlash + 1);\n },\n extname: function(path) {\n return PATH.splitPath(path)[3];\n },\n join: function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return PATH.normalize(paths.join(\"/\"));\n },\n join2: function(l, r) {\n return PATH.normalize(l + \"/\" + r);\n }\n};\n\nfunction getRandomDevice() {\n if (typeof crypto === \"object\" && typeof crypto[\"getRandomValues\"] === \"function\") {\n var randomBuffer = new Uint8Array(1);\n return function() {\n crypto.getRandomValues(randomBuffer);\n return randomBuffer[0];\n };\n } else if (ENVIRONMENT_IS_NODE) {\n try {\n var crypto_module = require(\"crypto\");\n return function() {\n return crypto_module[\"randomBytes\"](1)[0];\n };\n } catch (e) {}\n }\n return function() {\n abort(\"no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };\");\n };\n}\n\nvar PATH_FS = {\n resolve: function() {\n var resolvedPath = \"\", resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : FS.cwd();\n if (typeof path !== \"string\") {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n } else if (!path) {\n return \"\";\n }\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charAt(0) === \"/\";\n }\n resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p) {\n return !!p;\n }), !resolvedAbsolute).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n },\n relative: function(from, to) {\n from = PATH_FS.resolve(from).substr(1);\n to = PATH_FS.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (;start < arr.length; start++) {\n if (arr[start] !== \"\") break;\n }\n var end = arr.length - 1;\n for (;end >= 0; end--) {\n if (arr[end] !== \"\") break;\n }\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split(\"/\"));\n var toParts = trim(to.split(\"/\"));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\"..\");\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n }\n};\n\nvar TTY = {\n ttys: [],\n init: function() {},\n shutdown: function() {},\n register: function(dev, ops) {\n TTY.ttys[dev] = {\n input: [],\n output: [],\n ops: ops\n };\n FS.registerDevice(dev, TTY.stream_ops);\n },\n stream_ops: {\n open: function(stream) {\n var tty = TTY.ttys[stream.node.rdev];\n if (!tty) {\n throw new FS.ErrnoError(43);\n }\n stream.tty = tty;\n stream.seekable = false;\n },\n close: function(stream) {\n stream.tty.ops.flush(stream.tty);\n },\n flush: function(stream) {\n stream.tty.ops.flush(stream.tty);\n },\n read: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.get_char) {\n throw new FS.ErrnoError(60);\n }\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = stream.tty.ops.get_char(stream.tty);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {\n throw new FS.ErrnoError(60);\n }\n try {\n for (var i = 0; i < length; i++) {\n stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n }\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n }\n },\n default_tty_ops: {\n get_char: function(tty) {\n if (!tty.input.length) {\n var result = null;\n if (ENVIRONMENT_IS_NODE) {\n var BUFSIZE = 256;\n var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);\n var bytesRead = 0;\n try {\n bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null);\n } catch (e) {\n if (e.toString().indexOf(\"EOF\") != -1) bytesRead = 0; else throw e;\n }\n if (bytesRead > 0) {\n result = buf.slice(0, bytesRead).toString(\"utf-8\");\n } else {\n result = null;\n }\n } else if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n result = window.prompt(\"Input: \");\n if (result !== null) {\n result += \"\\n\";\n }\n } else if (typeof readline == \"function\") {\n result = readline();\n if (result !== null) {\n result += \"\\n\";\n }\n }\n if (!result) {\n return null;\n }\n tty.input = intArrayFromString(result, true);\n }\n return tty.input.shift();\n },\n put_char: function(tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },\n flush: function(tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n },\n default_tty1_ops: {\n put_char: function(tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },\n flush: function(tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n }\n};\n\nfunction mmapAlloc(size) {\n var alignedSize = alignMemory(size, 16384);\n var ptr = _malloc(alignedSize);\n while (size < alignedSize) HEAP8[ptr + size++] = 0;\n return ptr;\n}\n\nvar MEMFS = {\n ops_table: null,\n mount: function(mount) {\n return MEMFS.createNode(null, \"/\", 16384 | 511, 0);\n },\n createNode: function(parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n throw new FS.ErrnoError(63);\n }\n if (!MEMFS.ops_table) {\n MEMFS.ops_table = {\n dir: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n lookup: MEMFS.node_ops.lookup,\n mknod: MEMFS.node_ops.mknod,\n rename: MEMFS.node_ops.rename,\n unlink: MEMFS.node_ops.unlink,\n rmdir: MEMFS.node_ops.rmdir,\n readdir: MEMFS.node_ops.readdir,\n symlink: MEMFS.node_ops.symlink\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek\n }\n },\n file: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek,\n read: MEMFS.stream_ops.read,\n write: MEMFS.stream_ops.write,\n allocate: MEMFS.stream_ops.allocate,\n mmap: MEMFS.stream_ops.mmap,\n msync: MEMFS.stream_ops.msync\n }\n },\n link: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n readlink: MEMFS.node_ops.readlink\n },\n stream: {}\n },\n chrdev: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: FS.chrdev_stream_ops\n }\n };\n }\n var node = FS.createNode(parent, name, mode, dev);\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0;\n node.contents = null;\n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n node.timestamp = Date.now();\n if (parent) {\n parent.contents[name] = node;\n parent.timestamp = node.timestamp;\n }\n return node;\n },\n getFileDataAsRegularArray: function(node) {\n if (node.contents && node.contents.subarray) {\n var arr = [];\n for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);\n return arr;\n }\n return node.contents;\n },\n getFileDataAsTypedArray: function(node) {\n if (!node.contents) return new Uint8Array(0);\n if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes);\n return new Uint8Array(node.contents);\n },\n expandFileStorage: function(node, newCapacity) {\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity) return;\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity);\n if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n return;\n },\n resizeFileStorage: function(node, newSize) {\n if (node.usedBytes == newSize) return;\n if (newSize == 0) {\n node.contents = null;\n node.usedBytes = 0;\n return;\n }\n if (!node.contents || node.contents.subarray) {\n var oldContents = node.contents;\n node.contents = new Uint8Array(newSize);\n if (oldContents) {\n node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n }\n node.usedBytes = newSize;\n return;\n }\n if (!node.contents) node.contents = [];\n if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) node.contents.push(0);\n node.usedBytes = newSize;\n },\n node_ops: {\n getattr: function(node) {\n var attr = {};\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n if (FS.isDir(node.mode)) {\n attr.size = 4096;\n } else if (FS.isFile(node.mode)) {\n attr.size = node.usedBytes;\n } else if (FS.isLink(node.mode)) {\n attr.size = node.link.length;\n } else {\n attr.size = 0;\n }\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n },\n setattr: function(node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n if (attr.size !== undefined) {\n MEMFS.resizeFileStorage(node, attr.size);\n }\n },\n lookup: function(parent, name) {\n throw FS.genericErrors[44];\n },\n mknod: function(parent, name, mode, dev) {\n return MEMFS.createNode(parent, name, mode, dev);\n },\n rename: function(old_node, new_dir, new_name) {\n if (FS.isDir(old_node.mode)) {\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {}\n if (new_node) {\n for (var i in new_node.contents) {\n throw new FS.ErrnoError(55);\n }\n }\n }\n delete old_node.parent.contents[old_node.name];\n old_node.parent.timestamp = Date.now();\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n new_dir.timestamp = old_node.parent.timestamp;\n old_node.parent = new_dir;\n },\n unlink: function(parent, name) {\n delete parent.contents[name];\n parent.timestamp = Date.now();\n },\n rmdir: function(parent, name) {\n var node = FS.lookupNode(parent, name);\n for (var i in node.contents) {\n throw new FS.ErrnoError(55);\n }\n delete parent.contents[name];\n parent.timestamp = Date.now();\n },\n readdir: function(node) {\n var entries = [ \".\", \"..\" ];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n },\n symlink: function(parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n node.link = oldpath;\n return node;\n },\n readlink: function(node) {\n if (!FS.isLink(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n return node.link;\n }\n },\n stream_ops: {\n read: function(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes) return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n assert(size >= 0);\n if (size > 8 && contents.subarray) {\n buffer.set(contents.subarray(position, position + size), offset);\n } else {\n for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];\n }\n return size;\n },\n write: function(stream, buffer, offset, length, position, canOwn) {\n assert(!(buffer instanceof ArrayBuffer));\n if (buffer.buffer === HEAP8.buffer) {\n canOwn = false;\n }\n if (!length) return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n if (canOwn) {\n assert(position === 0, \"canOwn must imply no weird position inside the file\");\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) {\n node.contents = buffer.slice(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n MEMFS.expandFileStorage(node, position + length);\n if (node.contents.subarray && buffer.subarray) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n } else {\n for (var i = 0; i < length; i++) {\n node.contents[position + i] = buffer[offset + i];\n }\n }\n node.usedBytes = Math.max(node.usedBytes, position + length);\n return length;\n },\n llseek: function(stream, offset, whence) {\n var position = offset;\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.usedBytes;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n return position;\n },\n allocate: function(stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n },\n mmap: function(stream, address, length, position, prot, flags) {\n if (address !== 0) {\n throw new FS.ErrnoError(28);\n }\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n if (!(flags & 2) && contents.buffer === buffer) {\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n if (position > 0 || position + length < contents.length) {\n if (contents.subarray) {\n contents = contents.subarray(position, position + length);\n } else {\n contents = Array.prototype.slice.call(contents, position, position + length);\n }\n }\n allocated = true;\n ptr = mmapAlloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n HEAP8.set(contents, ptr);\n }\n return {\n ptr: ptr,\n allocated: allocated\n };\n },\n msync: function(stream, buffer, offset, length, mmapFlags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (mmapFlags & 2) {\n return 0;\n }\n var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n return 0;\n }\n }\n};\n\nvar WORKERFS = {\n DIR_MODE: 16895,\n FILE_MODE: 33279,\n reader: null,\n mount: function(mount) {\n assert(ENVIRONMENT_IS_WORKER);\n if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();\n var root = WORKERFS.createNode(null, \"/\", WORKERFS.DIR_MODE, 0);\n var createdParents = {};\n function ensureParent(path) {\n var parts = path.split(\"/\");\n var parent = root;\n for (var i = 0; i < parts.length - 1; i++) {\n var curr = parts.slice(0, i + 1).join(\"/\");\n if (!createdParents[curr]) {\n createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0);\n }\n parent = createdParents[curr];\n }\n return parent;\n }\n function base(path) {\n var parts = path.split(\"/\");\n return parts[parts.length - 1];\n }\n Array.prototype.forEach.call(mount.opts[\"files\"] || [], function(file) {\n WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);\n });\n (mount.opts[\"blobs\"] || []).forEach(function(obj) {\n WORKERFS.createNode(ensureParent(obj[\"name\"]), base(obj[\"name\"]), WORKERFS.FILE_MODE, 0, obj[\"data\"]);\n });\n (mount.opts[\"packages\"] || []).forEach(function(pack) {\n pack[\"metadata\"].files.forEach(function(file) {\n var name = file.filename.substr(1);\n WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack[\"blob\"].slice(file.start, file.end));\n });\n });\n return root;\n },\n createNode: function(parent, name, mode, dev, contents, mtime) {\n var node = FS.createNode(parent, name, mode);\n node.mode = mode;\n node.node_ops = WORKERFS.node_ops;\n node.stream_ops = WORKERFS.stream_ops;\n node.timestamp = (mtime || new Date()).getTime();\n assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);\n if (mode === WORKERFS.FILE_MODE) {\n node.size = contents.size;\n node.contents = contents;\n } else {\n node.size = 4096;\n node.contents = {};\n }\n if (parent) {\n parent.contents[name] = node;\n }\n return node;\n },\n node_ops: {\n getattr: function(node) {\n return {\n dev: 1,\n ino: node.id,\n mode: node.mode,\n nlink: 1,\n uid: 0,\n gid: 0,\n rdev: undefined,\n size: node.size,\n atime: new Date(node.timestamp),\n mtime: new Date(node.timestamp),\n ctime: new Date(node.timestamp),\n blksize: 4096,\n blocks: Math.ceil(node.size / 4096)\n };\n },\n setattr: function(node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n },\n lookup: function(parent, name) {\n throw new FS.ErrnoError(44);\n },\n mknod: function(parent, name, mode, dev) {\n throw new FS.ErrnoError(63);\n },\n rename: function(oldNode, newDir, newName) {\n throw new FS.ErrnoError(63);\n },\n unlink: function(parent, name) {\n throw new FS.ErrnoError(63);\n },\n rmdir: function(parent, name) {\n throw new FS.ErrnoError(63);\n },\n readdir: function(node) {\n var entries = [ \".\", \"..\" ];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n },\n symlink: function(parent, newName, oldPath) {\n throw new FS.ErrnoError(63);\n },\n readlink: function(node) {\n throw new FS.ErrnoError(63);\n }\n },\n stream_ops: {\n read: function(stream, buffer, offset, length, position) {\n if (position >= stream.node.size) return 0;\n var chunk = stream.node.contents.slice(position, position + length);\n var ab = WORKERFS.reader.readAsArrayBuffer(chunk);\n buffer.set(new Uint8Array(ab), offset);\n return chunk.size;\n },\n write: function(stream, buffer, offset, length, position) {\n throw new FS.ErrnoError(29);\n },\n llseek: function(stream, offset, whence) {\n var position = offset;\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.size;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n return position;\n }\n }\n};\n\nvar ERRNO_MESSAGES = {\n 0: \"Success\",\n 1: \"Arg list too long\",\n 2: \"Permission denied\",\n 3: \"Address already in use\",\n 4: \"Address not available\",\n 5: \"Address family not supported by protocol family\",\n 6: \"No more processes\",\n 7: \"Socket already connected\",\n 8: \"Bad file number\",\n 9: \"Trying to read unreadable message\",\n 10: \"Mount device busy\",\n 11: \"Operation canceled\",\n 12: \"No children\",\n 13: \"Connection aborted\",\n 14: \"Connection refused\",\n 15: \"Connection reset by peer\",\n 16: \"File locking deadlock error\",\n 17: \"Destination address required\",\n 18: \"Math arg out of domain of func\",\n 19: \"Quota exceeded\",\n 20: \"File exists\",\n 21: \"Bad address\",\n 22: \"File too large\",\n 23: \"Host is unreachable\",\n 24: \"Identifier removed\",\n 25: \"Illegal byte sequence\",\n 26: \"Connection already in progress\",\n 27: \"Interrupted system call\",\n 28: \"Invalid argument\",\n 29: \"I/O error\",\n 30: \"Socket is already connected\",\n 31: \"Is a directory\",\n 32: \"Too many symbolic links\",\n 33: \"Too many open files\",\n 34: \"Too many links\",\n 35: \"Message too long\",\n 36: \"Multihop attempted\",\n 37: \"File or path name too long\",\n 38: \"Network interface is not configured\",\n 39: \"Connection reset by network\",\n 40: \"Network is unreachable\",\n 41: \"Too many open files in system\",\n 42: \"No buffer space available\",\n 43: \"No such device\",\n 44: \"No such file or directory\",\n 45: \"Exec format error\",\n 46: \"No record locks available\",\n 47: \"The link has been severed\",\n 48: \"Not enough core\",\n 49: \"No message of desired type\",\n 50: \"Protocol not available\",\n 51: \"No space left on device\",\n 52: \"Function not implemented\",\n 53: \"Socket is not connected\",\n 54: \"Not a directory\",\n 55: \"Directory not empty\",\n 56: \"State not recoverable\",\n 57: \"Socket operation on non-socket\",\n 59: \"Not a typewriter\",\n 60: \"No such device or address\",\n 61: \"Value too large for defined data type\",\n 62: \"Previous owner died\",\n 63: \"Not super-user\",\n 64: \"Broken pipe\",\n 65: \"Protocol error\",\n 66: \"Unknown protocol\",\n 67: \"Protocol wrong type for socket\",\n 68: \"Math result not representable\",\n 69: \"Read only file system\",\n 70: \"Illegal seek\",\n 71: \"No such process\",\n 72: \"Stale file handle\",\n 73: \"Connection timed out\",\n 74: \"Text file busy\",\n 75: \"Cross-device link\",\n 100: \"Device not a stream\",\n 101: \"Bad font file fmt\",\n 102: \"Invalid slot\",\n 103: \"Invalid request code\",\n 104: \"No anode\",\n 105: \"Block device required\",\n 106: \"Channel number out of range\",\n 107: \"Level 3 halted\",\n 108: \"Level 3 reset\",\n 109: \"Link number out of range\",\n 110: \"Protocol driver not attached\",\n 111: \"No CSI structure available\",\n 112: \"Level 2 halted\",\n 113: \"Invalid exchange\",\n 114: \"Invalid request descriptor\",\n 115: \"Exchange full\",\n 116: \"No data (for no delay io)\",\n 117: \"Timer expired\",\n 118: \"Out of streams resources\",\n 119: \"Machine is not on the network\",\n 120: \"Package not installed\",\n 121: \"The object is remote\",\n 122: \"Advertise error\",\n 123: \"Srmount error\",\n 124: \"Communication error on send\",\n 125: \"Cross mount point (not really error)\",\n 126: \"Given log. name not unique\",\n 127: \"f.d. invalid for this operation\",\n 128: \"Remote address changed\",\n 129: \"Can access a needed shared lib\",\n 130: \"Accessing a corrupted shared lib\",\n 131: \".lib section in a.out corrupted\",\n 132: \"Attempting to link in too many libs\",\n 133: \"Attempting to exec a shared library\",\n 135: \"Streams pipe error\",\n 136: \"Too many users\",\n 137: \"Socket type not supported\",\n 138: \"Not supported\",\n 139: \"Protocol family not supported\",\n 140: \"Can't send after socket shutdown\",\n 141: \"Too many references\",\n 142: \"Host is down\",\n 148: \"No medium (in tape drive)\",\n 156: \"Level 2 not synchronized\"\n};\n\nvar ERRNO_CODES = {\n EPERM: 63,\n ENOENT: 44,\n ESRCH: 71,\n EINTR: 27,\n EIO: 29,\n ENXIO: 60,\n E2BIG: 1,\n ENOEXEC: 45,\n EBADF: 8,\n ECHILD: 12,\n EAGAIN: 6,\n EWOULDBLOCK: 6,\n ENOMEM: 48,\n EACCES: 2,\n EFAULT: 21,\n ENOTBLK: 105,\n EBUSY: 10,\n EEXIST: 20,\n EXDEV: 75,\n ENODEV: 43,\n ENOTDIR: 54,\n EISDIR: 31,\n EINVAL: 28,\n ENFILE: 41,\n EMFILE: 33,\n ENOTTY: 59,\n ETXTBSY: 74,\n EFBIG: 22,\n ENOSPC: 51,\n ESPIPE: 70,\n EROFS: 69,\n EMLINK: 34,\n EPIPE: 64,\n EDOM: 18,\n ERANGE: 68,\n ENOMSG: 49,\n EIDRM: 24,\n ECHRNG: 106,\n EL2NSYNC: 156,\n EL3HLT: 107,\n EL3RST: 108,\n ELNRNG: 109,\n EUNATCH: 110,\n ENOCSI: 111,\n EL2HLT: 112,\n EDEADLK: 16,\n ENOLCK: 46,\n EBADE: 113,\n EBADR: 114,\n EXFULL: 115,\n ENOANO: 104,\n EBADRQC: 103,\n EBADSLT: 102,\n EDEADLOCK: 16,\n EBFONT: 101,\n ENOSTR: 100,\n ENODATA: 116,\n ETIME: 117,\n ENOSR: 118,\n ENONET: 119,\n ENOPKG: 120,\n EREMOTE: 121,\n ENOLINK: 47,\n EADV: 122,\n ESRMNT: 123,\n ECOMM: 124,\n EPROTO: 65,\n EMULTIHOP: 36,\n EDOTDOT: 125,\n EBADMSG: 9,\n ENOTUNIQ: 126,\n EBADFD: 127,\n EREMCHG: 128,\n ELIBACC: 129,\n ELIBBAD: 130,\n ELIBSCN: 131,\n ELIBMAX: 132,\n ELIBEXEC: 133,\n ENOSYS: 52,\n ENOTEMPTY: 55,\n ENAMETOOLONG: 37,\n ELOOP: 32,\n EOPNOTSUPP: 138,\n EPFNOSUPPORT: 139,\n ECONNRESET: 15,\n ENOBUFS: 42,\n EAFNOSUPPORT: 5,\n EPROTOTYPE: 67,\n ENOTSOCK: 57,\n ENOPROTOOPT: 50,\n ESHUTDOWN: 140,\n ECONNREFUSED: 14,\n EADDRINUSE: 3,\n ECONNABORTED: 13,\n ENETUNREACH: 40,\n ENETDOWN: 38,\n ETIMEDOUT: 73,\n EHOSTDOWN: 142,\n EHOSTUNREACH: 23,\n EINPROGRESS: 26,\n EALREADY: 7,\n EDESTADDRREQ: 17,\n EMSGSIZE: 35,\n EPROTONOSUPPORT: 66,\n ESOCKTNOSUPPORT: 137,\n EADDRNOTAVAIL: 4,\n ENETRESET: 39,\n EISCONN: 30,\n ENOTCONN: 53,\n ETOOMANYREFS: 141,\n EUSERS: 136,\n EDQUOT: 19,\n ESTALE: 72,\n ENOTSUP: 138,\n ENOMEDIUM: 148,\n EILSEQ: 25,\n EOVERFLOW: 61,\n ECANCELED: 11,\n ENOTRECOVERABLE: 56,\n EOWNERDEAD: 62,\n ESTRPIPE: 135\n};\n\nvar FS = {\n root: null,\n mounts: [],\n devices: {},\n streams: [],\n nextInode: 1,\n nameTable: null,\n currentPath: \"/\",\n initialized: false,\n ignorePermissions: true,\n trackingDelegate: {},\n tracking: {\n openFlags: {\n READ: 1,\n WRITE: 2\n }\n },\n ErrnoError: null,\n genericErrors: {},\n filesystems: null,\n syncFSRequests: 0,\n lookupPath: function(path, opts) {\n path = PATH_FS.resolve(FS.cwd(), path);\n opts = opts || {};\n if (!path) return {\n path: \"\",\n node: null\n };\n var defaults = {\n follow_mount: true,\n recurse_count: 0\n };\n for (var key in defaults) {\n if (opts[key] === undefined) {\n opts[key] = defaults[key];\n }\n }\n if (opts.recurse_count > 8) {\n throw new FS.ErrnoError(32);\n }\n var parts = PATH.normalizeArray(path.split(\"/\").filter(function(p) {\n return !!p;\n }), false);\n var current = FS.root;\n var current_path = \"/\";\n for (var i = 0; i < parts.length; i++) {\n var islast = i === parts.length - 1;\n if (islast && opts.parent) {\n break;\n }\n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n if (FS.isMountpoint(current)) {\n if (!islast || islast && opts.follow_mount) {\n current = current.mounted.root;\n }\n }\n if (!islast || opts.follow) {\n var count = 0;\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n var lookup = FS.lookupPath(current_path, {\n recurse_count: opts.recurse_count\n });\n current = lookup.node;\n if (count++ > 40) {\n throw new FS.ErrnoError(32);\n }\n }\n }\n }\n return {\n path: current_path,\n node: current\n };\n },\n getPath: function(node) {\n var path;\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path) return mount;\n return mount[mount.length - 1] !== \"/\" ? mount + \"/\" + path : mount + path;\n }\n path = path ? node.name + \"/\" + path : node.name;\n node = node.parent;\n }\n },\n hashName: function(parentid, name) {\n var hash = 0;\n for (var i = 0; i < name.length; i++) {\n hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n }\n return (parentid + hash >>> 0) % FS.nameTable.length;\n },\n hashAddNode: function(node) {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n },\n hashRemoveNode: function(node) {\n var hash = FS.hashName(node.parent.id, node.name);\n if (FS.nameTable[hash] === node) {\n FS.nameTable[hash] = node.name_next;\n } else {\n var current = FS.nameTable[hash];\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n current = current.name_next;\n }\n }\n },\n lookupNode: function(parent, name) {\n var errCode = FS.mayLookup(parent);\n if (errCode) {\n throw new FS.ErrnoError(errCode, parent);\n }\n var hash = FS.hashName(parent.id, name);\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n if (node.parent.id === parent.id && nodeName === name) {\n return node;\n }\n }\n return FS.lookup(parent, name);\n },\n createNode: function(parent, name, mode, rdev) {\n assert(typeof parent === \"object\");\n var node = new FS.FSNode(parent, name, mode, rdev);\n FS.hashAddNode(node);\n return node;\n },\n destroyNode: function(node) {\n FS.hashRemoveNode(node);\n },\n isRoot: function(node) {\n return node === node.parent;\n },\n isMountpoint: function(node) {\n return !!node.mounted;\n },\n isFile: function(mode) {\n return (mode & 61440) === 32768;\n },\n isDir: function(mode) {\n return (mode & 61440) === 16384;\n },\n isLink: function(mode) {\n return (mode & 61440) === 40960;\n },\n isChrdev: function(mode) {\n return (mode & 61440) === 8192;\n },\n isBlkdev: function(mode) {\n return (mode & 61440) === 24576;\n },\n isFIFO: function(mode) {\n return (mode & 61440) === 4096;\n },\n isSocket: function(mode) {\n return (mode & 49152) === 49152;\n },\n flagModes: {\n \"r\": 0,\n \"r+\": 2,\n \"w\": 577,\n \"w+\": 578,\n \"a\": 1089,\n \"a+\": 1090\n },\n modeStringToFlags: function(str) {\n var flags = FS.flagModes[str];\n if (typeof flags === \"undefined\") {\n throw new Error(\"Unknown file open mode: \" + str);\n }\n return flags;\n },\n flagsToPermissionString: function(flag) {\n var perms = [ \"r\", \"w\", \"rw\" ][flag & 3];\n if (flag & 512) {\n perms += \"w\";\n }\n return perms;\n },\n nodePermissions: function(node, perms) {\n if (FS.ignorePermissions) {\n return 0;\n }\n if (perms.indexOf(\"r\") !== -1 && !(node.mode & 292)) {\n return 2;\n } else if (perms.indexOf(\"w\") !== -1 && !(node.mode & 146)) {\n return 2;\n } else if (perms.indexOf(\"x\") !== -1 && !(node.mode & 73)) {\n return 2;\n }\n return 0;\n },\n mayLookup: function(dir) {\n var errCode = FS.nodePermissions(dir, \"x\");\n if (errCode) return errCode;\n if (!dir.node_ops.lookup) return 2;\n return 0;\n },\n mayCreate: function(dir, name) {\n try {\n var node = FS.lookupNode(dir, name);\n return 20;\n } catch (e) {}\n return FS.nodePermissions(dir, \"wx\");\n },\n mayDelete: function(dir, name, isdir) {\n var node;\n try {\n node = FS.lookupNode(dir, name);\n } catch (e) {\n return e.errno;\n }\n var errCode = FS.nodePermissions(dir, \"wx\");\n if (errCode) {\n return errCode;\n }\n if (isdir) {\n if (!FS.isDir(node.mode)) {\n return 54;\n }\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n return 10;\n }\n } else {\n if (FS.isDir(node.mode)) {\n return 31;\n }\n }\n return 0;\n },\n mayOpen: function(node, flags) {\n if (!node) {\n return 44;\n }\n if (FS.isLink(node.mode)) {\n return 32;\n } else if (FS.isDir(node.mode)) {\n if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {\n return 31;\n }\n }\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n },\n MAX_OPEN_FDS: 4096,\n nextfd: function(fd_start, fd_end) {\n fd_start = fd_start || 0;\n fd_end = fd_end || FS.MAX_OPEN_FDS;\n for (var fd = fd_start; fd <= fd_end; fd++) {\n if (!FS.streams[fd]) {\n return fd;\n }\n }\n throw new FS.ErrnoError(33);\n },\n getStream: function(fd) {\n return FS.streams[fd];\n },\n createStream: function(stream, fd_start, fd_end) {\n if (!FS.FSStream) {\n FS.FSStream = function() {};\n FS.FSStream.prototype = {\n object: {\n get: function() {\n return this.node;\n },\n set: function(val) {\n this.node = val;\n }\n },\n isRead: {\n get: function() {\n return (this.flags & 2097155) !== 1;\n }\n },\n isWrite: {\n get: function() {\n return (this.flags & 2097155) !== 0;\n }\n },\n isAppend: {\n get: function() {\n return this.flags & 1024;\n }\n }\n };\n }\n var newStream = new FS.FSStream();\n for (var p in stream) {\n newStream[p] = stream[p];\n }\n stream = newStream;\n var fd = FS.nextfd(fd_start, fd_end);\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n },\n closeStream: function(fd) {\n FS.streams[fd] = null;\n },\n chrdev_stream_ops: {\n open: function(stream) {\n var device = FS.getDevice(stream.node.rdev);\n stream.stream_ops = device.stream_ops;\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n },\n llseek: function() {\n throw new FS.ErrnoError(70);\n }\n },\n major: function(dev) {\n return dev >> 8;\n },\n minor: function(dev) {\n return dev & 255;\n },\n makedev: function(ma, mi) {\n return ma << 8 | mi;\n },\n registerDevice: function(dev, ops) {\n FS.devices[dev] = {\n stream_ops: ops\n };\n },\n getDevice: function(dev) {\n return FS.devices[dev];\n },\n getMounts: function(mount) {\n var mounts = [];\n var check = [ mount ];\n while (check.length) {\n var m = check.pop();\n mounts.push(m);\n check.push.apply(check, m.mounts);\n }\n return mounts;\n },\n syncfs: function(populate, callback) {\n if (typeof populate === \"function\") {\n callback = populate;\n populate = false;\n }\n FS.syncFSRequests++;\n if (FS.syncFSRequests > 1) {\n err(\"warning: \" + FS.syncFSRequests + \" FS.syncfs operations in flight at once, probably just doing extra work\");\n }\n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n function doCallback(errCode) {\n assert(FS.syncFSRequests > 0);\n FS.syncFSRequests--;\n return callback(errCode);\n }\n function done(errCode) {\n if (errCode) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(errCode);\n }\n return;\n }\n if (++completed >= mounts.length) {\n doCallback(null);\n }\n }\n mounts.forEach(function(mount) {\n if (!mount.type.syncfs) {\n return done(null);\n }\n mount.type.syncfs(mount, populate, done);\n });\n },\n mount: function(type, opts, mountpoint) {\n if (typeof type === \"string\") {\n throw type;\n }\n var root = mountpoint === \"/\";\n var pseudo = !mountpoint;\n var node;\n if (root && FS.root) {\n throw new FS.ErrnoError(10);\n } else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, {\n follow_mount: false\n });\n mountpoint = lookup.path;\n node = lookup.node;\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n if (!FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n }\n var mount = {\n type: type,\n opts: opts,\n mountpoint: mountpoint,\n mounts: []\n };\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n if (root) {\n FS.root = mountRoot;\n } else if (node) {\n node.mounted = mount;\n if (node.mount) {\n node.mount.mounts.push(mount);\n }\n }\n return mountRoot;\n },\n unmount: function(mountpoint) {\n var lookup = FS.lookupPath(mountpoint, {\n follow_mount: false\n });\n if (!FS.isMountpoint(lookup.node)) {\n throw new FS.ErrnoError(28);\n }\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n Object.keys(FS.nameTable).forEach(function(hash) {\n var current = FS.nameTable[hash];\n while (current) {\n var next = current.name_next;\n if (mounts.indexOf(current.mount) !== -1) {\n FS.destroyNode(current);\n }\n current = next;\n }\n });\n node.mounted = null;\n var idx = node.mount.mounts.indexOf(mount);\n assert(idx !== -1);\n node.mount.mounts.splice(idx, 1);\n },\n lookup: function(parent, name) {\n return parent.node_ops.lookup(parent, name);\n },\n mknod: function(path, mode, dev) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n if (!name || name === \".\" || name === \"..\") {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.mayCreate(parent, name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.mknod) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.mknod(parent, name, mode, dev);\n },\n create: function(path, mode) {\n mode = mode !== undefined ? mode : 438;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n },\n mkdir: function(path, mode) {\n mode = mode !== undefined ? mode : 511;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n },\n mkdirTree: function(path, mode) {\n var dirs = path.split(\"/\");\n var d = \"\";\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i]) continue;\n d += \"/\" + dirs[i];\n try {\n FS.mkdir(d, mode);\n } catch (e) {\n if (e.errno != 20) throw e;\n }\n }\n },\n mkdev: function(path, mode, dev) {\n if (typeof dev === \"undefined\") {\n dev = mode;\n mode = 438;\n }\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n },\n symlink: function(oldpath, newpath) {\n if (!PATH_FS.resolve(oldpath)) {\n throw new FS.ErrnoError(44);\n }\n var lookup = FS.lookupPath(newpath, {\n parent: true\n });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n var newname = PATH.basename(newpath);\n var errCode = FS.mayCreate(parent, newname);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.symlink) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.symlink(parent, newname, oldpath);\n },\n rename: function(old_path, new_path) {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n var lookup, old_dir, new_dir;\n lookup = FS.lookupPath(old_path, {\n parent: true\n });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, {\n parent: true\n });\n new_dir = lookup.node;\n if (!old_dir || !new_dir) throw new FS.ErrnoError(44);\n if (old_dir.mount !== new_dir.mount) {\n throw new FS.ErrnoError(75);\n }\n var old_node = FS.lookupNode(old_dir, old_name);\n var relative = PATH_FS.relative(old_path, new_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(28);\n }\n relative = PATH_FS.relative(new_path, old_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(55);\n }\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {}\n if (old_node === new_node) {\n return;\n }\n var isdir = FS.isDir(old_node.mode);\n var errCode = FS.mayDelete(old_dir, old_name, isdir);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!old_dir.node_ops.rename) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n throw new FS.ErrnoError(10);\n }\n if (new_dir !== old_dir) {\n errCode = FS.nodePermissions(old_dir, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n try {\n if (FS.trackingDelegate[\"willMovePath\"]) {\n FS.trackingDelegate[\"willMovePath\"](old_path, new_path);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['willMovePath']('\" + old_path + \"', '\" + new_path + \"') threw an exception: \" + e.message);\n }\n FS.hashRemoveNode(old_node);\n try {\n old_dir.node_ops.rename(old_node, new_dir, new_name);\n } catch (e) {\n throw e;\n } finally {\n FS.hashAddNode(old_node);\n }\n try {\n if (FS.trackingDelegate[\"onMovePath\"]) FS.trackingDelegate[\"onMovePath\"](old_path, new_path);\n } catch (e) {\n err(\"FS.trackingDelegate['onMovePath']('\" + old_path + \"', '\" + new_path + \"') threw an exception: \" + e.message);\n }\n },\n rmdir: function(path) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, true);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.rmdir) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n try {\n if (FS.trackingDelegate[\"willDeletePath\"]) {\n FS.trackingDelegate[\"willDeletePath\"](path);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['willDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n try {\n if (FS.trackingDelegate[\"onDeletePath\"]) FS.trackingDelegate[\"onDeletePath\"](path);\n } catch (e) {\n err(\"FS.trackingDelegate['onDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n },\n readdir: function(path) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n var node = lookup.node;\n if (!node.node_ops.readdir) {\n throw new FS.ErrnoError(54);\n }\n return node.node_ops.readdir(node);\n },\n unlink: function(path) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, false);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.unlink) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n try {\n if (FS.trackingDelegate[\"willDeletePath\"]) {\n FS.trackingDelegate[\"willDeletePath\"](path);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['willDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n try {\n if (FS.trackingDelegate[\"onDeletePath\"]) FS.trackingDelegate[\"onDeletePath\"](path);\n } catch (e) {\n err(\"FS.trackingDelegate['onDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n },\n readlink: function(path) {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n if (!link) {\n throw new FS.ErrnoError(44);\n }\n if (!link.node_ops.readlink) {\n throw new FS.ErrnoError(28);\n }\n return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n },\n stat: function(path, dontFollow) {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n var node = lookup.node;\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (!node.node_ops.getattr) {\n throw new FS.ErrnoError(63);\n }\n return node.node_ops.getattr(node);\n },\n lstat: function(path) {\n return FS.stat(path, true);\n },\n chmod: function(path, mode, dontFollow) {\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, {\n mode: mode & 4095 | node.mode & ~4095,\n timestamp: Date.now()\n });\n },\n lchmod: function(path, mode) {\n FS.chmod(path, mode, true);\n },\n fchmod: function(fd, mode) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n FS.chmod(stream.node, mode);\n },\n chown: function(path, uid, gid, dontFollow) {\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, {\n timestamp: Date.now()\n });\n },\n lchown: function(path, uid, gid) {\n FS.chown(path, uid, gid, true);\n },\n fchown: function(fd, uid, gid) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n FS.chown(stream.node, uid, gid);\n },\n truncate: function(path, len) {\n if (len < 0) {\n throw new FS.ErrnoError(28);\n }\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isDir(node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!FS.isFile(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.nodePermissions(node, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n node.node_ops.setattr(node, {\n size: len,\n timestamp: Date.now()\n });\n },\n ftruncate: function(fd, len) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(28);\n }\n FS.truncate(stream.node, len);\n },\n utime: function(path, atime, mtime) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n var node = lookup.node;\n node.node_ops.setattr(node, {\n timestamp: Math.max(atime, mtime)\n });\n },\n open: function(path, flags, mode, fd_start, fd_end) {\n if (path === \"\") {\n throw new FS.ErrnoError(44);\n }\n flags = typeof flags === \"string\" ? FS.modeStringToFlags(flags) : flags;\n mode = typeof mode === \"undefined\" ? 438 : mode;\n if (flags & 64) {\n mode = mode & 4095 | 32768;\n } else {\n mode = 0;\n }\n var node;\n if (typeof path === \"object\") {\n node = path;\n } else {\n path = PATH.normalize(path);\n try {\n var lookup = FS.lookupPath(path, {\n follow: !(flags & 131072)\n });\n node = lookup.node;\n } catch (e) {}\n }\n var created = false;\n if (flags & 64) {\n if (node) {\n if (flags & 128) {\n throw new FS.ErrnoError(20);\n }\n } else {\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (FS.isChrdev(node.mode)) {\n flags &= ~512;\n }\n if (flags & 65536 && !FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n if (!created) {\n var errCode = FS.mayOpen(node, flags);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n if (flags & 512) {\n FS.truncate(node, 0);\n }\n flags &= ~(128 | 512 | 131072);\n var stream = FS.createStream({\n node: node,\n path: FS.getPath(node),\n flags: flags,\n seekable: true,\n position: 0,\n stream_ops: node.stream_ops,\n ungotten: [],\n error: false\n }, fd_start, fd_end);\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n if (Module[\"logReadFiles\"] && !(flags & 1)) {\n if (!FS.readFiles) FS.readFiles = {};\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n err(\"FS.trackingDelegate error on read file: \" + path);\n }\n }\n try {\n if (FS.trackingDelegate[\"onOpenFile\"]) {\n var trackingFlags = 0;\n if ((flags & 2097155) !== 1) {\n trackingFlags |= FS.tracking.openFlags.READ;\n }\n if ((flags & 2097155) !== 0) {\n trackingFlags |= FS.tracking.openFlags.WRITE;\n }\n FS.trackingDelegate[\"onOpenFile\"](path, trackingFlags);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['onOpenFile']('\" + path + \"', flags) threw an exception: \" + e.message);\n }\n return stream;\n },\n close: function(stream) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (stream.getdents) stream.getdents = null;\n try {\n if (stream.stream_ops.close) {\n stream.stream_ops.close(stream);\n }\n } catch (e) {\n throw e;\n } finally {\n FS.closeStream(stream.fd);\n }\n stream.fd = null;\n },\n isClosed: function(stream) {\n return stream.fd === null;\n },\n llseek: function(stream, offset, whence) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (!stream.seekable || !stream.stream_ops.llseek) {\n throw new FS.ErrnoError(70);\n }\n if (whence != 0 && whence != 1 && whence != 2) {\n throw new FS.ErrnoError(28);\n }\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n },\n read: function(stream, buffer, offset, length, position) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.read) {\n throw new FS.ErrnoError(28);\n }\n var seeking = typeof position !== \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking) stream.position += bytesRead;\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, position, canOwn) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.write) {\n throw new FS.ErrnoError(28);\n }\n if (stream.seekable && stream.flags & 1024) {\n FS.llseek(stream, 0, 2);\n }\n var seeking = typeof position !== \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking) stream.position += bytesWritten;\n try {\n if (stream.path && FS.trackingDelegate[\"onWriteToFile\"]) FS.trackingDelegate[\"onWriteToFile\"](stream.path);\n } catch (e) {\n err(\"FS.trackingDelegate['onWriteToFile']('\" + stream.path + \"') threw an exception: \" + e.message);\n }\n return bytesWritten;\n },\n allocate: function(stream, offset, length) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (offset < 0 || length <= 0) {\n throw new FS.ErrnoError(28);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (!stream.stream_ops.allocate) {\n throw new FS.ErrnoError(138);\n }\n stream.stream_ops.allocate(stream, offset, length);\n },\n mmap: function(stream, address, length, position, prot, flags) {\n if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n throw new FS.ErrnoError(2);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(2);\n }\n if (!stream.stream_ops.mmap) {\n throw new FS.ErrnoError(43);\n }\n return stream.stream_ops.mmap(stream, address, length, position, prot, flags);\n },\n msync: function(stream, buffer, offset, length, mmapFlags) {\n if (!stream || !stream.stream_ops.msync) {\n return 0;\n }\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n },\n munmap: function(stream) {\n return 0;\n },\n ioctl: function(stream, cmd, arg) {\n if (!stream.stream_ops.ioctl) {\n throw new FS.ErrnoError(59);\n }\n return stream.stream_ops.ioctl(stream, cmd, arg);\n },\n readFile: function(path, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 0;\n opts.encoding = opts.encoding || \"binary\";\n if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {\n throw new Error('Invalid encoding type \"' + opts.encoding + '\"');\n }\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n if (opts.encoding === \"utf8\") {\n ret = UTF8ArrayToString(buf, 0);\n } else if (opts.encoding === \"binary\") {\n ret = buf;\n }\n FS.close(stream);\n return ret;\n },\n writeFile: function(path, data, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 577;\n var stream = FS.open(path, opts.flags, opts.mode);\n if (typeof data === \"string\") {\n var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {\n FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);\n } else {\n throw new Error(\"Unsupported data type\");\n }\n FS.close(stream);\n },\n cwd: function() {\n return FS.currentPath;\n },\n chdir: function(path) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n if (lookup.node === null) {\n throw new FS.ErrnoError(44);\n }\n if (!FS.isDir(lookup.node.mode)) {\n throw new FS.ErrnoError(54);\n }\n var errCode = FS.nodePermissions(lookup.node, \"x\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n FS.currentPath = lookup.path;\n },\n createDefaultDirectories: function() {\n FS.mkdir(\"/tmp\");\n FS.mkdir(\"/home\");\n FS.mkdir(\"/home/web_user\");\n },\n createDefaultDevices: function() {\n FS.mkdir(\"/dev\");\n FS.registerDevice(FS.makedev(1, 3), {\n read: function() {\n return 0;\n },\n write: function(stream, buffer, offset, length, pos) {\n return length;\n }\n });\n FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n var random_device = getRandomDevice();\n FS.createDevice(\"/dev\", \"random\", random_device);\n FS.createDevice(\"/dev\", \"urandom\", random_device);\n FS.mkdir(\"/dev/shm\");\n FS.mkdir(\"/dev/shm/tmp\");\n },\n createSpecialDirectories: function() {\n FS.mkdir(\"/proc\");\n var proc_self = FS.mkdir(\"/proc/self\");\n FS.mkdir(\"/proc/self/fd\");\n FS.mount({\n mount: function() {\n var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n node.node_ops = {\n lookup: function(parent, name) {\n var fd = +name;\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n var ret = {\n parent: null,\n mount: {\n mountpoint: \"fake\"\n },\n node_ops: {\n readlink: function() {\n return stream.path;\n }\n }\n };\n ret.parent = ret;\n return ret;\n }\n };\n return node;\n }\n }, {}, \"/proc/self/fd\");\n },\n createStandardStreams: function() {\n if (Module[\"stdin\"]) {\n FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdin\");\n }\n if (Module[\"stdout\"]) {\n FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdout\");\n }\n if (Module[\"stderr\"]) {\n FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);\n } else {\n FS.symlink(\"/dev/tty1\", \"/dev/stderr\");\n }\n var stdin = FS.open(\"/dev/stdin\", 0);\n var stdout = FS.open(\"/dev/stdout\", 1);\n var stderr = FS.open(\"/dev/stderr\", 1);\n assert(stdin.fd === 0, \"invalid handle for stdin (\" + stdin.fd + \")\");\n assert(stdout.fd === 1, \"invalid handle for stdout (\" + stdout.fd + \")\");\n assert(stderr.fd === 2, \"invalid handle for stderr (\" + stderr.fd + \")\");\n },\n ensureErrnoError: function() {\n if (FS.ErrnoError) return;\n FS.ErrnoError = function ErrnoError(errno, node) {\n this.node = node;\n this.setErrno = function(errno) {\n this.errno = errno;\n for (var key in ERRNO_CODES) {\n if (ERRNO_CODES[key] === errno) {\n this.code = key;\n break;\n }\n }\n };\n this.setErrno(errno);\n this.message = ERRNO_MESSAGES[errno];\n if (this.stack) {\n Object.defineProperty(this, \"stack\", {\n value: new Error().stack,\n writable: true\n });\n this.stack = demangleAll(this.stack);\n }\n };\n FS.ErrnoError.prototype = new Error();\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n [ 44 ].forEach(function(code) {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = \"<generic error, no stack>\";\n });\n },\n staticInit: function() {\n FS.ensureErrnoError();\n FS.nameTable = new Array(4096);\n FS.mount(MEMFS, {}, \"/\");\n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n FS.filesystems = {\n \"MEMFS\": MEMFS,\n \"WORKERFS\": WORKERFS\n };\n },\n init: function(input, output, error) {\n assert(!FS.init.initialized, \"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\");\n FS.init.initialized = true;\n FS.ensureErrnoError();\n Module[\"stdin\"] = input || Module[\"stdin\"];\n Module[\"stdout\"] = output || Module[\"stdout\"];\n Module[\"stderr\"] = error || Module[\"stderr\"];\n FS.createStandardStreams();\n },\n quit: function() {\n FS.init.initialized = false;\n var fflush = Module[\"_fflush\"];\n if (fflush) fflush(0);\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n if (!stream) {\n continue;\n }\n FS.close(stream);\n }\n },\n getMode: function(canRead, canWrite) {\n var mode = 0;\n if (canRead) mode |= 292 | 73;\n if (canWrite) mode |= 146;\n return mode;\n },\n findObject: function(path, dontResolveLastLink) {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n if (ret.exists) {\n return ret.object;\n } else {\n return null;\n }\n },\n analyzePath: function(path, dontResolveLastLink) {\n try {\n var lookup = FS.lookupPath(path, {\n follow: !dontResolveLastLink\n });\n path = lookup.path;\n } catch (e) {}\n var ret = {\n isRoot: false,\n exists: false,\n error: 0,\n name: null,\n path: null,\n object: null,\n parentExists: false,\n parentPath: null,\n parentObject: null\n };\n try {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, {\n follow: !dontResolveLastLink\n });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === \"/\";\n } catch (e) {\n ret.error = e.errno;\n }\n return ret;\n },\n createPath: function(parent, path, canRead, canWrite) {\n parent = typeof parent === \"string\" ? parent : FS.getPath(parent);\n var parts = path.split(\"/\").reverse();\n while (parts.length) {\n var part = parts.pop();\n if (!part) continue;\n var current = PATH.join2(parent, part);\n try {\n FS.mkdir(current);\n } catch (e) {}\n parent = current;\n }\n return current;\n },\n createFile: function(parent, name, properties, canRead, canWrite) {\n var path = PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.create(path, mode);\n },\n createDataFile: function(parent, name, data, canRead, canWrite, canOwn) {\n var path = name ? PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name) : parent;\n var mode = FS.getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n if (data) {\n if (typeof data === \"string\") {\n var arr = new Array(data.length);\n for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);\n data = arr;\n }\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, 577);\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n return node;\n },\n createDevice: function(parent, name, input, output) {\n var path = PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(!!input, !!output);\n if (!FS.createDevice.major) FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n FS.registerDevice(dev, {\n open: function(stream) {\n stream.seekable = false;\n },\n close: function(stream) {\n if (output && output.buffer && output.buffer.length) {\n output(10);\n }\n },\n read: function(stream, buffer, offset, length, pos) {\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = input();\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, pos) {\n for (var i = 0; i < length; i++) {\n try {\n output(buffer[offset + i]);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n }\n });\n return FS.mkdev(path, mode, dev);\n },\n forceLoadFile: function(obj) {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;\n if (typeof XMLHttpRequest !== \"undefined\") {\n throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");\n } else if (read_) {\n try {\n obj.contents = intArrayFromString(read_(obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n } else {\n throw new Error(\"Cannot load without read() or XMLHttpRequest.\");\n }\n },\n createLazyFile: function(parent, name, url, canRead, canWrite) {\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = [];\n }\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length - 1 || idx < 0) {\n return undefined;\n }\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = idx / this.chunkSize | 0;\n return this.getter(chunkNum)[chunkOffset];\n };\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n this.getter = getter;\n };\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n var xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n var chunkSize = 1024 * 1024;\n if (!hasByteServing) chunkSize = datalength;\n var doXHR = function(from, to) {\n if (from > to) throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n if (to > datalength - 1) throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n if (datalength !== chunkSize) xhr.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n if (typeof Uint8Array != \"undefined\") xhr.responseType = \"arraybuffer\";\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\n }\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n if (xhr.response !== undefined) {\n return new Uint8Array(xhr.response || []);\n } else {\n return intArrayFromString(xhr.responseText || \"\", true);\n }\n };\n var lazyArray = this;\n lazyArray.setDataGetter(function(chunkNum) {\n var start = chunkNum * chunkSize;\n var end = (chunkNum + 1) * chunkSize - 1;\n end = Math.min(end, datalength - 1);\n if (typeof lazyArray.chunks[chunkNum] === \"undefined\") {\n lazyArray.chunks[chunkNum] = doXHR(start, end);\n }\n if (typeof lazyArray.chunks[chunkNum] === \"undefined\") throw new Error(\"doXHR failed!\");\n return lazyArray.chunks[chunkNum];\n });\n if (usesGzip || !datalength) {\n chunkSize = datalength = 1;\n datalength = this.getter(0).length;\n chunkSize = datalength;\n out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n }\n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n };\n if (typeof XMLHttpRequest !== \"undefined\") {\n if (!ENVIRONMENT_IS_WORKER) throw \"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n var lazyArray = new LazyUint8Array();\n Object.defineProperties(lazyArray, {\n length: {\n get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._length;\n }\n },\n chunkSize: {\n get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._chunkSize;\n }\n }\n });\n var properties = {\n isDevice: false,\n contents: lazyArray\n };\n } else {\n var properties = {\n isDevice: false,\n url: url\n };\n }\n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n if (properties.contents) {\n node.contents = properties.contents;\n } else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n Object.defineProperties(node, {\n usedBytes: {\n get: function() {\n return this.contents.length;\n }\n }\n });\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach(function(key) {\n var fn = node.stream_ops[key];\n stream_ops[key] = function forceLoadLazyFile() {\n FS.forceLoadFile(node);\n return fn.apply(null, arguments);\n };\n });\n stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {\n FS.forceLoadFile(node);\n var contents = stream.node.contents;\n if (position >= contents.length) return 0;\n var size = Math.min(contents.length - position, length);\n assert(size >= 0);\n if (contents.slice) {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n } else {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents.get(position + i);\n }\n }\n return size;\n };\n node.stream_ops = stream_ops;\n return node;\n },\n createPreloadedFile: function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n Browser.init();\n var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency(\"cp \" + fullname);\n function processData(byteArray) {\n function finish(byteArray) {\n if (preFinish) preFinish();\n if (!dontCreateFile) {\n FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);\n }\n if (onload) onload();\n removeRunDependency(dep);\n }\n var handled = false;\n Module[\"preloadPlugins\"].forEach(function(plugin) {\n if (handled) return;\n if (plugin[\"canHandle\"](fullname)) {\n plugin[\"handle\"](byteArray, fullname, finish, function() {\n if (onerror) onerror();\n removeRunDependency(dep);\n });\n handled = true;\n }\n });\n if (!handled) finish(byteArray);\n }\n addRunDependency(dep);\n if (typeof url == \"string\") {\n Browser.asyncLoad(url, function(byteArray) {\n processData(byteArray);\n }, onerror);\n } else {\n processData(url);\n }\n },\n indexedDB: function() {\n return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n },\n DB_NAME: function() {\n return \"EM_FS_\" + window.location.pathname;\n },\n DB_VERSION: 20,\n DB_STORE_NAME: \"FILE_DATA\",\n saveFilesToDB: function(paths, onload, onerror) {\n onload = onload || function() {};\n onerror = onerror || function() {};\n var indexedDB = FS.indexedDB();\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {\n out(\"creating db\");\n var db = openRequest.result;\n db.createObjectStore(FS.DB_STORE_NAME);\n };\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n var transaction = db.transaction([ FS.DB_STORE_NAME ], \"readwrite\");\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {\n if (fail == 0) onload(); else onerror();\n }\n paths.forEach(function(path) {\n var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n putRequest.onsuccess = function putRequest_onsuccess() {\n ok++;\n if (ok + fail == total) finish();\n };\n putRequest.onerror = function putRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n },\n loadFilesFromDB: function(paths, onload, onerror) {\n onload = onload || function() {};\n onerror = onerror || function() {};\n var indexedDB = FS.indexedDB();\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n openRequest.onupgradeneeded = onerror;\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n try {\n var transaction = db.transaction([ FS.DB_STORE_NAME ], \"readonly\");\n } catch (e) {\n onerror(e);\n return;\n }\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {\n if (fail == 0) onload(); else onerror();\n }\n paths.forEach(function(path) {\n var getRequest = files.get(path);\n getRequest.onsuccess = function getRequest_onsuccess() {\n if (FS.analyzePath(path).exists) {\n FS.unlink(path);\n }\n FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n ok++;\n if (ok + fail == total) finish();\n };\n getRequest.onerror = function getRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n },\n absolutePath: function() {\n abort(\"FS.absolutePath has been removed; use PATH_FS.resolve instead\");\n },\n createFolder: function() {\n abort(\"FS.createFolder has been removed; use FS.mkdir instead\");\n },\n createLink: function() {\n abort(\"FS.createLink has been removed; use FS.symlink instead\");\n },\n joinPath: function() {\n abort(\"FS.joinPath has been removed; use PATH.join instead\");\n },\n mmapAlloc: function() {\n abort(\"FS.mmapAlloc has been replaced by the top level function mmapAlloc\");\n },\n standardizePath: function() {\n abort(\"FS.standardizePath has been removed; use PATH.normalize instead\");\n }\n};\n\nvar SYSCALLS = {\n mappings: {},\n DEFAULT_POLLMASK: 5,\n umask: 511,\n calculateAt: function(dirfd, path) {\n if (path[0] !== \"/\") {\n var dir;\n if (dirfd === -100) {\n dir = FS.cwd();\n } else {\n var dirstream = FS.getStream(dirfd);\n if (!dirstream) throw new FS.ErrnoError(8);\n dir = dirstream.path;\n }\n path = PATH.join2(dir, path);\n }\n return path;\n },\n doStat: function(func, path, buf) {\n try {\n var stat = func(path);\n } catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n return -54;\n }\n throw e;\n }\n HEAP32[buf >> 2] = stat.dev;\n HEAP32[buf + 4 >> 2] = 0;\n HEAP32[buf + 8 >> 2] = stat.ino;\n HEAP32[buf + 12 >> 2] = stat.mode;\n HEAP32[buf + 16 >> 2] = stat.nlink;\n HEAP32[buf + 20 >> 2] = stat.uid;\n HEAP32[buf + 24 >> 2] = stat.gid;\n HEAP32[buf + 28 >> 2] = stat.rdev;\n HEAP32[buf + 32 >> 2] = 0;\n tempI64 = [ stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], \n HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];\n HEAP32[buf + 48 >> 2] = 4096;\n HEAP32[buf + 52 >> 2] = stat.blocks;\n HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0;\n HEAP32[buf + 60 >> 2] = 0;\n HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0;\n HEAP32[buf + 68 >> 2] = 0;\n HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0;\n HEAP32[buf + 76 >> 2] = 0;\n tempI64 = [ stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], \n HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1];\n return 0;\n },\n doMsync: function(addr, stream, len, flags, offset) {\n var buffer = HEAPU8.slice(addr, addr + len);\n FS.msync(stream, buffer, offset, len, flags);\n },\n doMkdir: function(path, mode) {\n path = PATH.normalize(path);\n if (path[path.length - 1] === \"/\") path = path.substr(0, path.length - 1);\n FS.mkdir(path, mode, 0);\n return 0;\n },\n doMknod: function(path, mode, dev) {\n switch (mode & 61440) {\n case 32768:\n case 8192:\n case 24576:\n case 4096:\n case 49152:\n break;\n\n default:\n return -28;\n }\n FS.mknod(path, mode, dev);\n return 0;\n },\n doReadlink: function(path, buf, bufsize) {\n if (bufsize <= 0) return -28;\n var ret = FS.readlink(path);\n var len = Math.min(bufsize, lengthBytesUTF8(ret));\n var endChar = HEAP8[buf + len];\n stringToUTF8(ret, buf, bufsize + 1);\n HEAP8[buf + len] = endChar;\n return len;\n },\n doAccess: function(path, amode) {\n if (amode & ~7) {\n return -28;\n }\n var node;\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n node = lookup.node;\n if (!node) {\n return -44;\n }\n var perms = \"\";\n if (amode & 4) perms += \"r\";\n if (amode & 2) perms += \"w\";\n if (amode & 1) perms += \"x\";\n if (perms && FS.nodePermissions(node, perms)) {\n return -2;\n }\n return 0;\n },\n doDup: function(path, flags, suggestFD) {\n var suggest = FS.getStream(suggestFD);\n if (suggest) FS.close(suggest);\n return FS.open(path, flags, 0, suggestFD, suggestFD).fd;\n },\n doReadv: function(stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.read(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n if (curr < len) break;\n }\n return ret;\n },\n doWritev: function(stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.write(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n }\n return ret;\n },\n varargs: undefined,\n get: function() {\n assert(SYSCALLS.varargs != undefined);\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];\n return ret;\n },\n getStr: function(ptr) {\n var ret = UTF8ToString(ptr);\n return ret;\n },\n getStreamFromFD: function(fd) {\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n return stream;\n },\n get64: function(low, high) {\n if (low >= 0) assert(high === 0); else assert(high === -1);\n return low;\n }\n};\n\nfunction ___sys_access(path, amode) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doAccess(path, amode);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_chmod(path, mode) {\n try {\n path = SYSCALLS.getStr(path);\n FS.chmod(path, mode);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_chown32(path, owner, group) {\n try {\n path = SYSCALLS.getStr(path);\n FS.chown(path, owner, group);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fchmod(fd, mode) {\n try {\n FS.fchmod(fd, mode);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fchown32(fd, owner, group) {\n try {\n FS.fchown(fd, owner, group);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction setErrNo(value) {\n HEAP32[___errno_location() >> 2] = value;\n return value;\n}\n\nfunction ___sys_fcntl64(fd, cmd, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n switch (cmd) {\n case 0:\n {\n var arg = SYSCALLS.get();\n if (arg < 0) {\n return -28;\n }\n var newStream;\n newStream = FS.open(stream.path, stream.flags, 0, arg);\n return newStream.fd;\n }\n\n case 1:\n case 2:\n return 0;\n\n case 3:\n return stream.flags;\n\n case 4:\n {\n var arg = SYSCALLS.get();\n stream.flags |= arg;\n return 0;\n }\n\n case 12:\n {\n var arg = SYSCALLS.get();\n var offset = 0;\n HEAP16[arg + offset >> 1] = 2;\n return 0;\n }\n\n case 13:\n case 14:\n return 0;\n\n case 16:\n case 8:\n return -28;\n\n case 9:\n setErrNo(28);\n return -1;\n\n default:\n {\n return -28;\n }\n }\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fstat64(fd, buf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n return SYSCALLS.doStat(FS.stat, stream.path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_ftruncate64(fd, zero, low, high) {\n try {\n var length = SYSCALLS.get64(low, high);\n FS.ftruncate(fd, length);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_getcwd(buf, size) {\n try {\n if (size === 0) return -28;\n var cwd = FS.cwd();\n var cwdLengthInBytes = lengthBytesUTF8(cwd);\n if (size < cwdLengthInBytes + 1) return -68;\n stringToUTF8(cwd, buf, size);\n return buf;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_getegid32() {\n return 0;\n}\n\nfunction ___sys_geteuid32() {\n return ___sys_getegid32();\n}\n\nfunction ___sys_getpid() {\n return 42;\n}\n\nfunction ___sys_ioctl(fd, op, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n switch (op) {\n case 21509:\n case 21505:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n case 21510:\n case 21511:\n case 21512:\n case 21506:\n case 21507:\n case 21508:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n case 21519:\n {\n if (!stream.tty) return -59;\n var argp = SYSCALLS.get();\n HEAP32[argp >> 2] = 0;\n return 0;\n }\n\n case 21520:\n {\n if (!stream.tty) return -59;\n return -28;\n }\n\n case 21531:\n {\n var argp = SYSCALLS.get();\n return FS.ioctl(stream, op, argp);\n }\n\n case 21523:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n case 21524:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n default:\n abort(\"bad ioctl syscall \" + op);\n }\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_lstat64(path, buf) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doStat(FS.lstat, path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_mkdir(path, mode) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doMkdir(path, mode);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction syscallMmap2(addr, len, prot, flags, fd, off) {\n off <<= 12;\n var ptr;\n var allocated = false;\n if ((flags & 16) !== 0 && addr % 16384 !== 0) {\n return -28;\n }\n if ((flags & 32) !== 0) {\n ptr = _memalign(16384, len);\n if (!ptr) return -48;\n _memset(ptr, 0, len);\n allocated = true;\n } else {\n var info = FS.getStream(fd);\n if (!info) return -8;\n var res = FS.mmap(info, addr, len, off, prot, flags);\n ptr = res.ptr;\n allocated = res.allocated;\n }\n SYSCALLS.mappings[ptr] = {\n malloc: ptr,\n len: len,\n allocated: allocated,\n fd: fd,\n prot: prot,\n flags: flags,\n offset: off\n };\n return ptr;\n}\n\nfunction ___sys_mmap2(addr, len, prot, flags, fd, off) {\n try {\n return syscallMmap2(addr, len, prot, flags, fd, off);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_mprotect(addr, len, size) {\n return 0;\n}\n\nfunction syscallMunmap(addr, len) {\n if ((addr | 0) === -1 || len === 0) {\n return -28;\n }\n var info = SYSCALLS.mappings[addr];\n if (!info) return 0;\n if (len === info.len) {\n var stream = FS.getStream(info.fd);\n if (stream) {\n if (info.prot & 2) {\n SYSCALLS.doMsync(addr, stream, len, info.flags, info.offset);\n }\n FS.munmap(stream);\n }\n SYSCALLS.mappings[addr] = null;\n if (info.allocated) {\n _free(info.malloc);\n }\n }\n return 0;\n}\n\nfunction ___sys_munmap(addr, len) {\n try {\n return syscallMunmap(addr, len);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_open(path, flags, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var pathname = SYSCALLS.getStr(path);\n var mode = varargs ? SYSCALLS.get() : 0;\n var stream = FS.open(pathname, flags, mode);\n return stream.fd;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_readlink(path, buf, bufsize) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doReadlink(path, buf, bufsize);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_rmdir(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.rmdir(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_stat64(path, buf) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doStat(FS.stat, path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_unlink(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.unlink(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction _abort() {\n abort();\n}\n\nvar _emscripten_get_now;\n\nif (ENVIRONMENT_IS_NODE) {\n _emscripten_get_now = function() {\n var t = process[\"hrtime\"]();\n return t[0] * 1e3 + t[1] / 1e6;\n };\n} else if (typeof dateNow !== \"undefined\") {\n _emscripten_get_now = dateNow;\n} else _emscripten_get_now = function() {\n return performance.now();\n};\n\nfunction _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.copyWithin(dest, src, src + num);\n}\n\nfunction _emscripten_get_heap_size() {\n return HEAPU8.length;\n}\n\nfunction emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch (e) {\n console.error(\"emscripten_realloc_buffer: Attempted to grow heap from \" + buffer.byteLength + \" bytes to \" + size + \" bytes, but got error: \" + e);\n }\n}\n\nfunction _emscripten_resize_heap(requestedSize) {\n requestedSize = requestedSize >>> 0;\n var oldSize = _emscripten_get_heap_size();\n assert(requestedSize > oldSize);\n var maxHeapSize = 2147483648;\n if (requestedSize > maxHeapSize) {\n err(\"Cannot enlarge memory, asked to go up to \" + requestedSize + \" bytes, but the limit is \" + maxHeapSize + \" bytes!\");\n return false;\n }\n var minHeapSize = 16777216;\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + .2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n var newSize = Math.min(maxHeapSize, alignUp(Math.max(minHeapSize, requestedSize, overGrownHeapSize), 65536));\n var replacement = emscripten_realloc_buffer(newSize);\n if (replacement) {\n return true;\n }\n }\n err(\"Failed to grow the heap from \" + oldSize + \" bytes to \" + newSize + \" bytes, not enough memory!\");\n return false;\n}\n\nfunction _emscripten_thread_sleep(msecs) {\n var start = _emscripten_get_now();\n while (_emscripten_get_now() - start < msecs) {}\n}\n\nvar ENV = {};\n\nfunction getExecutableName() {\n return thisProgram || \"./this.program\";\n}\n\nfunction getEnvStrings() {\n if (!getEnvStrings.strings) {\n var lang = (typeof navigator === \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n var env = {\n \"USER\": \"web_user\",\n \"LOGNAME\": \"web_user\",\n \"PATH\": \"/\",\n \"PWD\": \"/\",\n \"HOME\": \"/home/web_user\",\n \"LANG\": lang,\n \"_\": getExecutableName()\n };\n for (var x in ENV) {\n env[x] = ENV[x];\n }\n var strings = [];\n for (var x in env) {\n strings.push(x + \"=\" + env[x]);\n }\n getEnvStrings.strings = strings;\n }\n return getEnvStrings.strings;\n}\n\nfunction _environ_get(__environ, environ_buf) {\n try {\n var bufSize = 0;\n getEnvStrings().forEach(function(string, i) {\n var ptr = environ_buf + bufSize;\n HEAP32[__environ + i * 4 >> 2] = ptr;\n writeAsciiToMemory(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _environ_sizes_get(penviron_count, penviron_buf_size) {\n try {\n var strings = getEnvStrings();\n HEAP32[penviron_count >> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function(string) {\n bufSize += string.length + 1;\n });\n HEAP32[penviron_buf_size >> 2] = bufSize;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_close(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_fdstat_get(fd, pbuf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;\n HEAP8[pbuf >> 0] = type;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_read(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doReadv(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var HIGH_OFFSET = 4294967296;\n var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);\n var DOUBLE_LIMIT = 9007199254740992;\n if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {\n return -61;\n }\n FS.llseek(stream, offset, whence);\n tempI64 = [ stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], \n HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1];\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_sync(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n if (stream.stream_ops && stream.stream_ops.fsync) {\n return -stream.stream_ops.fsync(stream);\n }\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_write(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doWritev(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _gettimeofday(ptr) {\n var now = Date.now();\n HEAP32[ptr >> 2] = now / 1e3 | 0;\n HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;\n return 0;\n}\n\nfunction _setTempRet0($i) {\n setTempRet0($i | 0);\n}\n\nfunction __isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction __arraySum(array, index) {\n var sum = 0;\n for (var i = 0; i <= index; sum += array[i++]) {}\n return sum;\n}\n\nvar __MONTH_DAYS_LEAP = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];\n\nvar __MONTH_DAYS_REGULAR = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];\n\nfunction __addDays(date, days) {\n var newDate = new Date(date.getTime());\n while (days > 0) {\n var leap = __isLeapYear(newDate.getFullYear());\n var currentMonth = newDate.getMonth();\n var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];\n if (days > daysInCurrentMonth - newDate.getDate()) {\n days -= daysInCurrentMonth - newDate.getDate() + 1;\n newDate.setDate(1);\n if (currentMonth < 11) {\n newDate.setMonth(currentMonth + 1);\n } else {\n newDate.setMonth(0);\n newDate.setFullYear(newDate.getFullYear() + 1);\n }\n } else {\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n }\n }\n return newDate;\n}\n\nfunction _strftime(s, maxsize, format, tm) {\n var tm_zone = HEAP32[tm + 40 >> 2];\n var date = {\n tm_sec: HEAP32[tm >> 2],\n tm_min: HEAP32[tm + 4 >> 2],\n tm_hour: HEAP32[tm + 8 >> 2],\n tm_mday: HEAP32[tm + 12 >> 2],\n tm_mon: HEAP32[tm + 16 >> 2],\n tm_year: HEAP32[tm + 20 >> 2],\n tm_wday: HEAP32[tm + 24 >> 2],\n tm_yday: HEAP32[tm + 28 >> 2],\n tm_isdst: HEAP32[tm + 32 >> 2],\n tm_gmtoff: HEAP32[tm + 36 >> 2],\n tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\"\n };\n var pattern = UTF8ToString(format);\n var EXPANSION_RULES_1 = {\n \"%c\": \"%a %b %d %H:%M:%S %Y\",\n \"%D\": \"%m/%d/%y\",\n \"%F\": \"%Y-%m-%d\",\n \"%h\": \"%b\",\n \"%r\": \"%I:%M:%S %p\",\n \"%R\": \"%H:%M\",\n \"%T\": \"%H:%M:%S\",\n \"%x\": \"%m/%d/%y\",\n \"%X\": \"%H:%M:%S\",\n \"%Ec\": \"%c\",\n \"%EC\": \"%C\",\n \"%Ex\": \"%m/%d/%y\",\n \"%EX\": \"%H:%M:%S\",\n \"%Ey\": \"%y\",\n \"%EY\": \"%Y\",\n \"%Od\": \"%d\",\n \"%Oe\": \"%e\",\n \"%OH\": \"%H\",\n \"%OI\": \"%I\",\n \"%Om\": \"%m\",\n \"%OM\": \"%M\",\n \"%OS\": \"%S\",\n \"%Ou\": \"%u\",\n \"%OU\": \"%U\",\n \"%OV\": \"%V\",\n \"%Ow\": \"%w\",\n \"%OW\": \"%W\",\n \"%Oy\": \"%y\"\n };\n for (var rule in EXPANSION_RULES_1) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n }\n var WEEKDAYS = [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ];\n var MONTHS = [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ];\n function leadingSomething(value, digits, character) {\n var str = typeof value === \"number\" ? value.toString() : value || \"\";\n while (str.length < digits) {\n str = character[0] + str;\n }\n return str;\n }\n function leadingNulls(value, digits) {\n return leadingSomething(value, digits, \"0\");\n }\n function compareByDay(date1, date2) {\n function sgn(value) {\n return value < 0 ? -1 : value > 0 ? 1 : 0;\n }\n var compare;\n if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n compare = sgn(date1.getDate() - date2.getDate());\n }\n }\n return compare;\n }\n function getFirstWeekStartDate(janFourth) {\n switch (janFourth.getDay()) {\n case 0:\n return new Date(janFourth.getFullYear() - 1, 11, 29);\n\n case 1:\n return janFourth;\n\n case 2:\n return new Date(janFourth.getFullYear(), 0, 3);\n\n case 3:\n return new Date(janFourth.getFullYear(), 0, 2);\n\n case 4:\n return new Date(janFourth.getFullYear(), 0, 1);\n\n case 5:\n return new Date(janFourth.getFullYear() - 1, 11, 31);\n\n case 6:\n return new Date(janFourth.getFullYear() - 1, 11, 30);\n }\n }\n function getWeekBasedYear(date) {\n var thisDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);\n var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n return thisDate.getFullYear() + 1;\n } else {\n return thisDate.getFullYear();\n }\n } else {\n return thisDate.getFullYear() - 1;\n }\n }\n var EXPANSION_RULES_2 = {\n \"%a\": function(date) {\n return WEEKDAYS[date.tm_wday].substring(0, 3);\n },\n \"%A\": function(date) {\n return WEEKDAYS[date.tm_wday];\n },\n \"%b\": function(date) {\n return MONTHS[date.tm_mon].substring(0, 3);\n },\n \"%B\": function(date) {\n return MONTHS[date.tm_mon];\n },\n \"%C\": function(date) {\n var year = date.tm_year + 1900;\n return leadingNulls(year / 100 | 0, 2);\n },\n \"%d\": function(date) {\n return leadingNulls(date.tm_mday, 2);\n },\n \"%e\": function(date) {\n return leadingSomething(date.tm_mday, 2, \" \");\n },\n \"%g\": function(date) {\n return getWeekBasedYear(date).toString().substring(2);\n },\n \"%G\": function(date) {\n return getWeekBasedYear(date);\n },\n \"%H\": function(date) {\n return leadingNulls(date.tm_hour, 2);\n },\n \"%I\": function(date) {\n var twelveHour = date.tm_hour;\n if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12;\n return leadingNulls(twelveHour, 2);\n },\n \"%j\": function(date) {\n return leadingNulls(date.tm_mday + __arraySum(__isLeapYear(date.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon - 1), 3);\n },\n \"%m\": function(date) {\n return leadingNulls(date.tm_mon + 1, 2);\n },\n \"%M\": function(date) {\n return leadingNulls(date.tm_min, 2);\n },\n \"%n\": function() {\n return \"\\n\";\n },\n \"%p\": function(date) {\n if (date.tm_hour >= 0 && date.tm_hour < 12) {\n return \"AM\";\n } else {\n return \"PM\";\n }\n },\n \"%S\": function(date) {\n return leadingNulls(date.tm_sec, 2);\n },\n \"%t\": function() {\n return \"\\t\";\n },\n \"%u\": function(date) {\n return date.tm_wday || 7;\n },\n \"%U\": function(date) {\n var janFirst = new Date(date.tm_year + 1900, 0, 1);\n var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay());\n var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);\n if (compareByDay(firstSunday, endDate) < 0) {\n var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;\n var firstSundayUntilEndJanuary = 31 - firstSunday.getDate();\n var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();\n return leadingNulls(Math.ceil(days / 7), 2);\n }\n return compareByDay(firstSunday, janFirst) === 0 ? \"01\" : \"00\";\n },\n \"%V\": function(date) {\n var janFourthThisYear = new Date(date.tm_year + 1900, 0, 4);\n var janFourthNextYear = new Date(date.tm_year + 1901, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n var endDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);\n if (compareByDay(endDate, firstWeekStartThisYear) < 0) {\n return \"53\";\n }\n if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {\n return \"01\";\n }\n var daysDifference;\n if (firstWeekStartThisYear.getFullYear() < date.tm_year + 1900) {\n daysDifference = date.tm_yday + 32 - firstWeekStartThisYear.getDate();\n } else {\n daysDifference = date.tm_yday + 1 - firstWeekStartThisYear.getDate();\n }\n return leadingNulls(Math.ceil(daysDifference / 7), 2);\n },\n \"%w\": function(date) {\n return date.tm_wday;\n },\n \"%W\": function(date) {\n var janFirst = new Date(date.tm_year, 0, 1);\n var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1);\n var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);\n if (compareByDay(firstMonday, endDate) < 0) {\n var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;\n var firstMondayUntilEndJanuary = 31 - firstMonday.getDate();\n var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();\n return leadingNulls(Math.ceil(days / 7), 2);\n }\n return compareByDay(firstMonday, janFirst) === 0 ? \"01\" : \"00\";\n },\n \"%y\": function(date) {\n return (date.tm_year + 1900).toString().substring(2);\n },\n \"%Y\": function(date) {\n return date.tm_year + 1900;\n },\n \"%z\": function(date) {\n var off = date.tm_gmtoff;\n var ahead = off >= 0;\n off = Math.abs(off) / 60;\n off = off / 60 * 100 + off % 60;\n return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n },\n \"%Z\": function(date) {\n return date.tm_zone;\n },\n \"%%\": function() {\n return \"%\";\n }\n };\n for (var rule in EXPANSION_RULES_2) {\n if (pattern.indexOf(rule) >= 0) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));\n }\n }\n var bytes = intArrayFromString(pattern, false);\n if (bytes.length > maxsize) {\n return 0;\n }\n writeArrayToMemory(bytes, s);\n return bytes.length - 1;\n}\n\nfunction _strftime_l(s, maxsize, format, tm) {\n return _strftime(s, maxsize, format, tm);\n}\n\nfunction _sysconf(name) {\n switch (name) {\n case 30:\n return 16384;\n\n case 85:\n var maxHeapSize = 2147483648;\n return maxHeapSize / 16384;\n\n case 132:\n case 133:\n case 12:\n case 137:\n case 138:\n case 15:\n case 235:\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n case 149:\n case 13:\n case 10:\n case 236:\n case 153:\n case 9:\n case 21:\n case 22:\n case 159:\n case 154:\n case 14:\n case 77:\n case 78:\n case 139:\n case 82:\n case 68:\n case 67:\n case 164:\n case 11:\n case 29:\n case 47:\n case 48:\n case 95:\n case 52:\n case 51:\n case 46:\n return 200809;\n\n case 27:\n case 246:\n case 127:\n case 128:\n case 23:\n case 24:\n case 160:\n case 161:\n case 181:\n case 182:\n case 242:\n case 183:\n case 184:\n case 243:\n case 244:\n case 245:\n case 165:\n case 178:\n case 179:\n case 49:\n case 50:\n case 168:\n case 169:\n case 175:\n case 170:\n case 171:\n case 172:\n case 97:\n case 76:\n case 32:\n case 173:\n case 35:\n case 80:\n case 81:\n case 79:\n return -1;\n\n case 176:\n case 177:\n case 7:\n case 155:\n case 8:\n case 157:\n case 125:\n case 126:\n case 92:\n case 93:\n case 129:\n case 130:\n case 131:\n case 94:\n case 91:\n return 1;\n\n case 74:\n case 60:\n case 69:\n case 70:\n case 4:\n return 1024;\n\n case 31:\n case 42:\n case 72:\n return 32;\n\n case 87:\n case 26:\n case 33:\n return 2147483647;\n\n case 34:\n case 1:\n return 47839;\n\n case 38:\n case 36:\n return 99;\n\n case 43:\n case 37:\n return 2048;\n\n case 0:\n return 2097152;\n\n case 3:\n return 65536;\n\n case 28:\n return 32768;\n\n case 44:\n return 32767;\n\n case 75:\n return 16384;\n\n case 39:\n return 1e3;\n\n case 89:\n return 700;\n\n case 71:\n return 256;\n\n case 40:\n return 255;\n\n case 2:\n return 100;\n\n case 180:\n return 64;\n\n case 25:\n return 20;\n\n case 5:\n return 16;\n\n case 6:\n return 6;\n\n case 73:\n return 4;\n\n case 84:\n {\n if (typeof navigator === \"object\") return navigator[\"hardwareConcurrency\"] || 1;\n return 1;\n }\n }\n setErrNo(28);\n return -1;\n}\n\nfunction setFileTime(path, time) {\n path = UTF8ToString(path);\n try {\n FS.utime(path, time, time);\n return 0;\n } catch (e) {\n if (!(e instanceof FS.ErrnoError)) throw e + \" : \" + stackTrace();\n setErrNo(e.errno);\n return -1;\n }\n}\n\nfunction _utime(path, times) {\n var time;\n if (times) {\n time = HEAP32[times + 4 >> 2] * 1e3;\n } else {\n time = Date.now();\n }\n return setFileTime(path, time);\n}\n\nvar FSNode = function(parent, name, mode, rdev) {\n if (!parent) {\n parent = this;\n }\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n};\n\nvar readMode = 292 | 73;\n\nvar writeMode = 146;\n\nObject.defineProperties(FSNode.prototype, {\n read: {\n get: function() {\n return (this.mode & readMode) === readMode;\n },\n set: function(val) {\n val ? this.mode |= readMode : this.mode &= ~readMode;\n }\n },\n write: {\n get: function() {\n return (this.mode & writeMode) === writeMode;\n },\n set: function(val) {\n val ? this.mode |= writeMode : this.mode &= ~writeMode;\n }\n },\n isFolder: {\n get: function() {\n return FS.isDir(this.mode);\n }\n },\n isDevice: {\n get: function() {\n return FS.isChrdev(this.mode);\n }\n }\n});\n\nFS.FSNode = FSNode;\n\nFS.staticInit();\n\nvar ASSERTIONS = true;\n\nfunction intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull) u8array.length = numBytesWritten;\n return u8array;\n}\n\nvar asmLibraryArg = {\n \"__cxa_atexit\": ___cxa_atexit,\n \"__localtime_r\": ___localtime_r,\n \"__sys_access\": ___sys_access,\n \"__sys_chmod\": ___sys_chmod,\n \"__sys_chown32\": ___sys_chown32,\n \"__sys_fchmod\": ___sys_fchmod,\n \"__sys_fchown32\": ___sys_fchown32,\n \"__sys_fcntl64\": ___sys_fcntl64,\n \"__sys_fstat64\": ___sys_fstat64,\n \"__sys_ftruncate64\": ___sys_ftruncate64,\n \"__sys_getcwd\": ___sys_getcwd,\n \"__sys_geteuid32\": ___sys_geteuid32,\n \"__sys_getpid\": ___sys_getpid,\n \"__sys_ioctl\": ___sys_ioctl,\n \"__sys_lstat64\": ___sys_lstat64,\n \"__sys_mkdir\": ___sys_mkdir,\n \"__sys_mmap2\": ___sys_mmap2,\n \"__sys_mprotect\": ___sys_mprotect,\n \"__sys_munmap\": ___sys_munmap,\n \"__sys_open\": ___sys_open,\n \"__sys_readlink\": ___sys_readlink,\n \"__sys_rmdir\": ___sys_rmdir,\n \"__sys_stat64\": ___sys_stat64,\n \"__sys_unlink\": ___sys_unlink,\n \"abort\": _abort,\n \"emscripten_get_now\": _emscripten_get_now,\n \"emscripten_memcpy_big\": _emscripten_memcpy_big,\n \"emscripten_resize_heap\": _emscripten_resize_heap,\n \"emscripten_thread_sleep\": _emscripten_thread_sleep,\n \"environ_get\": _environ_get,\n \"environ_sizes_get\": _environ_sizes_get,\n \"fd_close\": _fd_close,\n \"fd_fdstat_get\": _fd_fdstat_get,\n \"fd_read\": _fd_read,\n \"fd_seek\": _fd_seek,\n \"fd_sync\": _fd_sync,\n \"fd_write\": _fd_write,\n \"gettimeofday\": _gettimeofday,\n \"setTempRet0\": _setTempRet0,\n \"strftime_l\": _strftime_l,\n \"sysconf\": _sysconf,\n \"utime\": _utime\n};\n\nvar asm = createWasm();\n\nvar ___wasm_call_ctors = Module[\"___wasm_call_ctors\"] = createExportWrapper(\"__wasm_call_ctors\", asm);\n\nvar ___errno_location = Module[\"___errno_location\"] = createExportWrapper(\"__errno_location\", asm);\n\nvar _memset = Module[\"_memset\"] = createExportWrapper(\"memset\", asm);\n\nvar _free = Module[\"_free\"] = createExportWrapper(\"free\", asm);\n\nvar _usleep = Module[\"_usleep\"] = createExportWrapper(\"usleep\", asm);\n\nvar _trace_processor_rpc_init = Module[\"_trace_processor_rpc_init\"] = createExportWrapper(\"trace_processor_rpc_init\", asm);\n\nvar _trace_processor_on_rpc_request = Module[\"_trace_processor_on_rpc_request\"] = createExportWrapper(\"trace_processor_on_rpc_request\", asm);\n\nvar _main = Module[\"_main\"] = createExportWrapper(\"main\", asm);\n\nvar _malloc = Module[\"_malloc\"] = createExportWrapper(\"malloc\", asm);\n\nvar _fflush = Module[\"_fflush\"] = createExportWrapper(\"fflush\", asm);\n\nvar __get_tzname = Module[\"__get_tzname\"] = createExportWrapper(\"_get_tzname\", asm);\n\nvar __get_daylight = Module[\"__get_daylight\"] = createExportWrapper(\"_get_daylight\", asm);\n\nvar __get_timezone = Module[\"__get_timezone\"] = createExportWrapper(\"_get_timezone\", asm);\n\nvar _emscripten_main_thread_process_queued_calls = Module[\"_emscripten_main_thread_process_queued_calls\"] = createExportWrapper(\"emscripten_main_thread_process_queued_calls\", asm);\n\nvar _emscripten_stack_get_end = Module[\"_emscripten_stack_get_end\"] = asm[\"emscripten_stack_get_end\"];\n\nvar stackSave = Module[\"stackSave\"] = createExportWrapper(\"stackSave\", asm);\n\nvar stackRestore = Module[\"stackRestore\"] = createExportWrapper(\"stackRestore\", asm);\n\nvar stackAlloc = Module[\"stackAlloc\"] = createExportWrapper(\"stackAlloc\", asm);\n\nvar _emscripten_stack_init = Module[\"_emscripten_stack_init\"] = asm[\"emscripten_stack_init\"];\n\nvar _emscripten_stack_get_free = Module[\"_emscripten_stack_get_free\"] = asm[\"emscripten_stack_get_free\"];\n\nvar _memalign = Module[\"_memalign\"] = createExportWrapper(\"memalign\", asm);\n\nvar dynCall_viiij = Module[\"dynCall_viiij\"] = createExportWrapper(\"dynCall_viiij\", asm);\n\nvar dynCall_iiiij = Module[\"dynCall_iiiij\"] = createExportWrapper(\"dynCall_iiiij\", asm);\n\nvar dynCall_iij = Module[\"dynCall_iij\"] = createExportWrapper(\"dynCall_iij\", asm);\n\nvar dynCall_iijii = Module[\"dynCall_iijii\"] = createExportWrapper(\"dynCall_iijii\", asm);\n\nvar dynCall_iiji = Module[\"dynCall_iiji\"] = createExportWrapper(\"dynCall_iiji\", asm);\n\nvar dynCall_iiiiiij = Module[\"dynCall_iiiiiij\"] = createExportWrapper(\"dynCall_iiiiiij\", asm);\n\nvar dynCall_viijii = Module[\"dynCall_viijii\"] = createExportWrapper(\"dynCall_viijii\", asm);\n\nvar dynCall_viiiijii = Module[\"dynCall_viiiijii\"] = createExportWrapper(\"dynCall_viiiijii\", asm);\n\nvar dynCall_viiji = Module[\"dynCall_viiji\"] = createExportWrapper(\"dynCall_viiji\", asm);\n\nvar dynCall_viij = Module[\"dynCall_viij\"] = createExportWrapper(\"dynCall_viij\", asm);\n\nvar dynCall_viji = Module[\"dynCall_viji\"] = createExportWrapper(\"dynCall_viji\", asm);\n\nvar dynCall_iiij = Module[\"dynCall_iiij\"] = createExportWrapper(\"dynCall_iiij\", asm);\n\nvar dynCall_viijdi = Module[\"dynCall_viijdi\"] = createExportWrapper(\"dynCall_viijdi\", asm);\n\nvar dynCall_viijdii = Module[\"dynCall_viijdii\"] = createExportWrapper(\"dynCall_viijdii\", asm);\n\nvar dynCall_iijijii = Module[\"dynCall_iijijii\"] = createExportWrapper(\"dynCall_iijijii\", asm);\n\nvar dynCall_viijiiii = Module[\"dynCall_viijiiii\"] = createExportWrapper(\"dynCall_viijiiii\", asm);\n\nvar dynCall_viijiiiji = Module[\"dynCall_viijiiiji\"] = createExportWrapper(\"dynCall_viijiiiji\", asm);\n\nvar dynCall_viijiii = Module[\"dynCall_viijiii\"] = createExportWrapper(\"dynCall_viijiii\", asm);\n\nvar dynCall_viijiiijiii = Module[\"dynCall_viijiiijiii\"] = createExportWrapper(\"dynCall_viijiiijiii\", asm);\n\nvar dynCall_jiji = Module[\"dynCall_jiji\"] = createExportWrapper(\"dynCall_jiji\", asm);\n\nvar dynCall_iiiiij = Module[\"dynCall_iiiiij\"] = createExportWrapper(\"dynCall_iiiiij\", asm);\n\nvar dynCall_iiiiijj = Module[\"dynCall_iiiiijj\"] = createExportWrapper(\"dynCall_iiiiijj\", asm);\n\nvar dynCall_iiiiiijj = Module[\"dynCall_iiiiiijj\"] = createExportWrapper(\"dynCall_iiiiiijj\", asm);\n\nif (!Object.getOwnPropertyDescriptor(Module, \"intArrayFromString\")) Module[\"intArrayFromString\"] = function() {\n abort(\"'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"intArrayToString\")) Module[\"intArrayToString\"] = function() {\n abort(\"'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"ccall\"] = ccall;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"cwrap\")) Module[\"cwrap\"] = function() {\n abort(\"'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setValue\")) Module[\"setValue\"] = function() {\n abort(\"'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getValue\")) Module[\"getValue\"] = function() {\n abort(\"'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"allocate\")) Module[\"allocate\"] = function() {\n abort(\"'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF8ArrayToString\")) Module[\"UTF8ArrayToString\"] = function() {\n abort(\"'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF8ToString\")) Module[\"UTF8ToString\"] = function() {\n abort(\"'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF8Array\")) Module[\"stringToUTF8Array\"] = function() {\n abort(\"'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF8\")) Module[\"stringToUTF8\"] = function() {\n abort(\"'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"lengthBytesUTF8\")) Module[\"lengthBytesUTF8\"] = function() {\n abort(\"'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackTrace\")) Module[\"stackTrace\"] = function() {\n abort(\"'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnPreRun\")) Module[\"addOnPreRun\"] = function() {\n abort(\"'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnInit\")) Module[\"addOnInit\"] = function() {\n abort(\"'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnPreMain\")) Module[\"addOnPreMain\"] = function() {\n abort(\"'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnExit\")) Module[\"addOnExit\"] = function() {\n abort(\"'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnPostRun\")) Module[\"addOnPostRun\"] = function() {\n abort(\"'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeStringToMemory\")) Module[\"writeStringToMemory\"] = function() {\n abort(\"'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeArrayToMemory\")) Module[\"writeArrayToMemory\"] = function() {\n abort(\"'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeAsciiToMemory\")) Module[\"writeAsciiToMemory\"] = function() {\n abort(\"'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addRunDependency\")) Module[\"addRunDependency\"] = function() {\n abort(\"'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"removeRunDependency\")) Module[\"removeRunDependency\"] = function() {\n abort(\"'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createFolder\")) Module[\"FS_createFolder\"] = function() {\n abort(\"'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createPath\")) Module[\"FS_createPath\"] = function() {\n abort(\"'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createDataFile\")) Module[\"FS_createDataFile\"] = function() {\n abort(\"'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createPreloadedFile\")) Module[\"FS_createPreloadedFile\"] = function() {\n abort(\"'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createLazyFile\")) Module[\"FS_createLazyFile\"] = function() {\n abort(\"'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createLink\")) Module[\"FS_createLink\"] = function() {\n abort(\"'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createDevice\")) Module[\"FS_createDevice\"] = function() {\n abort(\"'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_unlink\")) Module[\"FS_unlink\"] = function() {\n abort(\"'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getLEB\")) Module[\"getLEB\"] = function() {\n abort(\"'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getFunctionTables\")) Module[\"getFunctionTables\"] = function() {\n abort(\"'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"alignFunctionTables\")) Module[\"alignFunctionTables\"] = function() {\n abort(\"'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerFunctions\")) Module[\"registerFunctions\"] = function() {\n abort(\"'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"addFunction\"] = addFunction;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"removeFunction\")) Module[\"removeFunction\"] = function() {\n abort(\"'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getFuncWrapper\")) Module[\"getFuncWrapper\"] = function() {\n abort(\"'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"prettyPrint\")) Module[\"prettyPrint\"] = function() {\n abort(\"'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"makeBigInt\")) Module[\"makeBigInt\"] = function() {\n abort(\"'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"dynCall\")) Module[\"dynCall\"] = function() {\n abort(\"'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getCompilerSetting\")) Module[\"getCompilerSetting\"] = function() {\n abort(\"'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"print\")) Module[\"print\"] = function() {\n abort(\"'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"printErr\")) Module[\"printErr\"] = function() {\n abort(\"'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getTempRet0\")) Module[\"getTempRet0\"] = function() {\n abort(\"'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setTempRet0\")) Module[\"setTempRet0\"] = function() {\n abort(\"'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"callMain\"] = callMain;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"abort\")) Module[\"abort\"] = function() {\n abort(\"'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToNewUTF8\")) Module[\"stringToNewUTF8\"] = function() {\n abort(\"'stringToNewUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setFileTime\")) Module[\"setFileTime\"] = function() {\n abort(\"'setFileTime' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscripten_realloc_buffer\")) Module[\"emscripten_realloc_buffer\"] = function() {\n abort(\"'emscripten_realloc_buffer' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ENV\")) Module[\"ENV\"] = function() {\n abort(\"'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ERRNO_CODES\")) Module[\"ERRNO_CODES\"] = function() {\n abort(\"'ERRNO_CODES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ERRNO_MESSAGES\")) Module[\"ERRNO_MESSAGES\"] = function() {\n abort(\"'ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setErrNo\")) Module[\"setErrNo\"] = function() {\n abort(\"'setErrNo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"DNS\")) Module[\"DNS\"] = function() {\n abort(\"'DNS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getHostByName\")) Module[\"getHostByName\"] = function() {\n abort(\"'getHostByName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GAI_ERRNO_MESSAGES\")) Module[\"GAI_ERRNO_MESSAGES\"] = function() {\n abort(\"'GAI_ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"Protocols\")) Module[\"Protocols\"] = function() {\n abort(\"'Protocols' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"Sockets\")) Module[\"Sockets\"] = function() {\n abort(\"'Sockets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getRandomDevice\")) Module[\"getRandomDevice\"] = function() {\n abort(\"'getRandomDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"traverseStack\")) Module[\"traverseStack\"] = function() {\n abort(\"'traverseStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UNWIND_CACHE\")) Module[\"UNWIND_CACHE\"] = function() {\n abort(\"'UNWIND_CACHE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"withBuiltinMalloc\")) Module[\"withBuiltinMalloc\"] = function() {\n abort(\"'withBuiltinMalloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readAsmConstArgsArray\")) Module[\"readAsmConstArgsArray\"] = function() {\n abort(\"'readAsmConstArgsArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readAsmConstArgs\")) Module[\"readAsmConstArgs\"] = function() {\n abort(\"'readAsmConstArgs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"mainThreadEM_ASM\")) Module[\"mainThreadEM_ASM\"] = function() {\n abort(\"'mainThreadEM_ASM' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"jstoi_q\")) Module[\"jstoi_q\"] = function() {\n abort(\"'jstoi_q' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"jstoi_s\")) Module[\"jstoi_s\"] = function() {\n abort(\"'jstoi_s' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getExecutableName\")) Module[\"getExecutableName\"] = function() {\n abort(\"'getExecutableName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"listenOnce\")) Module[\"listenOnce\"] = function() {\n abort(\"'listenOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"autoResumeAudioContext\")) Module[\"autoResumeAudioContext\"] = function() {\n abort(\"'autoResumeAudioContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"dynCallLegacy\")) Module[\"dynCallLegacy\"] = function() {\n abort(\"'dynCallLegacy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getDynCaller\")) Module[\"getDynCaller\"] = function() {\n abort(\"'getDynCaller' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"dynCall\")) Module[\"dynCall\"] = function() {\n abort(\"'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"callRuntimeCallbacks\")) Module[\"callRuntimeCallbacks\"] = function() {\n abort(\"'callRuntimeCallbacks' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"abortStackOverflow\")) Module[\"abortStackOverflow\"] = function() {\n abort(\"'abortStackOverflow' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"reallyNegative\")) Module[\"reallyNegative\"] = function() {\n abort(\"'reallyNegative' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"unSign\")) Module[\"unSign\"] = function() {\n abort(\"'unSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"reSign\")) Module[\"reSign\"] = function() {\n abort(\"'reSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"formatString\")) Module[\"formatString\"] = function() {\n abort(\"'formatString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"PATH\")) Module[\"PATH\"] = function() {\n abort(\"'PATH' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"PATH_FS\")) Module[\"PATH_FS\"] = function() {\n abort(\"'PATH_FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SYSCALLS\")) Module[\"SYSCALLS\"] = function() {\n abort(\"'SYSCALLS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"syscallMmap2\")) Module[\"syscallMmap2\"] = function() {\n abort(\"'syscallMmap2' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"syscallMunmap\")) Module[\"syscallMunmap\"] = function() {\n abort(\"'syscallMunmap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"JSEvents\")) Module[\"JSEvents\"] = function() {\n abort(\"'JSEvents' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerKeyEventCallback\")) Module[\"registerKeyEventCallback\"] = function() {\n abort(\"'registerKeyEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"specialHTMLTargets\")) Module[\"specialHTMLTargets\"] = function() {\n abort(\"'specialHTMLTargets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"maybeCStringToJsString\")) Module[\"maybeCStringToJsString\"] = function() {\n abort(\"'maybeCStringToJsString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"findEventTarget\")) Module[\"findEventTarget\"] = function() {\n abort(\"'findEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"findCanvasEventTarget\")) Module[\"findCanvasEventTarget\"] = function() {\n abort(\"'findCanvasEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getBoundingClientRect\")) Module[\"getBoundingClientRect\"] = function() {\n abort(\"'getBoundingClientRect' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillMouseEventData\")) Module[\"fillMouseEventData\"] = function() {\n abort(\"'fillMouseEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerMouseEventCallback\")) Module[\"registerMouseEventCallback\"] = function() {\n abort(\"'registerMouseEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerWheelEventCallback\")) Module[\"registerWheelEventCallback\"] = function() {\n abort(\"'registerWheelEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerUiEventCallback\")) Module[\"registerUiEventCallback\"] = function() {\n abort(\"'registerUiEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerFocusEventCallback\")) Module[\"registerFocusEventCallback\"] = function() {\n abort(\"'registerFocusEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillDeviceOrientationEventData\")) Module[\"fillDeviceOrientationEventData\"] = function() {\n abort(\"'fillDeviceOrientationEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerDeviceOrientationEventCallback\")) Module[\"registerDeviceOrientationEventCallback\"] = function() {\n abort(\"'registerDeviceOrientationEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillDeviceMotionEventData\")) Module[\"fillDeviceMotionEventData\"] = function() {\n abort(\"'fillDeviceMotionEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerDeviceMotionEventCallback\")) Module[\"registerDeviceMotionEventCallback\"] = function() {\n abort(\"'registerDeviceMotionEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"screenOrientation\")) Module[\"screenOrientation\"] = function() {\n abort(\"'screenOrientation' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillOrientationChangeEventData\")) Module[\"fillOrientationChangeEventData\"] = function() {\n abort(\"'fillOrientationChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerOrientationChangeEventCallback\")) Module[\"registerOrientationChangeEventCallback\"] = function() {\n abort(\"'registerOrientationChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillFullscreenChangeEventData\")) Module[\"fillFullscreenChangeEventData\"] = function() {\n abort(\"'fillFullscreenChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerFullscreenChangeEventCallback\")) Module[\"registerFullscreenChangeEventCallback\"] = function() {\n abort(\"'registerFullscreenChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerRestoreOldStyle\")) Module[\"registerRestoreOldStyle\"] = function() {\n abort(\"'registerRestoreOldStyle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"hideEverythingExceptGivenElement\")) Module[\"hideEverythingExceptGivenElement\"] = function() {\n abort(\"'hideEverythingExceptGivenElement' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"restoreHiddenElements\")) Module[\"restoreHiddenElements\"] = function() {\n abort(\"'restoreHiddenElements' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setLetterbox\")) Module[\"setLetterbox\"] = function() {\n abort(\"'setLetterbox' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"currentFullscreenStrategy\")) Module[\"currentFullscreenStrategy\"] = function() {\n abort(\"'currentFullscreenStrategy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"restoreOldWindowedStyle\")) Module[\"restoreOldWindowedStyle\"] = function() {\n abort(\"'restoreOldWindowedStyle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"softFullscreenResizeWebGLRenderTarget\")) Module[\"softFullscreenResizeWebGLRenderTarget\"] = function() {\n abort(\"'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"doRequestFullscreen\")) Module[\"doRequestFullscreen\"] = function() {\n abort(\"'doRequestFullscreen' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillPointerlockChangeEventData\")) Module[\"fillPointerlockChangeEventData\"] = function() {\n abort(\"'fillPointerlockChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerPointerlockChangeEventCallback\")) Module[\"registerPointerlockChangeEventCallback\"] = function() {\n abort(\"'registerPointerlockChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerPointerlockErrorEventCallback\")) Module[\"registerPointerlockErrorEventCallback\"] = function() {\n abort(\"'registerPointerlockErrorEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"requestPointerLock\")) Module[\"requestPointerLock\"] = function() {\n abort(\"'requestPointerLock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillVisibilityChangeEventData\")) Module[\"fillVisibilityChangeEventData\"] = function() {\n abort(\"'fillVisibilityChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerVisibilityChangeEventCallback\")) Module[\"registerVisibilityChangeEventCallback\"] = function() {\n abort(\"'registerVisibilityChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerTouchEventCallback\")) Module[\"registerTouchEventCallback\"] = function() {\n abort(\"'registerTouchEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillGamepadEventData\")) Module[\"fillGamepadEventData\"] = function() {\n abort(\"'fillGamepadEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerGamepadEventCallback\")) Module[\"registerGamepadEventCallback\"] = function() {\n abort(\"'registerGamepadEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerBeforeUnloadEventCallback\")) Module[\"registerBeforeUnloadEventCallback\"] = function() {\n abort(\"'registerBeforeUnloadEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillBatteryEventData\")) Module[\"fillBatteryEventData\"] = function() {\n abort(\"'fillBatteryEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"battery\")) Module[\"battery\"] = function() {\n abort(\"'battery' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerBatteryEventCallback\")) Module[\"registerBatteryEventCallback\"] = function() {\n abort(\"'registerBatteryEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setCanvasElementSize\")) Module[\"setCanvasElementSize\"] = function() {\n abort(\"'setCanvasElementSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getCanvasElementSize\")) Module[\"getCanvasElementSize\"] = function() {\n abort(\"'getCanvasElementSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"polyfillSetImmediate\")) Module[\"polyfillSetImmediate\"] = function() {\n abort(\"'polyfillSetImmediate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"demangle\")) Module[\"demangle\"] = function() {\n abort(\"'demangle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"demangleAll\")) Module[\"demangleAll\"] = function() {\n abort(\"'demangleAll' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"jsStackTrace\")) Module[\"jsStackTrace\"] = function() {\n abort(\"'jsStackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackTrace\")) Module[\"stackTrace\"] = function() {\n abort(\"'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getEnvStrings\")) Module[\"getEnvStrings\"] = function() {\n abort(\"'getEnvStrings' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"checkWasiClock\")) Module[\"checkWasiClock\"] = function() {\n abort(\"'checkWasiClock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToI64\")) Module[\"writeI53ToI64\"] = function() {\n abort(\"'writeI53ToI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToI64Clamped\")) Module[\"writeI53ToI64Clamped\"] = function() {\n abort(\"'writeI53ToI64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToI64Signaling\")) Module[\"writeI53ToI64Signaling\"] = function() {\n abort(\"'writeI53ToI64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToU64Clamped\")) Module[\"writeI53ToU64Clamped\"] = function() {\n abort(\"'writeI53ToU64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToU64Signaling\")) Module[\"writeI53ToU64Signaling\"] = function() {\n abort(\"'writeI53ToU64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readI53FromI64\")) Module[\"readI53FromI64\"] = function() {\n abort(\"'readI53FromI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readI53FromU64\")) Module[\"readI53FromU64\"] = function() {\n abort(\"'readI53FromU64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"convertI32PairToI53\")) Module[\"convertI32PairToI53\"] = function() {\n abort(\"'convertI32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"convertU32PairToI53\")) Module[\"convertU32PairToI53\"] = function() {\n abort(\"'convertU32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"uncaughtExceptionCount\")) Module[\"uncaughtExceptionCount\"] = function() {\n abort(\"'uncaughtExceptionCount' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exceptionLast\")) Module[\"exceptionLast\"] = function() {\n abort(\"'exceptionLast' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exceptionCaught\")) Module[\"exceptionCaught\"] = function() {\n abort(\"'exceptionCaught' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ExceptionInfoAttrs\")) Module[\"ExceptionInfoAttrs\"] = function() {\n abort(\"'ExceptionInfoAttrs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ExceptionInfo\")) Module[\"ExceptionInfo\"] = function() {\n abort(\"'ExceptionInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"CatchInfo\")) Module[\"CatchInfo\"] = function() {\n abort(\"'CatchInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exception_addRef\")) Module[\"exception_addRef\"] = function() {\n abort(\"'exception_addRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exception_decRef\")) Module[\"exception_decRef\"] = function() {\n abort(\"'exception_decRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"Browser\")) Module[\"Browser\"] = function() {\n abort(\"'Browser' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"funcWrappers\")) Module[\"funcWrappers\"] = function() {\n abort(\"'funcWrappers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getFuncWrapper\")) Module[\"getFuncWrapper\"] = function() {\n abort(\"'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setMainLoop\")) Module[\"setMainLoop\"] = function() {\n abort(\"'setMainLoop' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"FS\"] = FS;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"mmapAlloc\")) Module[\"mmapAlloc\"] = function() {\n abort(\"'mmapAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"MEMFS\")) Module[\"MEMFS\"] = function() {\n abort(\"'MEMFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"TTY\")) Module[\"TTY\"] = function() {\n abort(\"'TTY' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"PIPEFS\")) Module[\"PIPEFS\"] = function() {\n abort(\"'PIPEFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SOCKFS\")) Module[\"SOCKFS\"] = function() {\n abort(\"'SOCKFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"tempFixedLengthArray\")) Module[\"tempFixedLengthArray\"] = function() {\n abort(\"'tempFixedLengthArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"miniTempWebGLFloatBuffers\")) Module[\"miniTempWebGLFloatBuffers\"] = function() {\n abort(\"'miniTempWebGLFloatBuffers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"heapObjectForWebGLType\")) Module[\"heapObjectForWebGLType\"] = function() {\n abort(\"'heapObjectForWebGLType' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"heapAccessShiftForWebGLHeap\")) Module[\"heapAccessShiftForWebGLHeap\"] = function() {\n abort(\"'heapAccessShiftForWebGLHeap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GL\")) Module[\"GL\"] = function() {\n abort(\"'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGet\")) Module[\"emscriptenWebGLGet\"] = function() {\n abort(\"'emscriptenWebGLGet' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"computeUnpackAlignedImageSize\")) Module[\"computeUnpackAlignedImageSize\"] = function() {\n abort(\"'computeUnpackAlignedImageSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGetTexPixelData\")) Module[\"emscriptenWebGLGetTexPixelData\"] = function() {\n abort(\"'emscriptenWebGLGetTexPixelData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGetUniform\")) Module[\"emscriptenWebGLGetUniform\"] = function() {\n abort(\"'emscriptenWebGLGetUniform' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGetVertexAttrib\")) Module[\"emscriptenWebGLGetVertexAttrib\"] = function() {\n abort(\"'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeGLArray\")) Module[\"writeGLArray\"] = function() {\n abort(\"'writeGLArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"AL\")) Module[\"AL\"] = function() {\n abort(\"'AL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_unicode\")) Module[\"SDL_unicode\"] = function() {\n abort(\"'SDL_unicode' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_ttfContext\")) Module[\"SDL_ttfContext\"] = function() {\n abort(\"'SDL_ttfContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_audio\")) Module[\"SDL_audio\"] = function() {\n abort(\"'SDL_audio' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL\")) Module[\"SDL\"] = function() {\n abort(\"'SDL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_gfx\")) Module[\"SDL_gfx\"] = function() {\n abort(\"'SDL_gfx' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLUT\")) Module[\"GLUT\"] = function() {\n abort(\"'GLUT' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"EGL\")) Module[\"EGL\"] = function() {\n abort(\"'EGL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLFW_Window\")) Module[\"GLFW_Window\"] = function() {\n abort(\"'GLFW_Window' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLFW\")) Module[\"GLFW\"] = function() {\n abort(\"'GLFW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLEW\")) Module[\"GLEW\"] = function() {\n abort(\"'GLEW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"IDBStore\")) Module[\"IDBStore\"] = function() {\n abort(\"'IDBStore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"runAndAbortIfError\")) Module[\"runAndAbortIfError\"] = function() {\n abort(\"'runAndAbortIfError' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"WORKERFS\")) Module[\"WORKERFS\"] = function() {\n abort(\"'WORKERFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"warnOnce\")) Module[\"warnOnce\"] = function() {\n abort(\"'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackSave\")) Module[\"stackSave\"] = function() {\n abort(\"'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackRestore\")) Module[\"stackRestore\"] = function() {\n abort(\"'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackAlloc\")) Module[\"stackAlloc\"] = function() {\n abort(\"'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"AsciiToString\")) Module[\"AsciiToString\"] = function() {\n abort(\"'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToAscii\")) Module[\"stringToAscii\"] = function() {\n abort(\"'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF16ToString\")) Module[\"UTF16ToString\"] = function() {\n abort(\"'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF16\")) Module[\"stringToUTF16\"] = function() {\n abort(\"'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"lengthBytesUTF16\")) Module[\"lengthBytesUTF16\"] = function() {\n abort(\"'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF32ToString\")) Module[\"UTF32ToString\"] = function() {\n abort(\"'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF32\")) Module[\"stringToUTF32\"] = function() {\n abort(\"'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"lengthBytesUTF32\")) Module[\"lengthBytesUTF32\"] = function() {\n abort(\"'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"allocateUTF8\")) Module[\"allocateUTF8\"] = function() {\n abort(\"'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"allocateUTF8OnStack\")) Module[\"allocateUTF8OnStack\"] = function() {\n abort(\"'allocateUTF8OnStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"writeStackCookie\"] = writeStackCookie;\n\nModule[\"checkStackCookie\"] = checkStackCookie;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ALLOC_NORMAL\")) Object.defineProperty(Module, \"ALLOC_NORMAL\", {\n configurable: true,\n get: function() {\n abort(\"'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ALLOC_STACK\")) Object.defineProperty(Module, \"ALLOC_STACK\", {\n configurable: true,\n get: function() {\n abort(\"'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n});\n\nvar calledRun;\n\nfunction ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = \"Program terminated with exit(\" + status + \")\";\n this.status = status;\n}\n\nvar calledMain = false;\n\ndependenciesFulfilled = function runCaller() {\n if (!calledRun) run();\n if (!calledRun) dependenciesFulfilled = runCaller;\n};\n\nfunction callMain(args) {\n assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module[\"onRuntimeInitialized\"])');\n assert(__ATPRERUN__.length == 0, \"cannot call main when preRun functions remain to be called\");\n var entryFunction = Module[\"_main\"];\n args = args || [];\n var argc = args.length + 1;\n var argv = stackAlloc((argc + 1) * 4);\n HEAP32[argv >> 2] = allocateUTF8OnStack(thisProgram);\n for (var i = 1; i < argc; i++) {\n HEAP32[(argv >> 2) + i] = allocateUTF8OnStack(args[i - 1]);\n }\n HEAP32[(argv >> 2) + argc] = 0;\n try {\n var ret = entryFunction(argc, argv);\n exit(ret, true);\n } catch (e) {\n if (e instanceof ExitStatus) {\n return;\n } else if (e == \"unwind\") {\n noExitRuntime = true;\n return;\n } else {\n var toLog = e;\n if (e && typeof e === \"object\" && e.stack) {\n toLog = [ e, e.stack ];\n }\n err(\"exception thrown: \" + toLog);\n quit_(1, e);\n }\n } finally {\n calledMain = true;\n }\n}\n\nfunction run(args) {\n args = args || arguments_;\n if (runDependencies > 0) {\n return;\n }\n _emscripten_stack_init();\n writeStackCookie();\n preRun();\n if (runDependencies > 0) return;\n function doRun() {\n if (calledRun) return;\n calledRun = true;\n Module[\"calledRun\"] = true;\n if (ABORT) return;\n initRuntime();\n preMain();\n readyPromiseResolve(Module);\n if (Module[\"onRuntimeInitialized\"]) Module[\"onRuntimeInitialized\"]();\n if (shouldRunNow) callMain(args);\n postRun();\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function() {\n setTimeout(function() {\n Module[\"setStatus\"](\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n checkStackCookie();\n}\n\nModule[\"run\"] = run;\n\nfunction checkUnflushedContent() {\n var oldOut = out;\n var oldErr = err;\n var has = false;\n out = err = function(x) {\n has = true;\n };\n try {\n var flush = Module[\"_fflush\"];\n if (flush) flush(0);\n [ \"stdout\", \"stderr\" ].forEach(function(name) {\n var info = FS.analyzePath(\"/dev/\" + name);\n if (!info) return;\n var stream = info.object;\n var rdev = stream.rdev;\n var tty = TTY.ttys[rdev];\n if (tty && tty.output && tty.output.length) {\n has = true;\n }\n });\n } catch (e) {}\n out = oldOut;\n err = oldErr;\n if (has) {\n warnOnce(\"stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.\");\n }\n}\n\nfunction exit(status, implicit) {\n checkUnflushedContent();\n if (implicit && noExitRuntime && status === 0) {\n return;\n }\n if (noExitRuntime) {\n if (!implicit) {\n var msg = \"program exited (with status: \" + status + \"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)\";\n readyPromiseReject(msg);\n err(msg);\n }\n } else {\n EXITSTATUS = status;\n exitRuntime();\n if (Module[\"onExit\"]) Module[\"onExit\"](status);\n ABORT = true;\n }\n quit_(status, new ExitStatus(status));\n}\n\nif (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [ Module[\"preInit\"] ];\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n}\n\nvar shouldRunNow = true;\n\nif (Module[\"noInitialRun\"]) shouldRunNow = false;\n\nnoExitRuntime = true;\n\nrun();\n\n\n return trace_processor_wasm\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = trace_processor_wasm;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return trace_processor_wasm; });\nelse if (typeof exports === 'object')\n exports[\"trace_processor_wasm\"] = trace_processor_wasm;\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {defer} from '../base/deferred';\nimport {assertExists, assertTrue} from '../base/logging';\nimport * as init_trace_processor from '../gen/trace_processor';\n\n// The Initialize() call will allocate a buffer of REQ_BUF_SIZE bytes which\n// will be used to copy the input request data. This is to avoid passing the\n// input data on the stack, which has a limited (~1MB) size.\n// The buffer will be allocated by the C++ side and reachable at\n// HEAPU8[reqBufferAddr, +REQ_BUFFER_SIZE].\nconst REQ_BUF_SIZE = 32 * 1024 * 1024;\n\n// The end-to-end interaction between JS and Wasm is as follows:\n// - [JS] Inbound data received by the worker (onmessage() in engine/index.ts).\n// - [JS] onRpcDataReceived() (this file)\n// - [C++] trace_processor_on_rpc_request (wasm_bridge.cc)\n// - [C++] some TraceProcessor::method()\n// for (batch in result_rows)\n// - [C++] RpcResponseFunction(bytes) (wasm_bridge.cc)\n// - [JS] onReply() (this file)\n// - [JS] postMessage() (this file)\nexport class WasmBridge {\n // When this promise has resolved it is safe to call callWasm.\n whenInitialized: Promise<void>;\n\n private aborted: boolean;\n private connection: init_trace_processor.Module;\n private reqBufferAddr = 0;\n private lastStderr: string[] = [];\n private messagePort?: MessagePort;\n\n constructor() {\n this.aborted = false;\n const deferredRuntimeInitialized = defer<void>();\n this.connection = init_trace_processor({\n locateFile: (s: string) => s,\n print: (line: string) => console.log(line),\n printErr: (line: string) => this.appendAndLogErr(line),\n onRuntimeInitialized: () => deferredRuntimeInitialized.resolve(),\n });\n this.whenInitialized = deferredRuntimeInitialized.then(() => {\n const fn = this.connection.addFunction(this.onReply.bind(this), 'vii');\n this.reqBufferAddr = this.connection.ccall(\n 'trace_processor_rpc_init',\n /*return=*/ 'number',\n /*args=*/['number', 'number'],\n [fn, REQ_BUF_SIZE]);\n });\n }\n\n initialize(port: MessagePort) {\n // Ensure that initialize() is called only once.\n assertTrue(this.messagePort === undefined);\n this.messagePort = port;\n // Note: setting .onmessage implicitly calls port.start() and dispatches the\n // queued messages. addEventListener('message') doesn't.\n this.messagePort.onmessage = this.onMessage.bind(this);\n }\n\n onMessage(msg: MessageEvent) {\n if (this.aborted) {\n throw new Error('Wasm module crashed');\n }\n assertTrue(msg.data instanceof Uint8Array);\n const data = msg.data as Uint8Array;\n let wrSize = 0;\n // If the request data is larger than our JS<>Wasm interop buffer, split it\n // into multiple writes. The RPC channel is byte-oriented and is designed to\n // deal with arbitrary fragmentations.\n while (wrSize < data.length) {\n const sliceLen = Math.min(data.length - wrSize, REQ_BUF_SIZE);\n const dataSlice = data.subarray(wrSize, wrSize + sliceLen);\n this.connection.HEAPU8.set(dataSlice, this.reqBufferAddr);\n wrSize += sliceLen;\n try {\n this.connection.ccall(\n 'trace_processor_on_rpc_request', // C function name.\n 'void', // Return type.\n ['number'], // Arg types.\n [sliceLen] // Args.\n );\n } catch (err) {\n this.aborted = true;\n let abortReason = `${err}`;\n if (err instanceof Error) {\n abortReason = `${err.name}: ${err.message}\\n${err.stack}`;\n }\n abortReason += '\\n\\nstderr: \\n' + this.lastStderr.join('\\n');\n throw new Error(abortReason);\n }\n } // while(wrSize < data.length)\n }\n\n // This function is bound and passed to Initialize and is called by the C++\n // code while in the ccall(trace_processor_on_rpc_request).\n private onReply(heapPtr: number, size: number) {\n const data = this.connection.HEAPU8.slice(heapPtr, heapPtr + size);\n assertExists(this.messagePort).postMessage(data, [data.buffer]);\n }\n\n private appendAndLogErr(line: string) {\n console.warn(line);\n // Keep the last N lines in the |lastStderr| buffer.\n this.lastStderr.push(line);\n if (this.lastStderr.length > 512) {\n this.lastStderr.shift();\n }\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists} from '../base/logging';\nimport {EngineWorkerInitMessage} from '../common/worker_messages';\nimport {WasmBridge} from './wasm_bridge';\n\nconst selfWorker = self as {} as Worker;\nconst wasmBridge = new WasmBridge();\n\n// There are two message handlers here:\n// 1. The Worker (self.onmessage) handler.\n// 2. The MessagePort handler.\n// When the app bootstraps, frontend/index.ts creates a MessageChannel and sends\n// one end to the controller (the other worker) and the other end to us, so that\n// the controller can interact with the Wasm worker without roundtrips through\n// the frontend.\n// The sequence of actions is the following:\n// 1. The frontend does one postMessage({port: MessagePort}) on the Worker\n// scope. This message transfers the MessagePort (whose other end is\n// connected to the Conotroller). This is the only postMessage we'll ever\n// receive here.\n// 2. All the other messages (i.e. the TraceProcessor RPC binary pipe) will be\n// received on the MessagePort.\n\n// Receives the boostrap message from the frontend with the MessagePort.\nselfWorker.onmessage = (msg: MessageEvent) => {\n const port = assertExists((msg.data as EngineWorkerInitMessage).enginePort);\n wasmBridge.initialize(port);\n};\n"],"names":["version","deferred_1","init_trace_processor","logging_1","wasm_bridge_1"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAa,eAAO,GAAG,iBAAiB,CAAC;AAC5B,oBAAY,GAAG,0CAA0C,CAAC;;;;;ACDvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEmD;AAInD,IAAI,YAAY,GAAiB,CAAC,CAAS,QAAO,CAAC;AAEnD,SAAgB,YAAY,CAAI,KAA2B;IACzD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,oCAKC;AAED,SAAgB,UAAU,CAAC,KAAc,EAAE,MAAe;IACxD,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,kBAAkB,CAAC,CAAC;KACvD;AACH,CAAC;AAJD,gCAIC;AAED,SAAgB,WAAW,CAAC,KAAc,EAAE,MAAe;IACzD,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,kCAEC;AAED,SAAgB,eAAe,CAAC,OAAqB;IACnD,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAFD,0CAEC;AAED,SAAgB,WAAW,CAAC,GAAwC;IAClE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAAG,SAAS,CAAC;IAEzB,IAAI,GAAG,YAAY,UAAU,EAAE;QAC7B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;QACrB,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;KACtB;SAAM,IAAI,GAAG,YAAY,qBAAqB,EAAE;QAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACzB,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;KACvB;SAAM;QACL,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;KACnB;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;QAC/C,MAAM,QAAQ,GAAI,QAA6B,CAAC,KAAK,CAAC;QACtD,MAAM,IAAI,IAAI,CAAC;QACf,MAAM,IAAI,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACxE;IACD,MAAM,IAAI,MAAM,CAAC;IACjB,MAAM,IAAI,GAAGA,gBAAO,CAAC,OAAO,IAAIA,gBAAO,CAAC,YAAY,IAAI,CAAC;IACzD,MAAM,IAAI,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC;IAEzC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC;AAxBD,kCAwBC;;;;;ACjED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAYA;;;AAGA,SAAgB,KAAK;IACnB,IAAI,OAAO,GAAG,IAAW,CAAC;IAC1B,IAAI,MAAM,GAAG,IAAW,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAQ,CAAC;AACpD,CAAC;AALD,sBAKC;;;;;AC/BD,IAAI,oBAAoB,GAAG,CAAC,WAAW;AACvC,EAAE,IAAI,UAAU,GAAG,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,SAAS,CAAC;AACtH,EAAE,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC;AAC/E,EAAE;AACF,SAAS,oBAAoB,EAAE;AAC/B,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,EAAE,CAAC;AACpD;AACA,IAAI,MAAM,GAAG,OAAO,oBAAoB,KAAK,WAAW,GAAG,oBAAoB,GAAG,EAAE,CAAC;AACrF;AACA,IAAI,mBAAmB,EAAE,kBAAkB,CAAC;AAC5C;AACA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;AACxD,CAAC,mBAAmB,GAAG,OAAO,CAAC;AAC/B,CAAC,kBAAkB,GAAG,MAAM,CAAC;AAC7B,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAChE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;AACjD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,oKAAoK,CAAC,CAAC;AAC/K,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;AACjD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,oKAAoK,CAAC,CAAC;AAC/K,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC,EAAE;AACpF,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,2BAA2B,EAAE;AACrE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,wLAAwL,CAAC,CAAC;AACnM,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,2BAA2B,EAAE;AACrE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,wLAAwL,CAAC,CAAC;AACnM,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,4BAA4B,CAAC,EAAE;AACrF,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,4BAA4B,EAAE;AACtE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,yLAAyL,CAAC,CAAC;AACpM,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,4BAA4B,EAAE;AACtE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,yLAAyL,CAAC,CAAC;AACpM,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC,EAAE;AACjF,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,wBAAwB,EAAE;AAClE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,qLAAqL,CAAC,CAAC;AAChM,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,wBAAwB,EAAE;AAClE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,qLAAqL,CAAC,CAAC;AAChM,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE;AACrE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE;AACtD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,yKAAyK,CAAC,CAAC;AACpL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE;AACtD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,yKAAyK,CAAC,CAAC;AACpL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAAE;AACxE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE;AACzD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,4KAA4K,CAAC,CAAC;AACvL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE;AACzD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,4KAA4K,CAAC,CAAC;AACvL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,EAAE;AACtE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE;AACvD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,0KAA0K,CAAC,CAAC;AACrL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE;AACvD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,0KAA0K,CAAC,CAAC;AACrL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,EAAE;AAC7E,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE;AAC9D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,iLAAiL,CAAC,CAAC;AAC5L,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE;AAC9D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,iLAAiL,CAAC,CAAC;AAC5L,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE;AAClE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,EAAE;AAC5E,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE;AAC7D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,gLAAgL,CAAC,CAAC;AAC3L,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE;AAC7D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,gLAAgL,CAAC,CAAC;AAC3L,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE;AAClE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAChE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;AACjD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,oKAAoK,CAAC,CAAC;AAC/K,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;AACjD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,oKAAoK,CAAC,CAAC;AAC/K,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE;AACpE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE;AACrD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,wKAAwK,CAAC,CAAC;AACnL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE;AACrD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,wKAAwK,CAAC,CAAC;AACnL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE;AAClE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE;AACvE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE;AACxD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,2KAA2K,CAAC,CAAC;AACtL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE;AACxD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,2KAA2K,CAAC,CAAC;AACtL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE;AACzE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE;AAC1D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,6KAA6K,CAAC,CAAC;AACxL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE;AAC1D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,6KAA6K,CAAC,CAAC;AACxL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE;AACzE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE;AAC1D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,6KAA6K,CAAC,CAAC;AACxL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE;AAC1D,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,6KAA6K,CAAC,CAAC;AACxL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,8CAA8C,CAAC,EAAE;AACvG,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,8CAA8C,EAAE;AACxF,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,2MAA2M,CAAC,CAAC;AACtN,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,8CAA8C,EAAE;AACxF,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,2MAA2M,CAAC,CAAC;AACtN,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE;AAClE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACnD,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,sKAAsK,CAAC,CAAC;AACjL,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC,EAAE;AAC/E,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,sBAAsB,EAAE;AAChE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,mLAAmL,CAAC,CAAC;AAC9L,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,sBAAsB,EAAE;AAChE,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,KAAK,CAAC,mLAAmL,CAAC,CAAC;AAC9L,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB;AACA,IAAI,GAAG,CAAC;AACR;AACA,KAAK,GAAG,IAAI,MAAM,EAAE;AACpB,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACjC,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC,EAAE;AACF,CAAC;AACD;AACA,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB;AACA,IAAI,WAAW,GAAG,gBAAgB,CAAC;AACnC;AACA,IAAI,KAAK,GAAG,SAAS,MAAM,EAAE,OAAO,EAAE;AACtC,CAAC,MAAM,OAAO,CAAC;AACf,CAAC,CAAC;AACF;AACA,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B;AACA,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC;AACA,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAChC;AACA,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC;AACA,kBAAkB,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;AAChD;AACA,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAC5D;AACA,mBAAmB,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AACvI;AACA,oBAAoB,GAAG,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,IAAI,CAAC,qBAAqB,CAAC;AAC7F;AACA,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;AAC3B,CAAC,MAAM,IAAI,KAAK,CAAC,oKAAoK,CAAC,CAAC;AACvL,CAAC;AACD;AACA,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE;AAC3B,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACrD,EAAE;AACF,CAAC,OAAO,eAAe,GAAG,IAAI,CAAC;AAC/B,CAAC;AACD;IACI,KAAK,EAAa,UAAU,CAAiB;AACjD;AACA,IAAI,MAAM,CAAC;AACX;AACA,IAAI,QAAQ,CAAC;AACb;AACA,IAAI,mBAAmB,EAAE;AACzB,CAAC,IAAI,qBAAqB,EAAE;AAC5B,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;AACnE,EAAE,MAAM;AACR,EAAE,eAAe,GAAG,SAAS,GAAG,GAAG,CAAC;AACpC,EAAE;AACF,CAAC,KAAK,GAAG,SAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC/C,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,EAAE,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AAClE,EAAE,CAAC;AACH,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,QAAQ,EAAE;AAC5C,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACnB,GAAG,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,EAAE,OAAO,GAAG,CAAC;AACb,EAAE,CAAC;AACH,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvD,EAAE;AACF,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE;AACjD,EAAE,IAAI,EAAE,EAAE,YAAY,UAAU,CAAC,EAAE;AACnC,GAAG,MAAM,EAAE,CAAC;AACZ,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC,KAAK,GAAG,SAAS,MAAM,EAAE;AAC1B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1B,EAAE,CAAC;AACH,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AAChC,EAAE,OAAO,4BAA4B,CAAC;AACtC,EAAE,CAAC;AACH,CAAC,MAAM,IAAI,oBAAoB,EAAE;AACjC,CAAC,IAAI,OAAO,IAAI,IAAI,WAAW,EAAE;AACjC,EAAE,KAAK,GAAG,SAAS,UAAU,CAAC,CAAC,EAAE;AACjC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,CAAC,EAAE;AACrC,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AACxC,GAAG,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACnC,EAAE,OAAO,IAAI,CAAC;AACd,EAAE,CAAC;AACH,CAAC,IAAI,OAAO,UAAU,IAAI,WAAW,EAAE;AACvC,EAAE,UAAU,GAAG,UAAU,CAAC;AAC1B,EAAE,MAAM,IAAI,OAAO,SAAS,IAAI,WAAW,EAAE;AAC7C,EAAE,UAAU,GAAG,SAAS,CAAC;AACzB,EAAE;AACF,CAAC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACjC,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE;AAC3B,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACnC,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,OAAO,GAAG,EAAE,CAAC;AACnD,EAAE,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;AACtB,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;AACpF,EAAE;AACF,CAAC,MAAM,IAAI,kBAAkB,IAAI,qBAAqB,EAAE;AACxD,CAAC,IAAI,qBAAqB,EAAE;AAC5B,EAAE,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,EAAE,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,aAAa,EAAE;AACvE,EAAE,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AAC/C,EAAE;AACF,CAAC,IAAI,UAAU,EAAE;AACjB,EAAE,eAAe,GAAG,UAAU,CAAC;AAC/B,EAAE;AACF,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7C,EAAE,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,EAAE,MAAM;AACR,EAAE,eAAe,GAAG,EAAE,CAAC;AACvB,EAAE;AACF,CAAC;AACD,EAAE,KAAK,GAAG,SAAS,GAAG,EAAE;AACxB,GAAG,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;AAClC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,GAAG,OAAO,GAAG,CAAC,YAAY,CAAC;AAC3B,GAAG,CAAC;AACJ,EAAE,IAAI,qBAAqB,EAAE;AAC7B,GAAG,UAAU,GAAG,SAAS,GAAG,EAAE;AAC9B,IAAI,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;AACnC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,IAAI,GAAG,CAAC,YAAY,GAAG,aAAa,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,IAAI,CAAC;AACL,GAAG;AAeH,EAAE;AAIF,CAAC,MAAM;AACP,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAChD,CAAC;AACD;AACA,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvD;AACA,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3D;AACA,KAAK,GAAG,IAAI,eAAe,EAAE;AAC7B,CAAC,IAAI,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC1C,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AACrC,EAAE;AACF,CAAC;AACD;AACA,eAAe,GAAG,IAAI,CAAC;AACvB;AACA,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1D;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;AACtG,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,yLAAyL,CAAC,CAAC;AACnM,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/D;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;AAC1G,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,4LAA4L,CAAC,CAAC;AACtM,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3C;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;AAC5F,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,+KAA+K,CAAC,CAAC;AACzL,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,4BAA4B,CAAC,KAAK,WAAW,EAAE,qFAAqF,CAAC,CAAC;AAC3J;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,sBAAsB,CAAC,KAAK,WAAW,EAAE,+EAA+E,CAAC,CAAC;AAC/I;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,wBAAwB,CAAC,KAAK,WAAW,EAAE,iFAAiF,CAAC,CAAC;AACnJ;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,sBAAsB,CAAC,KAAK,WAAW,EAAE,+EAA+E,CAAC,CAAC;AAC/I;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,qDAAqD,CAAC,CAAC;AACrG;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,8DAA8D,CAAC,CAAC;AACnH;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,WAAW,EAAE,gEAAgE,CAAC,CAAC;AACtH;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,WAAW,EAAE,wEAAwE,CAAC,CAAC;AAClI;AACA,MAAM,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,WAAW,EAAE,4DAA4D,CAAC,CAAC;AACpH;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;AAC5F,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,+KAA+K,CAAC,CAAC;AACzL,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;AACtG,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,wLAAwL,CAAC,CAAC;AAClM,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;AACxG,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,0LAA0L,CAAC,CAAC;AACpM,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE;AAChH,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,kMAAkM,CAAC,CAAC;AAC5M,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;AACnC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;AACnC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC1C,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC5B,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACZ,EAAE;AACF,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE;AAC5C,CAAC,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,UAAU,EAAE;AACjD,EAAE,IAAI,SAAS,GAAG;AAClB,GAAG,GAAG,EAAE,KAAK;AACb,GAAG,GAAG,EAAE,KAAK;AACb,GAAG,GAAG,EAAE,KAAK;AACb,GAAG,GAAG,EAAE,KAAK;AACb,GAAG,CAAC;AACJ,EAAE,IAAI,IAAI,GAAG;AACb,GAAG,UAAU,EAAE,EAAE;AACjB,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,GAAG,CAAC;AACJ,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,EAAE;AACF,CAAC,IAAI,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,IAAI,SAAS,GAAG;AACjB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,CAAC;AACH,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3C,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,GAAG,EAAE;AACpB,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,MAAM;AACR,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7D,EAAE;AACF,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,CAAC,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3I,CAAC,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,IAAI,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjD,EAAE,GAAG,EAAE;AACP,GAAG,GAAG,EAAE,IAAI;AACZ,GAAG;AACH,EAAE,CAAC,CAAC;AACJ,CAAC,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,OAAO,WAAW,CAAC;AACpB,CAAC;AACD;AACA,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B;AACA,IAAI,mBAAmB,CAAC;AACxB;AACA,SAAS,iBAAiB,GAAG;AAC7B,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC9B,EAAE,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAChC,EAAE;AACF,CAAC,IAAI;AACL,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,IAAI,EAAE,GAAG,YAAY,UAAU,CAAC,EAAE;AACpC,GAAG,MAAM,GAAG,CAAC;AACb,GAAG;AACH,EAAE,MAAM,oDAAoD,CAAC;AAC7D,EAAE;AACF,CAAC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,CAAC;AACD;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE;AACpC,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,EAAE,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC;AACtC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,GAAG,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,GAAG,IAAI,IAAI,EAAE;AACb,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACpC,EAAE,OAAO,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,EAAE;AACF,CAAC,IAAI,GAAG,GAAG,iBAAiB,EAAE,CAAC;AAC/B,CAAC,IAAI;AACL,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3B,EAAE,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC,EAAE;AACnC,GAAG,MAAM,GAAG,CAAC;AACb,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,GAAG,KAAK,WAAW,EAAE,6CAA6C,GAAG,IAAI,CAAC,CAAC;AAC3F,EAAE,IAAI,OAAO,GAAG,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnD,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,EAAE;AACF,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;AAChC,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC;AACrC,CAAC,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAOD;AACA,IAAI,UAAU,CAAC;AACf;AACA,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC5D;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;AACxG,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,0LAA0L,CAAC,CAAC;AACpM,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,aAAa,CAAC;AAClB;AACA,IAAI,MAAM,CAAC,eAAe,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACrE;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AAC9G,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,gMAAgM,CAAC,CAAC;AAC1M,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACrC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AAC1C,CAAC;AACD;AACA,IAAI,UAAU,CAAC;AACf;AACA,IAAI,KAAK,GAAG,KAAK,CAAC;AAGlB;AACA,SAAS,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE;AACjC,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,EAAE,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;AACrC,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAChC,CAAC,MAAM,CAAC,IAAI,EAAE,+BAA+B,GAAG,KAAK,GAAG,4BAA4B,CAAC,CAAC;AACtF,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA,SAAS,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;AACxD,CAAC,IAAI,GAAG,GAAG;AACX,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE;AAC1B,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;AACf,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE;AACvD,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,OAAO,GAAG,CAAC;AACd,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE;AACzB,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,GAAG,OAAO,GAAG,CAAC;AACd,GAAG;AACH,EAAE,CAAC;AACH,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE;AAClC,EAAE,IAAI,UAAU,KAAK,QAAQ,EAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AACxD,EAAE,IAAI,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;AAChB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACf,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,oCAAoC,CAAC,CAAC;AACtE,CAAC,IAAI,IAAI,EAAE;AACX,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,GAAG,IAAI,SAAS,EAAE;AAClB,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,CAAC;AACzC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM;AACV,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AAGD;AACA,IAAI,WAAW,GAAG,OAAO,WAAW,KAAK,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAC3F;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE;AACtD,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,cAAc,CAAC;AACnC,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC;AAClB,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AACtD,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAE;AACxD,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,MAAM;AACR,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,OAAO,GAAG,GAAG,MAAM,EAAE;AACvB,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE;AACpB,IAAI,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI,SAAS;AACb,IAAI;AACJ,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC7B,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE;AAC1B,IAAI,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AACpD,IAAI,SAAS;AACb,IAAI;AACJ,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC7B,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE;AAC1B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACxC,IAAI,MAAM;AACV,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE,QAAQ,CAAC,+BAA+B,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,wFAAwF,CAAC,CAAC;AAClL,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAChE,IAAI;AACJ,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE;AACnB,IAAI,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI,MAAM;AACV,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACxB,IAAI,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACpE,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE;AAC3C,CAAC,OAAO,GAAG,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC;AAClE,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE;AAC/D,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC;AACvB,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;AAC3C,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;AAChC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE;AAChB,GAAG,IAAI,MAAM,IAAI,MAAM,EAAE,MAAM;AAC/B,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;AACtB,GAAG,MAAM,IAAI,CAAC,IAAI,IAAI,EAAE;AACxB,GAAG,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,MAAM;AACnC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG,MAAM,IAAI,CAAC,IAAI,KAAK,EAAE;AACzB,GAAG,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,MAAM;AACnC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAClC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG,MAAM;AACT,GAAG,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,MAAM;AACnC,GAAG,IAAI,CAAC,IAAI,OAAO,EAAE,QAAQ,CAAC,+BAA+B,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,kJAAkJ,CAAC,CAAC;AACrO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAClC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACvC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG;AACH,EAAE;AACF,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC,OAAO,MAAM,GAAG,QAAQ,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE;AACpD,CAAC,MAAM,CAAC,OAAO,eAAe,IAAI,QAAQ,EAAE,2HAA2H,CAAC,CAAC;AACzK,CAAC,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AAChE,CAAC;AACD;AACA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACb,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5F,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAClG,EAAE;AACF,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACmB,OAAO,WAAW,KAAK,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU;AAChG;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,IAAI,GAAG,EAAE,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE;AAC3C,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,iFAAiF,CAAC,CAAC;AAC9G,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE;AACtD,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACxD,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE;AACF,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD;AACA,SAAS,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE;AAC9B,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE;AACvB,EAAE,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC/B,EAAE;AACF,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;IACI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAW,MAAM,EAAE,OAAO,CAAmB;AAC9E;AACA,SAAS,0BAA0B,CAAC,GAAG,EAAE;AACzC,CAAC,MAAM,GAAG,GAAG,CAAC;AACd,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC,MAAM,CAAC,SAAS,CAAC,GAAa,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC,MAAM,CAAC,SAAS,CAAC,GAAa,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC,MAAM,CAAC,SAAS,CAAC,GAAa,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AACD;AACA,IAAI,WAAW,GAAG,OAAO,CAAC;AAC1B;AACA,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,aAAa,CAAC,EAAE,uDAAuD,CAAC,CAAC;AAClI;AACA,IAAI,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC;AAC1D;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE;AAChH,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,kMAAkM,CAAC,CAAC;AAC5M,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,MAAM,CAAC,cAAc,IAAI,WAAW,EAAE,wDAAwD,GAAG,cAAc,GAAG,iBAAiB,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC;AACzJ;AACA,MAAM,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,EAAE,qDAAqD,CAAC,CAAC;AACjO;AACA,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,uFAAuF,CAAC,CAAC;AACvH;AACA,MAAM,CAAC,cAAc,IAAI,QAAQ,EAAE,mGAAmG,CAAC,CAAC;AACxI;AACA,IAAI,SAAS,CAAC;AACd;AACA,SAAS,gBAAgB,GAAG;AAC5B,CAAC,IAAI,GAAG,GAAG,yBAAyB,EAAE,CAAC;AACvC,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;AACpC,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;AACtC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AACxB,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,CAAC,IAAI,KAAK,EAAE,OAAO;AACnB,CAAC,IAAI,GAAG,GAAG,yBAAyB,EAAE,CAAC;AACvC,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE;AACnD,EAAE,KAAK,CAAC,kHAAkH,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,EAAE;AACF,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,KAAK,CAAC,mFAAmF,CAAC,CAAC;AAC1H,CAAC;AACD;AACA,CAAC,WAAW;AACZ,CAAC,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAChB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,yDAAyD,CAAC;AACpG,CAAC,GAAG,CAAC;AACL;AACA,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB;AACA,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB;AACA,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB;AACA,IAAI,aAAa,GAAG,EAAE,CAAC;AACvB;AACA,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B;AACA,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B;AACA,UAAU,CAAC,IAAI,CAAC;AAChB,CAAC,IAAI,EAAE,WAAW;AAClB,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,SAAS,MAAM,GAAG;AAClB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;AACvB,EAAE,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AACrF,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;AAClC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACzC,GAAG;AACH,EAAE;AACF,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AACD;AACA,SAAS,WAAW,GAAG;AACvB,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC7B,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC3B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AACD;AACA,SAAS,OAAO,GAAG;AACnB,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,EAAE,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC9B,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AACD;AACA,SAAS,WAAW,GAAG;AACvB,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,aAAa,GAAG,IAAI,CAAC;AACtB,CAAC;AACD;AACA,SAAS,OAAO,GAAG;AACnB,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;AACxB,EAAE,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AACxF,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;AACnC,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE;AACF,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC;AACD;AACA,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AACD;AACA,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,6HAA6H,CAAC,CAAC;AACjJ;AACA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,+HAA+H,CAAC,CAAC;AACrJ;AACA,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,8HAA8H,CAAC,CAAC;AACnJ;AACA,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,8HAA8H,CAAC,CAAC;AACnJ;AACA,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB;AACA,IAAI,oBAAoB,GAAG,IAAI,CAAC;AAChC;AACA,IAAI,qBAAqB,GAAG,IAAI,CAAC;AACjC;AACA,IAAI,qBAAqB,GAAG,EAAE,CAAC;AAC/B;AACA,SAAS,sBAAsB,CAAC,EAAE,EAAE;AACpC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACf,CAAC,OAAO,CAAC,EAAE;AACX,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5C,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5B,EAAE;AACF,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;AAC9B,CAAC,eAAe,EAAE,CAAC;AACnB,CAAC,IAAI,MAAM,CAAC,wBAAwB,CAAC,EAAE;AACvC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,eAAe,CAAC,CAAC;AACpD,EAAE;AACF,CAAC,IAAI,EAAE,EAAE;AACT,EAAE,MAAM,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,EAAE,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,EAAE,IAAI,oBAAoB,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC3E,GAAG,oBAAoB,GAAG,WAAW,CAAC,WAAW;AACjD,IAAI,IAAI,KAAK,EAAE;AACf,KAAK,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACzC,KAAK,oBAAoB,GAAG,IAAI,CAAC;AACjC,KAAK,OAAO;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;AACtB,IAAI,KAAK,IAAI,GAAG,IAAI,qBAAqB,EAAE;AAC3C,KAAK,IAAI,CAAC,KAAK,EAAE;AACjB,MAAM,KAAK,GAAG,IAAI,CAAC;AACnB,MAAM,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAChD,MAAM;AACN,KAAK,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,EAAE;AACf,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,GAAG;AACH,EAAE,MAAM;AACR,EAAE,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAClD,EAAE;AACF,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,EAAE;AACjC,CAAC,eAAe,EAAE,CAAC;AACnB,CAAC,IAAI,MAAM,CAAC,wBAAwB,CAAC,EAAE;AACvC,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,eAAe,CAAC,CAAC;AACpD,EAAE;AACF,CAAC,IAAI,EAAE,EAAE;AACT,EAAE,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,EAAE,OAAO,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACnC,EAAE,MAAM;AACR,EAAE,GAAG,CAAC,4CAA4C,CAAC,CAAC;AACpD,EAAE;AACF,CAAC,IAAI,eAAe,IAAI,CAAC,EAAE;AAC3B,EAAE,IAAI,oBAAoB,KAAK,IAAI,EAAE;AACrC,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACvC,GAAG,oBAAoB,GAAG,IAAI,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,qBAAqB,EAAE;AAC7B,GAAG,IAAI,QAAQ,GAAG,qBAAqB,CAAC;AACxC,GAAG,qBAAqB,GAAG,IAAI,CAAC;AAChC,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;AAC/B;AACA,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;AAC/B;AACA,SAAS,KAAK,CAAC,IAAI,EAAE;AACrB,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;AACxB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,IAAI,IAAI,EAAE,CAAC;AACZ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACX,CAAC,KAAK,GAAG,IAAI,CAAC;AAEd,CAAC,IAAI,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC;AACvD,CAAC,IAAI,GAAG,MAAM,CAAC;AACf,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC,MAAM,CAAC,CAAC;AACT,CAAC;AACD;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAChC,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AACD;AACA,IAAI,aAAa,GAAG,uCAAuC,CAAC;AAC5D;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC7B,CAAC,OAAO,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAOD;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC7C,CAAC,OAAO,WAAW;AACnB,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC;AACzB,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC;AACrB,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,WAAW,GAAG,wCAAwC,CAAC,CAAC;AAC3G,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,mBAAmB,GAAG,WAAW,GAAG,uFAAuF,CAAC,CAAC;AACtJ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAClB,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,4BAA4B,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;AACjF,GAAG;AACH,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,EAAE,CAAC;AACH,CAAC;AACD;AACA,IAAI,cAAc,GAAG,sBAAsB,CAAC;AAC5C;AACA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;AAChC,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC;AACD;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,IAAI,IAAI,cAAc,IAAI,UAAU,EAAE;AAC5C,GAAG,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,UAAU,EAAE;AAClB,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC3B,GAAG,MAAM;AACT,GAAG,MAAM,0JAA0J,CAAC;AACpK,GAAG;AACH,EAAE,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACb,EAAE;AACF,CAAC;AA6BD;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE;AACrC,CAAC,IAAI,QAAQ,CAAC;AACd,CAAC,IAAI,MAAM,CAAC;AACZ,CAAC,IAAI,MAAM,CAAC;AACZ,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAE,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,EAAE,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,GAAG,CAAC,iCAAiC,GAAG,GAAG,CAAC,CAAC;AAC/C,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAChF,GAAG,GAAG,CAAC,0QAA0Q,CAAC,CAAC;AACnR,GAAG;AACH,EAAE,MAAM,CAAC,CAAC;AACV,EAAE;AACF,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AACD;AACA,SAAS,UAAU,GAAG;AACtB,CAAC,IAAI,IAAI,GAAG;AACZ,EAAE,KAAK,EAAE,aAAa;AACtB,EAAE,wBAAwB,EAAE,aAAa;AACzC,EAAE,CAAC;AACH,CAAC,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5C,EAAE,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AACjC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AAC1B,EAAE,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACvC,EAAE,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;AACzD,EAAE,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChD,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC,CAAC;AACzD,EAAE,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AACvD,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AAC1C,EAAE;AACF,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAEtC,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE;AAChC,EAAE,IAAI;AACN,GAAG,IAAI,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAClE,GAAG,OAAO,OAAO,CAAC;AAClB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,qDAAqD,GAAG,CAAC,CAAC,CAAC;AAClE,GAAG,OAAO,KAAK,CAAC;AAChB,GAAG;AACH,EAAE;AACF,CAAC,IAAI,MAAM,GAAG,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAY,CAAC,CAAC;AACvC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AACD;AACA,IAAI,UAAU,CAAC;AACf;AACA,IAAI,OAAO,CAAC;AACZ;AACA,SAAS,oBAAoB,CAAC,SAAS,EAAE;AACzC,CAAC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;AACnC,EAAE,IAAI,OAAO,QAAQ,IAAI,UAAU,EAAE;AACrC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpB,GAAG,SAAS;AACZ,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE;AACnC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,IAAI,MAAM;AACV,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,CAAC,QAAQ,CAAC,6EAA6E,CAAC,CAAC;AACzF,CAAC,OAAO,IAAI,CAAC;AACb,CAAC;AACD;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,CAAC,IAAI,KAAK,GAAG,eAAe,CAAC;AAC7B,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AACxC,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1C,EAAE,CAAC,CAAC;AACJ,CAAC;AACD;AACA,SAAS,YAAY,GAAG;AACxB,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACnB,EAAE,IAAI;AACN,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,KAAK,GAAG,CAAC,CAAC;AACb,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACpB,GAAG,OAAO,4BAA4B,CAAC;AACvC,GAAG;AACH,EAAE;AACF,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,UAAU,GAAG;AACtB,CAAC,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;AACzB,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;AACzE,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AACD;AACA,SAAS,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;AAC9B;AACA,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;AAC/B,CAAC,OAAO,OAAO,CAAO,CAAC,CAAC;AACxB,CAAC;AACD;AACA,SAAS,MAAM,GAAG;AAClB,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO;AAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AACtB,CAAC,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC5C,CAAC,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;AAC/C,CAAC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;AAC/C,CAAC,IAAI,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,iBAAiB,GAAG,EAAE,CAAC;AACxD,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC;AACtE,CAAC,SAAS,WAAW,CAAC,IAAI,EAAE;AAC5B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAC7D,EAAE,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAClC,EAAE;AACF,CAAC,IAAI,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,IAAI,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,IAAI,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC,IAAI,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC,IAAI,YAAY,GAAG,YAAY,EAAE;AAClC,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;AAC9C,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;AAClD,EAAE,MAAM;AACR,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;AAC9C,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;AAClD,EAAE;AACF,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;AACnC,CAAC,MAAM,EAAE,CAAC;AACV,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC9C,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACxC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5C,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC1C,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3C,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;AACrD,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AACzC,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAChC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;AAC3E,CAAC,IAAI,YAAY,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC9C,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AAClH,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/B,CAAC,IAAI,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;AACnC,CAAC,OAAO,KAAK,CAAC;AACd,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;AAChC,CAAC,OAAO,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AACD;AACA,IAAI,IAAI,GAAG;AACX,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE;AAC/B,EAAE,IAAI,WAAW,GAAG,+DAA+D,CAAC;AACpF,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,EAAE;AACF,CAAC,cAAc,EAAE,SAAS,KAAK,EAAE,cAAc,EAAE;AACjD,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACb,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;AACrB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,MAAM,IAAI,EAAE,EAAE;AAClB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,EAAE,EAAE,CAAC;AACT,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,cAAc,EAAE;AACtB,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxB,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE;AAC3B,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACnF,EAAE,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AAChE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAC5B,GAAG,IAAI,GAAG,GAAG,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,IAAI,aAAa,EAAE;AAC7B,GAAG,IAAI,IAAI,GAAG,CAAC;AACf,GAAG;AACH,EAAE,OAAO,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC;AACxC,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE;AACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AACrB,GAAG,OAAO,GAAG,CAAC;AACd,GAAG;AACH,EAAE,IAAI,GAAG,EAAE;AACX,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC1B,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,OAAO,GAAG,CAAC;AAC/B,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACpC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACpC,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE;AACF,CAAC,IAAI,EAAE,WAAW;AAClB,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACvD,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;AACvB,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACrC,EAAE;AACF,CAAC,CAAC;AACF;AACA,SAAS,eAAe,GAAG;AAC3B,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;AACpF,EAAE,IAAI,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,EAAE,OAAO,WAAW;AACpB,GAAG,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AACxC,GAAG,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1B,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,mBAAmB,EAAE;AACjC,EAAE,IAAI;AACN,GAAG,IAAI,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzC,GAAG,OAAO,WAAW;AACrB,IAAI,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAI,CAAC;AACL,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;AAChB,EAAE;AACF,CAAC,OAAO,WAAW;AACnB,EAAE,KAAK,CAAC,gSAAgS,CAAC,CAAC;AAC1S,EAAE,CAAC;AACH,CAAC;AACD;AACA,IAAI,OAAO,GAAG;AACd,CAAC,OAAO,EAAE,WAAW;AACrB,EAAE,IAAI,YAAY,GAAG,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC;AAClD,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE;AACxE,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC/C,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;AACrE,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE;AACrB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI;AACJ,GAAG,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,YAAY,CAAC;AAC5C,GAAG,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC7C,GAAG;AACH,EAAE,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AAChF,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,EAAE,OAAO,CAAC,gBAAgB,GAAG,GAAG,GAAG,EAAE,IAAI,YAAY,IAAI,GAAG,CAAC;AAC7D,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,EAAE,EAAE;AAC9B,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzC,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE;AACrB,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC;AACjB,GAAG,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACtC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM;AACjC,IAAI;AACJ,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;AAC1B,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM;AAC/B,IAAI;AACJ,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC;AAC9B,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1D,EAAE,IAAI,eAAe,GAAG,MAAM,CAAC;AAC/B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;AACpC,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,IAAI,MAAM;AACV,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC;AACvB,EAAE,KAAK,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AACnE,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAE;AACF,CAAC,CAAC;AACF;AACA,IAAI,GAAG,GAAG;AACV,CAAC,IAAI,EAAE,EAAE;AACT,CAAC,IAAI,EAAE,WAAW,EAAE;AACpB,CAAC,QAAQ,EAAE,WAAW,EAAE;AACxB,CAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE;AAC9B,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;AAClB,GAAG,KAAK,EAAE,EAAE;AACZ,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,GAAG,EAAE,GAAG;AACX,GAAG,CAAC;AACJ,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACzC,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE;AACzB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,GAAG,IAAI,CAAC,GAAG,EAAE;AACb,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE;AAC1B,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE;AAC1B,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;AACtD,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;AAChD,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,SAAS,GAAG,CAAC,CAAC;AACrB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI;AACR,KAAK,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClD,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,KAAK,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;AACjD,KAAK,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM;AACvD,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,SAAS,EAAE;AAClB,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,IAAI;AACJ,GAAG,OAAO,SAAS,CAAC;AACpB,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;AACvD,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;AAChD,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI;AACP,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,CAAC,OAAO,CAAC,EAAE;AACf,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,MAAM,EAAE;AACf,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,IAAI;AACJ,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH,EAAE;AACF,CAAC,eAAe,EAAE;AAClB,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE;AAC1B,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,mBAAmB,EAAE;AAC7B,KAAK,IAAI,OAAO,GAAG,GAAG,CAAC;AACvB,KAAK,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1E,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;AACvB,KAAK,IAAI;AACT,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3E,MAAM,CAAC,OAAO,CAAC,EAAE;AACjB,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC;AACzE,MAAM;AACN,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE;AACxB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD,MAAM,MAAM;AACZ,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM;AACN,KAAK,MAAM,IAAI,OAAO,MAAM,IAAI,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE;AACnF,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACvC,KAAK,IAAI,MAAM,KAAK,IAAI,EAAE;AAC1B,MAAM,MAAM,IAAI,IAAI,CAAC;AACrB,MAAM;AACN,KAAK,MAAM,IAAI,OAAO,QAAQ,IAAI,UAAU,EAAE;AAC9C,KAAK,MAAM,GAAG,QAAQ,EAAE,CAAC;AACzB,KAAK,IAAI,MAAM,KAAK,IAAI,EAAE;AAC1B,MAAM,MAAM,IAAI,IAAI,CAAC;AACrB,MAAM;AACN,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,KAAK,OAAO,IAAI,CAAC;AACjB,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjD,IAAI;AACJ,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE;AAC/B,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AACnC,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,MAAM;AACV,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,IAAI;AACJ,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE;AACvB,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,gBAAgB,EAAE;AACnB,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE;AAC/B,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AACnC,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,MAAM;AACV,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,IAAI;AACJ,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE;AACvB,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,CAAC;AACF;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,CAAC,IAAI,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC,OAAO,IAAI,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,IAAI,KAAK,GAAG;AACZ,CAAC,SAAS,EAAE,IAAI;AAChB,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE;AACxB,EAAE,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACrD,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAC5C,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACxB,GAAG,KAAK,CAAC,SAAS,GAAG;AACrB,IAAI,GAAG,EAAE;AACT,KAAK,IAAI,EAAE;AACX,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;AACnC,MAAM,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK;AACjC,MAAM,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;AACnC,MAAM,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;AACnC,MAAM,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK;AACjC,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM;AACN,KAAK,MAAM,EAAE;AACb,MAAM,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACrC,MAAM;AACN,KAAK;AACL,IAAI,IAAI,EAAE;AACV,KAAK,IAAI,EAAE;AACX,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM;AACN,KAAK,MAAM,EAAE;AACb,MAAM,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACrC,MAAM,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,MAAM,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;AACnC,MAAM,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;AACzC,MAAM,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,MAAM,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;AACnC,MAAM;AACN,KAAK;AACL,IAAI,IAAI,EAAE;AACV,KAAK,IAAI,EAAE;AACX,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACvC,MAAM;AACN,KAAK,MAAM,EAAE,EAAE;AACf,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,KAAK,IAAI,EAAE;AACX,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACrC,MAAM;AACN,KAAK,MAAM,EAAE,EAAE,CAAC,iBAAiB;AACjC,KAAK;AACL,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACpD,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC3B,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAChD,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACtB,GAAG,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACjD,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACtB,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,GAAG,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACjD,GAAG,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrC,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/C,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AACnD,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC9B,EAAE,IAAI,MAAM,EAAE;AACd,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAChC,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,yBAAyB,EAAE,SAAS,IAAI,EAAE;AAC3C,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC/C,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;AAChB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,GAAG,OAAO,GAAG,CAAC;AACd,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,EAAE;AACF,CAAC,uBAAuB,EAAE,SAAS,IAAI,EAAE;AACzC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/E,EAAE,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,EAAE;AACF,CAAC,iBAAiB,EAAE,SAAS,IAAI,EAAE,WAAW,EAAE;AAChD,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,EAAE,IAAI,YAAY,IAAI,WAAW,EAAE,OAAO;AAC1C,EAAE,IAAI,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1C,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,IAAI,YAAY,GAAG,qBAAqB,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/G,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAClE,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9C,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,EAAE,OAAO;AACT,EAAE;AACF,CAAC,iBAAiB,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE;AAC5C,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE,OAAO;AACxC,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE;AACpB,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACtB,GAAG,OAAO;AACV,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChD,GAAG,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC3C,GAAG,IAAI,WAAW,EAAE;AACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,IAAI;AACJ,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC5B,GAAG,OAAO;AACV,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACzC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxI,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC3B,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;AAC1B,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;AACjB,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AACtB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAClB,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AAChB,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AAChB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/B,IAAI,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM;AACV,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAClB,IAAI;AACJ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACvB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACrD,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAChC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAChC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,IAAI;AACJ,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACrC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI;AACJ,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAChC,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACjC,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3C,GAAG,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;AAChD,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChC,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI;AACR,KAAK,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjD,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;AAClB,IAAI,IAAI,QAAQ,EAAE;AAClB,KAAK,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACtC,MAAM,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClD,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1C,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACzC,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AACjD,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACjC,GAAG,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChC,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AAChC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAChC,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChC,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;AAC1B,GAAG,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC/B,GAAG,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5C,KAAK,SAAS;AACd,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI;AACJ,GAAG,OAAO,OAAO,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;AAC9C,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AAChE,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AACvB,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC3B,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AACpB,GAAG;AACH,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3D,GAAG,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;AACjE,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACtC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACrE,IAAI,MAAM;AACV,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC/E,IAAI;AACJ,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AACpE,GAAG,MAAM,CAAC,EAAE,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC;AAC5C,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AACvC,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,IAAI;AACJ,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACzB,GAAG,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1B,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/B,GAAG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACtE,IAAI,IAAI,MAAM,EAAE;AAChB,KAAK,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,qDAAqD,CAAC,CAAC;AACnF,KAAK,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9D,KAAK,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AAC7B,KAAK,OAAO,MAAM,CAAC;AACnB,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;AACvD,KAAK,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC3D,KAAK,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AAC7B,KAAK,OAAO,MAAM,CAAC;AACnB,KAAK,MAAM,IAAI,QAAQ,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AACpD,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC3E,KAAK,OAAO,MAAM,CAAC;AACnB,KAAK;AACL,IAAI;AACJ,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AACpD,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1E,IAAI,MAAM;AACV,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AAChE,GAAG,OAAO,MAAM,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC3C,GAAG,IAAI,QAAQ,GAAG,MAAM,CAAC;AACzB,GAAG,IAAI,MAAM,KAAK,CAAC,EAAE;AACrB,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;AAChC,IAAI,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE;AAC5B,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrC,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,QAAQ,GAAG,CAAC,EAAE;AACrB,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,OAAO,QAAQ,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7C,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AACzD,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC5E,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;AACjE,GAAG,IAAI,OAAO,KAAK,CAAC,EAAE;AACtB,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrC,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,GAAG,CAAC;AACX,GAAG,IAAI,SAAS,CAAC;AACjB,GAAG,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE;AACnD,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,IAAI,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC9B,IAAI,MAAM;AACV,IAAI,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;AAC7D,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM;AACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AACnF,MAAM;AACN,KAAK;AACL,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,KAAK,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI;AACJ,GAAG,OAAO;AACV,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,CAAC;AACL,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;AAC7D,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrC,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,SAAS,GAAG,CAAC,EAAE;AACtB,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ,GAAsB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;AACvF,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH,EAAE;AACF,CAAC,CAAC;AACF;AACA,IAAI,QAAQ,GAAG;AACf,CAAC,QAAQ,EAAE,KAAK;AAChB,CAAC,SAAS,EAAE,KAAK;AACjB,CAAC,MAAM,EAAE,IAAI;AACb,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE;AACxB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;AAC/D,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,SAAS,YAAY,CAAC,IAAI,EAAE;AAC9B,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC;AACrB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC/B,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI;AACJ,GAAG,OAAO,MAAM,CAAC;AACjB,GAAG;AACH,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE;AACtB,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,IAAI,EAAE;AACzE,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrH,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,SAAS,GAAG,EAAE;AACpD,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACzG,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;AACxD,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACjD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzH,IAAI,CAAC,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;AAChE,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACpC,EAAE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACxC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;AACnD,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnD,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS,EAAE;AACnC,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,GAAG,MAAM;AACT,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,MAAM,EAAE;AACd,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;AAC1B,GAAG,OAAO;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE;AAChB,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI;AACnB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI;AACnB,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACvC,IAAI,CAAC;AACL,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAChC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAChC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1B,IAAI;AACJ,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACrC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACjC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3C,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACjC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AAChC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;AAC1B,GAAG,IAAI,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC/B,GAAG,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC5C,KAAK,SAAS;AACd,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI;AACJ,GAAG,OAAO,OAAO,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;AAC9C,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE;AACF,CAAC,UAAU,EAAE;AACb,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3D,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,GAAG,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AACvE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACrD,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1C,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AACrB,GAAG;AACH,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC5D,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC3C,GAAG,IAAI,QAAQ,GAAG,MAAM,CAAC;AACzB,GAAG,IAAI,MAAM,KAAK,CAAC,EAAE;AACrB,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;AAChC,IAAI,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE;AAC5B,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrC,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,QAAQ,GAAG,CAAC,EAAE;AACrB,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,OAAO,QAAQ,CAAC;AACnB,GAAG;AACH,EAAE;AACF,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG;AACrB,CAAC,CAAC,EAAE,SAAS;AACb,CAAC,CAAC,EAAE,mBAAmB;AACvB,CAAC,CAAC,EAAE,mBAAmB;AACvB,CAAC,CAAC,EAAE,wBAAwB;AAC5B,CAAC,CAAC,EAAE,uBAAuB;AAC3B,CAAC,CAAC,EAAE,iDAAiD;AACrD,CAAC,CAAC,EAAE,mBAAmB;AACvB,CAAC,CAAC,EAAE,0BAA0B;AAC9B,CAAC,CAAC,EAAE,iBAAiB;AACrB,CAAC,CAAC,EAAE,mCAAmC;AACvC,CAAC,EAAE,EAAE,mBAAmB;AACxB,CAAC,EAAE,EAAE,oBAAoB;AACzB,CAAC,EAAE,EAAE,aAAa;AAClB,CAAC,EAAE,EAAE,oBAAoB;AACzB,CAAC,EAAE,EAAE,oBAAoB;AACzB,CAAC,EAAE,EAAE,0BAA0B;AAC/B,CAAC,EAAE,EAAE,6BAA6B;AAClC,CAAC,EAAE,EAAE,8BAA8B;AACnC,CAAC,EAAE,EAAE,gCAAgC;AACrC,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,aAAa;AAClB,CAAC,EAAE,EAAE,aAAa;AAClB,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,qBAAqB;AAC1B,CAAC,EAAE,EAAE,oBAAoB;AACzB,CAAC,EAAE,EAAE,uBAAuB;AAC5B,CAAC,EAAE,EAAE,gCAAgC;AACrC,CAAC,EAAE,EAAE,yBAAyB;AAC9B,CAAC,EAAE,EAAE,kBAAkB;AACvB,CAAC,EAAE,EAAE,WAAW;AAChB,CAAC,EAAE,EAAE,6BAA6B;AAClC,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,yBAAyB;AAC9B,CAAC,EAAE,EAAE,qBAAqB;AAC1B,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,kBAAkB;AACvB,CAAC,EAAE,EAAE,oBAAoB;AACzB,CAAC,EAAE,EAAE,4BAA4B;AACjC,CAAC,EAAE,EAAE,qCAAqC;AAC1C,CAAC,EAAE,EAAE,6BAA6B;AAClC,CAAC,EAAE,EAAE,wBAAwB;AAC7B,CAAC,EAAE,EAAE,+BAA+B;AACpC,CAAC,EAAE,EAAE,2BAA2B;AAChC,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,2BAA2B;AAChC,CAAC,EAAE,EAAE,mBAAmB;AACxB,CAAC,EAAE,EAAE,2BAA2B;AAChC,CAAC,EAAE,EAAE,2BAA2B;AAChC,CAAC,EAAE,EAAE,iBAAiB;AACtB,CAAC,EAAE,EAAE,4BAA4B;AACjC,CAAC,EAAE,EAAE,wBAAwB;AAC7B,CAAC,EAAE,EAAE,yBAAyB;AAC9B,CAAC,EAAE,EAAE,0BAA0B;AAC/B,CAAC,EAAE,EAAE,yBAAyB;AAC9B,CAAC,EAAE,EAAE,iBAAiB;AACtB,CAAC,EAAE,EAAE,qBAAqB;AAC1B,CAAC,EAAE,EAAE,uBAAuB;AAC5B,CAAC,EAAE,EAAE,gCAAgC;AACrC,CAAC,EAAE,EAAE,kBAAkB;AACvB,CAAC,EAAE,EAAE,2BAA2B;AAChC,CAAC,EAAE,EAAE,uCAAuC;AAC5C,CAAC,EAAE,EAAE,qBAAqB;AAC1B,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,aAAa;AAClB,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,kBAAkB;AACvB,CAAC,EAAE,EAAE,gCAAgC;AACrC,CAAC,EAAE,EAAE,+BAA+B;AACpC,CAAC,EAAE,EAAE,uBAAuB;AAC5B,CAAC,EAAE,EAAE,cAAc;AACnB,CAAC,EAAE,EAAE,iBAAiB;AACtB,CAAC,EAAE,EAAE,mBAAmB;AACxB,CAAC,EAAE,EAAE,sBAAsB;AAC3B,CAAC,EAAE,EAAE,gBAAgB;AACrB,CAAC,EAAE,EAAE,mBAAmB;AACxB,CAAC,GAAG,EAAE,qBAAqB;AAC3B,CAAC,GAAG,EAAE,mBAAmB;AACzB,CAAC,GAAG,EAAE,cAAc;AACpB,CAAC,GAAG,EAAE,sBAAsB;AAC5B,CAAC,GAAG,EAAE,UAAU;AAChB,CAAC,GAAG,EAAE,uBAAuB;AAC7B,CAAC,GAAG,EAAE,6BAA6B;AACnC,CAAC,GAAG,EAAE,gBAAgB;AACtB,CAAC,GAAG,EAAE,eAAe;AACrB,CAAC,GAAG,EAAE,0BAA0B;AAChC,CAAC,GAAG,EAAE,8BAA8B;AACpC,CAAC,GAAG,EAAE,4BAA4B;AAClC,CAAC,GAAG,EAAE,gBAAgB;AACtB,CAAC,GAAG,EAAE,kBAAkB;AACxB,CAAC,GAAG,EAAE,4BAA4B;AAClC,CAAC,GAAG,EAAE,eAAe;AACrB,CAAC,GAAG,EAAE,2BAA2B;AACjC,CAAC,GAAG,EAAE,eAAe;AACrB,CAAC,GAAG,EAAE,0BAA0B;AAChC,CAAC,GAAG,EAAE,+BAA+B;AACrC,CAAC,GAAG,EAAE,uBAAuB;AAC7B,CAAC,GAAG,EAAE,sBAAsB;AAC5B,CAAC,GAAG,EAAE,iBAAiB;AACvB,CAAC,GAAG,EAAE,eAAe;AACrB,CAAC,GAAG,EAAE,6BAA6B;AACnC,CAAC,GAAG,EAAE,sCAAsC;AAC5C,CAAC,GAAG,EAAE,4BAA4B;AAClC,CAAC,GAAG,EAAE,iCAAiC;AACvC,CAAC,GAAG,EAAE,wBAAwB;AAC9B,CAAC,GAAG,EAAE,kCAAkC;AACxC,CAAC,GAAG,EAAE,kCAAkC;AACxC,CAAC,GAAG,EAAE,iCAAiC;AACvC,CAAC,GAAG,EAAE,qCAAqC;AAC3C,CAAC,GAAG,EAAE,qCAAqC;AAC3C,CAAC,GAAG,EAAE,oBAAoB;AAC1B,CAAC,GAAG,EAAE,gBAAgB;AACtB,CAAC,GAAG,EAAE,2BAA2B;AACjC,CAAC,GAAG,EAAE,eAAe;AACrB,CAAC,GAAG,EAAE,+BAA+B;AACrC,CAAC,GAAG,EAAE,kCAAkC;AACxC,CAAC,GAAG,EAAE,qBAAqB;AAC3B,CAAC,GAAG,EAAE,cAAc;AACpB,CAAC,GAAG,EAAE,2BAA2B;AACjC,CAAC,GAAG,EAAE,0BAA0B;AAChC,CAAC,CAAC;AACF;AACA,IAAI,WAAW,GAAG;AAClB,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,GAAG,EAAE,EAAE;AACR,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,CAAC;AACV,CAAC,WAAW,EAAE,CAAC;AACf,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,CAAC;AACV,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,IAAI,EAAE,EAAE;AACT,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,QAAQ,EAAE,GAAG;AACd,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,IAAI,EAAE,GAAG;AACV,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,CAAC;AACX,CAAC,QAAQ,EAAE,GAAG;AACd,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,QAAQ,EAAE,GAAG;AACd,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,KAAK,EAAE,EAAE;AACV,CAAC,UAAU,EAAE,GAAG;AAChB,CAAC,YAAY,EAAE,GAAG;AAClB,CAAC,UAAU,EAAE,EAAE;AACf,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,YAAY,EAAE,CAAC;AAChB,CAAC,UAAU,EAAE,EAAE;AACf,CAAC,QAAQ,EAAE,EAAE;AACb,CAAC,WAAW,EAAE,EAAE;AAChB,CAAC,SAAS,EAAE,GAAG;AACf,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,UAAU,EAAE,CAAC;AACd,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,WAAW,EAAE,EAAE;AAChB,CAAC,QAAQ,EAAE,EAAE;AACb,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,SAAS,EAAE,GAAG;AACf,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,WAAW,EAAE,EAAE;AAChB,CAAC,QAAQ,EAAE,CAAC;AACZ,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,QAAQ,EAAE,EAAE;AACb,CAAC,eAAe,EAAE,EAAE;AACpB,CAAC,eAAe,EAAE,GAAG;AACrB,CAAC,aAAa,EAAE,CAAC;AACjB,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,QAAQ,EAAE,EAAE;AACb,CAAC,YAAY,EAAE,GAAG;AAClB,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,OAAO,EAAE,GAAG;AACb,CAAC,SAAS,EAAE,GAAG;AACf,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,eAAe,EAAE,EAAE;AACpB,CAAC,UAAU,EAAE,EAAE;AACf,CAAC,QAAQ,EAAE,GAAG;AACd,CAAC,CAAC;AACF;AACA,IAAI,EAAE,GAAG;AACT,CAAC,IAAI,EAAE,IAAI;AACX,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,OAAO,EAAE,EAAE;AACZ,CAAC,SAAS,EAAE,CAAC;AACb,CAAC,SAAS,EAAE,IAAI;AAChB,CAAC,WAAW,EAAE,GAAG;AACjB,CAAC,WAAW,EAAE,KAAK;AACnB,CAAC,iBAAiB,EAAE,IAAI;AACxB,CAAC,gBAAgB,EAAE,EAAE;AACrB,CAAC,QAAQ,EAAE;AACX,EAAE,SAAS,EAAE;AACb,GAAG,IAAI,EAAE,CAAC;AACV,GAAG,KAAK,EAAE,CAAC;AACX,GAAG;AACH,EAAE;AACF,CAAC,UAAU,EAAE,IAAI;AACjB,CAAC,aAAa,EAAE,EAAE;AAClB,CAAC,WAAW,EAAE,IAAI;AAClB,CAAC,cAAc,EAAE,CAAC;AAClB,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAClC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACzC,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO;AACpB,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,CAAC;AACJ,EAAE,IAAI,QAAQ,GAAG;AACjB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,aAAa,EAAE,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;AAC5B,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACrE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AACb,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;AACxB,EAAE,IAAI,YAAY,GAAG,GAAG,CAAC;AACzB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,GAAG,IAAI,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,IAAI,MAAM;AACV,IAAI;AACJ,GAAG,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AACjC,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAChD,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACpC,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACpC,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC1C,KAAK,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,KAAK,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE;AAC9C,MAAM,aAAa,EAAE,IAAI,CAAC,aAAa;AACvC,MAAM,CAAC,CAAC;AACR,KAAK,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3B,KAAK,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE;AACvB,MAAM,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG;AACH,EAAE,OAAO;AACT,GAAG,IAAI,EAAE,YAAY;AACrB,GAAG,IAAI,EAAE,OAAO;AAChB,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE;AACzB,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,OAAO,IAAI,EAAE;AACf,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACxB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;AAC5B,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC/E,IAAI;AACJ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACpD,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACtB,GAAG;AACH,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,IAAI,EAAE;AACpC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD,EAAE;AACF,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE;AAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5B,EAAE;AACF,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AACnC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AACvC,GAAG,MAAM;AACT,GAAG,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,GAAG,OAAO,OAAO,EAAE;AACnB,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE;AACpC,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACxC,KAAK,MAAM;AACX,KAAK;AACL,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;AAChC,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACpC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1C,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AACnE,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC5B,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC1D,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjC,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAChD,EAAE,MAAM,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC;AACrC,EAAE,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE;AAC7B,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE;AACxB,EAAE,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;AAC9B,EAAE;AACF,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE;AAC9B,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE;AACxB,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AAClC,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE;AACvB,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AAClC,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE;AACxB,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AAClC,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC1B,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC;AACjC,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC1B,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AAClC,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE;AACxB,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC;AACjC,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC1B,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AAClC,EAAE;AACF,CAAC,SAAS,EAAE;AACZ,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,GAAG,EAAE,IAAI;AACX,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE;AACF,CAAC,iBAAiB,EAAE,SAAS,GAAG,EAAE;AAClC,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAChC,EAAE,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACpC,GAAG,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC;AACrD,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACF,CAAC,uBAAuB,EAAE,SAAS,IAAI,EAAE;AACzC,EAAE,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAC3C,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE;AAClB,GAAG,KAAK,IAAI,GAAG,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACF,CAAC,eAAe,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE;AACxC,EAAE,IAAI,EAAE,CAAC,iBAAiB,EAAE;AAC5B,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;AACvD,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;AAC9D,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE;AAC7D,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE;AAC1B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7C,EAAE,IAAI,OAAO,EAAE,OAAO,OAAO,CAAC;AAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,IAAI,EAAE;AAChC,EAAE,IAAI;AACN,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,GAAG,OAAO,EAAE,CAAC;AACb,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;AAChB,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI;AACN,GAAG,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,OAAO,OAAO,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC7B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI;AACJ,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;AACzD,IAAI,OAAO,EAAE,CAAC;AACd,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE;AAChC,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,GAAG,OAAO,EAAE,CAAC;AACb,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,GAAG,OAAO,EAAE,CAAC;AACb,GAAG,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,GAAG,IAAI,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;AACjE,IAAI,OAAO,EAAE,CAAC;AACd,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,EAAE;AACF,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,MAAM,EAAE;AACpC,EAAE,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;AAC3B,EAAE,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC,YAAY,CAAC;AACrC,EAAE,KAAK,IAAI,EAAE,GAAG,QAAQ,EAAE,EAAE,IAAI,MAAM,EAAE,EAAE,EAAE,EAAE;AAC9C,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AACxB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC9B,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;AACzB,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACxB,EAAE;AACF,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AAClD,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;AACpB,GAAG,EAAE,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG;AAC3B,IAAI,MAAM,EAAE;AACZ,KAAK,GAAG,EAAE,WAAW;AACrB,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC;AACvB,MAAM;AACN,KAAK,GAAG,EAAE,SAAS,GAAG,EAAE;AACxB,MAAM,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACtB,MAAM;AACN,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,KAAK,GAAG,EAAE,WAAW;AACrB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,CAAC;AAC1C,MAAM;AACN,KAAK;AACL,IAAI,OAAO,EAAE;AACb,KAAK,GAAG,EAAE,WAAW;AACrB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,CAAC;AAC1C,MAAM;AACN,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,KAAK,GAAG,EAAE,WAAW;AACrB,MAAM,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,MAAM;AACN,KAAK;AACL,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;AACpC,EAAE,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE;AACxB,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,MAAM,GAAG,SAAS,CAAC;AACrB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACvC,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AAC1B,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACF,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE;AAC3B,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACxB,EAAE;AACF,CAAC,iBAAiB,EAAE;AACpB,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE;AACzB,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACzC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,EAAE,WAAW;AACrB,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE;AACtB,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;AAClB,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE;AACtB,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE;AAC3B,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACtB,EAAE;AACF,CAAC,cAAc,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE;AACpC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;AACpB,GAAG,UAAU,EAAE,GAAG;AAClB,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE;AAC1B,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzB,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,KAAK,EAAE;AAC5B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE;AACvB,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACvB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,QAAQ,EAAE;AACtC,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACvB,GAAG,QAAQ,GAAG,KAAK,CAAC;AACpB,GAAG;AACH,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC;AACtB,EAAE,IAAI,EAAE,CAAC,cAAc,GAAG,CAAC,EAAE;AAC7B,GAAG,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,cAAc,GAAG,yEAAyE,CAAC,CAAC;AACpH,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB,EAAE,SAAS,UAAU,CAAC,OAAO,EAAE;AAC/B,GAAG,MAAM,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACjC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC;AACvB,GAAG,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE;AACzB,GAAG,IAAI,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvB,KAAK,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,KAAK,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO;AACX,IAAI;AACJ,GAAG,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE;AACrC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACrB,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE;AACjC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,IAAI;AACJ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5C,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;AACzC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,MAAM,IAAI,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,UAAU,KAAK,GAAG,CAAC;AAChC,EAAE,IAAI,MAAM,GAAG,CAAC,UAAU,CAAC;AAC3B,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE;AACvB,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE;AAC1C,IAAI,YAAY,EAAE,KAAK;AACvB,IAAI,CAAC,CAAC;AACN,GAAG,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACtB,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC7B,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,KAAK,GAAG;AACd,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,UAAU,EAAE,UAAU;AACzB,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpC,EAAE,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AAC1B,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;AACzB,EAAE,IAAI,IAAI,EAAE;AACZ,GAAG,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC;AACvB,GAAG,MAAM,IAAI,IAAI,EAAE;AACnB,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACxB,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE;AAC/B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE;AACzC,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACrC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;AAC3B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACnD,GAAG,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,GAAG,OAAO,OAAO,EAAE;AACnB,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AACjC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9C,KAAK,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7C,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AAChC,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAClC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE;AAC9C,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3C,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAC9B,EAAE,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC;AACzC,EAAE,IAAI,IAAI,IAAI,CAAC;AACf,EAAE,IAAI,IAAI,KAAK,CAAC;AAChB,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjC,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAC7B,EAAE,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC;AACzC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AACpB,EAAE,IAAI,IAAI,KAAK,CAAC;AAChB,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjC,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AACjC,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS;AAC1B,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,GAAG,IAAI;AACP,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtB,IAAI,CAAC,OAAO,CAAC,EAAE;AACf,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/B,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAClC,EAAE,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;AAClC,GAAG,GAAG,GAAG,IAAI,CAAC;AACd,GAAG,IAAI,GAAG,GAAG,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,IAAI,CAAC;AACf,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,OAAO,EAAE;AACrC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACjC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE;AACtC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3B,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,QAAQ,EAAE;AACtC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3C,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3C,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;AAC/B,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACxD,EAAE,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;AACvC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClD,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACzD,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACrD,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC;AACf,EAAE,IAAI;AACN,GAAG,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC/C,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;AAChB,EAAE,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC7B,GAAG,OAAO;AACV,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACvD,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,GAAG,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChG,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;AAChC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AAC1E,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,KAAK,OAAO,EAAE;AAC3B,GAAG,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC9C,GAAG,IAAI,OAAO,EAAE;AAChB,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrC,IAAI;AACJ,GAAG;AACH,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE;AAC5C,IAAI,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5D,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,uCAAuC,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACvH,GAAG;AACH,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC9B,EAAE,IAAI;AACN,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxD,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,MAAM,CAAC,CAAC;AACX,GAAG,SAAS;AACZ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChG,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,qCAAqC,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACrH,GAAG;AACH,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE;AACvB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC7B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,yCAAyC,GAAG,IAAI,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACjG,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AACtF,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,uCAAuC,GAAG,IAAI,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/F,GAAG;AACH,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE;AACzB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE;AACxB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAClD,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC/B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC7B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;AAC9C,IAAI,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,yCAAyC,GAAG,IAAI,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACjG,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;AACtF,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,uCAAuC,GAAG,IAAI,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/F,GAAG;AACH,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAC1B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACnC,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC/B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,EAAE;AACF,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,UAAU,EAAE;AAClC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,CAAC,UAAU;AACtB,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE;AACvB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;AACzC,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,EAAE,CAAC,UAAU;AACvB,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACtB,GAAG,MAAM;AACT,GAAG,IAAI,GAAG,IAAI,CAAC;AACf,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;AAC9B,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI;AACxC,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACxB,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAC9B,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE;AAC5B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE;AAC7C,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,EAAE,CAAC,UAAU;AACvB,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACtB,GAAG,MAAM;AACT,GAAG,IAAI,GAAG,IAAI,CAAC;AACf,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;AAC9B,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACxB,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AAClC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE;AAC/B,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACtB,GAAG,MAAM;AACT,GAAG,IAAI,GAAG,IAAI,CAAC;AACf,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC9B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC7B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9C,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;AAC9B,GAAG,IAAI,EAAE,GAAG;AACZ,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACxB,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;AAC9B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACtC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAChC,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;AAC9B,GAAG,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AACpC,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;AACrD,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE;AACnB,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC1E,EAAE,IAAI,GAAG,OAAO,IAAI,KAAK,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;AAClD,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;AAClB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9B,GAAG,MAAM;AACT,GAAG,IAAI,GAAG,CAAC,CAAC;AACZ,GAAG;AACH,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,IAAI,GAAG,IAAI,CAAC;AACf,GAAG,MAAM;AACT,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,IAAI;AACP,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACrC,KAAK,MAAM,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACvB,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;AACjB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC;AACtB,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;AAClB,GAAG,IAAI,IAAI,EAAE;AACb,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;AACrB,KAAK,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,MAAM;AACV,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACnC,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC7C,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,GAAG,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG,IAAI,OAAO,EAAE;AAChB,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrC,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE;AACnB,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;AACjC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC;AAC/B,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AACzB,GAAG,KAAK,EAAE,KAAK;AACf,GAAG,QAAQ,EAAE,IAAI;AACjB,GAAG,QAAQ,EAAE,CAAC;AACd,GAAG,UAAU,EAAE,IAAI,CAAC,UAAU;AAC9B,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,KAAK;AACf,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACvB,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAC9B,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;AAC9C,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;AACxC,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;AAChC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,0CAA0C,GAAG,IAAI,CAAC,CAAC;AAC3D,IAAI;AACJ,GAAG;AACH,EAAE,IAAI;AACN,GAAG,IAAI,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;AAC1C,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACjC,KAAK,aAAa,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AACjD,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACjC,KAAK,aAAa,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;AAClD,KAAK;AACL,IAAI,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC3D,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,qCAAqC,GAAG,IAAI,GAAG,gCAAgC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACpG,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE;AACzB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI;AACN,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;AAChC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,MAAM,CAAC,CAAC;AACX,GAAG,SAAS;AACZ,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;AACnB,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC5B,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1C,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;AACrD,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AACjD,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrE,EAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvB,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,EAAE;AACF,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC1D,EAAE,IAAI,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;AAClC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACtC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAC/B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC;AAChD,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC9B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC/B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACnF,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC;AAC7C,EAAE,OAAO,SAAS,CAAC;AACnB,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AACnE,EAAE,IAAI,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;AAClC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACtC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;AAChC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE;AAC9C,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC;AAChD,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC9B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC/B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC/F,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC;AAChD,EAAE,IAAI;AACN,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9G,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,wCAAwC,GAAG,MAAM,CAAC,IAAI,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACvG,GAAG;AACH,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5C,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AACjC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACtC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnE,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;AACnC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,EAAE;AACF,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;AAChE,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AAC/E,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE;AACtC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAC/B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChF,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;AAC5D,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;AAC3C,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC5E,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACnC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;AAChC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAChC,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC5C,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9D,GAAG,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AACpE,GAAG;AACH,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACrC,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAChC,GAAG,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACzC,GAAG,GAAG,GAAG,GAAG,CAAC;AACb,GAAG;AACH,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnB,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACvC,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;AACjC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,GAAG,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,GAAG,IAAI,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AACpE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpE,GAAG,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACvC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACtE,GAAG,MAAM;AACT,GAAG,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnB,EAAE;AACF,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC;AACxB,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE;AACvB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;AAC5B,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrD,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;AAC/B,EAAE;AACF,CAAC,wBAAwB,EAAE,WAAW;AACtC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACpB,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC7B,EAAE;AACF,CAAC,oBAAoB,EAAE,WAAW;AAClC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnB,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACtC,GAAG,IAAI,EAAE,WAAW;AACpB,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ,GAAG,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;AACxD,IAAI,OAAO,MAAM,CAAC;AAClB,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;AACtD,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACvD,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,IAAI,aAAa,GAAG,eAAe,EAAE,CAAC;AACxC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACnD,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AACpD,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACvB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC3B,EAAE;AACF,CAAC,wBAAwB,EAAE,WAAW;AACtC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACpB,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACzC,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5B,EAAE,EAAE,CAAC,KAAK,CAAC;AACX,GAAG,KAAK,EAAE,WAAW;AACrB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,KAAK,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACpC,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;AACrB,MAAM,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,GAAG;AAChB,OAAO,MAAM,EAAE,IAAI;AACnB,OAAO,KAAK,EAAE;AACd,QAAQ,UAAU,EAAE,MAAM;AAC1B,QAAQ;AACR,OAAO,QAAQ,EAAE;AACjB,QAAQ,QAAQ,EAAE,WAAW;AAC7B,SAAS,OAAO,MAAM,CAAC,IAAI,CAAC;AAC5B,SAAS;AACT,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;AACvB,MAAM,OAAO,GAAG,CAAC;AACjB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;AAC1B,EAAE;AACF,CAAC,qBAAqB,EAAE,WAAW;AACnC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;AACvB,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,GAAG,MAAM;AACT,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;AACxB,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,GAAG,MAAM;AACT,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;AACxB,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,GAAG,MAAM;AACT,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACvC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACzC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,4BAA4B,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AACxE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,6BAA6B,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAC3E,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,6BAA6B,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAC3E,EAAE;AACF,CAAC,gBAAgB,EAAE,WAAW;AAC9B,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO;AAC5B,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AACnD,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AACnC,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;AACjC,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACtB,MAAM,MAAM;AACZ,MAAM;AACN,KAAK;AACL,IAAI,CAAC;AACL,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxB,GAAG,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACxC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;AACnB,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;AACzC,KAAK,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;AAC7B,KAAK,QAAQ,EAAE,IAAI;AACnB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AACxC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC;AACtD,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AAChC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,2BAA2B,CAAC;AAC9D,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC,UAAU,EAAE,WAAW;AACxB,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC;AACxB,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC3B,EAAE,EAAE,CAAC,wBAAwB,EAAE,CAAC;AAChC,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC;AAC5B,EAAE,EAAE,CAAC,wBAAwB,EAAE,CAAC;AAChC,EAAE,EAAE,CAAC,WAAW,GAAG;AACnB,GAAG,OAAO,EAAE,KAAK;AACjB,GAAG,UAAU,EAAE,QAAQ;AACvB,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AACtC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,8KAA8K,CAAC,CAAC;AAC/M,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC7B,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC;AACxB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7C,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAC7B,EAAE;AACF,CAAC,IAAI,EAAE,WAAW;AAClB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC9B,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,EAAE,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG,IAAI,CAAC,MAAM,EAAE;AAChB,IAAI,SAAS;AACb,IAAI;AACJ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,GAAG;AACH,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,QAAQ,EAAE;AACtC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,IAAI,OAAO,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AAChC,EAAE,IAAI,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC;AAC5B,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,mBAAmB,EAAE;AACjD,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACtD,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;AAClB,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC;AACrB,GAAG,MAAM;AACT,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE;AACF,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,mBAAmB,EAAE;AAClD,EAAE,IAAI;AACN,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,EAAE,CAAC,mBAAmB;AAChC,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACtB,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;AAChB,EAAE,IAAI,GAAG,GAAG;AACZ,GAAG,MAAM,EAAE,KAAK;AAChB,GAAG,MAAM,EAAE,KAAK;AAChB,GAAG,KAAK,EAAE,CAAC;AACX,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,IAAI,EAAE,IAAI;AACb,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,CAAC;AACJ,EAAE,IAAI;AACN,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,CAAC,CAAC;AACN,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC3B,GAAG,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,GAAG,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;AAClC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AAChC,IAAI,MAAM,EAAE,CAAC,mBAAmB;AAChC,IAAI,CAAC,CAAC;AACN,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACrB,GAAG,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1B,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,GAAG,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC;AACpC,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;AACvD,EAAE,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AACxC,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE;AACvB,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AAC1B,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS;AACvB,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,GAAG,IAAI;AACP,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACtB,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;AACjB,GAAG,MAAM,GAAG,OAAO,CAAC;AACpB,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE;AACnE,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACxF,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE;AACF,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;AACzE,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;AACxG,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,EAAE,IAAI,IAAI,EAAE;AACZ,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACjC,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjF,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI;AACJ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AAC9B,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACrD,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACrD,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACxF,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;AACzD,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE;AACzB,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE;AAC1B,IAAI,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC5B,IAAI;AACJ,GAAG,KAAK,EAAE,SAAS,MAAM,EAAE;AAC3B,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACzD,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;AAChB,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;AACvD,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,KAAK,IAAI,MAAM,CAAC;AAChB,KAAK,IAAI;AACT,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;AACvB,MAAM,CAAC,OAAO,CAAC,EAAE;AACjB,MAAM,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM;AACN,KAAK,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;AAClD,MAAM,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM;AACN,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM;AACxD,KAAK,SAAS,EAAE,CAAC;AACjB,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,SAAS,EAAE;AACnB,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,SAAS,CAAC;AACrB,IAAI;AACJ,GAAG,KAAK,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;AACxD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,KAAK,IAAI;AACT,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,CAAC,OAAO,CAAC,EAAE;AACjB,MAAM,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM;AACN,KAAK;AACL,IAAI,IAAI,MAAM,EAAE;AAChB,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,EAAE;AACF,CAAC,aAAa,EAAE,SAAS,GAAG,EAAE;AAC9B,EAAE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC;AAC5E,EAAE,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AAC7C,GAAG,MAAM,IAAI,KAAK,CAAC,kMAAkM,CAAC,CAAC;AACvN,GAAG,MAAM,IAAI,KAAK,EAAE;AACpB,GAAG,IAAI;AACP,IAAI,GAAG,CAAC,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5D,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxC,IAAI,CAAC,OAAO,CAAC,EAAE;AACf,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACpE,GAAG;AACH,EAAE;AACF,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;AAChE,EAAE,SAAS,cAAc,GAAG;AAC5B,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,GAAG;AACH,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,kBAAkB,CAAC,GAAG,EAAE;AAClE,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;AACzC,IAAI,OAAO,SAAS,CAAC;AACrB,IAAI;AACJ,GAAG,IAAI,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AAC1C,GAAG,IAAI,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3C,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;AAC7C,GAAG,CAAC;AACJ,EAAE,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,4BAA4B,CAAC,MAAM,EAAE;AACzF,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,GAAG,CAAC;AACJ,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,0BAA0B,GAAG;AAC/E,GAAG,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;AAClC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3I,GAAG,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpE,GAAG,IAAI,MAAM,CAAC;AACd,GAAG,IAAI,cAAc,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,MAAM,KAAK,OAAO,CAAC;AAChG,GAAG,IAAI,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC;AAC5F,GAAG,IAAI,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/B,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,UAAU,CAAC;AAC/C,GAAG,IAAI,KAAK,GAAG,SAAS,IAAI,EAAE,EAAE,EAAE;AAClC,IAAI,IAAI,IAAI,GAAG,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,0BAA0B,CAAC,CAAC;AACtG,IAAI,IAAI,EAAE,GAAG,UAAU,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,qCAAqC,CAAC,CAAC;AAC3G,IAAI,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;AACnC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC5F,IAAI,IAAI,OAAO,UAAU,IAAI,WAAW,EAAE,GAAG,CAAC,YAAY,GAAG,aAAa,CAAC;AAC3E,IAAI,IAAI,GAAG,CAAC,gBAAgB,EAAE;AAC9B,KAAK,GAAG,CAAC,gBAAgB,CAAC,oCAAoC,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,IAAI,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5I,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;AACpC,KAAK,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC/C,KAAK,MAAM;AACX,KAAK,OAAO,kBAAkB,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,CAAC;AACL,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC;AACxB,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,QAAQ,EAAE;AAC9C,IAAI,IAAI,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACrC,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;AAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;AACxC,IAAI,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;AAC3D,KAAK,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5F,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,QAAQ,IAAI,CAAC,UAAU,EAAE;AAChC,IAAI,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;AAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACvC,IAAI,SAAS,GAAG,UAAU,CAAC;AAC3B,IAAI,GAAG,CAAC,6EAA6E,CAAC,CAAC;AACvF,IAAI;AACJ,GAAG,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;AAC7B,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC/B,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,GAAG,CAAC;AACJ,EAAE,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AAC7C,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,qHAAqH,CAAC;AAC3J,GAAG,IAAI,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;AACxC,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACtC,IAAI,MAAM,EAAE;AACZ,KAAK,GAAG,EAAE,WAAW;AACrB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC1B,OAAO;AACP,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC;AAC1B,MAAM;AACN,KAAK;AACL,IAAI,SAAS,EAAE;AACf,KAAK,GAAG,EAAE,WAAW;AACrB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC1B,OAAO;AACP,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC;AAC7B,MAAM;AACN,KAAK;AACL,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,UAAU,GAAG;AACpB,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,CAAC;AACL,GAAG,MAAM;AACT,GAAG,IAAI,UAAU,GAAG;AACpB,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC3B,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;AACvC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE;AAC7B,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,GAAG,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAChC,GAAG,SAAS,EAAE;AACd,IAAI,GAAG,EAAE,WAAW;AACpB,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjC,KAAK;AACL,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,UAAU,GAAG,EAAE,CAAC;AACtB,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AAC7B,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,iBAAiB,GAAG;AAClD,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACrC,IAAI,CAAC;AACL,GAAG,CAAC,CAAC;AACL,EAAE,UAAU,CAAC,IAAI,GAAG,SAAS,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AACvF,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1B,GAAG,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,MAAM;AACV,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI;AACJ,GAAG,OAAO,IAAI,CAAC;AACf,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/B,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE;AACzH,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,EAAE,IAAI,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3E,EAAE,IAAI,GAAG,GAAG,sBAAsB,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;AACrD,EAAE,SAAS,WAAW,CAAC,SAAS,EAAE;AAClC,GAAG,SAAS,MAAM,CAAC,SAAS,EAAE;AAC9B,IAAI,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC;AAC/B,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,KAAK,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;AACzB,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI;AACJ,GAAG,IAAI,OAAO,GAAG,KAAK,CAAC;AACvB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AACrD,IAAI,IAAI,OAAO,EAAE,OAAO;AACxB,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE;AACvC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW;AAC9D,MAAM,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7B,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,CAAC;AACR,KAAK,OAAO,GAAG,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACxB,EAAE,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC9B,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE;AAC9C,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAI,EAAE,OAAO,CAAC,CAAC;AACf,GAAG,MAAM;AACT,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACpB,GAAG;AACH,EAAE;AACF,CAAC,SAAS,EAAE,WAAW;AACvB,EAAE,OAAO,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,WAAW,CAAC;AACjG,EAAE;AACF,CAAC,OAAO,EAAE,WAAW;AACrB,EAAE,OAAO,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7C,EAAE;AACF,CAAC,UAAU,EAAE,EAAE;AACf,CAAC,aAAa,EAAE,WAAW;AAC3B,CAAC,aAAa,EAAE,SAAS,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACjD,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC;AACnC,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC;AACrC,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AACjC,EAAE,IAAI;AACN,GAAG,IAAI,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;AACjE,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,WAAW,CAAC,eAAe,GAAG,SAAS,2BAA2B,GAAG;AACvE,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;AACtB,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;AAC/B,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAC1C,GAAG,CAAC;AACJ,EAAE,WAAW,CAAC,SAAS,GAAG,SAAS,qBAAqB,GAAG;AAC3D,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;AAC/B,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,WAAW,CAAC,CAAC;AACvE,GAAG,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACzD,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9C,GAAG,SAAS,MAAM,GAAG;AACrB,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC;AAC5C,IAAI;AACJ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AAChC,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3E,IAAI,UAAU,CAAC,SAAS,GAAG,SAAS,oBAAoB,GAAG;AAC3D,KAAK,EAAE,EAAE,CAAC;AACV,KAAK,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,OAAO,GAAG,SAAS,kBAAkB,GAAG;AACvD,KAAK,IAAI,EAAE,CAAC;AACZ,KAAK,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,CAAC,CAAC;AACN,GAAG,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AACjC,GAAG,CAAC;AACJ,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AAChC,EAAE;AACF,CAAC,eAAe,EAAE,SAAS,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnD,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC;AACnC,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC;AACrC,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AACjC,EAAE,IAAI;AACN,GAAG,IAAI,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;AACjE,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC;AACxC,EAAE,WAAW,CAAC,SAAS,GAAG,SAAS,qBAAqB,GAAG;AAC3D,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;AAC/B,GAAG,IAAI;AACP,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,CAAC;AACvE,IAAI,CAAC,OAAO,CAAC,EAAE;AACf,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,OAAO;AACX,IAAI;AACJ,GAAG,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACzD,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9C,GAAG,SAAS,MAAM,GAAG;AACrB,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC;AAC5C,IAAI;AACJ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AAChC,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,UAAU,CAAC,SAAS,GAAG,SAAS,oBAAoB,GAAG;AAC3D,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACtC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,MAAM;AACN,KAAK,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrG,KAAK,EAAE,EAAE,CAAC;AACV,KAAK,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,OAAO,GAAG,SAAS,kBAAkB,GAAG;AACvD,KAAK,IAAI,EAAE,CAAC;AACZ,KAAK,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,CAAC,CAAC;AACN,GAAG,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AACjC,GAAG,CAAC;AACJ,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AAChC,EAAE;AACF,CAAC,YAAY,EAAE,WAAW;AAC1B,EAAE,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACzE,EAAE;AACF,CAAC,YAAY,EAAE,WAAW;AAC1B,EAAE,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAClE,EAAE;AACF,CAAC,UAAU,EAAE,WAAW;AACxB,EAAE,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAClE,EAAE;AACF,CAAC,QAAQ,EAAE,WAAW;AACtB,EAAE,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC/D,EAAE;AACF,CAAC,SAAS,EAAE,WAAW;AACvB,EAAE,KAAK,CAAC,oEAAoE,CAAC,CAAC;AAC9E,EAAE;AACF,CAAC,eAAe,EAAE,WAAW;AAC7B,EAAE,KAAK,CAAC,iEAAiE,CAAC,CAAC;AAC3E,EAAE;AACF,CAAC,CAAC;AACF;AACA,IAAI,QAAQ,GAAG;AACf,CAAC,QAAQ,EAAE,EAAE;AACb,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,WAAW,EAAE,SAAS,KAAK,EAAE,IAAI,EAAE;AACpC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACvB,GAAG,IAAI,GAAG,CAAC;AACX,GAAG,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE;AACvB,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACnB,IAAI,MAAM;AACV,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC;AACzB,IAAI;AACJ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AACnC,EAAE,IAAI;AACN,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACnF,IAAI,OAAO,CAAC,EAAE,CAAC;AACf,IAAI;AACJ,GAAG,MAAM,CAAC,CAAC;AACX,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC9B,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAClC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACpC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACrC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AACnC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AACnC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACpC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3P,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/B,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACtC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzD,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzD,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzD,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACzP,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACzE,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AACrD,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AAC9C,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/C,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE;AAC/B,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5E,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AACpC,EAAE,QAAQ,IAAI,GAAG,KAAK;AACtB,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,IAAI,CAAC;AACZ,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,IAAI,CAAC;AACZ,EAAE,KAAK,KAAK;AACZ,GAAG,MAAM;AACT;AACA,EAAE;AACF,GAAG,OAAO,CAAC,EAAE,CAAC;AACd,GAAG;AACH,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC1C,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAC/B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACjC,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AACtC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;AAC7B,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE;AACjC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AAClB,GAAG,OAAO,CAAC,EAAE,CAAC;AACd,GAAG;AACH,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACrB,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,GAAG,OAAO,CAAC,EAAE,CAAC;AACd,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC;AAC9B,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAChD,GAAG,OAAO,CAAC,CAAC,CAAC;AACb,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AACzC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACjC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;AAC1D,EAAE;AACF,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AAChD,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACvD,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3B,GAAG,GAAG,IAAI,IAAI,CAAC;AACf,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM;AACzB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACxD,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3B,GAAG,GAAG,IAAI,IAAI,CAAC;AACf,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,OAAO,EAAE,SAAS;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;AACxC,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AACxB,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,MAAM,EAAE,SAAS,GAAG,EAAE;AACvB,EAAE,IAAI,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAC9B,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE;AAC/B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACF,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,IAAI,EAAE;AAC5B,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7D,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,CAAC;AACF;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AACpC,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvB,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5C,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE;AACjC,CAAC,IAAI;AACL,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACtB,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3C,CAAC,IAAI;AACL,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1C,CAAC,OAAO,KAAK,CAAC;AACd,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;AAC1C,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5B,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,QAAQ,GAAG;AACb,EAAE,KAAK,CAAC;AACR,GAAG;AACH,IAAI,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE;AACjB,KAAK,OAAO,CAAC,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3D,IAAI,OAAO,SAAS,CAAC,EAAE,CAAC;AACxB,IAAI;AACJ;AACA,EAAE,KAAK,CAAC,CAAC;AACT,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,CAAC,CAAC;AACZ;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC;AACvB;AACA,EAAE,KAAK,CAAC;AACR,GAAG;AACH,IAAI,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC7B,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC;AACxB,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE,KAAK,EAAE;AACT,GAAG;AACH,IAAI,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,EAAE;AACT,GAAG,OAAO,CAAC,CAAC;AACZ;AACA,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,CAAC,EAAE,CAAC;AACd;AACA,EAAE,KAAK,CAAC;AACR,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChB,GAAG,OAAO,CAAC,CAAC,CAAC;AACb;AACA,EAAE;AACF,GAAG;AACH,IAAI,OAAO,CAAC,EAAE,CAAC;AACf,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE;AACjC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpD,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;AACjD,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAC7B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9C,EAAE,IAAI,IAAI,GAAG,gBAAgB,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAC9C,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,GAAG,CAAC;AACb,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,CAAC,OAAO,gBAAgB,EAAE,CAAC;AAC3B,CAAC;AACD;AACA,SAAS,aAAa,GAAG;AACzB,CAAC,OAAO,EAAE,CAAC;AACX,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;AACvC,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5B,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,QAAQ,EAAE;AACZ,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChC,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK,CAAC;AACb,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChC,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChC,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC9B,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChC,IAAI,OAAO,CAAC,EAAE,CAAC;AACf,IAAI;AACJ;AACA,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC9B,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACtC,IAAI;AACJ;AACA,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChC,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE,KAAK,KAAK;AACZ,GAAG;AACH,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChC,IAAI,OAAO,CAAC,CAAC;AACb,IAAI;AACJ;AACA,EAAE;AACF,GAAG,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;AACnC,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9C,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE;AACvD,CAAC,GAAG,KAAK,EAAE,CAAC;AACZ,CAAC,IAAI,GAAG,CAAC;AACT,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC;AACvB,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE;AAC/C,EAAE,OAAO,CAAC,EAAE,CAAC;AACb,EAAE;AACF,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE;AACzB,EAAE,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,EAAE,SAAS,GAAG,IAAI,CAAC;AACnB,EAAE,MAAM;AACR,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACvB,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAChB,EAAE,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;AAC5B,EAAE;AACF,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;AAC1B,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,CAAC;AACH,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE;AACvD,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACvD,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;AAClC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AACrC,EAAE,OAAO,CAAC,EAAE,CAAC;AACb,EAAE;AACF,CAAC,IAAI,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrB,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;AACvB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrC,EAAE,IAAI,MAAM,EAAE;AACd,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;AACtB,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,IAAI;AACJ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;AACtB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,GAAG;AACH,EAAE;AACF,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC3C,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5B,CAAC,IAAI;AACL,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AAC7C,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjB,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7C,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClB,EAAE;AACF,CAAC;AACD;AACA,SAAS,MAAM,GAAG;AAClB,CAAC,KAAK,EAAE,CAAC;AACT,CAAC;AACD;AACA,IAAI,mBAAmB,CAAC;AACxB;AACA,IAAI,mBAAmB,EAAE;AACzB,CAAC,mBAAmB,GAAG,WAAW;AAClC,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACjC,EAAE,CAAC;AACH,CAAC,MAAM,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAC3C,CAAC,mBAAmB,GAAG,OAAO,CAAC;AAC/B,CAAC,MAAM,mBAAmB,GAAG,WAAW;AACxC,CAAC,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC1B,CAAC,CAAC;AACF;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AAChD,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AACzC,CAAC;AACD;AACA,SAAS,yBAAyB,GAAG;AACrC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC;AACtB,CAAC;AACD;AACA,SAAS,yBAAyB,CAAC,IAAI,EAAE;AACzC,CAAC,IAAI;AACL,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;AAC3D,EAAE,0BAA0B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChD,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,KAAK,CAAC,yDAAyD,GAAG,MAAM,CAAC,UAAU,GAAG,YAAY,GAAG,IAAI,GAAG,yBAAyB,GAAG,CAAC,CAAC,CAAC;AACrJ,EAAE;AACF,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,aAAa,EAAE;AAChD,CAAC,aAAa,GAAG,aAAa,KAAK,CAAC,CAAC;AACrC,CAAC,IAAI,OAAO,GAAG,yBAAyB,EAAE,CAAC;AAC3C,CAAC,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;AACjC,CAAC,IAAI,WAAW,GAAG,UAAU,CAAC;AAC9B,CAAC,IAAI,aAAa,GAAG,WAAW,EAAE;AAClC,EAAE,GAAG,CAAC,2CAA2C,GAAG,aAAa,GAAG,2BAA2B,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;AAC3H,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACF,CAAC,IAAI,WAAW,GAAG,QAAQ,CAAC;AAC5B,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE;AACnD,EAAE,IAAI,iBAAiB,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;AACvD,EAAE,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC;AAC7E,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/G,EAAE,IAAI,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACvD,EAAE,IAAI,WAAW,EAAE;AACnB,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE;AACF,CAAC,GAAG,CAAC,+BAA+B,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,4BAA4B,CAAC,CAAC;AACxG,CAAC,OAAO,KAAK,CAAC;AACd,CAAC;AACD;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,CAAC,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;AACnC,CAAC,OAAO,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,EAAE,EAAE;AACjD,CAAC;AACD;AACA,IAAI,GAAG,GAAG,EAAE,CAAC;AACb;AACA,SAAS,iBAAiB,GAAG;AAC7B,CAAC,OAAO,WAAW,IAAI,gBAAgB,CAAC;AACxC,CAAC;AACD;AACA,SAAS,aAAa,GAAG;AACzB,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC;AAClI,EAAE,IAAI,GAAG,GAAG;AACZ,GAAG,MAAM,EAAE,UAAU;AACrB,GAAG,SAAS,EAAE,UAAU;AACxB,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,KAAK,EAAE,GAAG;AACb,GAAG,MAAM,EAAE,gBAAgB;AAC3B,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,GAAG,EAAE,iBAAiB,EAAE;AAC3B,GAAG,CAAC;AACJ,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;AACrB,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;AACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;AAClC,EAAE;AACF,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC;AAC9B,CAAC;AACD;AACA,SAAS,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE;AAC9C,CAAC,IAAI;AACL,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;AAClB,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE;AAC9C,GAAG,IAAI,GAAG,GAAG,WAAW,GAAG,OAAO,CAAC;AACnC,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACxC,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE;AAC/D,CAAC,IAAI;AACL,EAAE,IAAI,OAAO,GAAG,aAAa,EAAE,CAAC;AAChC,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAC/C,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;AAClB,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AACnC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;AAC3C,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,SAAS,CAAC,EAAE,EAAE;AACvB,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnB,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE;AAClC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzF,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;AACzC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAClD,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE;AAClE,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,IAAI,WAAW,GAAG,UAAU,CAAC;AAC/B,EAAE,IAAI,MAAM,GAAG,WAAW,GAAG,WAAW,IAAI,UAAU,KAAK,CAAC,CAAC,CAAC;AAC9D,EAAE,IAAI,YAAY,GAAG,gBAAgB,CAAC;AACtC,EAAE,IAAI,MAAM,IAAI,CAAC,YAAY,IAAI,MAAM,IAAI,YAAY,EAAE;AACzD,GAAG,OAAO,CAAC,EAAE,CAAC;AACd,GAAG;AACH,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACvQ,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/E,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9E,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,EAAE,EAAE;AACtB,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;AACpD,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;AAC1C,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACnD,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE;AACF,CAAC;AACD;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACtB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5C,CAAC,OAAO,CAAC,CAAC;AACV,CAAC;AACD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAE1B,CAAC;AACD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AACD;AACA,SAAS,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE;AAClC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACb,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AAClD,CAAC,OAAO,GAAG,CAAC;AACZ,CAAC;AACD;AACA,IAAI,iBAAiB,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3E;AACA,IAAI,oBAAoB,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9E;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE;AAC/B,CAAC,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE;AAClB,EAAE,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD,EAAE,IAAI,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACxC,EAAE,IAAI,kBAAkB,GAAG,CAAC,IAAI,GAAG,iBAAiB,GAAG,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAC3F,EAAE,IAAI,IAAI,GAAG,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;AACrD,GAAG,IAAI,IAAI,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACtD,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,GAAG,IAAI,YAAY,GAAG,EAAE,EAAE;AAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,MAAM;AACV,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AACnD,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7C,GAAG,OAAO,OAAO,CAAC;AAClB,GAAG;AACH,EAAE;AACF,CAAC,OAAO,OAAO,CAAC;AAChB,CAAC;AACD;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;AAC3C,CAAC,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,IAAI,IAAI,GAAG;AACZ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACzB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE;AAC/C,EAAE,CAAC;AACH,CAAC,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC,IAAI,iBAAiB,GAAG;AACzB,EAAE,IAAI,EAAE,sBAAsB;AAC9B,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,IAAI,EAAE,aAAa;AACrB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,UAAU;AACnB,EAAE,KAAK,EAAE,UAAU;AACnB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,CAAC;AACH,CAAC,KAAK,IAAI,IAAI,IAAI,iBAAiB,EAAE;AACrC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,EAAE;AACF,CAAC,IAAI,QAAQ,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACjG,CAAC,IAAI,MAAM,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC3I,CAAC,SAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACrD,EAAE,IAAI,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;AACvE,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;AAC9B,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,EAAE;AACF,CAAC,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,EAAE,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,EAAE;AACF,CAAC,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE;AACrC,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE;AACtB,GAAG,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,IAAI,OAAO,CAAC;AACd,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE;AACxE,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;AACnE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACrD,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;AACF,CAAC,SAAS,qBAAqB,CAAC,SAAS,EAAE;AAC3C,EAAE,QAAQ,SAAS,CAAC,MAAM,EAAE;AAC5B,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACxD;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,SAAS,CAAC;AACpB;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACxD;AACA,EAAE,KAAK,CAAC;AACR,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACxD,GAAG;AACH,EAAE;AACF,CAAC,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9E,EAAE,IAAI,iBAAiB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,EAAE,IAAI,iBAAiB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,EAAE,IAAI,sBAAsB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AACxE,EAAE,IAAI,sBAAsB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AACxE,EAAE,IAAI,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC3D,GAAG,IAAI,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5D,IAAI,OAAO,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACtC,IAAI,MAAM;AACV,IAAI,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAClC,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,OAAO,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACrC,GAAG;AACH,EAAE;AACF,CAAC,IAAI,iBAAiB,GAAG;AACzB,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAClC,GAAG,OAAO,YAAY,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,GAAG,IAAI,UAAU,IAAI,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,MAAM,IAAI,UAAU,GAAG,EAAE,EAAE,UAAU,IAAI,EAAE,CAAC;AACpF,GAAG,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,iBAAiB,GAAG,oBAAoB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpJ,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,IAAI,EAAE,WAAW;AACnB,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AAC/C,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI,MAAM;AACV,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,IAAI,EAAE,WAAW;AACnB,GAAG,OAAO,IAAI,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,GAAG,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACrG,GAAG,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1E,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;AAC/C,IAAI,IAAI,0BAA0B,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,iBAAiB,GAAG,oBAAoB,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7J,IAAI,IAAI,0BAA0B,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;AAChE,IAAI,IAAI,IAAI,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3F,IAAI,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAI;AACJ,GAAG,OAAO,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClE,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,iBAAiB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,GAAG,IAAI,iBAAiB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,GAAG,IAAI,sBAAsB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AACzE,GAAG,IAAI,sBAAsB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AACzE,GAAG,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9E,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE;AAC1D,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG,IAAI,YAAY,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;AAC3D,IAAI,OAAO,IAAI,CAAC;AAChB,IAAI;AACJ,GAAG,IAAI,cAAc,CAAC;AACtB,GAAG,IAAI,sBAAsB,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE;AACnE,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,sBAAsB,CAAC,OAAO,EAAE,CAAC;AAC1E,IAAI,MAAM;AACV,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,sBAAsB,CAAC,OAAO,EAAE,CAAC;AACzE,IAAI;AACJ,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,GAAG,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACvI,GAAG,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1E,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;AAC/C,IAAI,IAAI,0BAA0B,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,iBAAiB,GAAG,oBAAoB,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7J,IAAI,IAAI,0BAA0B,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;AAChE,IAAI,IAAI,IAAI,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3F,IAAI,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAI;AACJ,GAAG,OAAO,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClE,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AAC5B,GAAG,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC;AACxB,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5B,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACnC,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;AACvB,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,EAAE,WAAW;AACnB,GAAG,OAAO,GAAG,CAAC;AACd,GAAG;AACH,EAAE,CAAC;AACH,CAAC,KAAK,IAAI,IAAI,IAAI,iBAAiB,EAAE;AACrC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnF,GAAG;AACH,EAAE;AACF,CAAC,IAAI,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE;AAC7B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE;AACF,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;AACD;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;AAC7C,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,CAAC,QAAQ,IAAI;AACb,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,KAAK,CAAC;AACf;AACA,CAAC,KAAK,EAAE;AACR,EAAE,IAAI,WAAW,GAAG,UAAU,CAAC;AAC/B,EAAE,OAAO,WAAW,GAAG,KAAK,CAAC;AAC7B;AACA,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,CAAC,CAAC;AACR,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,MAAM,CAAC;AAChB;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ;AACA,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,CAAC,CAAC;AACR,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,CAAC,CAAC;AACR,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,CAAC,CAAC;AACX;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,IAAI,CAAC;AACd;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,EAAE,CAAC;AACZ;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,UAAU,CAAC;AACpB;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,KAAK,CAAC;AACf;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,EAAE,CAAC;AACZ;AACA,CAAC,KAAK,EAAE,CAAC;AACT,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,IAAI,CAAC;AACd;AACA,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,OAAO,CAAC;AACjB;AACA,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,KAAK,CAAC;AACf;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,KAAK,CAAC;AACf;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,KAAK,CAAC;AACf;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,KAAK,CAAC;AACf;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,GAAG,CAAC;AACb;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,GAAG,CAAC;AACb;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,GAAG,CAAC;AACb;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,GAAG,CAAC;AACb;AACA,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,GAAG,CAAC;AACb;AACA,CAAC,KAAK,GAAG;AACT,EAAE,OAAO,EAAE,CAAC;AACZ;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,EAAE,CAAC;AACZ;AACA,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,EAAE,CAAC;AACZ;AACA,CAAC,KAAK,CAAC;AACP,EAAE,OAAO,CAAC,CAAC;AACX;AACA,CAAC,KAAK,EAAE;AACR,EAAE,OAAO,CAAC,CAAC;AACX;AACA,CAAC,KAAK,EAAE;AACR,EAAE;AACF,GAAG,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACnF,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH,EAAE;AACF,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,OAAO,CAAC,CAAC,CAAC;AACX,CAAC;AACD;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;AACjC,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,IAAI;AACL,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC;AACpE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACpB,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,EAAE;AACF,CAAC;AACD;AACA,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AAC7B,CAAC,IAAI,IAAI,CAAC;AACV,CAAC,IAAI,KAAK,EAAE;AACZ,EAAE,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AACtC,EAAE,MAAM;AACR,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,EAAE;AACF,CAAC,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AACD;AACA,IAAI,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAChD,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,EAAE,MAAM,GAAG,IAAI,CAAC;AAChB,EAAE;AACF,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AAC1B,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACtB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,CAAC,CAAC;AACF;AACA,IAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;AACxB;AACA,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB;AACA,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE;AAC1C,CAAC,IAAI,EAAE;AACP,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,MAAM,QAAQ,CAAC;AAC9C,GAAG;AACH,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE;AACrB,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;AACxD,GAAG;AACH,EAAE;AACF,CAAC,KAAK,EAAE;AACR,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,MAAM,SAAS,CAAC;AAChD,GAAG;AACH,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE;AACrB,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;AAC1D,GAAG;AACH,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG,EAAE,WAAW;AAClB,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG;AACH,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;AACnB;AACA,EAAE,CAAC,UAAU,EAAE,CAAC;AAGhB;AACA,SAAS,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;AAC1D,CAAC,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,IAAI,eAAe,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;AACnD,CAAC,OAAO,OAAO,CAAC;AAChB,CAAC;AACD;AACA,IAAI,aAAa,GAAG;AACpB,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,eAAe,EAAE,cAAc;AAChC,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,eAAe,EAAE,cAAc;AAChC,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,gBAAgB,EAAE,eAAe;AAClC,CAAC,eAAe,EAAE,cAAc;AAChC,CAAC,eAAe,EAAE,cAAc;AAChC,CAAC,mBAAmB,EAAE,kBAAkB;AACxC,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,iBAAiB,EAAE,gBAAgB;AACpC,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,eAAe,EAAE,cAAc;AAChC,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,gBAAgB,EAAE,eAAe;AAClC,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,YAAY,EAAE,WAAW;AAC1B,CAAC,gBAAgB,EAAE,eAAe;AAClC,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,oBAAoB,EAAE,mBAAmB;AAC1C,CAAC,uBAAuB,EAAE,sBAAsB;AAChD,CAAC,wBAAwB,EAAE,uBAAuB;AAClD,CAAC,yBAAyB,EAAE,wBAAwB;AACpD,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,mBAAmB,EAAE,kBAAkB;AACxC,CAAC,UAAU,EAAE,SAAS;AACtB,CAAC,eAAe,EAAE,cAAc;AAChC,CAAC,SAAS,EAAE,QAAQ;AACpB,CAAC,SAAS,EAAE,QAAQ;AACpB,CAAC,SAAS,EAAE,QAAQ;AACpB,CAAC,UAAU,EAAE,SAAS;AACtB,CAAC,cAAc,EAAE,aAAa;AAC9B,CAAC,aAAa,EAAE,YAAY;AAC5B,CAAC,YAAY,EAAE,WAAW;AAC1B,CAAC,SAAS,EAAE,QAAQ;AACpB,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,CAAC;AACF;AACA,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;AACvB;AACA,IAAI,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACtG;AACA,IAAI,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACnG;AACA,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrE;AACA,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/D;AACc,MAAM,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE;AACrE;AACgC,MAAM,CAAC,2BAA2B,CAAC,GAAG,mBAAmB,CAAC,0BAA0B,EAAE,GAAG,EAAE;AAC3H;AACsC,MAAM,CAAC,iCAAiC,CAAC,GAAG,mBAAmB,CAAC,gCAAgC,EAAE,GAAG,EAAE;AAC7I;AACY,MAAM,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE;AAC/D;AACA,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACrE;AACc,MAAM,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE;AACrE;AACA,IAAI,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACpF;AACA,IAAI,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC1F;AACA,IAAI,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC1F;AACmD,MAAM,CAAC,8CAA8C,CAAC,GAAG,mBAAmB,CAAC,6CAA6C,EAAE,GAAG,EAAE;AACpL;AACA,IAAI,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACtG;AACA,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC5E;AACA,IAAI,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AACrF;AACA,IAAI,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAC/E;AACA,IAAI,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC7F;AACiC,MAAM,CAAC,4BAA4B,CAAC,GAAG,GAAG,CAAC,2BAA2B,EAAE;AACzG;AACA,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC3E;AACoB,MAAM,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,EAAE;AACxF;AACoB,MAAM,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,EAAE;AACxF;AACkB,MAAM,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAAC,aAAa,EAAE,GAAG,EAAE;AAClF;AACoB,MAAM,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,EAAE;AACxF;AACmB,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE;AACrF;AACsB,MAAM,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE;AAC9F;AACqB,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,EAAE;AAC3F;AACuB,MAAM,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,EAAE;AACjG;AACoB,MAAM,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,GAAG,EAAE;AACxF;AACmB,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE;AACrF;AACmB,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE;AACrF;AACmB,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE;AACrF;AACqB,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,EAAE;AAC3F;AACsB,MAAM,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE;AAC9F;AACsB,MAAM,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE;AAC9F;AACuB,MAAM,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,EAAE;AACjG;AACwB,MAAM,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,EAAE;AACpG;AACsB,MAAM,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE;AAC9F;AAC0B,MAAM,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC,qBAAqB,EAAE,GAAG,EAAE;AAC1G;AACmB,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE;AACrF;AACqB,MAAM,CAAC,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,EAAE;AAC3F;AACsB,MAAM,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,EAAE;AAC9F;AACuB,MAAM,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,EAAE;AACjG;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AACxB;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW;AACpF,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC3F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9F,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;AAChG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,wLAAwL,CAAC,CAAC;AACjM,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,2LAA2L,CAAC,CAAC;AACpM,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,qLAAqL,CAAC,CAAC;AAC9L,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,yLAAyL,CAAC,CAAC;AAClM,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,8LAA8L,CAAC,CAAC;AACvM,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,yLAAyL,CAAC,CAAC;AAClM,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,uLAAuL,CAAC,CAAC;AAChM,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,iLAAiL,CAAC,CAAC;AAC1L,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AACtF,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;AAC5F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;AACpC;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9F,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;AAChG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW;AACpF,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC3F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;AAC9B;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW;AACpF,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC3F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW;AAC5H,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW;AAChF,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AACzF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW;AAChF,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AACzF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,WAAW;AACpH,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9F,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;AAChG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AACtF,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;AAC5F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AACtF,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;AAC5F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW;AAClF,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;AAC1F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,0BAA0B,CAAC,EAAE,MAAM,CAAC,0BAA0B,CAAC,GAAG,WAAW;AAC1H,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;AAC9G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,WAAW;AACpH,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,WAAW;AACpH,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,GAAG,WAAW;AAC9H,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,GAAG,WAAW;AAC9H,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,WAAW;AACxH,CAAC,KAAK,CAAC,oGAAoG,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,GAAG,WAAW;AAC9H,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAAE,MAAM,CAAC,gCAAgC,CAAC,GAAG,WAAW;AACtI,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;AACpH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wCAAwC,CAAC,EAAE,MAAM,CAAC,wCAAwC,CAAC,GAAG,WAAW;AACtJ,CAAC,KAAK,CAAC,mHAAmH,CAAC,CAAC;AAC5H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW;AAC5H,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mCAAmC,CAAC,EAAE,MAAM,CAAC,mCAAmC,CAAC,GAAG,WAAW;AAC5I,CAAC,KAAK,CAAC,8GAA8G,CAAC,CAAC;AACvH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW;AAC5G,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAAE,MAAM,CAAC,gCAAgC,CAAC,GAAG,WAAW;AACtI,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;AACpH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wCAAwC,CAAC,EAAE,MAAM,CAAC,wCAAwC,CAAC,GAAG,WAAW;AACtJ,CAAC,KAAK,CAAC,mHAAmH,CAAC,CAAC;AAC5H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,GAAG,WAAW;AACpI,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;AACnH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uCAAuC,CAAC,EAAE,MAAM,CAAC,uCAAuC,CAAC,GAAG,WAAW;AACpJ,CAAC,KAAK,CAAC,kHAAkH,CAAC,CAAC;AAC3H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,WAAW;AACxH,CAAC,KAAK,CAAC,oGAAoG,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kCAAkC,CAAC,EAAE,MAAM,CAAC,kCAAkC,CAAC,GAAG,WAAW;AAC1I,CAAC,KAAK,CAAC,6GAA6G,CAAC,CAAC;AACtH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,uBAAuB,CAAC,GAAG,WAAW;AACpH,CAAC,KAAK,CAAC,kGAAkG,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW;AAC5H,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,WAAW;AACxH,CAAC,KAAK,CAAC,oGAAoG,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uCAAuC,CAAC,EAAE,MAAM,CAAC,uCAAuC,CAAC,GAAG,WAAW;AACpJ,CAAC,KAAK,CAAC,kHAAkH,CAAC,CAAC;AAC3H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAAE,MAAM,CAAC,gCAAgC,CAAC,GAAG,WAAW;AACtI,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;AACpH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wCAAwC,CAAC,EAAE,MAAM,CAAC,wCAAwC,CAAC,GAAG,WAAW;AACtJ,CAAC,KAAK,CAAC,mHAAmH,CAAC,CAAC;AAC5H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uCAAuC,CAAC,EAAE,MAAM,CAAC,uCAAuC,CAAC,GAAG,WAAW;AACpJ,CAAC,KAAK,CAAC,kHAAkH,CAAC,CAAC;AAC3H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,GAAG,WAAW;AACpI,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;AACnH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,uCAAuC,CAAC,EAAE,MAAM,CAAC,uCAAuC,CAAC,GAAG,WAAW;AACpJ,CAAC,KAAK,CAAC,kHAAkH,CAAC,CAAC;AAC3H,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,GAAG,WAAW;AAC9H,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC,8BAA8B,CAAC,GAAG,WAAW;AAClI,CAAC,KAAK,CAAC,yGAAyG,CAAC,CAAC;AAClH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,mCAAmC,CAAC,EAAE,MAAM,CAAC,mCAAmC,CAAC,GAAG,WAAW;AAC5I,CAAC,KAAK,CAAC,8GAA8G,CAAC,CAAC;AACvH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC,8BAA8B,CAAC,GAAG,WAAW;AAClI,CAAC,KAAK,CAAC,yGAAyG,CAAC,CAAC;AAClH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9F,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;AAChG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW;AACxG,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAClB;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW;AACpF,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC3F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW;AAChF,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AACzF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AACtF,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;AAC5F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AACtF,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;AAC5F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW;AAClH,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW;AAC5H,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW;AACtH,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,6BAA6B,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC,GAAG,WAAW;AAChI,CAAC,KAAK,CAAC,wGAAwG,CAAC,CAAC;AACjH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW;AAC9E,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;AACxF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,GAAG,WAAW;AACpI,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;AACnH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAAE,MAAM,CAAC,gCAAgC,CAAC,GAAG,WAAW;AACtI,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;AACpH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW;AAC5H,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAAE,MAAM,CAAC,gCAAgC,CAAC,GAAG,WAAW;AACtI,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;AACpH,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW;AAC9E,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;AACxF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW;AACtG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW;AAChF,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AACzF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW;AACxF,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW;AAClF,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;AAC1F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW;AAChF,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AACzF,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW;AAChG,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;AACjG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW;AAClF,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;AAC1F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW;AAClF,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;AAC1F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,WAAW;AAC9G,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW;AAC1F,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5F,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW;AAC9F,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;AAChG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW;AACpG,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW;AAC1G,CAAC,KAAK,CAAC,6FAA6F,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW;AAClG,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;AAClG,CAAC,CAAC;AACF;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,WAAW;AAChH,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA,MAAM,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;AAC9C;AACA,MAAM,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;AAC9C;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE;AAC5G,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,yFAAyF,CAAC,CAAC;AACnG,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;AAC1G,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,GAAG,EAAE,WAAW;AACjB,EAAE,KAAK,CAAC,wFAAwF,CAAC,CAAC;AAClG,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,IAAI,SAAS,CAAC;AACd;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;AAC1B,CAAC,IAAI,CAAC,OAAO,GAAG,+BAA+B,GAAG,MAAM,GAAG,GAAG,CAAC;AAC/D,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB,CAAC;AAGD;AACA,qBAAqB,GAAG,SAAS,SAAS,GAAG;AAC7C,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,SAAS,CAAC;AACnD,CAAC,CAAC;AACF;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,EAAE,6FAA6F,CAAC,CAAC;AAC7H,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,4DAA4D,CAAC,CAAC;AAChG,CAAC,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACnB,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAChC,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,EAAE;AACF,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClB,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,CAAC,YAAY,UAAU,EAAE;AAC/B,GAAG,OAAO;AACV,GAAG,MAAM,IAAI,CAAC,IAAI,QAAQ,EAAE;AAC5B,GAAG,aAAa,GAAG,IAAI,CAAC;AACxB,GAAG,OAAO;AACV,GAAG,MAAM;AACT,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC;AACjB,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE;AAC9C,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3B,IAAI;AACJ,GAAG,GAAG,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAAC;AACrC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,GAAG;AACH,EAAE,SAAS;AAEX,EAAE;AACF,CAAC;AACD;AACA,SAAS,GAAG,CAAC,IAAI,EAAE;AACnB,CAAC,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC;AAC3B,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE;AAC1B,EAAE,OAAO;AACT,EAAE;AACF,CAAC,sBAAsB,EAAE,CAAC;AAC1B,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,MAAM,EAAE,CAAC;AACV,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,OAAO;AACjC,CAAC,SAAS,KAAK,GAAG;AAClB,EAAE,IAAI,SAAS,EAAE,OAAO;AACxB,EAAE,SAAS,GAAG,IAAI,CAAC;AACnB,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAC7B,EAAE,IAAI,KAAK,EAAE,OAAO;AACpB,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B,EAAE,IAAI,MAAM,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC;AACvE,EAAE,IAAI,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE;AACF,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;AAC1B,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC;AACpC,EAAE,UAAU,CAAC,WAAW;AACxB,GAAG,UAAU,CAAC,WAAW;AACzB,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5B,IAAI,EAAE,CAAC,CAAC,CAAC;AACT,GAAG,KAAK,EAAE,CAAC;AACX,GAAG,EAAE,CAAC,CAAC,CAAC;AACR,EAAE,MAAM;AACR,EAAE,KAAK,EAAE,CAAC;AACV,EAAE;AACF,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC;AACD;AACA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACpB;AACA,SAAS,qBAAqB,GAAG;AACjC,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC;AAClB,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC;AAClB,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC;AACjB,CAAC,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE;AACzB,EAAE,GAAG,GAAG,IAAI,CAAC;AACb,EAAE,CAAC;AACH,CAAC,IAAI;AACL,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAChC,EAAE,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AAChD,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC7C,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO;AACrB,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B,GAAG,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1B,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C,IAAI,GAAG,GAAG,IAAI,CAAC;AACf,IAAI;AACJ,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AACf,CAAC,GAAG,GAAG,MAAM,CAAC;AACd,CAAC,GAAG,GAAG,MAAM,CAAC;AACd,CAAC,IAAI,GAAG,EAAE;AACV,EAAE,QAAQ,CAAC,6JAA6J,CAAC,CAAC;AAC1K,EAAE;AACF,CAAC;AACD;AACA,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;AAChC,CAAC,qBAAqB,EAAE,CAAC;AACzB,CAAC,IAAI,QAAQ,IAAI,aAAa,IAAI,MAAM,KAAK,CAAC,EAAE;AAChD,EAAE,OAAO;AACT,EAAE;AACF,CAAC,IAAI,aAAa,EAAE;AACpB,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,GAAG,IAAI,GAAG,GAAG,+BAA+B,GAAG,MAAM,GAAG,iLAAiL,CAAC;AAC1O,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC3B,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACZ,GAAG;AACH,EAAE,MAAM;AAER,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AACjD,EAAE,KAAK,GAAG,IAAI,CAAC;AACf,EAAE;AACF,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,CAAC;AACD;AACA,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;AACvB,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AACvF,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;AAC5B,EAAE;AACF,CAAC;AACD;AACA,IAAI,YAAY,GAAG,IAAI,CAAC;AACxB;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;AACjD;AACA,aAAa,GAAG,IAAI,CAAC;AACrB;AACA,GAAG,EAAE,CAAC;AACN;AACA;AACA,EAAE,OAAO,oBAAoB;AAC7B,CAAC;AACD,EAAE;AACF,CAAC,GAAG,CAAC;AAEH,cAAc,GAAG,oBAAoB;;;;ACn2MvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEuC;AACkB;AACM;AAE/D;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAa,UAAU;IAUrB;QAJQ,kBAAa,GAAG,CAAC,CAAC;QAClB,eAAU,GAAa,EAAE,CAAC;QAIhC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,0BAA0B,GAAGC,cAAK,EAAQ,CAAC;QACjD,IAAI,CAAC,UAAU,GAAGC,eAAoB,CAAC;YACrC,UAAU,EAAE,CAAC,CAAS,KAAK,CAAC;YAC5B,KAAK,EAAE,CAAC,IAAY,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,QAAQ,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACtD,oBAAoB,EAAE,MAAM,0BAA0B,CAAC,OAAO,EAAE;SACjE,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,0BAA0B,CAAC,IAAI,CAAC;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CACtC,0BAA0B;wBACd,QAAQ;sBACX,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC7B,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;SACzB,CAAC,CAAC;KACJ;IAED,UAAU,CAAC,IAAiB;;QAE1BC,kBAAU,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;;;QAGxB,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxD;IAED,SAAS,CAAC,GAAiB;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QACDA,kBAAU,CAAC,GAAG,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAkB,CAAC;QACpC,IAAI,MAAM,GAAG,CAAC,CAAC;;;;QAIf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,MAAM,IAAI,QAAQ,CAAC;YACnB,IAAI;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,CACjB,gCAAgC;gBAChC,MAAM;gBACN,CAAC,QAAQ,CAAC;gBACV,CAAC,QAAQ,CAAC;iBACb,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,WAAW,GAAG,GAAG,GAAG,EAAE,CAAC;gBAC3B,IAAI,GAAG,YAAY,KAAK,EAAE;oBACxB,WAAW,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;iBAC3D;gBACD,WAAW,IAAI,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;aAC9B;SACF;KACF;;;IAIO,OAAO,CAAC,OAAe,EAAE,IAAY;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;QACnEA,oBAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACjE;IAEO,eAAe,CAAC,IAAY;QAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QAEnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACzB;KACF;CACF;AAvFD,gCAuFC;;;;;ACzHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6C;AAEJ;AAEzC,MAAM,UAAU,GAAG,IAAoB,CAAC;AACxC,MAAM,UAAU,GAAG,IAAIC,sBAAU,EAAE,CAAC;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,UAAU,CAAC,SAAS,GAAG,CAAC,GAAiB;IACvC,MAAM,IAAI,GAAGD,oBAAY,CAAE,GAAG,CAAC,IAAgC,CAAC,UAAU,CAAC,CAAC;IAC5E,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;;;;;;;;;;"}