{"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport _awaitAsyncGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js\";\nimport _wrapAsyncGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js\";\nimport _asyncIterator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncIterator.js\";\nimport { BaseTracer } from \"./base.js\";\nimport { IterableReadableStream } from \"../utils/stream.js\";\nimport { AIMessageChunk } from \"../messages/ai.js\";\nimport { GenerationChunk } from \"../outputs.js\";\nfunction assignName({\n name,\n serialized\n}) {\n if (name !== undefined) {\n return name;\n }\n if ((serialized === null || serialized === void 0 ? void 0 : serialized.name) !== undefined) {\n return serialized.name;\n } else if ((serialized === null || serialized === void 0 ? void 0 : serialized.id) !== undefined && Array.isArray(serialized === null || serialized === void 0 ? void 0 : serialized.id)) {\n return serialized.id[serialized.id.length - 1];\n }\n return \"Unnamed\";\n}\nexport const isStreamEventsHandler = handler => handler.name === \"event_stream_tracer\";\n/**\n * Class that extends the `BaseTracer` class from the\n * `langchain.callbacks.tracers.base` module. It represents a callback\n * handler that logs the execution of runs and emits `RunLog` instances to a\n * `RunLogStream`.\n */\nexport class EventStreamCallbackHandler extends BaseTracer {\n constructor(fields) {\n var _fields$autoClose;\n super({\n _awaitHandler: true,\n ...fields\n });\n Object.defineProperty(this, \"autoClose\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"includeNames\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"includeTypes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"includeTags\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeNames\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeTypes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeTags\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"runInfoMap\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"tappedPromises\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"transformStream\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"writer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"receiveStream\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"event_stream_tracer\"\n });\n this.autoClose = (_fields$autoClose = fields === null || fields === void 0 ? void 0 : fields.autoClose) !== null && _fields$autoClose !== void 0 ? _fields$autoClose : true;\n this.includeNames = fields === null || fields === void 0 ? void 0 : fields.includeNames;\n this.includeTypes = fields === null || fields === void 0 ? void 0 : fields.includeTypes;\n this.includeTags = fields === null || fields === void 0 ? void 0 : fields.includeTags;\n this.excludeNames = fields === null || fields === void 0 ? void 0 : fields.excludeNames;\n this.excludeTypes = fields === null || fields === void 0 ? void 0 : fields.excludeTypes;\n this.excludeTags = fields === null || fields === void 0 ? void 0 : fields.excludeTags;\n this.transformStream = new TransformStream();\n this.writer = this.transformStream.writable.getWriter();\n this.receiveStream = IterableReadableStream.fromReadableStream(this.transformStream.readable);\n }\n [Symbol.asyncIterator]() {\n return this.receiveStream;\n }\n persistRun(_run) {\n return _asyncToGenerator(function* () {})();\n } // This is a legacy method only called once for an entire run tree\n // and is therefore not useful here\n _includeRun(run) {\n var _run$tags;\n const runTags = (_run$tags = run.tags) !== null && _run$tags !== void 0 ? _run$tags : [];\n let include = this.includeNames === undefined && this.includeTags === undefined && this.includeTypes === undefined;\n if (this.includeNames !== undefined) {\n include = include || this.includeNames.includes(run.name);\n }\n if (this.includeTypes !== undefined) {\n include = include || this.includeTypes.includes(run.runType);\n }\n if (this.includeTags !== undefined) {\n include = include || runTags.find(tag => {\n var _this$includeTags;\n return (_this$includeTags = this.includeTags) === null || _this$includeTags === void 0 ? void 0 : _this$includeTags.includes(tag);\n }) !== undefined;\n }\n if (this.excludeNames !== undefined) {\n include = include && !this.excludeNames.includes(run.name);\n }\n if (this.excludeTypes !== undefined) {\n include = include && !this.excludeTypes.includes(run.runType);\n }\n if (this.excludeTags !== undefined) {\n include = include && runTags.every(tag => {\n var _this$excludeTags;\n return !((_this$excludeTags = this.excludeTags) !== null && _this$excludeTags !== void 0 && _this$excludeTags.includes(tag));\n });\n }\n return include;\n }\n tapOutputIterable(runId, outputStream) {\n var _this = this;\n return _wrapAsyncGenerator(function* () {\n const firstChunk = yield _awaitAsyncGenerator(outputStream.next());\n if (firstChunk.done) {\n return;\n }\n const runInfo = _this.runInfoMap.get(runId);\n // Run has finished, don't issue any stream events.\n // An example of this is for runnables that use the default\n // implementation of .stream(), which delegates to .invoke()\n // and calls .onChainEnd() before passing it to the iterator.\n if (runInfo === undefined) {\n yield firstChunk.value;\n return;\n }\n // Match format from handlers below\n function _formatOutputChunk(eventType, data) {\n if (eventType === \"llm\" && typeof data === \"string\") {\n return new GenerationChunk({\n text: data\n });\n }\n return data;\n }\n let tappedPromise = _this.tappedPromises.get(runId);\n // if we are the first to tap, issue stream events\n if (tappedPromise === undefined) {\n let tappedPromiseResolver;\n tappedPromise = new Promise(resolve => {\n tappedPromiseResolver = resolve;\n });\n _this.tappedPromises.set(runId, tappedPromise);\n try {\n const event = {\n event: `on_${runInfo.runType}_stream`,\n run_id: runId,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n data: {}\n };\n yield _awaitAsyncGenerator(_this.send({\n ...event,\n data: {\n chunk: _formatOutputChunk(runInfo.runType, firstChunk.value)\n }\n }, runInfo));\n yield firstChunk.value;\n var _iteratorAbruptCompletion = false;\n var _didIteratorError = false;\n var _iteratorError;\n try {\n for (var _iterator = _asyncIterator(outputStream), _step; _iteratorAbruptCompletion = !(_step = yield _awaitAsyncGenerator(_iterator.next())).done; _iteratorAbruptCompletion = false) {\n const chunk = _step.value;\n {\n // Don't yield tool and retriever stream events\n if (runInfo.runType !== \"tool\" && runInfo.runType !== \"retriever\") {\n yield _awaitAsyncGenerator(_this.send({\n ...event,\n data: {\n chunk: _formatOutputChunk(runInfo.runType, chunk)\n }\n }, runInfo));\n }\n yield chunk;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (_iteratorAbruptCompletion && _iterator.return != null) {\n yield _awaitAsyncGenerator(_iterator.return());\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } finally {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tappedPromiseResolver();\n // Don't delete from the promises map to keep track of which runs have been tapped.\n }\n } else {\n // otherwise just pass through\n yield firstChunk.value;\n var _iteratorAbruptCompletion2 = false;\n var _didIteratorError2 = false;\n var _iteratorError2;\n try {\n for (var _iterator2 = _asyncIterator(outputStream), _step2; _iteratorAbruptCompletion2 = !(_step2 = yield _awaitAsyncGenerator(_iterator2.next())).done; _iteratorAbruptCompletion2 = false) {\n const chunk = _step2.value;\n {\n yield chunk;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (_iteratorAbruptCompletion2 && _iterator2.return != null) {\n yield _awaitAsyncGenerator(_iterator2.return());\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n })();\n }\n send(payload, run) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n if (_this2._includeRun(run)) {\n yield _this2.writer.write(payload);\n }\n })();\n }\n sendEndEvent(payload, run) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n const tappedPromise = _this3.tappedPromises.get(payload.run_id);\n if (tappedPromise !== undefined) {\n void tappedPromise.then(() => {\n void _this3.send(payload, run);\n });\n } else {\n yield _this3.send(payload, run);\n }\n })();\n }\n onLLMStart(run) {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n var _run$tags2, _run$extra$metadata, _run$extra, _run$tags3, _run$extra$metadata2, _run$extra2;\n const runName = assignName(run);\n const runType = run.inputs.messages !== undefined ? \"chat_model\" : \"llm\";\n const runInfo = {\n tags: (_run$tags2 = run.tags) !== null && _run$tags2 !== void 0 ? _run$tags2 : [],\n metadata: (_run$extra$metadata = (_run$extra = run.extra) === null || _run$extra === void 0 ? void 0 : _run$extra.metadata) !== null && _run$extra$metadata !== void 0 ? _run$extra$metadata : {},\n name: runName,\n runType,\n inputs: run.inputs\n };\n _this4.runInfoMap.set(run.id, runInfo);\n const eventName = `on_${runType}_start`;\n yield _this4.send({\n event: eventName,\n data: {\n input: run.inputs\n },\n name: runName,\n tags: (_run$tags3 = run.tags) !== null && _run$tags3 !== void 0 ? _run$tags3 : [],\n run_id: run.id,\n metadata: (_run$extra$metadata2 = (_run$extra2 = run.extra) === null || _run$extra2 === void 0 ? void 0 : _run$extra2.metadata) !== null && _run$extra$metadata2 !== void 0 ? _run$extra$metadata2 : {}\n }, runInfo);\n })();\n }\n onLLMNewToken(run, token,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n kwargs) {\n var _this5 = this;\n return _asyncToGenerator(function* () {\n const runInfo = _this5.runInfoMap.get(run.id);\n let chunk;\n let eventName;\n if (runInfo === undefined) {\n throw new Error(`onLLMNewToken: Run ID ${run.id} not found in run map.`);\n }\n // Top-level streaming events are covered by tapOutputIterable\n if (_this5.runInfoMap.size === 1) {\n return;\n }\n if (runInfo.runType === \"chat_model\") {\n eventName = \"on_chat_model_stream\";\n if ((kwargs === null || kwargs === void 0 ? void 0 : kwargs.chunk) === undefined) {\n chunk = new AIMessageChunk({\n content: token,\n id: `run-${run.id}`\n });\n } else {\n chunk = kwargs.chunk.message;\n }\n } else if (runInfo.runType === \"llm\") {\n eventName = \"on_llm_stream\";\n if ((kwargs === null || kwargs === void 0 ? void 0 : kwargs.chunk) === undefined) {\n chunk = new GenerationChunk({\n text: token\n });\n } else {\n chunk = kwargs.chunk;\n }\n } else {\n throw new Error(`Unexpected run type ${runInfo.runType}`);\n }\n yield _this5.send({\n event: eventName,\n data: {\n chunk\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata\n }, runInfo);\n })();\n }\n onLLMEnd(run) {\n var _this6 = this;\n return _asyncToGenerator(function* () {\n var _run$outputs;\n const runInfo = _this6.runInfoMap.get(run.id);\n _this6.runInfoMap.delete(run.id);\n let eventName;\n if (runInfo === undefined) {\n throw new Error(`onLLMEnd: Run ID ${run.id} not found in run map.`);\n }\n const generations = (_run$outputs = run.outputs) === null || _run$outputs === void 0 ? void 0 : _run$outputs.generations;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let output;\n if (runInfo.runType === \"chat_model\") {\n for (const generation of generations !== null && generations !== void 0 ? generations : []) {\n var _generation$;\n if (output !== undefined) {\n break;\n }\n output = (_generation$ = generation[0]) === null || _generation$ === void 0 ? void 0 : _generation$.message;\n }\n eventName = \"on_chat_model_end\";\n } else if (runInfo.runType === \"llm\") {\n var _run$outputs$llmOutpu, _run$outputs2;\n output = {\n generations: generations === null || generations === void 0 ? void 0 : generations.map(generation => {\n return generation.map(chunk => {\n return {\n text: chunk.text,\n generationInfo: chunk.generationInfo\n };\n });\n }),\n llmOutput: (_run$outputs$llmOutpu = (_run$outputs2 = run.outputs) === null || _run$outputs2 === void 0 ? void 0 : _run$outputs2.llmOutput) !== null && _run$outputs$llmOutpu !== void 0 ? _run$outputs$llmOutpu : {}\n };\n eventName = \"on_llm_end\";\n } else {\n throw new Error(`onLLMEnd: Unexpected run type: ${runInfo.runType}`);\n }\n yield _this6.sendEndEvent({\n event: eventName,\n data: {\n output,\n input: runInfo.inputs\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata\n }, runInfo);\n })();\n }\n onChainStart(run) {\n var _this7 = this;\n return _asyncToGenerator(function* () {\n var _run$run_type, _run$tags4, _run$extra$metadata3, _run$extra3, _run$tags5, _run$extra$metadata4, _run$extra4;\n const runName = assignName(run);\n const runType = (_run$run_type = run.run_type) !== null && _run$run_type !== void 0 ? _run$run_type : \"chain\";\n const runInfo = {\n tags: (_run$tags4 = run.tags) !== null && _run$tags4 !== void 0 ? _run$tags4 : [],\n metadata: (_run$extra$metadata3 = (_run$extra3 = run.extra) === null || _run$extra3 === void 0 ? void 0 : _run$extra3.metadata) !== null && _run$extra$metadata3 !== void 0 ? _run$extra$metadata3 : {},\n name: runName,\n runType: run.run_type\n };\n let eventData = {};\n // Workaround Runnable core code not sending input when transform streaming.\n if (run.inputs.input === \"\" && Object.keys(run.inputs).length === 1) {\n eventData = {};\n runInfo.inputs = {};\n } else if (run.inputs.input !== undefined) {\n eventData.input = run.inputs.input;\n runInfo.inputs = run.inputs.input;\n } else {\n eventData.input = run.inputs;\n runInfo.inputs = run.inputs;\n }\n _this7.runInfoMap.set(run.id, runInfo);\n yield _this7.send({\n event: `on_${runType}_start`,\n data: eventData,\n name: runName,\n tags: (_run$tags5 = run.tags) !== null && _run$tags5 !== void 0 ? _run$tags5 : [],\n run_id: run.id,\n metadata: (_run$extra$metadata4 = (_run$extra4 = run.extra) === null || _run$extra4 === void 0 ? void 0 : _run$extra4.metadata) !== null && _run$extra$metadata4 !== void 0 ? _run$extra$metadata4 : {}\n }, runInfo);\n })();\n }\n onChainEnd(run) {\n var _this8 = this;\n return _asyncToGenerator(function* () {\n var _ref, _run$inputs, _run$outputs$output, _run$outputs3, _runInfo$metadata;\n const runInfo = _this8.runInfoMap.get(run.id);\n _this8.runInfoMap.delete(run.id);\n if (runInfo === undefined) {\n throw new Error(`onChainEnd: Run ID ${run.id} not found in run map.`);\n }\n const eventName = `on_${run.run_type}_end`;\n const inputs = (_ref = (_run$inputs = run.inputs) !== null && _run$inputs !== void 0 ? _run$inputs : runInfo.inputs) !== null && _ref !== void 0 ? _ref : {};\n const outputs = (_run$outputs$output = (_run$outputs3 = run.outputs) === null || _run$outputs3 === void 0 ? void 0 : _run$outputs3.output) !== null && _run$outputs$output !== void 0 ? _run$outputs$output : run.outputs;\n const data = {\n output: outputs,\n input: inputs\n };\n if (inputs.input && Object.keys(inputs).length === 1) {\n data.input = inputs.input;\n runInfo.inputs = inputs.input;\n }\n yield _this8.sendEndEvent({\n event: eventName,\n data,\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: (_runInfo$metadata = runInfo.metadata) !== null && _runInfo$metadata !== void 0 ? _runInfo$metadata : {}\n }, runInfo);\n })();\n }\n onToolStart(run) {\n var _this9 = this;\n return _asyncToGenerator(function* () {\n var _run$tags6, _run$extra$metadata5, _run$extra5, _run$inputs2, _run$inputs3, _run$tags7, _run$extra$metadata6, _run$extra6;\n const runName = assignName(run);\n const runInfo = {\n tags: (_run$tags6 = run.tags) !== null && _run$tags6 !== void 0 ? _run$tags6 : [],\n metadata: (_run$extra$metadata5 = (_run$extra5 = run.extra) === null || _run$extra5 === void 0 ? void 0 : _run$extra5.metadata) !== null && _run$extra$metadata5 !== void 0 ? _run$extra$metadata5 : {},\n name: runName,\n runType: \"tool\",\n inputs: (_run$inputs2 = run.inputs) !== null && _run$inputs2 !== void 0 ? _run$inputs2 : {}\n };\n _this9.runInfoMap.set(run.id, runInfo);\n yield _this9.send({\n event: \"on_tool_start\",\n data: {\n input: (_run$inputs3 = run.inputs) !== null && _run$inputs3 !== void 0 ? _run$inputs3 : {}\n },\n name: runName,\n run_id: run.id,\n tags: (_run$tags7 = run.tags) !== null && _run$tags7 !== void 0 ? _run$tags7 : [],\n metadata: (_run$extra$metadata6 = (_run$extra6 = run.extra) === null || _run$extra6 === void 0 ? void 0 : _run$extra6.metadata) !== null && _run$extra$metadata6 !== void 0 ? _run$extra$metadata6 : {}\n }, runInfo);\n })();\n }\n onToolEnd(run) {\n var _this10 = this;\n return _asyncToGenerator(function* () {\n var _run$outputs4;\n const runInfo = _this10.runInfoMap.get(run.id);\n _this10.runInfoMap.delete(run.id);\n if (runInfo === undefined) {\n throw new Error(`onToolEnd: Run ID ${run.id} not found in run map.`);\n }\n if (runInfo.inputs === undefined) {\n throw new Error(`onToolEnd: Run ID ${run.id} is a tool call, and is expected to have traced inputs.`);\n }\n const output = ((_run$outputs4 = run.outputs) === null || _run$outputs4 === void 0 ? void 0 : _run$outputs4.output) === undefined ? run.outputs : run.outputs.output;\n yield _this10.sendEndEvent({\n event: \"on_tool_end\",\n data: {\n output,\n input: runInfo.inputs\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata\n }, runInfo);\n })();\n }\n onRetrieverStart(run) {\n var _this11 = this;\n return _asyncToGenerator(function* () {\n var _run$tags8, _run$extra$metadata7, _run$extra7, _run$tags9, _run$extra$metadata8, _run$extra8;\n const runName = assignName(run);\n const runType = \"retriever\";\n const runInfo = {\n tags: (_run$tags8 = run.tags) !== null && _run$tags8 !== void 0 ? _run$tags8 : [],\n metadata: (_run$extra$metadata7 = (_run$extra7 = run.extra) === null || _run$extra7 === void 0 ? void 0 : _run$extra7.metadata) !== null && _run$extra$metadata7 !== void 0 ? _run$extra$metadata7 : {},\n name: runName,\n runType,\n inputs: {\n query: run.inputs.query\n }\n };\n _this11.runInfoMap.set(run.id, runInfo);\n yield _this11.send({\n event: \"on_retriever_start\",\n data: {\n input: {\n query: run.inputs.query\n }\n },\n name: runName,\n tags: (_run$tags9 = run.tags) !== null && _run$tags9 !== void 0 ? _run$tags9 : [],\n run_id: run.id,\n metadata: (_run$extra$metadata8 = (_run$extra8 = run.extra) === null || _run$extra8 === void 0 ? void 0 : _run$extra8.metadata) !== null && _run$extra$metadata8 !== void 0 ? _run$extra$metadata8 : {}\n }, runInfo);\n })();\n }\n onRetrieverEnd(run) {\n var _this12 = this;\n return _asyncToGenerator(function* () {\n var _run$outputs$document, _run$outputs5;\n const runInfo = _this12.runInfoMap.get(run.id);\n _this12.runInfoMap.delete(run.id);\n if (runInfo === undefined) {\n throw new Error(`onRetrieverEnd: Run ID ${run.id} not found in run map.`);\n }\n yield _this12.sendEndEvent({\n event: \"on_retriever_end\",\n data: {\n output: (_run$outputs$document = (_run$outputs5 = run.outputs) === null || _run$outputs5 === void 0 ? void 0 : _run$outputs5.documents) !== null && _run$outputs$document !== void 0 ? _run$outputs$document : run.outputs,\n input: runInfo.inputs\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata\n }, runInfo);\n })();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleCustomEvent(eventName, data, runId) {\n var _this13 = this;\n return _asyncToGenerator(function* () {\n const runInfo = _this13.runInfoMap.get(runId);\n if (runInfo === undefined) {\n throw new Error(`handleCustomEvent: Run ID ${runId} not found in run map.`);\n }\n yield _this13.send({\n event: \"on_custom_event\",\n run_id: runId,\n name: eventName,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n data\n }, runInfo);\n })();\n }\n finish() {\n var _this14 = this;\n return _asyncToGenerator(function* () {\n const pendingPromises = [..._this14.tappedPromises.values()];\n void Promise.all(pendingPromises).finally(() => {\n void _this14.writer.close();\n });\n })();\n }\n}","map":{"version":3,"names":["BaseTracer","IterableReadableStream","AIMessageChunk","GenerationChunk","assignName","name","serialized","undefined","id","Array","isArray","length","isStreamEventsHandler","handler","EventStreamCallbackHandler","constructor","fields","_fields$autoClose","_awaitHandler","Object","defineProperty","enumerable","configurable","writable","value","Map","autoClose","includeNames","includeTypes","includeTags","excludeNames","excludeTypes","excludeTags","transformStream","TransformStream","writer","getWriter","receiveStream","fromReadableStream","readable","Symbol","asyncIterator","persistRun","_run","_asyncToGenerator","_includeRun","run","_run$tags","runTags","tags","include","includes","runType","find","tag","_this$includeTags","every","_this$excludeTags","tapOutputIterable","runId","outputStream","_this","_wrapAsyncGenerator","firstChunk","_awaitAsyncGenerator","next","done","runInfo","runInfoMap","get","_formatOutputChunk","eventType","data","text","tappedPromise","tappedPromises","tappedPromiseResolver","Promise","resolve","set","event","run_id","metadata","send","chunk","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","_step","err","return","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","payload","_this2","write","sendEndEvent","_this3","then","onLLMStart","_this4","_run$tags2","_run$extra$metadata","_run$extra","_run$tags3","_run$extra$metadata2","_run$extra2","runName","inputs","messages","extra","eventName","input","onLLMNewToken","token","kwargs","_this5","Error","size","content","message","onLLMEnd","_this6","_run$outputs","delete","generations","outputs","output","generation","_generation$","_run$outputs$llmOutpu","_run$outputs2","map","generationInfo","llmOutput","onChainStart","_this7","_run$run_type","_run$tags4","_run$extra$metadata3","_run$extra3","_run$tags5","_run$extra$metadata4","_run$extra4","run_type","eventData","keys","onChainEnd","_this8","_ref","_run$inputs","_run$outputs$output","_run$outputs3","_runInfo$metadata","onToolStart","_this9","_run$tags6","_run$extra$metadata5","_run$extra5","_run$inputs2","_run$inputs3","_run$tags7","_run$extra$metadata6","_run$extra6","onToolEnd","_this10","_run$outputs4","onRetrieverStart","_this11","_run$tags8","_run$extra$metadata7","_run$extra7","_run$tags9","_run$extra$metadata8","_run$extra8","query","onRetrieverEnd","_this12","_run$outputs$document","_run$outputs5","documents","handleCustomEvent","_this13","finish","_this14","pendingPromises","values","all","finally","close"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@langchain/core/dist/tracers/event_stream.js"],"sourcesContent":["import { BaseTracer } from \"./base.js\";\nimport { IterableReadableStream } from \"../utils/stream.js\";\nimport { AIMessageChunk } from \"../messages/ai.js\";\nimport { GenerationChunk } from \"../outputs.js\";\nfunction assignName({ name, serialized, }) {\n if (name !== undefined) {\n return name;\n }\n if (serialized?.name !== undefined) {\n return serialized.name;\n }\n else if (serialized?.id !== undefined && Array.isArray(serialized?.id)) {\n return serialized.id[serialized.id.length - 1];\n }\n return \"Unnamed\";\n}\nexport const isStreamEventsHandler = (handler) => handler.name === \"event_stream_tracer\";\n/**\n * Class that extends the `BaseTracer` class from the\n * `langchain.callbacks.tracers.base` module. It represents a callback\n * handler that logs the execution of runs and emits `RunLog` instances to a\n * `RunLogStream`.\n */\nexport class EventStreamCallbackHandler extends BaseTracer {\n constructor(fields) {\n super({ _awaitHandler: true, ...fields });\n Object.defineProperty(this, \"autoClose\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"includeNames\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"includeTypes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"includeTags\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeNames\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeTypes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeTags\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"runInfoMap\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"tappedPromises\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"transformStream\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"writer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"receiveStream\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"event_stream_tracer\"\n });\n this.autoClose = fields?.autoClose ?? true;\n this.includeNames = fields?.includeNames;\n this.includeTypes = fields?.includeTypes;\n this.includeTags = fields?.includeTags;\n this.excludeNames = fields?.excludeNames;\n this.excludeTypes = fields?.excludeTypes;\n this.excludeTags = fields?.excludeTags;\n this.transformStream = new TransformStream();\n this.writer = this.transformStream.writable.getWriter();\n this.receiveStream = IterableReadableStream.fromReadableStream(this.transformStream.readable);\n }\n [Symbol.asyncIterator]() {\n return this.receiveStream;\n }\n async persistRun(_run) {\n // This is a legacy method only called once for an entire run tree\n // and is therefore not useful here\n }\n _includeRun(run) {\n const runTags = run.tags ?? [];\n let include = this.includeNames === undefined &&\n this.includeTags === undefined &&\n this.includeTypes === undefined;\n if (this.includeNames !== undefined) {\n include = include || this.includeNames.includes(run.name);\n }\n if (this.includeTypes !== undefined) {\n include = include || this.includeTypes.includes(run.runType);\n }\n if (this.includeTags !== undefined) {\n include =\n include ||\n runTags.find((tag) => this.includeTags?.includes(tag)) !== undefined;\n }\n if (this.excludeNames !== undefined) {\n include = include && !this.excludeNames.includes(run.name);\n }\n if (this.excludeTypes !== undefined) {\n include = include && !this.excludeTypes.includes(run.runType);\n }\n if (this.excludeTags !== undefined) {\n include =\n include && runTags.every((tag) => !this.excludeTags?.includes(tag));\n }\n return include;\n }\n async *tapOutputIterable(runId, outputStream) {\n const firstChunk = await outputStream.next();\n if (firstChunk.done) {\n return;\n }\n const runInfo = this.runInfoMap.get(runId);\n // Run has finished, don't issue any stream events.\n // An example of this is for runnables that use the default\n // implementation of .stream(), which delegates to .invoke()\n // and calls .onChainEnd() before passing it to the iterator.\n if (runInfo === undefined) {\n yield firstChunk.value;\n return;\n }\n // Match format from handlers below\n function _formatOutputChunk(eventType, data) {\n if (eventType === \"llm\" && typeof data === \"string\") {\n return new GenerationChunk({ text: data });\n }\n return data;\n }\n let tappedPromise = this.tappedPromises.get(runId);\n // if we are the first to tap, issue stream events\n if (tappedPromise === undefined) {\n let tappedPromiseResolver;\n tappedPromise = new Promise((resolve) => {\n tappedPromiseResolver = resolve;\n });\n this.tappedPromises.set(runId, tappedPromise);\n try {\n const event = {\n event: `on_${runInfo.runType}_stream`,\n run_id: runId,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n data: {},\n };\n await this.send({\n ...event,\n data: {\n chunk: _formatOutputChunk(runInfo.runType, firstChunk.value),\n },\n }, runInfo);\n yield firstChunk.value;\n for await (const chunk of outputStream) {\n // Don't yield tool and retriever stream events\n if (runInfo.runType !== \"tool\" && runInfo.runType !== \"retriever\") {\n await this.send({\n ...event,\n data: {\n chunk: _formatOutputChunk(runInfo.runType, chunk),\n },\n }, runInfo);\n }\n yield chunk;\n }\n }\n finally {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tappedPromiseResolver();\n // Don't delete from the promises map to keep track of which runs have been tapped.\n }\n }\n else {\n // otherwise just pass through\n yield firstChunk.value;\n for await (const chunk of outputStream) {\n yield chunk;\n }\n }\n }\n async send(payload, run) {\n if (this._includeRun(run)) {\n await this.writer.write(payload);\n }\n }\n async sendEndEvent(payload, run) {\n const tappedPromise = this.tappedPromises.get(payload.run_id);\n if (tappedPromise !== undefined) {\n void tappedPromise.then(() => {\n void this.send(payload, run);\n });\n }\n else {\n await this.send(payload, run);\n }\n }\n async onLLMStart(run) {\n const runName = assignName(run);\n const runType = run.inputs.messages !== undefined ? \"chat_model\" : \"llm\";\n const runInfo = {\n tags: run.tags ?? [],\n metadata: run.extra?.metadata ?? {},\n name: runName,\n runType,\n inputs: run.inputs,\n };\n this.runInfoMap.set(run.id, runInfo);\n const eventName = `on_${runType}_start`;\n await this.send({\n event: eventName,\n data: {\n input: run.inputs,\n },\n name: runName,\n tags: run.tags ?? [],\n run_id: run.id,\n metadata: run.extra?.metadata ?? {},\n }, runInfo);\n }\n async onLLMNewToken(run, token, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n kwargs) {\n const runInfo = this.runInfoMap.get(run.id);\n let chunk;\n let eventName;\n if (runInfo === undefined) {\n throw new Error(`onLLMNewToken: Run ID ${run.id} not found in run map.`);\n }\n // Top-level streaming events are covered by tapOutputIterable\n if (this.runInfoMap.size === 1) {\n return;\n }\n if (runInfo.runType === \"chat_model\") {\n eventName = \"on_chat_model_stream\";\n if (kwargs?.chunk === undefined) {\n chunk = new AIMessageChunk({ content: token, id: `run-${run.id}` });\n }\n else {\n chunk = kwargs.chunk.message;\n }\n }\n else if (runInfo.runType === \"llm\") {\n eventName = \"on_llm_stream\";\n if (kwargs?.chunk === undefined) {\n chunk = new GenerationChunk({ text: token });\n }\n else {\n chunk = kwargs.chunk;\n }\n }\n else {\n throw new Error(`Unexpected run type ${runInfo.runType}`);\n }\n await this.send({\n event: eventName,\n data: {\n chunk,\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n }, runInfo);\n }\n async onLLMEnd(run) {\n const runInfo = this.runInfoMap.get(run.id);\n this.runInfoMap.delete(run.id);\n let eventName;\n if (runInfo === undefined) {\n throw new Error(`onLLMEnd: Run ID ${run.id} not found in run map.`);\n }\n const generations = run.outputs?.generations;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let output;\n if (runInfo.runType === \"chat_model\") {\n for (const generation of generations ?? []) {\n if (output !== undefined) {\n break;\n }\n output = generation[0]?.message;\n }\n eventName = \"on_chat_model_end\";\n }\n else if (runInfo.runType === \"llm\") {\n output = {\n generations: generations?.map((generation) => {\n return generation.map((chunk) => {\n return {\n text: chunk.text,\n generationInfo: chunk.generationInfo,\n };\n });\n }),\n llmOutput: run.outputs?.llmOutput ?? {},\n };\n eventName = \"on_llm_end\";\n }\n else {\n throw new Error(`onLLMEnd: Unexpected run type: ${runInfo.runType}`);\n }\n await this.sendEndEvent({\n event: eventName,\n data: {\n output,\n input: runInfo.inputs,\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n }, runInfo);\n }\n async onChainStart(run) {\n const runName = assignName(run);\n const runType = run.run_type ?? \"chain\";\n const runInfo = {\n tags: run.tags ?? [],\n metadata: run.extra?.metadata ?? {},\n name: runName,\n runType: run.run_type,\n };\n let eventData = {};\n // Workaround Runnable core code not sending input when transform streaming.\n if (run.inputs.input === \"\" && Object.keys(run.inputs).length === 1) {\n eventData = {};\n runInfo.inputs = {};\n }\n else if (run.inputs.input !== undefined) {\n eventData.input = run.inputs.input;\n runInfo.inputs = run.inputs.input;\n }\n else {\n eventData.input = run.inputs;\n runInfo.inputs = run.inputs;\n }\n this.runInfoMap.set(run.id, runInfo);\n await this.send({\n event: `on_${runType}_start`,\n data: eventData,\n name: runName,\n tags: run.tags ?? [],\n run_id: run.id,\n metadata: run.extra?.metadata ?? {},\n }, runInfo);\n }\n async onChainEnd(run) {\n const runInfo = this.runInfoMap.get(run.id);\n this.runInfoMap.delete(run.id);\n if (runInfo === undefined) {\n throw new Error(`onChainEnd: Run ID ${run.id} not found in run map.`);\n }\n const eventName = `on_${run.run_type}_end`;\n const inputs = run.inputs ?? runInfo.inputs ?? {};\n const outputs = run.outputs?.output ?? run.outputs;\n const data = {\n output: outputs,\n input: inputs,\n };\n if (inputs.input && Object.keys(inputs).length === 1) {\n data.input = inputs.input;\n runInfo.inputs = inputs.input;\n }\n await this.sendEndEvent({\n event: eventName,\n data,\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata ?? {},\n }, runInfo);\n }\n async onToolStart(run) {\n const runName = assignName(run);\n const runInfo = {\n tags: run.tags ?? [],\n metadata: run.extra?.metadata ?? {},\n name: runName,\n runType: \"tool\",\n inputs: run.inputs ?? {},\n };\n this.runInfoMap.set(run.id, runInfo);\n await this.send({\n event: \"on_tool_start\",\n data: {\n input: run.inputs ?? {},\n },\n name: runName,\n run_id: run.id,\n tags: run.tags ?? [],\n metadata: run.extra?.metadata ?? {},\n }, runInfo);\n }\n async onToolEnd(run) {\n const runInfo = this.runInfoMap.get(run.id);\n this.runInfoMap.delete(run.id);\n if (runInfo === undefined) {\n throw new Error(`onToolEnd: Run ID ${run.id} not found in run map.`);\n }\n if (runInfo.inputs === undefined) {\n throw new Error(`onToolEnd: Run ID ${run.id} is a tool call, and is expected to have traced inputs.`);\n }\n const output = run.outputs?.output === undefined ? run.outputs : run.outputs.output;\n await this.sendEndEvent({\n event: \"on_tool_end\",\n data: {\n output,\n input: runInfo.inputs,\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n }, runInfo);\n }\n async onRetrieverStart(run) {\n const runName = assignName(run);\n const runType = \"retriever\";\n const runInfo = {\n tags: run.tags ?? [],\n metadata: run.extra?.metadata ?? {},\n name: runName,\n runType,\n inputs: {\n query: run.inputs.query,\n },\n };\n this.runInfoMap.set(run.id, runInfo);\n await this.send({\n event: \"on_retriever_start\",\n data: {\n input: {\n query: run.inputs.query,\n },\n },\n name: runName,\n tags: run.tags ?? [],\n run_id: run.id,\n metadata: run.extra?.metadata ?? {},\n }, runInfo);\n }\n async onRetrieverEnd(run) {\n const runInfo = this.runInfoMap.get(run.id);\n this.runInfoMap.delete(run.id);\n if (runInfo === undefined) {\n throw new Error(`onRetrieverEnd: Run ID ${run.id} not found in run map.`);\n }\n await this.sendEndEvent({\n event: \"on_retriever_end\",\n data: {\n output: run.outputs?.documents ?? run.outputs,\n input: runInfo.inputs,\n },\n run_id: run.id,\n name: runInfo.name,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n }, runInfo);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async handleCustomEvent(eventName, data, runId) {\n const runInfo = this.runInfoMap.get(runId);\n if (runInfo === undefined) {\n throw new Error(`handleCustomEvent: Run ID ${runId} not found in run map.`);\n }\n await this.send({\n event: \"on_custom_event\",\n run_id: runId,\n name: eventName,\n tags: runInfo.tags,\n metadata: runInfo.metadata,\n data,\n }, runInfo);\n }\n async finish() {\n const pendingPromises = [...this.tappedPromises.values()];\n void Promise.all(pendingPromises).finally(() => {\n void this.writer.close();\n });\n }\n}\n"],"mappings":";;;;AAAA,SAASA,UAAU,QAAQ,WAAW;AACtC,SAASC,sBAAsB,QAAQ,oBAAoB;AAC3D,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,UAAUA,CAAC;EAAEC,IAAI;EAAEC;AAAY,CAAC,EAAE;EACvC,IAAID,IAAI,KAAKE,SAAS,EAAE;IACpB,OAAOF,IAAI;EACf;EACA,IAAI,CAAAC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAED,IAAI,MAAKE,SAAS,EAAE;IAChC,OAAOD,UAAU,CAACD,IAAI;EAC1B,CAAC,MACI,IAAI,CAAAC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,EAAE,MAAKD,SAAS,IAAIE,KAAK,CAACC,OAAO,CAACJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,EAAE,CAAC,EAAE;IACpE,OAAOF,UAAU,CAACE,EAAE,CAACF,UAAU,CAACE,EAAE,CAACG,MAAM,GAAG,CAAC,CAAC;EAClD;EACA,OAAO,SAAS;AACpB;AACA,OAAO,MAAMC,qBAAqB,GAAIC,OAAO,IAAKA,OAAO,CAACR,IAAI,KAAK,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMS,0BAA0B,SAASd,UAAU,CAAC;EACvDe,WAAWA,CAACC,MAAM,EAAE;IAAA,IAAAC,iBAAA;IAChB,KAAK,CAAC;MAAEC,aAAa,EAAE,IAAI;MAAE,GAAGF;IAAO,CAAC,CAAC;IACzCG,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;MACrCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE;IACX,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;MACxCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;MACxCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;MACvCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;MACxCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;MACxCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;MACvCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE;MACtCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,IAAIC,GAAG,CAAC;IACnB,CAAC,CAAC;IACFN,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE;MAC1CC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,IAAIC,GAAG,CAAC;IACnB,CAAC,CAAC;IACFN,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE;MAC3CC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;MAClCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE;MACzCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE,KAAK;IAChB,CAAC,CAAC;IACFL,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;MAChCC,UAAU,EAAE,IAAI;MAChBC,YAAY,EAAE,IAAI;MAClBC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAI,CAACE,SAAS,IAAAT,iBAAA,GAAGD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEU,SAAS,cAAAT,iBAAA,cAAAA,iBAAA,GAAI,IAAI;IAC1C,IAAI,CAACU,YAAY,GAAGX,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEW,YAAY;IACxC,IAAI,CAACC,YAAY,GAAGZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,YAAY;IACxC,IAAI,CAACC,WAAW,GAAGb,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,WAAW;IACtC,IAAI,CAACC,YAAY,GAAGd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,YAAY;IACxC,IAAI,CAACC,YAAY,GAAGf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe,YAAY;IACxC,IAAI,CAACC,WAAW,GAAGhB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEgB,WAAW;IACtC,IAAI,CAACC,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAACC,MAAM,GAAG,IAAI,CAACF,eAAe,CAACV,QAAQ,CAACa,SAAS,CAAC,CAAC;IACvD,IAAI,CAACC,aAAa,GAAGpC,sBAAsB,CAACqC,kBAAkB,CAAC,IAAI,CAACL,eAAe,CAACM,QAAQ,CAAC;EACjG;EACA,CAACC,MAAM,CAACC,aAAa,IAAI;IACrB,OAAO,IAAI,CAACJ,aAAa;EAC7B;EACMK,UAAUA,CAACC,IAAI,EAAE;IAAA,OAAAC,iBAAA;EAGvB,CAAC,CAFG;EACA;EAEJC,WAAWA,CAACC,GAAG,EAAE;IAAA,IAAAC,SAAA;IACb,MAAMC,OAAO,IAAAD,SAAA,GAAGD,GAAG,CAACG,IAAI,cAAAF,SAAA,cAAAA,SAAA,GAAI,EAAE;IAC9B,IAAIG,OAAO,GAAG,IAAI,CAACvB,YAAY,KAAKpB,SAAS,IACzC,IAAI,CAACsB,WAAW,KAAKtB,SAAS,IAC9B,IAAI,CAACqB,YAAY,KAAKrB,SAAS;IACnC,IAAI,IAAI,CAACoB,YAAY,KAAKpB,SAAS,EAAE;MACjC2C,OAAO,GAAGA,OAAO,IAAI,IAAI,CAACvB,YAAY,CAACwB,QAAQ,CAACL,GAAG,CAACzC,IAAI,CAAC;IAC7D;IACA,IAAI,IAAI,CAACuB,YAAY,KAAKrB,SAAS,EAAE;MACjC2C,OAAO,GAAGA,OAAO,IAAI,IAAI,CAACtB,YAAY,CAACuB,QAAQ,CAACL,GAAG,CAACM,OAAO,CAAC;IAChE;IACA,IAAI,IAAI,CAACvB,WAAW,KAAKtB,SAAS,EAAE;MAChC2C,OAAO,GACHA,OAAO,IACHF,OAAO,CAACK,IAAI,CAAEC,GAAG;QAAA,IAAAC,iBAAA;QAAA,QAAAA,iBAAA,GAAK,IAAI,CAAC1B,WAAW,cAAA0B,iBAAA,uBAAhBA,iBAAA,CAAkBJ,QAAQ,CAACG,GAAG,CAAC;MAAA,EAAC,KAAK/C,SAAS;IAChF;IACA,IAAI,IAAI,CAACuB,YAAY,KAAKvB,SAAS,EAAE;MACjC2C,OAAO,GAAGA,OAAO,IAAI,CAAC,IAAI,CAACpB,YAAY,CAACqB,QAAQ,CAACL,GAAG,CAACzC,IAAI,CAAC;IAC9D;IACA,IAAI,IAAI,CAAC0B,YAAY,KAAKxB,SAAS,EAAE;MACjC2C,OAAO,GAAGA,OAAO,IAAI,CAAC,IAAI,CAACnB,YAAY,CAACoB,QAAQ,CAACL,GAAG,CAACM,OAAO,CAAC;IACjE;IACA,IAAI,IAAI,CAACpB,WAAW,KAAKzB,SAAS,EAAE;MAChC2C,OAAO,GACHA,OAAO,IAAIF,OAAO,CAACQ,KAAK,CAAEF,GAAG;QAAA,IAAAG,iBAAA;QAAA,OAAK,GAAAA,iBAAA,GAAC,IAAI,CAACzB,WAAW,cAAAyB,iBAAA,eAAhBA,iBAAA,CAAkBN,QAAQ,CAACG,GAAG,CAAC;MAAA,EAAC;IAC3E;IACA,OAAOJ,OAAO;EAClB;EACOQ,iBAAiBA,CAACC,KAAK,EAAEC,YAAY,EAAE;IAAA,IAAAC,KAAA;IAAA,OAAAC,mBAAA;MAC1C,MAAMC,UAAU,SAAAC,oBAAA,CAASJ,YAAY,CAACK,IAAI,CAAC,CAAC;MAC5C,IAAIF,UAAU,CAACG,IAAI,EAAE;QACjB;MACJ;MACA,MAAMC,OAAO,GAAGN,KAAI,CAACO,UAAU,CAACC,GAAG,CAACV,KAAK,CAAC;MAC1C;MACA;MACA;MACA;MACA,IAAIQ,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAMwD,UAAU,CAACvC,KAAK;QACtB;MACJ;MACA;MACA,SAAS8C,kBAAkBA,CAACC,SAAS,EAAEC,IAAI,EAAE;QACzC,IAAID,SAAS,KAAK,KAAK,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;UACjD,OAAO,IAAIrE,eAAe,CAAC;YAAEsE,IAAI,EAAED;UAAK,CAAC,CAAC;QAC9C;QACA,OAAOA,IAAI;MACf;MACA,IAAIE,aAAa,GAAGb,KAAI,CAACc,cAAc,CAACN,GAAG,CAACV,KAAK,CAAC;MAClD;MACA,IAAIe,aAAa,KAAKnE,SAAS,EAAE;QAC7B,IAAIqE,qBAAqB;QACzBF,aAAa,GAAG,IAAIG,OAAO,CAAEC,OAAO,IAAK;UACrCF,qBAAqB,GAAGE,OAAO;QACnC,CAAC,CAAC;QACFjB,KAAI,CAACc,cAAc,CAACI,GAAG,CAACpB,KAAK,EAAEe,aAAa,CAAC;QAC7C,IAAI;UACA,MAAMM,KAAK,GAAG;YACVA,KAAK,EAAE,MAAMb,OAAO,CAACf,OAAO,SAAS;YACrC6B,MAAM,EAAEtB,KAAK;YACbtD,IAAI,EAAE8D,OAAO,CAAC9D,IAAI;YAClB4C,IAAI,EAAEkB,OAAO,CAAClB,IAAI;YAClBiC,QAAQ,EAAEf,OAAO,CAACe,QAAQ;YAC1BV,IAAI,EAAE,CAAC;UACX,CAAC;UACD,MAAAR,oBAAA,CAAMH,KAAI,CAACsB,IAAI,CAAC;YACZ,GAAGH,KAAK;YACRR,IAAI,EAAE;cACFY,KAAK,EAAEd,kBAAkB,CAACH,OAAO,CAACf,OAAO,EAAEW,UAAU,CAACvC,KAAK;YAC/D;UACJ,CAAC,EAAE2C,OAAO,CAAC;UACX,MAAMJ,UAAU,CAACvC,KAAK;UAAC,IAAA6D,yBAAA;UAAA,IAAAC,iBAAA;UAAA,IAAAC,cAAA;UAAA;YACvB,SAAAC,SAAA,GAAAC,cAAA,CAA0B7B,YAAY,GAAA8B,KAAA,EAAAL,yBAAA,KAAAK,KAAA,SAAA1B,oBAAA,CAAAwB,SAAA,CAAAvB,IAAA,KAAAC,IAAA,EAAAmB,yBAAA,UAAE;cAAA,MAAvBD,KAAK,GAAAM,KAAA,CAAAlE,KAAA;cAAA;gBAClB;gBACA,IAAI2C,OAAO,CAACf,OAAO,KAAK,MAAM,IAAIe,OAAO,CAACf,OAAO,KAAK,WAAW,EAAE;kBAC/D,MAAAY,oBAAA,CAAMH,KAAI,CAACsB,IAAI,CAAC;oBACZ,GAAGH,KAAK;oBACRR,IAAI,EAAE;sBACFY,KAAK,EAAEd,kBAAkB,CAACH,OAAO,CAACf,OAAO,EAAEgC,KAAK;oBACpD;kBACJ,CAAC,EAAEjB,OAAO,CAAC;gBACf;gBACA,MAAMiB,KAAK;cAAC;YAChB;UAAC,SAAAO,GAAA;YAAAL,iBAAA;YAAAC,cAAA,GAAAI,GAAA;UAAA;YAAA;cAAA,IAAAN,yBAAA,IAAAG,SAAA,CAAAI,MAAA;gBAAA,MAAA5B,oBAAA,CAAAwB,SAAA,CAAAI,MAAA;cAAA;YAAA;cAAA,IAAAN,iBAAA;gBAAA,MAAAC,cAAA;cAAA;YAAA;UAAA;QACL,CAAC,SACO;UACJ;UACAX,qBAAqB,CAAC,CAAC;UACvB;QACJ;MACJ,CAAC,MACI;QACD;QACA,MAAMb,UAAU,CAACvC,KAAK;QAAC,IAAAqE,0BAAA;QAAA,IAAAC,kBAAA;QAAA,IAAAC,eAAA;QAAA;UACvB,SAAAC,UAAA,GAAAP,cAAA,CAA0B7B,YAAY,GAAAqC,MAAA,EAAAJ,0BAAA,KAAAI,MAAA,SAAAjC,oBAAA,CAAAgC,UAAA,CAAA/B,IAAA,KAAAC,IAAA,EAAA2B,0BAAA,UAAE;YAAA,MAAvBT,KAAK,GAAAa,MAAA,CAAAzE,KAAA;YAAA;cAClB,MAAM4D,KAAK;YAAC;UAChB;QAAC,SAAAO,GAAA;UAAAG,kBAAA;UAAAC,eAAA,GAAAJ,GAAA;QAAA;UAAA;YAAA,IAAAE,0BAAA,IAAAG,UAAA,CAAAJ,MAAA;cAAA,MAAA5B,oBAAA,CAAAgC,UAAA,CAAAJ,MAAA;YAAA;UAAA;YAAA,IAAAE,kBAAA;cAAA,MAAAC,eAAA;YAAA;UAAA;QAAA;MACL;IAAC;EACL;EACMZ,IAAIA,CAACe,OAAO,EAAEpD,GAAG,EAAE;IAAA,IAAAqD,MAAA;IAAA,OAAAvD,iBAAA;MACrB,IAAIuD,MAAI,CAACtD,WAAW,CAACC,GAAG,CAAC,EAAE;QACvB,MAAMqD,MAAI,CAAChE,MAAM,CAACiE,KAAK,CAACF,OAAO,CAAC;MACpC;IAAC;EACL;EACMG,YAAYA,CAACH,OAAO,EAAEpD,GAAG,EAAE;IAAA,IAAAwD,MAAA;IAAA,OAAA1D,iBAAA;MAC7B,MAAM8B,aAAa,GAAG4B,MAAI,CAAC3B,cAAc,CAACN,GAAG,CAAC6B,OAAO,CAACjB,MAAM,CAAC;MAC7D,IAAIP,aAAa,KAAKnE,SAAS,EAAE;QAC7B,KAAKmE,aAAa,CAAC6B,IAAI,CAAC,MAAM;UAC1B,KAAKD,MAAI,CAACnB,IAAI,CAACe,OAAO,EAAEpD,GAAG,CAAC;QAChC,CAAC,CAAC;MACN,CAAC,MACI;QACD,MAAMwD,MAAI,CAACnB,IAAI,CAACe,OAAO,EAAEpD,GAAG,CAAC;MACjC;IAAC;EACL;EACM0D,UAAUA,CAAC1D,GAAG,EAAE;IAAA,IAAA2D,MAAA;IAAA,OAAA7D,iBAAA;MAAA,IAAA8D,UAAA,EAAAC,mBAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,oBAAA,EAAAC,WAAA;MAClB,MAAMC,OAAO,GAAG5G,UAAU,CAAC0C,GAAG,CAAC;MAC/B,MAAMM,OAAO,GAAGN,GAAG,CAACmE,MAAM,CAACC,QAAQ,KAAK3G,SAAS,GAAG,YAAY,GAAG,KAAK;MACxE,MAAM4D,OAAO,GAAG;QACZlB,IAAI,GAAAyD,UAAA,GAAE5D,GAAG,CAACG,IAAI,cAAAyD,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpBxB,QAAQ,GAAAyB,mBAAA,IAAAC,UAAA,GAAE9D,GAAG,CAACqE,KAAK,cAAAP,UAAA,uBAATA,UAAA,CAAW1B,QAAQ,cAAAyB,mBAAA,cAAAA,mBAAA,GAAI,CAAC,CAAC;QACnCtG,IAAI,EAAE2G,OAAO;QACb5D,OAAO;QACP6D,MAAM,EAAEnE,GAAG,CAACmE;MAChB,CAAC;MACDR,MAAI,CAACrC,UAAU,CAACW,GAAG,CAACjC,GAAG,CAACtC,EAAE,EAAE2D,OAAO,CAAC;MACpC,MAAMiD,SAAS,GAAG,MAAMhE,OAAO,QAAQ;MACvC,MAAMqD,MAAI,CAACtB,IAAI,CAAC;QACZH,KAAK,EAAEoC,SAAS;QAChB5C,IAAI,EAAE;UACF6C,KAAK,EAAEvE,GAAG,CAACmE;QACf,CAAC;QACD5G,IAAI,EAAE2G,OAAO;QACb/D,IAAI,GAAA4D,UAAA,GAAE/D,GAAG,CAACG,IAAI,cAAA4D,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpB5B,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACd0E,QAAQ,GAAA4B,oBAAA,IAAAC,WAAA,GAAEjE,GAAG,CAACqE,KAAK,cAAAJ,WAAA,uBAATA,WAAA,CAAW7B,QAAQ,cAAA4B,oBAAA,cAAAA,oBAAA,GAAI,CAAC;MACtC,CAAC,EAAE3C,OAAO,CAAC;IAAC;EAChB;EACMmD,aAAaA,CAACxE,GAAG,EAAEyE,KAAK;EAC9B;EACAC,MAAM,EAAE;IAAA,IAAAC,MAAA;IAAA,OAAA7E,iBAAA;MACJ,MAAMuB,OAAO,GAAGsD,MAAI,CAACrD,UAAU,CAACC,GAAG,CAACvB,GAAG,CAACtC,EAAE,CAAC;MAC3C,IAAI4E,KAAK;MACT,IAAIgC,SAAS;MACb,IAAIjD,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAM,IAAImH,KAAK,CAAC,yBAAyB5E,GAAG,CAACtC,EAAE,wBAAwB,CAAC;MAC5E;MACA;MACA,IAAIiH,MAAI,CAACrD,UAAU,CAACuD,IAAI,KAAK,CAAC,EAAE;QAC5B;MACJ;MACA,IAAIxD,OAAO,CAACf,OAAO,KAAK,YAAY,EAAE;QAClCgE,SAAS,GAAG,sBAAsB;QAClC,IAAI,CAAAI,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEpC,KAAK,MAAK7E,SAAS,EAAE;UAC7B6E,KAAK,GAAG,IAAIlF,cAAc,CAAC;YAAE0H,OAAO,EAAEL,KAAK;YAAE/G,EAAE,EAAE,OAAOsC,GAAG,CAACtC,EAAE;UAAG,CAAC,CAAC;QACvE,CAAC,MACI;UACD4E,KAAK,GAAGoC,MAAM,CAACpC,KAAK,CAACyC,OAAO;QAChC;MACJ,CAAC,MACI,IAAI1D,OAAO,CAACf,OAAO,KAAK,KAAK,EAAE;QAChCgE,SAAS,GAAG,eAAe;QAC3B,IAAI,CAAAI,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEpC,KAAK,MAAK7E,SAAS,EAAE;UAC7B6E,KAAK,GAAG,IAAIjF,eAAe,CAAC;YAAEsE,IAAI,EAAE8C;UAAM,CAAC,CAAC;QAChD,CAAC,MACI;UACDnC,KAAK,GAAGoC,MAAM,CAACpC,KAAK;QACxB;MACJ,CAAC,MACI;QACD,MAAM,IAAIsC,KAAK,CAAC,uBAAuBvD,OAAO,CAACf,OAAO,EAAE,CAAC;MAC7D;MACA,MAAMqE,MAAI,CAACtC,IAAI,CAAC;QACZH,KAAK,EAAEoC,SAAS;QAChB5C,IAAI,EAAE;UACFY;QACJ,CAAC;QACDH,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACdH,IAAI,EAAE8D,OAAO,CAAC9D,IAAI;QAClB4C,IAAI,EAAEkB,OAAO,CAAClB,IAAI;QAClBiC,QAAQ,EAAEf,OAAO,CAACe;MACtB,CAAC,EAAEf,OAAO,CAAC;IAAC;EAChB;EACM2D,QAAQA,CAAChF,GAAG,EAAE;IAAA,IAAAiF,MAAA;IAAA,OAAAnF,iBAAA;MAAA,IAAAoF,YAAA;MAChB,MAAM7D,OAAO,GAAG4D,MAAI,CAAC3D,UAAU,CAACC,GAAG,CAACvB,GAAG,CAACtC,EAAE,CAAC;MAC3CuH,MAAI,CAAC3D,UAAU,CAAC6D,MAAM,CAACnF,GAAG,CAACtC,EAAE,CAAC;MAC9B,IAAI4G,SAAS;MACb,IAAIjD,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAM,IAAImH,KAAK,CAAC,oBAAoB5E,GAAG,CAACtC,EAAE,wBAAwB,CAAC;MACvE;MACA,MAAM0H,WAAW,IAAAF,YAAA,GAAGlF,GAAG,CAACqF,OAAO,cAAAH,YAAA,uBAAXA,YAAA,CAAaE,WAAW;MAC5C;MACA,IAAIE,MAAM;MACV,IAAIjE,OAAO,CAACf,OAAO,KAAK,YAAY,EAAE;QAClC,KAAK,MAAMiF,UAAU,IAAIH,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,EAAE,EAAE;UAAA,IAAAI,YAAA;UACxC,IAAIF,MAAM,KAAK7H,SAAS,EAAE;YACtB;UACJ;UACA6H,MAAM,IAAAE,YAAA,GAAGD,UAAU,CAAC,CAAC,CAAC,cAAAC,YAAA,uBAAbA,YAAA,CAAeT,OAAO;QACnC;QACAT,SAAS,GAAG,mBAAmB;MACnC,CAAC,MACI,IAAIjD,OAAO,CAACf,OAAO,KAAK,KAAK,EAAE;QAAA,IAAAmF,qBAAA,EAAAC,aAAA;QAChCJ,MAAM,GAAG;UACLF,WAAW,EAAEA,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEO,GAAG,CAAEJ,UAAU,IAAK;YAC1C,OAAOA,UAAU,CAACI,GAAG,CAAErD,KAAK,IAAK;cAC7B,OAAO;gBACHX,IAAI,EAAEW,KAAK,CAACX,IAAI;gBAChBiE,cAAc,EAAEtD,KAAK,CAACsD;cAC1B,CAAC;YACL,CAAC,CAAC;UACN,CAAC,CAAC;UACFC,SAAS,GAAAJ,qBAAA,IAAAC,aAAA,GAAE1F,GAAG,CAACqF,OAAO,cAAAK,aAAA,uBAAXA,aAAA,CAAaG,SAAS,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,CAAC;QAC1C,CAAC;QACDnB,SAAS,GAAG,YAAY;MAC5B,CAAC,MACI;QACD,MAAM,IAAIM,KAAK,CAAC,kCAAkCvD,OAAO,CAACf,OAAO,EAAE,CAAC;MACxE;MACA,MAAM2E,MAAI,CAAC1B,YAAY,CAAC;QACpBrB,KAAK,EAAEoC,SAAS;QAChB5C,IAAI,EAAE;UACF4D,MAAM;UACNf,KAAK,EAAElD,OAAO,CAAC8C;QACnB,CAAC;QACDhC,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACdH,IAAI,EAAE8D,OAAO,CAAC9D,IAAI;QAClB4C,IAAI,EAAEkB,OAAO,CAAClB,IAAI;QAClBiC,QAAQ,EAAEf,OAAO,CAACe;MACtB,CAAC,EAAEf,OAAO,CAAC;IAAC;EAChB;EACMyE,YAAYA,CAAC9F,GAAG,EAAE;IAAA,IAAA+F,MAAA;IAAA,OAAAjG,iBAAA;MAAA,IAAAkG,aAAA,EAAAC,UAAA,EAAAC,oBAAA,EAAAC,WAAA,EAAAC,UAAA,EAAAC,oBAAA,EAAAC,WAAA;MACpB,MAAMpC,OAAO,GAAG5G,UAAU,CAAC0C,GAAG,CAAC;MAC/B,MAAMM,OAAO,IAAA0F,aAAA,GAAGhG,GAAG,CAACuG,QAAQ,cAAAP,aAAA,cAAAA,aAAA,GAAI,OAAO;MACvC,MAAM3E,OAAO,GAAG;QACZlB,IAAI,GAAA8F,UAAA,GAAEjG,GAAG,CAACG,IAAI,cAAA8F,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpB7D,QAAQ,GAAA8D,oBAAA,IAAAC,WAAA,GAAEnG,GAAG,CAACqE,KAAK,cAAA8B,WAAA,uBAATA,WAAA,CAAW/D,QAAQ,cAAA8D,oBAAA,cAAAA,oBAAA,GAAI,CAAC,CAAC;QACnC3I,IAAI,EAAE2G,OAAO;QACb5D,OAAO,EAAEN,GAAG,CAACuG;MACjB,CAAC;MACD,IAAIC,SAAS,GAAG,CAAC,CAAC;MAClB;MACA,IAAIxG,GAAG,CAACmE,MAAM,CAACI,KAAK,KAAK,EAAE,IAAIlG,MAAM,CAACoI,IAAI,CAACzG,GAAG,CAACmE,MAAM,CAAC,CAACtG,MAAM,KAAK,CAAC,EAAE;QACjE2I,SAAS,GAAG,CAAC,CAAC;QACdnF,OAAO,CAAC8C,MAAM,GAAG,CAAC,CAAC;MACvB,CAAC,MACI,IAAInE,GAAG,CAACmE,MAAM,CAACI,KAAK,KAAK9G,SAAS,EAAE;QACrC+I,SAAS,CAACjC,KAAK,GAAGvE,GAAG,CAACmE,MAAM,CAACI,KAAK;QAClClD,OAAO,CAAC8C,MAAM,GAAGnE,GAAG,CAACmE,MAAM,CAACI,KAAK;MACrC,CAAC,MACI;QACDiC,SAAS,CAACjC,KAAK,GAAGvE,GAAG,CAACmE,MAAM;QAC5B9C,OAAO,CAAC8C,MAAM,GAAGnE,GAAG,CAACmE,MAAM;MAC/B;MACA4B,MAAI,CAACzE,UAAU,CAACW,GAAG,CAACjC,GAAG,CAACtC,EAAE,EAAE2D,OAAO,CAAC;MACpC,MAAM0E,MAAI,CAAC1D,IAAI,CAAC;QACZH,KAAK,EAAE,MAAM5B,OAAO,QAAQ;QAC5BoB,IAAI,EAAE8E,SAAS;QACfjJ,IAAI,EAAE2G,OAAO;QACb/D,IAAI,GAAAiG,UAAA,GAAEpG,GAAG,CAACG,IAAI,cAAAiG,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpBjE,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACd0E,QAAQ,GAAAiE,oBAAA,IAAAC,WAAA,GAAEtG,GAAG,CAACqE,KAAK,cAAAiC,WAAA,uBAATA,WAAA,CAAWlE,QAAQ,cAAAiE,oBAAA,cAAAA,oBAAA,GAAI,CAAC;MACtC,CAAC,EAAEhF,OAAO,CAAC;IAAC;EAChB;EACMqF,UAAUA,CAAC1G,GAAG,EAAE;IAAA,IAAA2G,MAAA;IAAA,OAAA7G,iBAAA;MAAA,IAAA8G,IAAA,EAAAC,WAAA,EAAAC,mBAAA,EAAAC,aAAA,EAAAC,iBAAA;MAClB,MAAM3F,OAAO,GAAGsF,MAAI,CAACrF,UAAU,CAACC,GAAG,CAACvB,GAAG,CAACtC,EAAE,CAAC;MAC3CiJ,MAAI,CAACrF,UAAU,CAAC6D,MAAM,CAACnF,GAAG,CAACtC,EAAE,CAAC;MAC9B,IAAI2D,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAM,IAAImH,KAAK,CAAC,sBAAsB5E,GAAG,CAACtC,EAAE,wBAAwB,CAAC;MACzE;MACA,MAAM4G,SAAS,GAAG,MAAMtE,GAAG,CAACuG,QAAQ,MAAM;MAC1C,MAAMpC,MAAM,IAAAyC,IAAA,IAAAC,WAAA,GAAG7G,GAAG,CAACmE,MAAM,cAAA0C,WAAA,cAAAA,WAAA,GAAIxF,OAAO,CAAC8C,MAAM,cAAAyC,IAAA,cAAAA,IAAA,GAAI,CAAC,CAAC;MACjD,MAAMvB,OAAO,IAAAyB,mBAAA,IAAAC,aAAA,GAAG/G,GAAG,CAACqF,OAAO,cAAA0B,aAAA,uBAAXA,aAAA,CAAazB,MAAM,cAAAwB,mBAAA,cAAAA,mBAAA,GAAI9G,GAAG,CAACqF,OAAO;MAClD,MAAM3D,IAAI,GAAG;QACT4D,MAAM,EAAED,OAAO;QACfd,KAAK,EAAEJ;MACX,CAAC;MACD,IAAIA,MAAM,CAACI,KAAK,IAAIlG,MAAM,CAACoI,IAAI,CAACtC,MAAM,CAAC,CAACtG,MAAM,KAAK,CAAC,EAAE;QAClD6D,IAAI,CAAC6C,KAAK,GAAGJ,MAAM,CAACI,KAAK;QACzBlD,OAAO,CAAC8C,MAAM,GAAGA,MAAM,CAACI,KAAK;MACjC;MACA,MAAMoC,MAAI,CAACpD,YAAY,CAAC;QACpBrB,KAAK,EAAEoC,SAAS;QAChB5C,IAAI;QACJS,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACdH,IAAI,EAAE8D,OAAO,CAAC9D,IAAI;QAClB4C,IAAI,EAAEkB,OAAO,CAAClB,IAAI;QAClBiC,QAAQ,GAAA4E,iBAAA,GAAE3F,OAAO,CAACe,QAAQ,cAAA4E,iBAAA,cAAAA,iBAAA,GAAI,CAAC;MACnC,CAAC,EAAE3F,OAAO,CAAC;IAAC;EAChB;EACM4F,WAAWA,CAACjH,GAAG,EAAE;IAAA,IAAAkH,MAAA;IAAA,OAAApH,iBAAA;MAAA,IAAAqH,UAAA,EAAAC,oBAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,oBAAA,EAAAC,WAAA;MACnB,MAAMxD,OAAO,GAAG5G,UAAU,CAAC0C,GAAG,CAAC;MAC/B,MAAMqB,OAAO,GAAG;QACZlB,IAAI,GAAAgH,UAAA,GAAEnH,GAAG,CAACG,IAAI,cAAAgH,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpB/E,QAAQ,GAAAgF,oBAAA,IAAAC,WAAA,GAAErH,GAAG,CAACqE,KAAK,cAAAgD,WAAA,uBAATA,WAAA,CAAWjF,QAAQ,cAAAgF,oBAAA,cAAAA,oBAAA,GAAI,CAAC,CAAC;QACnC7J,IAAI,EAAE2G,OAAO;QACb5D,OAAO,EAAE,MAAM;QACf6D,MAAM,GAAAmD,YAAA,GAAEtH,GAAG,CAACmE,MAAM,cAAAmD,YAAA,cAAAA,YAAA,GAAI,CAAC;MAC3B,CAAC;MACDJ,MAAI,CAAC5F,UAAU,CAACW,GAAG,CAACjC,GAAG,CAACtC,EAAE,EAAE2D,OAAO,CAAC;MACpC,MAAM6F,MAAI,CAAC7E,IAAI,CAAC;QACZH,KAAK,EAAE,eAAe;QACtBR,IAAI,EAAE;UACF6C,KAAK,GAAAgD,YAAA,GAAEvH,GAAG,CAACmE,MAAM,cAAAoD,YAAA,cAAAA,YAAA,GAAI,CAAC;QAC1B,CAAC;QACDhK,IAAI,EAAE2G,OAAO;QACb/B,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACdyC,IAAI,GAAAqH,UAAA,GAAExH,GAAG,CAACG,IAAI,cAAAqH,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpBpF,QAAQ,GAAAqF,oBAAA,IAAAC,WAAA,GAAE1H,GAAG,CAACqE,KAAK,cAAAqD,WAAA,uBAATA,WAAA,CAAWtF,QAAQ,cAAAqF,oBAAA,cAAAA,oBAAA,GAAI,CAAC;MACtC,CAAC,EAAEpG,OAAO,CAAC;IAAC;EAChB;EACMsG,SAASA,CAAC3H,GAAG,EAAE;IAAA,IAAA4H,OAAA;IAAA,OAAA9H,iBAAA;MAAA,IAAA+H,aAAA;MACjB,MAAMxG,OAAO,GAAGuG,OAAI,CAACtG,UAAU,CAACC,GAAG,CAACvB,GAAG,CAACtC,EAAE,CAAC;MAC3CkK,OAAI,CAACtG,UAAU,CAAC6D,MAAM,CAACnF,GAAG,CAACtC,EAAE,CAAC;MAC9B,IAAI2D,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAM,IAAImH,KAAK,CAAC,qBAAqB5E,GAAG,CAACtC,EAAE,wBAAwB,CAAC;MACxE;MACA,IAAI2D,OAAO,CAAC8C,MAAM,KAAK1G,SAAS,EAAE;QAC9B,MAAM,IAAImH,KAAK,CAAC,qBAAqB5E,GAAG,CAACtC,EAAE,yDAAyD,CAAC;MACzG;MACA,MAAM4H,MAAM,GAAG,EAAAuC,aAAA,GAAA7H,GAAG,CAACqF,OAAO,cAAAwC,aAAA,uBAAXA,aAAA,CAAavC,MAAM,MAAK7H,SAAS,GAAGuC,GAAG,CAACqF,OAAO,GAAGrF,GAAG,CAACqF,OAAO,CAACC,MAAM;MACnF,MAAMsC,OAAI,CAACrE,YAAY,CAAC;QACpBrB,KAAK,EAAE,aAAa;QACpBR,IAAI,EAAE;UACF4D,MAAM;UACNf,KAAK,EAAElD,OAAO,CAAC8C;QACnB,CAAC;QACDhC,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACdH,IAAI,EAAE8D,OAAO,CAAC9D,IAAI;QAClB4C,IAAI,EAAEkB,OAAO,CAAClB,IAAI;QAClBiC,QAAQ,EAAEf,OAAO,CAACe;MACtB,CAAC,EAAEf,OAAO,CAAC;IAAC;EAChB;EACMyG,gBAAgBA,CAAC9H,GAAG,EAAE;IAAA,IAAA+H,OAAA;IAAA,OAAAjI,iBAAA;MAAA,IAAAkI,UAAA,EAAAC,oBAAA,EAAAC,WAAA,EAAAC,UAAA,EAAAC,oBAAA,EAAAC,WAAA;MACxB,MAAMnE,OAAO,GAAG5G,UAAU,CAAC0C,GAAG,CAAC;MAC/B,MAAMM,OAAO,GAAG,WAAW;MAC3B,MAAMe,OAAO,GAAG;QACZlB,IAAI,GAAA6H,UAAA,GAAEhI,GAAG,CAACG,IAAI,cAAA6H,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpB5F,QAAQ,GAAA6F,oBAAA,IAAAC,WAAA,GAAElI,GAAG,CAACqE,KAAK,cAAA6D,WAAA,uBAATA,WAAA,CAAW9F,QAAQ,cAAA6F,oBAAA,cAAAA,oBAAA,GAAI,CAAC,CAAC;QACnC1K,IAAI,EAAE2G,OAAO;QACb5D,OAAO;QACP6D,MAAM,EAAE;UACJmE,KAAK,EAAEtI,GAAG,CAACmE,MAAM,CAACmE;QACtB;MACJ,CAAC;MACDP,OAAI,CAACzG,UAAU,CAACW,GAAG,CAACjC,GAAG,CAACtC,EAAE,EAAE2D,OAAO,CAAC;MACpC,MAAM0G,OAAI,CAAC1F,IAAI,CAAC;QACZH,KAAK,EAAE,oBAAoB;QAC3BR,IAAI,EAAE;UACF6C,KAAK,EAAE;YACH+D,KAAK,EAAEtI,GAAG,CAACmE,MAAM,CAACmE;UACtB;QACJ,CAAC;QACD/K,IAAI,EAAE2G,OAAO;QACb/D,IAAI,GAAAgI,UAAA,GAAEnI,GAAG,CAACG,IAAI,cAAAgI,UAAA,cAAAA,UAAA,GAAI,EAAE;QACpBhG,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACd0E,QAAQ,GAAAgG,oBAAA,IAAAC,WAAA,GAAErI,GAAG,CAACqE,KAAK,cAAAgE,WAAA,uBAATA,WAAA,CAAWjG,QAAQ,cAAAgG,oBAAA,cAAAA,oBAAA,GAAI,CAAC;MACtC,CAAC,EAAE/G,OAAO,CAAC;IAAC;EAChB;EACMkH,cAAcA,CAACvI,GAAG,EAAE;IAAA,IAAAwI,OAAA;IAAA,OAAA1I,iBAAA;MAAA,IAAA2I,qBAAA,EAAAC,aAAA;MACtB,MAAMrH,OAAO,GAAGmH,OAAI,CAAClH,UAAU,CAACC,GAAG,CAACvB,GAAG,CAACtC,EAAE,CAAC;MAC3C8K,OAAI,CAAClH,UAAU,CAAC6D,MAAM,CAACnF,GAAG,CAACtC,EAAE,CAAC;MAC9B,IAAI2D,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAM,IAAImH,KAAK,CAAC,0BAA0B5E,GAAG,CAACtC,EAAE,wBAAwB,CAAC;MAC7E;MACA,MAAM8K,OAAI,CAACjF,YAAY,CAAC;QACpBrB,KAAK,EAAE,kBAAkB;QACzBR,IAAI,EAAE;UACF4D,MAAM,GAAAmD,qBAAA,IAAAC,aAAA,GAAE1I,GAAG,CAACqF,OAAO,cAAAqD,aAAA,uBAAXA,aAAA,CAAaC,SAAS,cAAAF,qBAAA,cAAAA,qBAAA,GAAIzI,GAAG,CAACqF,OAAO;UAC7Cd,KAAK,EAAElD,OAAO,CAAC8C;QACnB,CAAC;QACDhC,MAAM,EAAEnC,GAAG,CAACtC,EAAE;QACdH,IAAI,EAAE8D,OAAO,CAAC9D,IAAI;QAClB4C,IAAI,EAAEkB,OAAO,CAAClB,IAAI;QAClBiC,QAAQ,EAAEf,OAAO,CAACe;MACtB,CAAC,EAAEf,OAAO,CAAC;IAAC;EAChB;EACA;EACMuH,iBAAiBA,CAACtE,SAAS,EAAE5C,IAAI,EAAEb,KAAK,EAAE;IAAA,IAAAgI,OAAA;IAAA,OAAA/I,iBAAA;MAC5C,MAAMuB,OAAO,GAAGwH,OAAI,CAACvH,UAAU,CAACC,GAAG,CAACV,KAAK,CAAC;MAC1C,IAAIQ,OAAO,KAAK5D,SAAS,EAAE;QACvB,MAAM,IAAImH,KAAK,CAAC,6BAA6B/D,KAAK,wBAAwB,CAAC;MAC/E;MACA,MAAMgI,OAAI,CAACxG,IAAI,CAAC;QACZH,KAAK,EAAE,iBAAiB;QACxBC,MAAM,EAAEtB,KAAK;QACbtD,IAAI,EAAE+G,SAAS;QACfnE,IAAI,EAAEkB,OAAO,CAAClB,IAAI;QAClBiC,QAAQ,EAAEf,OAAO,CAACe,QAAQ;QAC1BV;MACJ,CAAC,EAAEL,OAAO,CAAC;IAAC;EAChB;EACMyH,MAAMA,CAAA,EAAG;IAAA,IAAAC,OAAA;IAAA,OAAAjJ,iBAAA;MACX,MAAMkJ,eAAe,GAAG,CAAC,GAAGD,OAAI,CAAClH,cAAc,CAACoH,MAAM,CAAC,CAAC,CAAC;MACzD,KAAKlH,OAAO,CAACmH,GAAG,CAACF,eAAe,CAAC,CAACG,OAAO,CAAC,MAAM;QAC5C,KAAKJ,OAAI,CAAC1J,MAAM,CAAC+J,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IAAC;EACP;AACJ","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}