From b0bfc206e08a848fe8da28e7c50e665c760dee4a Mon Sep 17 00:00:00 2001 From: Igor Matuszewski Date: Tue, 23 Jul 2024 15:15:44 +0200 Subject: [PATCH] patch(hardhat): Re-use MessageTrace and VmTracer from EDR now See https://github.com/NomicFoundation/hardhat/commit/3aeeb564394349824221ea9814f49cb5f8002d78 --- patches/gen-hardhat-patches.sh | 2 + patches/hardhat@2.22.6.patch | 1045 +++++++++++++++++++++++++++++--- pnpm-lock.yaml | 24 +- 3 files changed, 986 insertions(+), 85 deletions(-) diff --git a/patches/gen-hardhat-patches.sh b/patches/gen-hardhat-patches.sh index ad9a9e905..797215717 100755 --- a/patches/gen-hardhat-patches.sh +++ b/patches/gen-hardhat-patches.sh @@ -22,6 +22,8 @@ COMMITS=( 5739893bf382b4e937b44995ca7917cbbd39de12 # refactor: Re-use the compiler to model and opcodes logic from EDR 49c66b6947283d9c9414f5e6faf2f94dcf05cc58 + # refactor: Re-use MessageTrace and VmTracer from EDR now + 3aeeb564394349824221ea9814f49cb5f8002d78 ) for commit in "${COMMITS[@]}"; do diff --git a/patches/hardhat@2.22.6.patch b/patches/hardhat@2.22.6.patch index 29b9eb5f1..86cdb0e9e 100644 --- a/patches/hardhat@2.22.6.patch +++ b/patches/hardhat@2.22.6.patch @@ -41,16 +41,16 @@ index 01d5cb3ac9a53ace027560498a720e0aa939c555..ea4a098de6e8627e2d0d0db676a8e844 export declare function getNodeConfig(config: HardhatNetworkProviderConfig, tracingConfig?: TracingConfig): NodeConfig; export declare class EdrProviderWrapper extends EventEmitter implements EIP1193Provider { diff --git a/internal/hardhat-network/provider/provider.d.ts.map b/internal/hardhat-network/provider/provider.d.ts.map -index 724129c3863a7f7672c055f032557a499642c583..87b88d1e826e346180e6f36cd1ca9a29a1fcb76a 100644 +index 724129c3863a7f7672c055f032557a499642c583..4f49533a6c8b8c43d606dd28c48399407c15237f 100644 --- a/internal/hardhat-network/provider/provider.d.ts.map +++ b/internal/hardhat-network/provider/provider.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file -+{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"} ++{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/internal/hardhat-network/provider/provider.js b/internal/hardhat-network/provider/provider.js -index 6564b3c6687c6371e422eaacd76a6ef6e7fd8a36..54e7cbc60d4c94d49c26a438b5cae6ce179d17d9 100644 +index 6564b3c6687c6371e422eaacd76a6ef6e7fd8a36..1c3eff6756fee456bfb287d09f3734fc1672be8b 100644 --- a/internal/hardhat-network/provider/provider.js +++ b/internal/hardhat-network/provider/provider.js @@ -152,6 +152,7 @@ class EdrProviderWrapper extends events_1.EventEmitter { @@ -61,44 +61,199 @@ index 6564b3c6687c6371e422eaacd76a6ef6e7fd8a36..54e7cbc60d4c94d49c26a438b5cae6ce fork, hardfork: (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)(hardforkName), genesisAccounts: config.genesisAccounts.map((account) => { +@@ -225,6 +226,8 @@ class EdrProviderWrapper extends events_1.EventEmitter { + if (needsTraces) { + const rawTraces = responseObject.traces; + for (const rawTrace of rawTraces) { ++ this._vmTracer?.observe(rawTrace); ++ // For other consumers in JS we need to marshall the entire trace over FFI + const trace = rawTrace.trace(); + // beforeTx event + if (this._node._vm.events.listenerCount("beforeTx") > 0) { +@@ -236,21 +239,18 @@ class EdrProviderWrapper extends events_1.EventEmitter { + if (this._node._vm.evm.events.listenerCount("step") > 0) { + this._node._vm.evm.events.emit("step", (0, convertToEdr_1.edrTracingStepToMinimalInterpreterStep)(traceItem)); + } +- this._vmTracer?.addStep(traceItem); + } + // afterMessage event + else if ("executionResult" in traceItem) { + if (this._node._vm.evm.events.listenerCount("afterMessage") > 0) { + this._node._vm.evm.events.emit("afterMessage", (0, convertToEdr_1.edrTracingMessageResultToMinimalEVMResult)(traceItem)); + } +- this._vmTracer?.addAfterMessage(traceItem.executionResult); + } + // beforeMessage event + else { + if (this._node._vm.evm.events.listenerCount("beforeMessage") > 0) { + this._node._vm.evm.events.emit("beforeMessage", (0, convertToEdr_1.edrTracingMessageToMinimalMessage)(traceItem)); + } +- this._vmTracer?.addBeforeMessage(traceItem); + } + } + // afterTx event +@@ -372,18 +372,7 @@ class EdrProviderWrapper extends events_1.EventEmitter { + } + async _rawTraceToSolidityStackTrace(rawTrace) { + const vmTracer = new vm_tracer_1.VMTracer(); +- const trace = rawTrace.trace(); +- for (const traceItem of trace) { +- if ("pc" in traceItem) { +- vmTracer.addStep(traceItem); +- } +- else if ("executionResult" in traceItem) { +- vmTracer.addAfterMessage(traceItem.executionResult); +- } +- else { +- vmTracer.addBeforeMessage(traceItem); +- } +- } ++ vmTracer.observe(rawTrace); + let vmTrace = vmTracer.getLastTopLevelMessageTrace(); + const vmTracerError = vmTracer.getLastError(); + if (vmTrace !== undefined) { diff --git a/internal/hardhat-network/provider/provider.js.map b/internal/hardhat-network/provider/provider.js.map -index 72893b6b34febfa9a5137186decf2d782e0b8903..06819403dc8e2bd54aa556c9a82f3b070e234aad 100644 +index 72893b6b34febfa9a5137186decf2d782e0b8903..1657bf7fccde923c207a3f6b4da90aee1ba4aa87 100644 --- a/internal/hardhat-network/provider/provider.js.map +++ b/internal/hardhat-network/provider/provider.js.map @@ -1 +1 @@ -{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file -+{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"} ++{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,kDAA0B;AAC1B,kDAA0B;AAC1B,mCAAsC;AACtC,wDAA+B;AAC/B,yCAA2B;AAC3B,oDAA4B;AAE5B,qDAA8D;AAC9D,+CAGyB;AACzB,8DAG6C;AAC7C,0EAA2E;AAC3E,wDAIqC;AACrC,oDAA4D;AAC5D,oDAAuD;AACvD,yEAAmF;AACnF,iEAA8D;AAC9D,+EAA2E;AAC3E,uEAG0C;AAC1C,yDAAyE;AACzE,qEAA2E;AAE3E,mEAAgE;AAChE,yDAAqD;AAErD,wDAAwD;AASxD,uDAQ8B;AAC9B,mDAAgD;AAChD,6CAA4E;AAC5E,gDAA8E;AAE9E,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,uCAAuC,CAAC,CAAC;AAE3D,+EAA+E;AAElE,QAAA,gBAAgB,GAAG,4CAA4C,CAAC;AAC7E,IAAI,iBAAyC,CAAC;AAE9C,0CAA0C;AAC1C,SAAgB,mBAAmB;IACjC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,6BAAmB,EACxC,sBAAsB,CACkB,CAAC;IAE3C,IAAI,iBAAiB,KAAK,SAAS,EAAE;QACnC,+BAA+B;QAC/B,iBAAiB,GAAG,IAAI,UAAU,EAAE,CAAC;KACtC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAXD,kDAWC;AA4BD,SAAgB,aAAa,CAC3B,MAAoC,EACpC,aAA6B;IAE7B,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;QAC7D,aAAa;QACb,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EACX,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACpE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,wBAAgB;QAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;QACjE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;KACtD,CAAC;AACJ,CAAC;AAzBD,sCAyBC;AAED,MAAM,uBAAwB,SAAQ,qBAAY;CAAG;AASrD,MAAa,kBACX,SAAQ,qBAAY;IAWpB,YACmB,SAAuB;IACxC,8EAA8E;IAC7D,KAEhB,EACgB,aAAsC,EACtC,eAA+B;IAChD,8GAA8G;IAC7F,OAAe,EAChC,aAA6B;QAE7B,KAAK,EAAE,CAAC;QAXS,cAAS,GAAT,SAAS,CAAc;QAEvB,UAAK,GAAL,KAAK,CAErB;QACgB,kBAAa,GAAb,aAAa,CAAyB;QACtC,oBAAe,GAAf,eAAe,CAAgB;QAE/B,YAAO,GAAP,OAAO,CAAQ;QAjB1B,uBAAkB,GAAG,CAAC,CAAC;QAsB7B,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,IAAA,2CAAwB,EAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;SAC/D;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,MAAoC,EACpC,YAA0B,EAC1B,aAA6B;QAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAmB,EACtC,sBAAsB,CACkB,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,wBAAgB,CAAC;QAErD,IAAI,IAAI,CAAC;QACT,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;YACnC,IAAI,GAAG;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;gBACxC,WAAW,EACT,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS;oBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;oBACvC,CAAC,CAAC,SAAS;aAChB,CAAC;SACH;QAED,MAAM,WAAW,GACf,MAAM,CAAC,WAAW,KAAK,SAAS;YAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC;QAEhB,4EAA4E;QAC5E,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAEnD,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,kBAAS,CAAC;QAC1D,MAAM,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,IAAI,wBAAe,CAAC;QAE5E,MAAM,mBAAmB,GAAG,IAAI,0CAAmB,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,iCAAc,CAAC,mBAAmB,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CACxC,mBAAmB,EAAE,EACrB;YACE,4BAA4B,EAC1B,MAAM,CAAC,4BAA4B,IAAI,KAAK;YAC9C,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;YAC7D,iBAAiB,EAAE,MAAM,CAAC,mBAAmB;YAC7C,wBAAwB,EAAE,MAAM,CAAC,0BAA0B;YAC3D,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE;gBAC9D,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;oBACxB,SAAS,EAAE,KAAK,CAAC,IAAI,CACnB,cAAc,CAAC,eAAe,EAC9B,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE;wBAC1B,OAAO;4BACL,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;4BAChC,MAAM,EAAE,IAAA,6CAA8B,EACpC,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAC1B;yBACF,CAAC;oBACJ,CAAC,CACF;iBACF,CAAC;YACJ,CAAC,CAAC;YACF,QAAQ,EAAE,MAAM,CAAC,aAAa;YAC9B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YAC/C,aAAa,EAAE,KAAK;YACpB,IAAI;YACJ,QAAQ,EAAE,IAAA,6CAA8B,EAAC,YAAY,CAAC;YACtD,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtD,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC;YACF,WAAW;YACX,oBAAoB,EAClB,MAAM,CAAC,oBAAoB,KAAK,SAAS;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC;gBACtC,CAAC,CAAC,SAAS;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,IAAA,kDAAmC,EAAC,MAAM,CAAC,cAAc,CAAC;gBACpE,OAAO,EAAE;oBACP,KAAK,EAAE,IAAA,sDAAuC,EAAC,MAAM,CAAC,YAAY,CAAC;iBACpE;aACF;YACD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SACpC,EACD;YACE,MAAM,EAAE,YAAY,CAAC,OAAO;YAC5B,8BAA8B,EAAE,CAAC,MAAgB,EAAE,EAAE;gBACnD,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;gBAC1C,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YACD,kCAAkC,EAAE,CAClC,IAAY,EACZ,QAAiB,EACjB,EAAE;gBACF,OAAO,cAAc,CAAC,kCAAkC,CACtD,IAAI,EACJ,QAAQ,CACT,CAAC;YACJ,CAAC;YACD,iBAAiB,EAAE,CAAC,OAAe,EAAE,OAAgB,EAAE,EAAE;gBACvD,IAAI,OAAO,EAAE;oBACX,iBAAiB,CAAC,OAAO,CAAC,CAAC;iBAC5B;qBAAM;oBACL,WAAW,CAAC,OAAO,CAAC,CAAC;iBACtB;YACH,CAAC;SACF,EACD,CAAC,KAAwB,EAAE,EAAE;YAC3B,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CACF,CAAC;QAEF,MAAM,qBAAqB,GAAG;YAC5B,GAAG,EAAE,IAAA,mCAAsB,EAAC,QAAQ,CAAC;SACtC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,uBAAU,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,kBAAkB,CACpC,QAAQ,EACR,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,MAAM,EACN,aAAa,CACd,CAAC;QAEF,4CAA4C;QAC5C,YAAY,CAAC,WAAW,CACtB,UAAU,EACV,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CACxC,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAsB;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,MAAM,IAAI,0BAAiB,CACzB,mEAAmE,CACpE,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,8BAA8B,EAAE;YAClD,OAAO,IAAI,CAAC,2BAA2B,CACrC,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAC5C,CAAC;SACH;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,oCAAoC,EAAE;YAC/D,OAAO,IAAI,CAAC,iCAAiC,CAC3C,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAClD,CAAC;SACH;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,cAAc,GAAa,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CACjE,eAAe,CAChB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,WAAW,GACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC;YAC7C,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;QAE/B,IAAI,WAAW,EAAE;YACf,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAElC,0EAA0E;gBAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAE/B,iBAAiB;gBACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACxC;gBAED,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE;oBAC7B,aAAa;oBACb,IAAI,IAAI,IAAI,SAAS,EAAE;wBACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;4BACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAC5B,MAAM,EACN,IAAA,qDAAsC,EAAC,SAAS,CAAC,CAClD,CAAC;yBACH;qBACF;oBACD,qBAAqB;yBAChB,IAAI,iBAAiB,IAAI,SAAS,EAAE;wBACvC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;4BAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAC5B,cAAc,EACd,IAAA,wDAAyC,EAAC,SAAS,CAAC,CACrD,CAAC;yBACH;qBACF;oBACD,sBAAsB;yBACjB;wBACH,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;4BAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAC5B,eAAe,EACf,IAAA,gDAAiC,EAAC,SAAS,CAAC,CAC7C,CAAC;yBACH;qBACF;iBACF;gBAED,gBAAgB;gBAChB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACvC;aACF;SACF;QAED,IAAI,IAAA,sBAAe,EAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,KAAK,CAAC;YAEV,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;YACnD,IAAI,UAA0C,CAAC;YAC/C,IAAI,aAAa,KAAK,IAAI,EAAE;gBAC1B,UAAU,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;aACtE;YAED,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,KAAK,GAAG,IAAA,0CAAwB,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACrE,yDAAyD;gBACxD,KAAa,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC;gBAC5D,KAAa,CAAC,eAAe;oBAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,IAAI,SAAS,CAAC;aACrD;iBAAM;gBACL,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,8BAAqB,CAAC,IAAI,EAAE;oBACtD,KAAK,GAAG,IAAI,8BAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC3D;qBAAM;oBACL,KAAK,GAAG,IAAI,sBAAa,CACvB,QAAQ,CAAC,KAAK,CAAC,OAAO,EACtB,QAAQ,CAAC,KAAK,CAAC,IAAI,CACpB,CAAC;iBACH;gBACD,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;aAClC;YAED,sFAAsF;YACtF,MAAM,KAAK,CAAC;SACb;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,uCAA2B,CAAC,CAAC;SACxC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,iDAAqC,CAAC,CAAC;SAClD;QAED,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,oBAAoB,EAAE;YACxC,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM,IACL,IAAI,CAAC,MAAM,KAAK,wBAAwB;YACxC,IAAI,CAAC,MAAM,KAAK,iBAAiB,EACjC;YACA,OAAO,IAAA,wCAAyB,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACnD;aAAM;YACL,OAAO,QAAQ,CAAC,MAAM,CAAC;SACxB;IACH,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAmB;QACpC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,mDAAmD;IAC3C,wBAAwB,CAAC,QAA8B;QAC7D,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QAEtC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACpC,KAAK,EAAE,OAAe,EAAE,IAAY,EAAE,EAAE;YACtC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,OAAgB;QACzC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,iBAAiB,CAAC,KAAwB;QAChD,MAAM,YAAY,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAC1D;IACH,CAAC;IAEO,4BAA4B,CAAC,YAAoB,EAAE,MAAW;QACpE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,YAAY;YACZ,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAEO,6BAA6B,CAAC,YAAoB,EAAE,MAAe;QACzE,MAAM,OAAO,GAAoB;YAC/B,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE;gBACJ,YAAY;gBACZ,MAAM;aACP;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,2BAA2B,CACjC,MAAa;QAEb,OAAO,IAAA,2BAAc,EACnB,MAAM,EACN,CAAC,CAAC,MAAM,EACR,uBAAgB,EAChB,wBAAiB,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,WAAmB,EACnB,aAA4B,EAC5B,cAA8B;QAE9B,IAAI,SAAS,CAAC;QACd,IAAI;YACF,SAAS,GAAG,IAAA,kDAA8B,EACxC,WAAW,EACX,aAAa,EACb,cAAc,CACf,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,oGAAoG,CACrG,CACF,CAAC;YAEF,GAAG,CACD,4FAA4F,EAC5F,KAAK,CACN,CAAC;YAEF,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iCAAiC,CAAC,MAAa;QACrD,OAAO,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,iCAAiC;QACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,QAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,oBAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAI,OAAO,GAAG,QAAQ,CAAC,2BAA2B,EAAE,CAAC;QACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SACjE;QAED,IAAI;YACF,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE;gBACxD,MAAM,aAAa,CAAC;aACrB;YAED,MAAM,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;YAC5C,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAC7B,GAAG,CACD,kFAAkF,EAClF,GAAG,CACJ,CAAC;SACH;IACH,CAAC;CACF;AAzbD,gDAybC;AAED,KAAK,UAAU,aAAa,CAAC,gBAAwB;IACnD,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAc,GAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,kBAAkB,cAAc,CAAC,OAAO,yBAAyB,UAAU,EAAE,CAAC;AACvF,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAChD,4BAA0D,EAC1D,YAA0B,EAC1B,SAAqB;IAErB,OAAO,kBAAkB,CAAC,MAAM,CAC9B,4BAA4B,EAC5B,YAAY,EACZ,MAAM,iBAAiB,CAAC,SAAS,CAAC,CACnC,CAAC;AACJ,CAAC;AAVD,oEAUC;AAED,KAAK,UAAU,iBAAiB,CAC9B,SAAgC;IAEhC,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAE3D,IAAI;YACF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;gBAC1C,MAAM,SAAS,GAAG,MAAM,kBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACxD,IAAI,gBAAM,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,wCAA4B,CAAC,EAAE;oBACnE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC5B;aACF;YAED,OAAO;gBACL,UAAU;aACX,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,yFAAyF,CAC1F,CACF,CAAC;YAEF,GAAG,CACD,gIAAgI,EAChI,KAAK,CACN,CAAC;SACH;KACF;AACH,CAAC"} +\ No newline at end of file +diff --git a/internal/hardhat-network/provider/vm/exit.d.ts b/internal/hardhat-network/provider/vm/exit.d.ts +index 5c0ee2d557d2a93198ca4779b8b435fe6714cb88..3283fce05124f0bde983e172d6f1d13a30c10b1b 100644 +--- a/internal/hardhat-network/provider/vm/exit.d.ts ++++ b/internal/hardhat-network/provider/vm/exit.d.ts +@@ -1,21 +1,3 @@ +-import type { ExceptionalHalt, SuccessReason } from "@nomicfoundation/edr"; +-export declare enum ExitCode { +- SUCCESS = 0, +- REVERT = 1, +- OUT_OF_GAS = 2, +- INTERNAL_ERROR = 3, +- INVALID_OPCODE = 4, +- STACK_UNDERFLOW = 5, +- CODESIZE_EXCEEDS_MAXIMUM = 6, +- CREATE_COLLISION = 7, +- STATIC_STATE_CHANGE = 8 +-} +-export declare class Exit { +- kind: ExitCode; +- static fromEdrSuccessReason(reason: SuccessReason): Exit; +- static fromEdrExceptionalHalt(halt: ExceptionalHalt): Exit; +- constructor(kind: ExitCode); +- isError(): boolean; +- getReason(): string; +-} ++import { ExitCode } from "@nomicfoundation/edr"; ++export { ExitCode }; + //# sourceMappingURL=exit.d.ts.map \ No newline at end of file diff --git a/internal/hardhat-network/provider/vm/exit.d.ts.map b/internal/hardhat-network/provider/vm/exit.d.ts.map -index 11e6f8db485ccb09e072311b065087ff9967ba96..3d864ad7e460fa334c8a27ff242528a9fb7b10a8 100644 +index 11e6f8db485ccb09e072311b065087ff9967ba96..d710c04398d63f32ac0def53547c90aeb93ab7d5 100644 --- a/internal/hardhat-network/provider/vm/exit.d.ts.map +++ b/internal/hardhat-network/provider/vm/exit.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI3E,oBAAY,QAAQ;IAClB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,UAAU,IAAA;IACV,cAAc,IAAA;IACd,cAAc,IAAA;IACd,eAAe,IAAA;IACf,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,mBAAmB,IAAA;CACpB;AAED,qBAAa,IAAI;IA+CI,IAAI,EAAE,QAAQ;WA9CnB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;WAejD,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;gBA+B9C,IAAI,EAAE,QAAQ;IAE1B,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,MAAM;CAwB3B"} \ No newline at end of file -+{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI3E,oBAAY,QAAQ;IAClB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,UAAU,IAAA;IACV,cAAc,IAAA;IACd,cAAc,IAAA;IACd,eAAe,IAAA;IACf,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,mBAAmB,IAAA;CACpB;AAED,qBAAa,IAAI;IAgDI,IAAI,EAAE,QAAQ;WA/CnB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;WAgBjD,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;gBA+B9C,IAAI,EAAE,QAAQ;IAE1B,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,MAAM;CAwB3B"} ++{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,CAAC"} \ No newline at end of file diff --git a/internal/hardhat-network/provider/vm/exit.js b/internal/hardhat-network/provider/vm/exit.js -index dd345f1f5c8b4c9ab03fb4017fb26388b27369f5..6101c69b5f043fb33e120c07780182e36c445c08 100644 +index dd345f1f5c8b4c9ab03fb4017fb26388b27369f5..4db8a9512f242636751ebda88d2d4a29502f34ca 100644 --- a/internal/hardhat-network/provider/vm/exit.js +++ b/internal/hardhat-network/provider/vm/exit.js -@@ -21,6 +21,7 @@ class Exit { - case 0 /* SuccessReason.Stop */: - case 1 /* SuccessReason.Return */: - case 2 /* SuccessReason.SelfDestruct */: -+ case 3 /* SuccessReason.EofReturnContract */: - return new Exit(ExitCode.SUCCESS); - } - const _exhaustiveCheck = reason; +@@ -1,81 +1,3 @@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-exports.Exit = exports.ExitCode = void 0; +-const napi_rs_1 = require("../../../../common/napi-rs"); +-var ExitCode; +-(function (ExitCode) { +- ExitCode[ExitCode["SUCCESS"] = 0] = "SUCCESS"; +- ExitCode[ExitCode["REVERT"] = 1] = "REVERT"; +- ExitCode[ExitCode["OUT_OF_GAS"] = 2] = "OUT_OF_GAS"; +- ExitCode[ExitCode["INTERNAL_ERROR"] = 3] = "INTERNAL_ERROR"; +- ExitCode[ExitCode["INVALID_OPCODE"] = 4] = "INVALID_OPCODE"; +- ExitCode[ExitCode["STACK_UNDERFLOW"] = 5] = "STACK_UNDERFLOW"; +- ExitCode[ExitCode["CODESIZE_EXCEEDS_MAXIMUM"] = 6] = "CODESIZE_EXCEEDS_MAXIMUM"; +- ExitCode[ExitCode["CREATE_COLLISION"] = 7] = "CREATE_COLLISION"; +- ExitCode[ExitCode["STATIC_STATE_CHANGE"] = 8] = "STATIC_STATE_CHANGE"; +-})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +-class Exit { +- static fromEdrSuccessReason(reason) { +- const { SuccessReason } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr"); +- switch (reason) { +- case 0 /* SuccessReason.Stop */: +- case 1 /* SuccessReason.Return */: +- case 2 /* SuccessReason.SelfDestruct */: +- return new Exit(ExitCode.SUCCESS); +- } +- const _exhaustiveCheck = reason; +- } +- static fromEdrExceptionalHalt(halt) { +- const { ExceptionalHalt } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr"); +- switch (halt) { +- case 0 /* ExceptionalHalt.OutOfGas */: +- return new Exit(ExitCode.OUT_OF_GAS); +- case 1 /* ExceptionalHalt.OpcodeNotFound */: +- case 2 /* ExceptionalHalt.InvalidFEOpcode */: +- // Returned when an opcode is not implemented for the hardfork +- case 4 /* ExceptionalHalt.NotActivated */: +- return new Exit(ExitCode.INVALID_OPCODE); +- case 5 /* ExceptionalHalt.StackUnderflow */: +- return new Exit(ExitCode.STACK_UNDERFLOW); +- case 8 /* ExceptionalHalt.CreateCollision */: +- return new Exit(ExitCode.CREATE_COLLISION); +- case 11 /* ExceptionalHalt.CreateContractSizeLimit */: +- return new Exit(ExitCode.CODESIZE_EXCEEDS_MAXIMUM); +- default: { +- // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error +- throw new Error(`Unmatched EDR exceptional halt: ${halt}`); +- } +- } +- } +- constructor(kind) { +- this.kind = kind; +- } +- isError() { +- return this.kind !== ExitCode.SUCCESS; +- } +- getReason() { +- switch (this.kind) { +- case ExitCode.SUCCESS: +- return "Success"; +- case ExitCode.REVERT: +- return "Reverted"; +- case ExitCode.OUT_OF_GAS: +- return "Out of gas"; +- case ExitCode.INTERNAL_ERROR: +- return "Internal error"; +- case ExitCode.INVALID_OPCODE: +- return "Invalid opcode"; +- case ExitCode.STACK_UNDERFLOW: +- return "Stack underflow"; +- case ExitCode.CODESIZE_EXCEEDS_MAXIMUM: +- return "Codesize exceeds maximum"; +- case ExitCode.CREATE_COLLISION: +- return "Create collision"; +- case ExitCode.STATIC_STATE_CHANGE: +- return "Static state change"; +- } +- const _exhaustiveCheck = this.kind; +- } +-} +-exports.Exit = Exit; + //# sourceMappingURL=exit.js.map +\ No newline at end of file diff --git a/internal/hardhat-network/provider/vm/exit.js.map b/internal/hardhat-network/provider/vm/exit.js.map -index 7211e63f130c7264c0e127159cb008a21635e88d..38da993e39ce7f8c24425e0e7f7c04a673f559b9 100644 +index 7211e63f130c7264c0e127159cb008a21635e88d..6166515edfbd856b248bd4025acfbeaa3a5707f7 100644 --- a/internal/hardhat-network/provider/vm/exit.js.map +++ b/internal/hardhat-network/provider/vm/exit.js.map @@ -1 +1 @@ -{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":";;;AAEA,wDAAiE;AAEjE,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,mDAAU,CAAA;IACV,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,+EAAwB,CAAA;IACxB,+DAAgB,CAAA;IAChB,qEAAmB,CAAA;AACrB,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,MAAa,IAAI;IACR,MAAM,CAAC,oBAAoB,CAAC,MAAqB;QACtD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,6BAAmB,EAC3C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,MAAM,EAAE;YACd,gCAAwB;YACxB,kCAA0B;YAC1B;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,MAAM,gBAAgB,GAAU,MAAM,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,IAAqB;QACxD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6BAAmB,EAC7C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEvC,4CAAoC;YACpC,6CAAqC;YACrC,8DAA8D;YAC9D;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE3C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAE5C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAE7C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAErD,OAAO,CAAC,CAAC;gBACP,sFAAsF;gBACtF,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,YAAmB,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE9B,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC;IACxC,CAAC;IAEM,SAAS;QACd,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ,CAAC,MAAM;gBAClB,OAAO,UAAU,CAAC;YACpB,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,YAAY,CAAC;YACtB,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,eAAe;gBAC3B,OAAO,iBAAiB,CAAC;YAC3B,KAAK,QAAQ,CAAC,wBAAwB;gBACpC,OAAO,0BAA0B,CAAC;YACpC,KAAK,QAAQ,CAAC,gBAAgB;gBAC5B,OAAO,kBAAkB,CAAC;YAC5B,KAAK,QAAQ,CAAC,mBAAmB;gBAC/B,OAAO,qBAAqB,CAAC;SAChC;QAED,MAAM,gBAAgB,GAAU,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;CACF;AA7ED,oBA6EC"} \ No newline at end of file -+{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":";;;AAEA,wDAAiE;AAEjE,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,mDAAU,CAAA;IACV,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,+EAAwB,CAAA;IACxB,+DAAgB,CAAA;IAChB,qEAAmB,CAAA;AACrB,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,MAAa,IAAI;IACR,MAAM,CAAC,oBAAoB,CAAC,MAAqB;QACtD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,6BAAmB,EAC3C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,MAAM,EAAE;YACd,gCAAwB;YACxB,kCAA0B;YAC1B,wCAAgC;YAChC;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,MAAM,gBAAgB,GAAU,MAAM,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,IAAqB;QACxD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6BAAmB,EAC7C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEvC,4CAAoC;YACpC,6CAAqC;YACrC,8DAA8D;YAC9D;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE3C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAE5C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAE7C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAErD,OAAO,CAAC,CAAC;gBACP,sFAAsF;gBACtF,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,YAAmB,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE9B,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC;IACxC,CAAC;IAEM,SAAS;QACd,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ,CAAC,MAAM;gBAClB,OAAO,UAAU,CAAC;YACpB,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,YAAY,CAAC;YACtB,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,eAAe;gBAC3B,OAAO,iBAAiB,CAAC;YAC3B,KAAK,QAAQ,CAAC,wBAAwB;gBACpC,OAAO,0BAA0B,CAAC;YACpC,KAAK,QAAQ,CAAC,gBAAgB;gBAC5B,OAAO,kBAAkB,CAAC;YAC5B,KAAK,QAAQ,CAAC,mBAAmB;gBAC/B,OAAO,qBAAqB,CAAC;SAChC;QAED,MAAM,gBAAgB,GAAU,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;CACF;AA9ED,oBA8EC"} ++{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/compiler-to-model.d.ts b/internal/hardhat-network/stack-traces/compiler-to-model.d.ts index 7f73bc6ea06ac5a91320f8695ec51c5710d8f67a..91c537ec85d9d469a2bb185e510bc6cc9ae5394a 100644 @@ -560,18 +715,20 @@ index 3caaa807d4af2ca61beb1ecb3008f1f071736a10..4ebf97785f77dbc0dcbe3e7000886f2c +{"version":3,"file":"error-inferrer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/error-inferrer.js b/internal/hardhat-network/stack-traces/error-inferrer.js -index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51129039d2 100644 +index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..5301d4b464874872ab999f8fb960d5f99dd664d9 100644 --- a/internal/hardhat-network/stack-traces/error-inferrer.js +++ b/internal/hardhat-network/stack-traces/error-inferrer.js -@@ -13,7 +13,6 @@ const abi_helpers_1 = require("../../util/abi-helpers"); +@@ -11,9 +11,7 @@ const semver_1 = __importDefault(require("semver")); + const errors_1 = require("../../core/errors"); + const abi_helpers_1 = require("../../util/abi-helpers"); const return_data_1 = require("../provider/return-data"); - const exit_1 = require("../provider/vm/exit"); +-const exit_1 = require("../provider/vm/exit"); const message_trace_1 = require("./message-trace"); -const model_1 = require("./model"); const opcodes_1 = require("./opcodes"); const solidity_stack_trace_1 = require("./solidity-stack-trace"); const FIRST_SOLC_VERSION_CREATE_PARAMS_VALIDATION = "0.5.9"; -@@ -218,8 +217,8 @@ class ErrorInferrer { +@@ -218,8 +216,8 @@ class ErrorInferrer { * Check if the execution stopped with a revert or an invalid opcode. */ _checkRevertOrInvalidOpcode(trace, stacktrace, lastInstruction, functionJumpdests, jumpedIntoFunction) { @@ -582,7 +739,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return; } const inferredStacktrace = [...stacktrace]; -@@ -234,7 +233,7 @@ class ErrorInferrer { +@@ -234,7 +232,7 @@ class ErrorInferrer { const failingFunction = lastInstruction.location.getContainingFunction(); // If the failure is in a modifier we add an entry with the function/constructor if (failingFunction !== undefined && @@ -591,7 +748,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 inferredStacktrace.push(this._getEntryBeforeFailureInModifier(trace, functionJumpdests)); } } -@@ -265,7 +264,7 @@ class ErrorInferrer { +@@ -265,7 +263,7 @@ class ErrorInferrer { type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, sourceReference: this._getFunctionStartSourceReference(trace, functionSelector), message: new return_data_1.ReturnData(trace.returnData), @@ -600,7 +757,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }); } else { -@@ -274,7 +273,7 @@ class ErrorInferrer { +@@ -274,7 +272,7 @@ class ErrorInferrer { type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, sourceReference: this._getConstructorStartSourceReference(trace), message: new return_data_1.ReturnData(trace.returnData), @@ -609,7 +766,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }); } return this._fixInitialModifier(trace, inferredStacktrace); -@@ -287,7 +286,7 @@ class ErrorInferrer { +@@ -287,7 +285,7 @@ class ErrorInferrer { sourceReference: this._getLastSourceReference(trace) ?? this._getContractStartWithoutFunctionSourceReference(trace), message: new return_data_1.ReturnData(trace.returnData), @@ -618,7 +775,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; inferredStacktrace.push(revertFrame); return this._fixInitialModifier(trace, inferredStacktrace); -@@ -374,14 +373,17 @@ class ErrorInferrer { +@@ -374,14 +372,17 @@ class ErrorInferrer { type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, sourceReference: this._getFunctionStartSourceReference(trace, failingFunction), message: new return_data_1.ReturnData(trace.returnData), @@ -631,14 +788,14 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 const calledFunction = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4)); if (calledFunction !== undefined) { - const isValidCalldata = calledFunction.isValidCalldata(trace.calldata.slice(4)); -+ const isValidCalldata = ++ const isValidCalldata = + // if we don't know the param types, we just assume that the call is valid + calledFunction.paramTypes === undefined || + abi_helpers_1.AbiHelpers.isValidCalldata(calledFunction.paramTypes, trace.calldata.slice(4)); if (!isValidCalldata) { return [ { -@@ -442,7 +444,7 @@ class ErrorInferrer { +@@ -442,7 +443,7 @@ class ErrorInferrer { const firstEntry = stacktrace[0]; if (firstEntry !== undefined && firstEntry.type === solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY && @@ -647,7 +804,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return [ this._getEntryBeforeInitialModifierCallstackEntry(trace), ...stacktrace, -@@ -451,7 +453,7 @@ class ErrorInferrer { +@@ -451,7 +452,7 @@ class ErrorInferrer { return stacktrace; } _isDirectLibraryCall(trace) { @@ -656,7 +813,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 } _getDirectLibraryCallErrorStackTrace(trace) { const func = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4)); -@@ -479,7 +481,7 @@ class ErrorInferrer { +@@ -479,7 +480,7 @@ class ErrorInferrer { return false; } // Libraries don't have a nonpayable check @@ -665,7 +822,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return false; } return calledFunction.isPayable === undefined || !calledFunction.isPayable; -@@ -621,7 +623,7 @@ class ErrorInferrer { +@@ -621,7 +622,7 @@ class ErrorInferrer { return false; } const lastInst = trace.bytecode.getInstruction(lastStep.pc); @@ -674,7 +831,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return false; } let hasReadDeploymentCodeSize = false; -@@ -637,7 +639,7 @@ class ErrorInferrer { +@@ -637,7 +638,7 @@ class ErrorInferrer { !constructor.location.equals(inst.location)) { return false; } @@ -683,7 +840,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 hasReadDeploymentCodeSize = true; } } -@@ -648,7 +650,7 @@ class ErrorInferrer { +@@ -648,7 +649,7 @@ class ErrorInferrer { return { type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, sourceReference: this._getConstructorStartSourceReference(trace), @@ -692,7 +849,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; } const calledFunction = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4)); -@@ -656,7 +658,7 @@ class ErrorInferrer { +@@ -656,7 +657,7 @@ class ErrorInferrer { return { type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, sourceReference: this._getFunctionStartSourceReference(trace, calledFunction), @@ -701,7 +858,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; } // If it failed or made a call from within a modifier, and the selector doesn't match -@@ -664,7 +666,7 @@ class ErrorInferrer { +@@ -664,7 +665,7 @@ class ErrorInferrer { return { type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, sourceReference: this._getFallbackStartSourceReference(trace), @@ -710,7 +867,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; } _getLastSourceReference(trace) { -@@ -702,7 +704,7 @@ class ErrorInferrer { +@@ -702,7 +703,7 @@ class ErrorInferrer { const lastStep = trace.steps[trace.steps.length - 1]; const lastInstruction = trace.bytecode.getInstruction(lastStep.pc); return (lastInstruction.location !== undefined && @@ -719,7 +876,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 func.location.contains(lastInstruction.location)); } _instructionWithinFunctionToRevertStackTraceEntry(trace, inst) { -@@ -712,7 +714,7 @@ class ErrorInferrer { +@@ -712,7 +713,7 @@ class ErrorInferrer { type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, sourceReference, message: new return_data_1.ReturnData(trace.returnData), @@ -728,7 +885,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; } _instructionWithinFunctionToUnmappedSolc063RevertErrorStackTraceEntry(trace, inst) { -@@ -750,7 +752,7 @@ class ErrorInferrer { +@@ -750,7 +751,7 @@ class ErrorInferrer { return false; } const lastInst = trace.bytecode.getInstruction(lastStep.pc); @@ -737,7 +894,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 } // Solidity 0.6.3 unmapped reverts special handling // For more info: https://github.com/ethereum/solidity/issues/9006 -@@ -811,12 +813,12 @@ class ErrorInferrer { +@@ -811,12 +812,12 @@ class ErrorInferrer { } const lastStep = trace.steps[lastIndex]; // We know this is an EVM step const lastInst = trace.bytecode.getInstruction(lastStep.pc); @@ -752,7 +909,16 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 } _solidity063GetFrameForUnmappedRevertWithinFunction(trace) { // If we are within a function there's a last valid location. It may -@@ -967,7 +969,7 @@ class ErrorInferrer { +@@ -898,7 +899,7 @@ class ErrorInferrer { + } + } + _isContractTooLargeError(trace) { +- return trace.exit.kind === exit_1.ExitCode.CODESIZE_EXCEEDS_MAXIMUM; ++ return trace.exit.kind === 6 /* ExitCode.CODESIZE_EXCEEDS_MAXIMUM */; + } + _solidity063CorrectLineNumber(revertFrame) { + if (revertFrame.sourceReference === undefined) { +@@ -967,7 +968,7 @@ class ErrorInferrer { return { type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, sourceReference: this._getConstructorStartSourceReference(trace), @@ -761,7 +927,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; } _failsRightAfterCall(trace, callSubtraceStepIndex) { -@@ -976,7 +978,7 @@ class ErrorInferrer { +@@ -976,7 +977,7 @@ class ErrorInferrer { return false; } const lastInst = trace.bytecode.getInstruction(lastStep.pc); @@ -770,7 +936,18 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return false; } const callOpcodeStep = trace.steps[callSubtraceStepIndex - 1]; -@@ -1032,7 +1034,7 @@ class ErrorInferrer { +@@ -1012,8 +1013,8 @@ class ErrorInferrer { + if (!(0, ethereumjs_util_1.equalsBytes)(trace.returnData, call.returnData)) { + return false; + } +- if (trace.exit.kind === exit_1.ExitCode.OUT_OF_GAS && +- call.exit.kind === exit_1.ExitCode.OUT_OF_GAS) { ++ if (trace.exit.kind === 2 /* ExitCode.OUT_OF_GAS */ && ++ call.exit.kind === 2 /* ExitCode.OUT_OF_GAS */) { + return true; + } + // If the return data is not empty, and it's still the same, we assume it +@@ -1032,7 +1033,7 @@ class ErrorInferrer { return false; } const callInst = trace.bytecode.getInstruction(callStep.pc); @@ -779,7 +956,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return false; } const subtrace = trace.steps[callSubtraceStepIndex]; -@@ -1046,7 +1048,7 @@ class ErrorInferrer { +@@ -1046,7 +1047,7 @@ class ErrorInferrer { if (subtrace.bytecode === undefined) { return false; } @@ -788,7 +965,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 return false; } if (!(0, ethereumjs_util_1.equalsBytes)(trace.returnData, subtrace.returnData)) { -@@ -1062,14 +1064,14 @@ class ErrorInferrer { +@@ -1062,24 +1063,24 @@ class ErrorInferrer { if (inst.location === undefined) { return false; } @@ -806,7 +983,19 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 } _isContractCallRunOutOfGasError(trace, callStepIndex) { if (trace.returnData.length > 0) { -@@ -1132,7 +1134,7 @@ function instructionToCallstackStackTraceEntry(bytecode, inst) { + return false; + } +- if (trace.exit.kind !== exit_1.ExitCode.REVERT) { ++ if (trace.exit.kind !== 1 /* ExitCode.REVERT */) { + return false; + } + const call = trace.steps[callStepIndex]; +- if (call.exit.kind !== exit_1.ExitCode.OUT_OF_GAS) { ++ if (call.exit.kind !== 2 /* ExitCode.OUT_OF_GAS */) { + return false; + } + return this._failsRightAfterCall(trace, callStepIndex); +@@ -1132,7 +1133,7 @@ function instructionToCallstackStackTraceEntry(bytecode, inst) { inst.location.offset + inst.location.length, ], }, @@ -815,7 +1004,7 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 }; } exports.instructionToCallstackStackTraceEntry = instructionToCallstackStackTraceEntry; -@@ -1145,18 +1147,18 @@ function sourceLocationToSourceReference(bytecode, location) { +@@ -1145,18 +1146,18 @@ function sourceLocationToSourceReference(bytecode, location) { return undefined; } let funcName = func.name; @@ -839,13 +1028,13 @@ index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51 : bytecode.contract.name, sourceName: func.location.file.sourceName, diff --git a/internal/hardhat-network/stack-traces/error-inferrer.js.map b/internal/hardhat-network/stack-traces/error-inferrer.js.map -index eeba5c914068055d7cd9d7db13a741a02c44a378..9c798e70dfc67081a373d5f090260114e5c9c2ce 100644 +index eeba5c914068055d7cd9d7db13a741a02c44a378..0710b8fddb32f9d281fda8af5a17e7cc26bb7c0f 100644 --- a/internal/hardhat-network/stack-traces/error-inferrer.js.map +++ b/internal/hardhat-network/stack-traces/error-inferrer.js.map @@ -1 +1 @@ -{"version":3,"file":"error-inferrer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAgE;AAChE,4CAA4D;AAC5D,sEAA+D;AAC/D,oDAA4B;AAE5B,8CAA2D;AAC3D,wDAAoD;AACpD,yDAAqD;AACrD,8CAA+C;AAE/C,mDAWyB;AACzB,mCAQiB;AACjB,uCAAqD;AACrD,iEAgBgC;AAEhC,MAAM,2CAA2C,GAAG,OAAO,CAAC;AAC5D,MAAM,mCAAmC,GAAG,OAAO,CAAC;AACpD,MAAM,wCAAwC,GAAG,OAAO,CAAC;AAQzD,+EAA+E;AAE/E,MAAa,aAAa;IACjB,6BAA6B,CAClC,KAA8B;QAE9B,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,CAAC;SACzD;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QAEF,IACE,cAAc,KAAK,SAAS;YAC5B,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,cAAc,CAAC,EACtD;YACA,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,0BAA0B;oBACpD,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,cAAc,CACf;oBACD,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;YAClE,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO;oBACL;wBACE,IAAI,EAAE,0CAAmB,CAAC,iCAAiC;wBAC3D,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;qBAC9D;iBACF,CAAC;aACH;YAED,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,4CAA4C;oBACtE,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;iBAC9D;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;YAC1D,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO;oBACL;wBACE,IAAI,EAAE,0CAAmB,CAAC,yCAAyC;wBACnE,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;wBAC7D,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB;iBACF,CAAC;aACH;YAED,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,0BAA0B;oBACpD,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;oBAC7D,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;IACH,CAAC;IAEM,+BAA+B,CACpC,KAAgC;QAEhC,IAAI,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,0BAA0B;oBACpD,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;oBAChE,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,EAAE;YACnD,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,oBAAoB;oBAC9C,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAEM,iBAAiB,CACtB,KAA6B,EAC7B,UAA8B,EAC9B,iBAAgC,EAChC,kBAA2B,EAC3B,kBAA8C;QAE9C,OAAO,CACL,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC;YAChE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC;YAC5C,IAAI,CAAC,qBAAqB,CACxB,KAAK,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,CACnB;YACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC;YAC/C,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,UAAU,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,UAAU,CAAC,CACvD,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAC1B,UAA8B;QAE9B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE;gBAC/B,OAAO,IAAI,CAAC;aACb;YAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpC,6DAA6D;YAC7D,kCAAkC;YAClC,IACE,KAAK,CAAC,eAAe,KAAK,SAAS;gBACnC,SAAS,CAAC,eAAe,KAAK,SAAS,EACvC;gBACA,OAAO,IAAI,CAAC;aACb;YAED,yEAAyE;YACzE,wEAAwE;YACxE,IACE,KAAK,CAAC,IAAI,KAAK,0CAAmB,CAAC,eAAe;gBAClD,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM;gBACzB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS;gBAC/C,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,0CAAmB,CAAC,qBAAqB,EACpE;gBACA,wEAAwE;gBACxE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;gBACrD,IACE,UAAU,KAAK,SAAS;oBACxB,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAC9C;oBACA,OAAO,KAAK,CAAC;iBACd;aACF;YAED,6DAA6D;YAC7D,IACE,KAAK,CAAC,eAAe,CAAC,QAAQ,KAAK,aAAa;gBAChD,SAAS,CAAC,eAAe,CAAC,QAAQ,KAAK,aAAa,EACpD;gBACA,OAAO,IAAI,CAAC;aACb;YAED,oCAAoC;YACpC,IACE,CAAC,GAAG,CAAC;gBACL,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;gBAC7B,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,CAAC,IAAI,EAC7D;gBACA,OAAO,IAAI,CAAC;aACb;YAED,IACE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EACpE;gBACA,OAAO,KAAK,CAAC;aACd;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IAEb;;OAEG;IACK,oBAAoB,CAC1B,KAA6B,EAC7B,UAA8B,EAC9B,kBAA8C;QAE9C,IAAI,kBAAkB,KAAK,SAAS,EAAE;YACpC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAE3C,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAE/D,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,qCAAqC,CAC1D,KAAK,CAAC,QAAQ,EACd,QAAQ,CACT,CAAC;QAEF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzE,IAAI,iBAAiB,EAAE;YACrB,oEAAoE;YACpE,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAExC,IACE,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC;gBACpE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACjE;gBACA,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE1D,IACE,IAAI,CAAC,+BAA+B,CAClC,KAAK,EACL,kBAAkB,CAAC,SAAS,CAC7B,EACD;oBACA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;oBAC3C,IAAA,+BAAsB,EACpB,SAAS,KAAK,SAAS,EACvB,0DAA0D,CAC3D,CAAC;oBACF,kBAAkB,CAAC,IAAI,CAAC;wBACtB,IAAI,EAAE,0CAAmB,CAAC,kCAAkC;wBAC5D,eAAe,EAAE,SAAS,CAAC,eAAe;qBAC3C,CAAC,CAAC;iBACJ;gBAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CACrD,KAAK,EACL,kBAAkB,CAAC,SAAS,CAC7B,CAAC;YACF,IAAI,qBAAqB,EAAE;gBACzB,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0CAAmB,CAAC,qBAAqB;oBAC/C,eAAe,EAAE,cAAc,CAAC,eAAe;iBAChD,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,KAA6B,EAC7B,UAA8B;QAE9B,KAAK,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAE5C,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO;aACR;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,MAAM,cAAc,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAA,kBAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpE,IAAI,cAAc,IAAI,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;gBACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;oBACnD,MAAM,kBAAkB,GAAG;wBACzB,GAAG,UAAU;wBACb,IAAI,CAAC,oDAAoD,CACvD,KAAK,CAAC,QAAQ,EACd,IAAI,CACL;qBACF,CAAC;oBAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;iBAC5D;aACF;SACF;IACH,CAAC;IAED;;OAEG;IACK,2BAA2B,CACjC,KAA6B,EAC7B,UAA8B,EAC9B,eAA4B,EAC5B,iBAAgC,EAChC,kBAA2B;QAE3B,IACE,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM;YACxC,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,OAAO,EACzC;YACA,OAAO;SACR;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAE3C,IACE,eAAe,CAAC,QAAQ,KAAK,SAAS;YACtC,CAAC,CAAC,IAAA,kCAAkB,EAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAClD;YACA,sFAAsF;YACtF,EAAE;YACF,oFAAoF;YACpF,yBAAyB;YACzB,EAAE;YACF,yFAAyF;YACzF,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAEzE,gFAAgF;YAChF,IACE,eAAe,KAAK,SAAS;gBAC7B,eAAe,CAAC,IAAI,KAAK,4BAAoB,CAAC,QAAQ,EACtD;gBACA,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAChE,CAAC;aACH;SACF;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CACtC,KAAK,EACL,kBAAkB,EAClB,eAAe,CAChB,CAAC;QACF,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,OAAO,eAAe,CAAC;SACxB;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CACnD,KAAK,EACL,kBAAkB,EAClB,eAAe,CAChB,CAAC;QACF,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACvC,OAAO,qBAAqB,CAAC;SAC9B;QAED,IACE,eAAe,CAAC,QAAQ,KAAK,SAAS;YACtC,CAAC,CAAC,IAAA,kCAAkB,EAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAClD;YACA,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAEzE,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,iDAAiD,CACpD,KAAK,EACL,eAAe,CAChB,CACF,CAAC;aACH;iBAAM,IAAI,IAAA,kCAAkB,EAAC,KAAK,CAAC,EAAE;gBACpC,4CAA4C;gBAC5C,MAAM,gBAAgB,GACpB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;gBAEJ,uEAAuE;gBACvE,wEAAwE;gBACxE,UAAU;gBACV,IAAI,gBAAgB,KAAK,SAAS,EAAE;oBAClC,OAAO;iBACR;gBAED,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0CAAmB,CAAC,YAAY;oBACtC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,gBAAgB,CACjB;oBACD,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,OAAO;iBAChE,CAAC,CAAC;aACJ;iBAAM;gBACL,4CAA4C;gBAC5C,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0CAAmB,CAAC,YAAY;oBACtC,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;oBAChE,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,OAAO;iBAChE,CAAC,CAAC;aACJ;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;SAC5D;QAED,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,MAAM,WAAW,GAA+B;gBAC9C,IAAI,EAAE,0CAAmB,CAAC,YAAY;gBACtC,eAAe,EACb,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,OAAO;aAChE,CAAC;YACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAErC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;SAC5D;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,KAA6B,EAC7B,UAA8B,EAC9B,eAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YAC9C,OAAO;SACR;QAED,qEAAqE;QACrE,uEAAuE;QACvE,SAAS;QACT,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,IACE,SAAS,EAAE,IAAI,KAAK,0CAAmB,CAAC,iCAAiC,EACzE;YACA,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;QAED,MAAM,eAAe,GAAG,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QAEhD,iEAAiE;QACjE,gEAAgE;QAChE,2BAA2B;QAC3B,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3C,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,gDAAgD,CACnD,KAAK,EACL,eAAe,EACf,SAAS,CACV,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAEO,kBAAkB,CACxB,KAA6B,EAC7B,UAA8B,EAC9B,eAA4B;QAE5B,MAAM,UAAU,GAAG,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,iBAAiB,EAAE,EAAE;YAC1D,0DAA0D;YAC1D,kCAAkC;YAClC,OAAO;SACR;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,YAAY,GAAG,8DAA8D,aAAa,GAAG,CAAC;QAElG,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC9D,IAAI,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBACpD,oEAAoE;gBACpE,2EAA2E;gBAC3E,MAAM,aAAa,GAAG,qBAAG,CAAC,MAAM,CAC9B,WAAW,CAAC,UAAU,EACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1B,CAAC;gBAEF,MAAM,MAAM,GAAG,wBAAU,CAAC,YAAY,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;gBAC3D,YAAY,GAAG,+BAA+B,WAAW,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC;gBAC7E,MAAM;aACP;SACF;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3C,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,sDAAsD,CACzD,KAAK,EACL,eAAe,EACf,YAAY,CACb,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,KAA6B,EAC7B,UAA8B,EAC9B,iBAAgC,EAChC,kBAA2B;QAE3B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;SACH;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnE,MAAM,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,CAChE,KAAK,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,CACnB,CAAC;QAEF,IAAI,yBAAyB,KAAK,SAAS,EAAE;YAC3C,OAAO,yBAAyB,CAAC;SAClC;QAED,IAAI,IAAA,kCAAkB,EAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpD,IACE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;gBAC/C,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAC9C;gBACA,OAAO;oBACL,IAAI,CAAC,iDAAiD,CACpD,KAAK,EACL,eAAe,CAChB;iBACF,CAAC;aACH;YAED,qEAAqE;YACrE,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC1C,MAAM,eAAe,GACnB,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBACnD,IAAI,eAAe,KAAK,SAAS,EAAE;oBACjC,OAAO;wBACL;4BACE,IAAI,EAAE,0CAAmB,CAAC,YAAY;4BACtC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,eAAe,CAChB;4BACD,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;4BACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,OAAO;yBAChE;qBACF,CAAC;iBACH;aACF;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;YAEF,IAAI,cAAc,KAAK,SAAS,EAAE;gBAChC,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CACpD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,CAAC;gBAEF,IAAI,CAAC,eAAe,EAAE;oBACpB,OAAO;wBACL;4BACE,IAAI,EAAE,0CAAmB,CAAC,oBAAoB;4BAC9C,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,cAAc,CACf;yBACF;qBACF,CAAC;iBACH;aACF;YAED,IAAI,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE;gBAC/C,MAAM,WAAW,GACf,IAAI,CAAC,mDAAmD,CAAC,KAAK,CAAC,CAAC;gBAElE,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC7B,OAAO,CAAC,WAAW,CAAC,CAAC;iBACtB;aACF;YAED,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,KAAK,CAAC,CAAC,CAAC;SACxE;IACH,CAAC;IAEO,uBAAuB,CAC7B,KAA6B,EAC7B,UAA8B;QAE9B,IAAI,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;YAChD,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAE5D,kFAAkF;YAClF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;YAEF,MAAM,sBAAsB,GAA4B;gBACtD,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;gBAC1D,eAAe;aAChB,CAAC;YAEF,OAAO,CAAC,GAAG,UAAU,EAAE,sBAAsB,CAAC,CAAC;SAChD;IACH,CAAC;IAEO,+BAA+B,CACrC,KAA6B,EAC7B,UAA8B;QAE9B,IAAI,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE;YAC/C,MAAM,WAAW,GACf,IAAI,CAAC,mDAAmD,CAAC,KAAK,CAAC,CAAC;YAElE,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAEO,sBAAsB,CAC5B,KAA6B;QAE7B,IAAI,IAAA,6BAAa,EAAC,KAAK,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,wBAAwB;oBAClD,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAEO,8BAA8B,CACpC,KAA6B,EAC7B,UAA8B;QAE9B,MAAM,wBAAwB,GAA4B;YACxD,IAAI,EAAE,0CAAmB,CAAC,qBAAqB;YAC/C,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;SACrD,CAAC;QAEF,OAAO,CAAC,GAAG,UAAU,EAAE,wBAAwB,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;IAEF,mBAAmB,CACzB,KAA6B,EAC7B,UAA8B;QAE9B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,UAAU,KAAK,SAAS;YACxB,UAAU,CAAC,IAAI,KAAK,0CAAmB,CAAC,eAAe;YACvD,UAAU,CAAC,YAAY,KAAK,4BAAoB,CAAC,QAAQ,EACzD;YACA,OAAO;gBACL,IAAI,CAAC,4CAA4C,CAAC,KAAK,CAAC;gBACxD,GAAG,UAAU;aACd,CAAC;SACH;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAC,KAA8B;QACzD,OAAO,CACL,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO,CAC3E,CAAC;IACJ,CAAC;IAEO,oCAAoC,CAC1C,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC1D,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,yBAAyB;oBACnD,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,IAAI,CAAC;iBACpE;aACF,CAAC;SACH;QAED,OAAO;YACL;gBACE,IAAI,EAAE,0CAAmB,CAAC,yBAAyB;gBACnD,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;aAC9D;SACF,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAChC,KAA8B,EAC9B,cAAgC;QAEhC,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QAED,0CAA0C;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO,EAAE;YACzD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,cAAc,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEO,gCAAgC,CACtC,KAA6B,EAC7B,IAAsB;QAEtB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC5C;SACF,CAAC;IACJ,CAAC;IAEO,kCAAkC,CACxC,KAA8B,EAC9B,cAA4C;QAE5C,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,6CAA6C;QAC7C,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,6CAA6C;QAC7C,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAC7C;YACA,OAAO,KAAK,CAAC;SACd;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC;IACxD,CAAC;IAEO,0BAA0B,CAAC,KAA8B;QAC/D,6DAA6D;QAC7D,IACE,gBAAM,CAAC,EAAE,CACP,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC9B,mCAAmC,CACpC,EACD;YACA,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAC9C,CAAC;IACJ,CAAC;IAEO,+CAA+C,CACrD,KAA6B;QAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;YACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAC5D,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAChC,KAA8B,EAC9B,cAA4C;QAE5C,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAE7D,OAAO,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC;IAC/C,CAAC;IAEO,gCAAgC,CACtC,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAE9C,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;SACH;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,QAAQ,EAAE,6CAAsB;YAChC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC5C;SACF,CAAC;IACJ,CAAC;IAEO,6BAA6B,CACnC,KAAgC;QAEhC,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAEhE,6FAA6F;QAC7F,gFAAgF;QAChF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CACL,KAAK,CAAC,KAAK,GAAG,EAAE;YAChB,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAChE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,mCAAmC,CACzC,KAAgC;QAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QAEjD,MAAM,IAAI,GACR,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC9C,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAEhD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YAC7C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YAC7C,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,QAAQ,EAAE,gDAAyB;YACnC,IAAI;YACJ,KAAK,EAAE;gBACL,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM;aACpD;SACF,CAAC;IACJ,CAAC;IAEO,mCAAmC,CACzC,KAAgC;QAEhC,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QAEjD,6FAA6F;QAC7F,gFAAgF;QAChF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,IACE,gBAAM,CAAC,EAAE,CACP,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC9B,2CAA2C,CAC5C,EACD;YACA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACxE,OAAO,KAAK,CAAC;SACd;QAED,IAAI,yBAAyB,GAAG,KAAK,CAAC;QAEtC,4DAA4D;QAC5D,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IACE,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC3B,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3C;gBACA,OAAO,KAAK,CAAC;aACd;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAM,CAAC,QAAQ,IAAI,IAAA,6BAAa,EAAC,KAAK,CAAC,EAAE;gBAC3D,yBAAyB,GAAG,IAAI,CAAC;aAClC;SACF;QAED,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAEO,4CAA4C,CAClD,KAA6B;QAE7B,IAAI,IAAA,oCAAoB,EAAC,KAAK,CAAC,EAAE;YAC/B,OAAO;gBACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;gBACzC,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;gBAChE,YAAY,EAAE,4BAAoB,CAAC,WAAW;aAC/C,CAAC;SACH;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QAEF,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO;gBACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;gBACzC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,cAAc,CACf;gBACD,YAAY,EAAE,4BAAoB,CAAC,QAAQ;aAC5C,CAAC;SACH;QAED,qFAAqF;QACrF,yCAAyC;QACzC,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;YACzC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;YAC7D,YAAY,EAAE,4BAAoB,CAAC,QAAQ;SAC5C,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAC7B,KAA6B;QAE7B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,SAAS;aACV;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,SAAS;aACV;YAED,MAAM,eAAe,GAAG,+BAA+B,CACrD,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,eAAe,CAAC;aACxB;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mCAAmC,CACzC,KAA8B;QAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAEO,kCAAkC,CACxC,KAA8B;QAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAEO,wBAAwB,CAC9B,KAA8B,EAC9B,IAAsB;QAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAChE,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,CACL,eAAe,CAAC,QAAQ,KAAK,SAAS;YACtC,eAAe,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CACjD,CAAC;IACJ,CAAC;IAEO,iDAAiD,CACvD,KAA6B,EAC7B,IAAiB;QAEjB,MAAM,eAAe,GAAG,+BAA+B,CACrD,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,YAAY;YACtC,eAAe;YACf,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,oBAAoB,EAAE,IAAI,CAAC,MAAM,KAAK,gBAAM,CAAC,OAAO;SACrD,CAAC;IACJ,CAAC;IAEO,qEAAqE,CAC3E,KAA6B,EAC7B,IAAiB;QAEjB,MAAM,eAAe,GAAG,+BAA+B,CACrD,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;YAC1D,eAAe;SAChB,CAAC;IACJ,CAAC;IAEO,gDAAgD,CACtD,KAA6B,EAC7B,IAAiB,EACjB,SAAiB;QAEjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAChE,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,WAAW;YACrC,eAAe,EACb,+BAA+B,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC9D,mBAAmB;YACrB,SAAS;SACV,CAAC;IACJ,CAAC;IAEO,sDAAsD,CAC5D,KAA6B,EAC7B,IAAiB,EACjB,OAAe;QAEf,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAA,+BAAsB,EACpB,mBAAmB,KAAK,SAAS,EACjC,8CAA8C,CAC/C,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,YAAY;YACtC,eAAe,EACb,+BAA+B,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC9D,mBAAmB;YACrB,OAAO;SACR,CAAC;IACJ,CAAC;IAEO,+BAA+B,CAAC,KAA6B;QACnE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE5D,OAAO,CACL,gBAAM,CAAC,SAAS,CACd,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC9B,IAAI,wCAAwC,EAAE,CAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,CACvC,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,kEAAkE;IAC1D,mDAAmD,CACzD,KAA8B;QAE9B,IAAI,WAAW,GACb,IAAI,CAAC,mDAAmD,CAAC,KAAK,CAAC,CAAC;QAElE,IACE,WAAW,KAAK,SAAS;YACzB,WAAW,CAAC,eAAe,KAAK,SAAS,EACzC;YACA,IACE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAC7C,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACzB;gBACA,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAClD,6BAA6B;oBAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC3D,WAAW,GAAG;wBACZ,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;wBAC1D,eAAe,EAAE;4BACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;4BACtC,QAAQ,EAAE,6CAAsB;4BAChC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;4BACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;4BACpC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;4BACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;yBAC5D;qBACF,CAAC;oBAEF,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;iBACjD;aACF;iBAAM;gBACL,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1D,WAAW,GAAG;oBACZ,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;oBAC1D,eAAe,EAAE;wBACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;wBACtC,QAAQ,EAAE,4CAAqB;wBAC/B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;wBACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;wBACpC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;wBACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;qBAC5D;iBACF,CAAC;gBAEF,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;aACjD;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,iDAAiD,CACvD,KAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,qBAAqB;YAC/C,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;IAEO,gCAAgC,CACtC,KAA6B;QAE7B,oFAAoF;QACpF,2EAA2E;QAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,6CAA6C,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC,CAAC,8BAA8B;QAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAY,CAAC,CAAC,8BAA8B;QACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,WAAW,CAAC;IAChD,CAAC;IAEO,mDAAmD,CACzD,KAA6B;QAE7B,oEAAoE;QACpE,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE9D,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAClC,MAAM,QAAQ,GAAG,OAAO,EAAE,qBAAqB,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,EAAE,qBAAqB,EAAE,CAAC;YAElD,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,qDAAqD;YACrD,IACE,QAAQ,KAAK,SAAS;gBACtB,OAAO,KAAK,SAAS;gBACrB,OAAO,KAAK,SAAS;gBACrB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EACvB;gBACA,OAAO,IAAI,CAAC,qEAAqE,CAC/E,KAAK,EACL,QAAQ,CACT,CAAC;aACH;YAED,IAAI,WAAkE,CAAC;YAEvE,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACpD,WAAW;oBACT,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;aACL;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACjC,WAAW;oBACT,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;aACL;YAED,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;aACjD;YAED,OAAO,WAAW,CAAC;SACpB;QAED,IAAI,IAAA,6BAAa,EAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAClD,qEAAqE;YACrE,wEAAwE;YACxE,kCAAkC;YAClC,MAAM,sBAAsB,GAC1B,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;YAEJ,+DAA+D;YAC/D,mDAAmD;YACnD,IAAI,sBAAsB,CAAC,eAAe,KAAK,SAAS,EAAE;gBACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAClD,MAAM,sBAAsB,GAAoB;oBAC9C,QAAQ,EAAE,gDAAyB;oBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;oBACtC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;oBACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;oBACpC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;oBACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;iBAC5D,CAAC;gBAEF,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE;oBAC7D,sBAAsB,CAAC,IAAI;wBACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;iBAChF;gBAED,sBAAsB,CAAC,eAAe,GAAG,sBAAsB,CAAC;aACjE;iBAAM;gBACL,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;aAC5D;YAED,OAAO,sBAAsB,CAAC;SAC/B;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,mEAAmE;YACnE,yDAAyD;YACzD,kEAAkE;YAClE,aAAa;YACb,MAAM,4BAA4B,GAChC,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;YAEJ,IAAI,4BAA4B,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC9D,IAAI,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;aAClE;YACD,OAAO,4BAA4B,CAAC;SACrC;IACH,CAAC;IAEO,wBAAwB,CAAC,KAAgC;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,wBAAwB,CAAC;IAC/D,CAAC;IAEO,6BAA6B,CACnC,WAAsD;QAEtD,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAEhE,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACrE,OAAO;SACR;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtE,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;YAC5B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAE9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC/D,WAAW,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,GAAG,iBAAiB,CAAC;SAC3D;IACH,CAAC;IAEO,6CAA6C,CACnD,KAA6B;QAE7B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,OAAO,CAAC,CAAC;aACV;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oCAAoC,CAC1C,KAA6B;QAE7B,MAAM,iBAAiB,GACrB,IAAI,CAAC,6CAA6C,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,IAAA,yBAAS,EAAC,gBAAgB,CAAC,EAAE;YAC/B,MAAM,2BAA2B,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAC/D,gBAAgB,CAAC,EAAE,CACpB,CAAC;YACF,OAAO,2BAA2B,CAAC;SACpC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oDAAoD,CAC1D,QAAkB,EAClB,QAAqB;QAErB,MAAM,eAAe,GAAG,+BAA+B,CACrD,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAClB,CAAC;QACF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;QAEF,qCAAqC;QACrC,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,iBAAiB;YAC3C,eAAe;SAChB,CAAC;IACJ,CAAC;IAEO,gCAAgC,CACtC,KAA6B,EAC7B,iBAAgC;QAEhC,uFAAuF;QACvF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,qCAAqC,CAC1C,KAAK,CAAC,QAAQ,EACd,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAChD,CAAC;SACH;QAED,4FAA4F;QAC5F,uDAAuD;QACvD,IAAI,CAAC,IAAA,oCAAoB,EAAC,KAAK,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;SACH;QAED,wDAAwD;QACxD,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;YACzC,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;YAChE,YAAY,EAAE,4BAAoB,CAAC,WAAW;SAC/C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAC1B,KAA6B,EAC7B,qBAA6B;QAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAY,CAAC;QACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAElE,8CAA8C;QAC9C,IAAA,+BAAsB,EACpB,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAC/B,kDAAkD,CACnD,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CACzB,KAAK,EACL,qBAAqB,GAAG,CAAC,EACzB,QAAQ,CAAC,QAAQ,CAClB,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,KAA6B,EAC7B,SAAiB,EACjB,eAA4B;QAE5B,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;QAE9C,8CAA8C;QAC9C,IAAA,+BAAsB,EACpB,YAAY,KAAK,SAAS,EAC1B,sCAAsC,CACvC,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAEO,eAAe,CACrB,KAA6B,EAC7B,QAAgB,EAChB,QAAwB;QAExB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAExD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,SAAS;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACvC,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,0BAA0B,CAChC,KAA6B,EAC7B,qBAA6B;QAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAiB,CAAC;QAEhE,IAAI,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YACnD,OAAO,KAAK,CAAC;SACd;QAED,IACE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,UAAU;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,UAAU,EACtC;YACA,OAAO,IAAI,CAAC;SACb;QAED,yEAAyE;QACzE,sBAAsB;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjE,CAAC;IAEO,uBAAuB,CAC7B,KAA6B,EAC7B,qBAA6B;QAE7B,IAAI,CAAC,IAAA,kCAAkB,EAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,YAAY,EAAE;YAC3C,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpD,IAAI,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAA,iCAAiB,EAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,iFAAiF;QACjF,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,oBAAY,CAAC,OAAO,EAAE;YAC5D,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;YACvD,OAAO,KAAK,CAAC;SACd;QAED,KAAK,IAAI,CAAC,GAAG,qBAAqB,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,kFAAkF;YAClF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACd;YAED,IACE,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,aAAa;gBACxC,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,cAAc,EACzC;gBACA,OAAO,KAAK,CAAC;aACd;SACF;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE5D,OAAO,QAAQ,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,CAAC;IAC3C,CAAC;IAEO,+BAA+B,CACrC,KAA6B,EAC7B,aAAqB;QAErB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,MAAM,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAiB,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,UAAU,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB,CAAC,UAAsB;QAC/C,OAAO,IAAI,wBAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACxD,CAAC;CACF;AAjpDD,sCAipDC;AAED,SAAgB,qCAAqC,CACnD,QAAkB,EAClB,IAAiB;IAEjB,wEAAwE;IACxE,2EAA2E;IAC3E,WAAW;IACX,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,iCAAiC;YAC3D,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,eAAe,EAAE;gBACf,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;gBACtD,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;gBACtD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBAChC,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE;gBACxD,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;aAC5D;SACF,CAAC;KACH;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAEpD,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,eAAe,GAAG,+BAA+B,CACrD,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;YACzC,eAAe;YACf,YAAY,EAAE,IAAI,CAAC,IAAI;SACxB,CAAC;KACH;IAED,IAAA,+BAAsB,EACpB,IAAI,CAAC,QAAQ,KAAK,SAAS,EAC3B,6CAA6C,CAC9C,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;QACzC,eAAe,EAAE;YACf,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAChC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YACzC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC5C;SACF;QACD,YAAY,EAAE,4BAAoB,CAAC,QAAQ;KAC5C,CAAC;AACJ,CAAC;AA9DD,sFA8DC;AAED,SAAS,+BAA+B,CACtC,QAAkB,EAClB,QAAyB;IAEzB,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAE9C,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAEzB,IAAI,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,WAAW,EAAE;QAClD,QAAQ,GAAG,gDAAyB,CAAC;KACtC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,QAAQ,EAAE;QACtD,QAAQ,GAAG,6CAAsB,CAAC;KACnC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,OAAO,EAAE;QACrD,QAAQ,GAAG,4CAAqB,CAAC;KAClC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EACN,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,aAAa;YAC9C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;QACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;QACzC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;QACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC"} \ No newline at end of file -+{"version":3,"file":"error-inferrer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"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"} ++{"version":3,"file":"error-inferrer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAgE;AAChE,4CAA4D;AAC5D,sEAA+D;AAC/D,oDAA4B;AAE5B,8CAA2D;AAC3D,wDAAoD;AACpD,yDAAqD;AAGrD,mDAWyB;AAUzB,uCAAqD;AACrD,iEAgBgC;AAEhC,MAAM,2CAA2C,GAAG,OAAO,CAAC;AAC5D,MAAM,mCAAmC,GAAG,OAAO,CAAC;AACpD,MAAM,wCAAwC,GAAG,OAAO,CAAC;AAQzD,+EAA+E;AAE/E,MAAa,aAAa;IACjB,6BAA6B,CAClC,KAA8B;QAE9B,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,CAAC;SACzD;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QAEF,IACE,cAAc,KAAK,SAAS;YAC5B,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,cAAc,CAAC,EACtD;YACA,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,0BAA0B;oBACpD,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,cAAc,CACf;oBACD,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;YAClE,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO;oBACL;wBACE,IAAI,EAAE,0CAAmB,CAAC,iCAAiC;wBAC3D,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;qBAC9D;iBACF,CAAC;aACH;YAED,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,4CAA4C;oBACtE,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;iBAC9D;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;YAC1D,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO;oBACL;wBACE,IAAI,EAAE,0CAAmB,CAAC,yCAAyC;wBACnE,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;wBAC7D,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB;iBACF,CAAC;aACH;YAED,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,0BAA0B;oBACpD,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;oBAC7D,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;IACH,CAAC;IAEM,+BAA+B,CACpC,KAAgC;QAEhC,IAAI,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,0BAA0B;oBACpD,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;oBAChE,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,EAAE;YACnD,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,oBAAoB;oBAC9C,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAEM,iBAAiB,CACtB,KAA6B,EAC7B,UAA8B,EAC9B,iBAAgC,EAChC,kBAA2B,EAC3B,kBAA8C;QAE9C,OAAO,CACL,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC;YAChE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC;YAC5C,IAAI,CAAC,qBAAqB,CACxB,KAAK,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,CACnB;YACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC;YAC/C,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,UAAU,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,UAAU,CAAC,CACvD,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAC1B,UAA8B;QAE9B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE;gBAC/B,OAAO,IAAI,CAAC;aACb;YAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpC,6DAA6D;YAC7D,kCAAkC;YAClC,IACE,KAAK,CAAC,eAAe,KAAK,SAAS;gBACnC,SAAS,CAAC,eAAe,KAAK,SAAS,EACvC;gBACA,OAAO,IAAI,CAAC;aACb;YAED,yEAAyE;YACzE,wEAAwE;YACxE,IACE,KAAK,CAAC,IAAI,KAAK,0CAAmB,CAAC,eAAe;gBAClD,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM;gBACzB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS;gBAC/C,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,0CAAmB,CAAC,qBAAqB,EACpE;gBACA,wEAAwE;gBACxE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;gBACrD,IACE,UAAU,KAAK,SAAS;oBACxB,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAC9C;oBACA,OAAO,KAAK,CAAC;iBACd;aACF;YAED,6DAA6D;YAC7D,IACE,KAAK,CAAC,eAAe,CAAC,QAAQ,KAAK,aAAa;gBAChD,SAAS,CAAC,eAAe,CAAC,QAAQ,KAAK,aAAa,EACpD;gBACA,OAAO,IAAI,CAAC;aACb;YAED,oCAAoC;YACpC,IACE,CAAC,GAAG,CAAC;gBACL,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;gBAC7B,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrE,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,CAAC,IAAI,EAC7D;gBACA,OAAO,IAAI,CAAC;aACb;YAED,IACE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EACpE;gBACA,OAAO,KAAK,CAAC;aACd;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IAEb;;OAEG;IACK,oBAAoB,CAC1B,KAA6B,EAC7B,UAA8B,EAC9B,kBAA8C;QAE9C,IAAI,kBAAkB,KAAK,SAAS,EAAE;YACpC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAE3C,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAE/D,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,qCAAqC,CAC1D,KAAK,CAAC,QAAQ,EACd,QAAQ,CACT,CAAC;QAEF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzE,IAAI,iBAAiB,EAAE;YACrB,oEAAoE;YACpE,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAExC,IACE,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC;gBACpE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACjE;gBACA,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE1D,IACE,IAAI,CAAC,+BAA+B,CAClC,KAAK,EACL,kBAAkB,CAAC,SAAS,CAC7B,EACD;oBACA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;oBAC3C,IAAA,+BAAsB,EACpB,SAAS,KAAK,SAAS,EACvB,0DAA0D,CAC3D,CAAC;oBACF,kBAAkB,CAAC,IAAI,CAAC;wBACtB,IAAI,EAAE,0CAAmB,CAAC,kCAAkC;wBAC5D,eAAe,EAAE,SAAS,CAAC,eAAe;qBAC3C,CAAC,CAAC;iBACJ;gBAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CACrD,KAAK,EACL,kBAAkB,CAAC,SAAS,CAC7B,CAAC;YACF,IAAI,qBAAqB,EAAE;gBACzB,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0CAAmB,CAAC,qBAAqB;oBAC/C,eAAe,EAAE,cAAc,CAAC,eAAe;iBAChD,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,KAA6B,EAC7B,UAA8B;QAE9B,KAAK,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAE5C,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO;aACR;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,MAAM,cAAc,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAA,kBAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpE,IAAI,cAAc,IAAI,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;gBACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;oBACnD,MAAM,kBAAkB,GAAG;wBACzB,GAAG,UAAU;wBACb,IAAI,CAAC,oDAAoD,CACvD,KAAK,CAAC,QAAQ,EACd,IAAI,CACL;qBACF,CAAC;oBAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;iBAC5D;aACF;SACF;IACH,CAAC;IAED;;OAEG;IACK,2BAA2B,CACjC,KAA6B,EAC7B,UAA8B,EAC9B,eAA4B,EAC5B,iBAAgC,EAChC,kBAA2B;QAE3B,IACE,eAAe,CAAC,MAAM,4BAAkB;YACxC,eAAe,CAAC,MAAM,6BAAmB,EACzC;YACA,OAAO;SACR;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAE3C,IACE,eAAe,CAAC,QAAQ,KAAK,SAAS;YACtC,CAAC,CAAC,IAAA,kCAAkB,EAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAClD;YACA,sFAAsF;YACtF,EAAE;YACF,oFAAoF;YACpF,yBAAyB;YACzB,EAAE;YACF,yFAAyF;YACzF,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAEzE,gFAAgF;YAChF,IACE,eAAe,KAAK,SAAS;gBAC7B,eAAe,CAAC,IAAI,0CAAkC,EACtD;gBACA,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAChE,CAAC;aACH;SACF;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CACtC,KAAK,EACL,kBAAkB,EAClB,eAAe,CAChB,CAAC;QACF,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,OAAO,eAAe,CAAC;SACxB;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CACnD,KAAK,EACL,kBAAkB,EAClB,eAAe,CAChB,CAAC;QACF,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACvC,OAAO,qBAAqB,CAAC;SAC9B;QAED,IACE,eAAe,CAAC,QAAQ,KAAK,SAAS;YACtC,CAAC,CAAC,IAAA,kCAAkB,EAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAClD;YACA,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAEzE,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,iDAAiD,CACpD,KAAK,EACL,eAAe,CAChB,CACF,CAAC;aACH;iBAAM,IAAI,IAAA,kCAAkB,EAAC,KAAK,CAAC,EAAE;gBACpC,4CAA4C;gBAC5C,MAAM,gBAAgB,GACpB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC7C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;gBAEJ,uEAAuE;gBACvE,wEAAwE;gBACxE,UAAU;gBACV,IAAI,gBAAgB,KAAK,SAAS,EAAE;oBAClC,OAAO;iBACR;gBAED,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0CAAmB,CAAC,YAAY;oBACtC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,gBAAgB,CACjB;oBACD,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,6BAAmB;iBAChE,CAAC,CAAC;aACJ;iBAAM;gBACL,4CAA4C;gBAC5C,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0CAAmB,CAAC,YAAY;oBACtC,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;oBAChE,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,6BAAmB;iBAChE,CAAC,CAAC;aACJ;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;SAC5D;QAED,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,MAAM,WAAW,GAA+B;gBAC9C,IAAI,EAAE,0CAAmB,CAAC,YAAY;gBACtC,eAAe,EACb,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,6BAAmB;aAChE,CAAC;YACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAErC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;SAC5D;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,KAA6B,EAC7B,UAA8B,EAC9B,eAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YAC9C,OAAO;SACR;QAED,qEAAqE;QACrE,uEAAuE;QACvE,SAAS;QACT,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,IACE,SAAS,EAAE,IAAI,KAAK,0CAAmB,CAAC,iCAAiC,EACzE;YACA,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;QAED,MAAM,eAAe,GAAG,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QAEhD,iEAAiE;QACjE,gEAAgE;QAChE,2BAA2B;QAC3B,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3C,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,gDAAgD,CACnD,KAAK,EACL,eAAe,EACf,SAAS,CACV,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAEO,kBAAkB,CACxB,KAA6B,EAC7B,UAA8B,EAC9B,eAA4B;QAE5B,MAAM,UAAU,GAAG,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,iBAAiB,EAAE,EAAE;YAC1D,0DAA0D;YAC1D,kCAAkC;YAClC,OAAO;SACR;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,YAAY,GAAG,8DAA8D,aAAa,GAAG,CAAC;QAElG,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC9D,IAAI,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBACpD,oEAAoE;gBACpE,2EAA2E;gBAC3E,MAAM,aAAa,GAAG,qBAAG,CAAC,MAAM,CAC9B,WAAW,CAAC,UAAU,EACtB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1B,CAAC;gBAEF,MAAM,MAAM,GAAG,wBAAU,CAAC,YAAY,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;gBAC3D,YAAY,GAAG,+BAA+B,WAAW,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC;gBAC7E,MAAM;aACP;SACF;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3C,kBAAkB,CAAC,IAAI,CACrB,IAAI,CAAC,sDAAsD,CACzD,KAAK,EACL,eAAe,EACf,YAAY,CACb,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,KAA6B,EAC7B,UAA8B,EAC9B,iBAAgC,EAChC,kBAA2B;QAE3B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;SACH;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnE,MAAM,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,CAChE,KAAK,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,CACnB,CAAC;QAEF,IAAI,yBAAyB,KAAK,SAAS,EAAE;YAC3C,OAAO,yBAAyB,CAAC;SAClC;QAED,IAAI,IAAA,kCAAkB,EAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpD,IACE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;gBAC/C,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAC9C;gBACA,OAAO;oBACL,IAAI,CAAC,iDAAiD,CACpD,KAAK,EACL,eAAe,CAChB;iBACF,CAAC;aACH;YAED,qEAAqE;YACrE,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC1C,MAAM,eAAe,GACnB,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBACnD,IAAI,eAAe,KAAK,SAAS,EAAE;oBACjC,OAAO;wBACL;4BACE,IAAI,EAAE,0CAAmB,CAAC,YAAY;4BACtC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,eAAe,CAChB;4BACD,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;4BACzC,oBAAoB,EAAE,eAAe,CAAC,MAAM,6BAAmB;yBAChE;qBACF,CAAC;iBACH;aACF;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;YAEF,IAAI,cAAc,KAAK,SAAS,EAAE;gBAChC,MAAM,eAAe;gBACnB,0EAA0E;gBAC1E,cAAc,CAAC,UAAU,KAAK,SAAS;oBACvC,wBAAU,CAAC,eAAe,CACxB,cAAc,CAAC,UAAU,EACzB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,CAAC;gBAEJ,IAAI,CAAC,eAAe,EAAE;oBACpB,OAAO;wBACL;4BACE,IAAI,EAAE,0CAAmB,CAAC,oBAAoB;4BAC9C,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,cAAc,CACf;yBACF;qBACF,CAAC;iBACH;aACF;YAED,IAAI,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE;gBAC/C,MAAM,WAAW,GACf,IAAI,CAAC,mDAAmD,CAAC,KAAK,CAAC,CAAC;gBAElE,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC7B,OAAO,CAAC,WAAW,CAAC,CAAC;iBACtB;aACF;YAED,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,KAAK,CAAC,CAAC,CAAC;SACxE;IACH,CAAC;IAEO,uBAAuB,CAC7B,KAA6B,EAC7B,UAA8B;QAE9B,IAAI,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;YAChD,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAE5D,kFAAkF;YAClF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;YAEF,MAAM,sBAAsB,GAA4B;gBACtD,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;gBAC1D,eAAe;aAChB,CAAC;YAEF,OAAO,CAAC,GAAG,UAAU,EAAE,sBAAsB,CAAC,CAAC;SAChD;IACH,CAAC;IAEO,+BAA+B,CACrC,KAA6B,EAC7B,UAA8B;QAE9B,IAAI,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE;YAC/C,MAAM,WAAW,GACf,IAAI,CAAC,mDAAmD,CAAC,KAAK,CAAC,CAAC;YAElE,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAEO,sBAAsB,CAC5B,KAA6B;QAE7B,IAAI,IAAA,6BAAa,EAAC,KAAK,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,wBAAwB;oBAClD,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAEO,8BAA8B,CACpC,KAA6B,EAC7B,UAA8B;QAE9B,MAAM,wBAAwB,GAA4B;YACxD,IAAI,EAAE,0CAAmB,CAAC,qBAAqB;YAC/C,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;SACrD,CAAC;QAEF,OAAO,CAAC,GAAG,UAAU,EAAE,wBAAwB,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;IAEF,mBAAmB,CACzB,KAA6B,EAC7B,UAA8B;QAE9B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,UAAU,KAAK,SAAS;YACxB,UAAU,CAAC,IAAI,KAAK,0CAAmB,CAAC,eAAe;YACvD,UAAU,CAAC,YAAY,0CAAkC,EACzD;YACA,OAAO;gBACL,IAAI,CAAC,4CAA4C,CAAC,KAAK,CAAC;gBACxD,GAAG,UAAU;aACd,CAAC;SACH;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAC,KAA8B;QACzD,OAAO,CACL,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iCAAyB,CAC3E,CAAC;IACJ,CAAC;IAEO,oCAAoC,CAC1C,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAC1D,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO;gBACL;oBACE,IAAI,EAAE,0CAAmB,CAAC,yBAAyB;oBACnD,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,IAAI,CAAC;iBACpE;aACF,CAAC;SACH;QAED,OAAO;YACL;gBACE,IAAI,EAAE,0CAAmB,CAAC,yBAAyB;gBACnD,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;aAC9D;SACF,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAChC,KAA8B,EAC9B,cAAgC;QAEhC,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QAED,0CAA0C;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iCAAyB,EAAE;YACzD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,cAAc,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IAC7E,CAAC;IAEO,gCAAgC,CACtC,KAA6B,EAC7B,IAAsB;QAEtB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC5C;SACF,CAAC;IACJ,CAAC;IAEO,kCAAkC,CACxC,KAA8B,EAC9B,cAA4C;QAE5C,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,6CAA6C;QAC7C,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,6CAA6C;QAC7C,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAC7C;YACA,OAAO,KAAK,CAAC;SACd;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC;IACxD,CAAC;IAEO,0BAA0B,CAAC,KAA8B;QAC/D,6DAA6D;QAC7D,IACE,gBAAM,CAAC,EAAE,CACP,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC9B,mCAAmC,CACpC,EACD;YACA,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAC9C,CAAC;IACJ,CAAC;IAEO,+CAA+C,CACrD,KAA6B;QAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;YACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAC5D,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAChC,KAA8B,EAC9B,cAA4C;QAE5C,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAE7D,OAAO,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC;IAC/C,CAAC;IAEO,gCAAgC,CACtC,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAE9C,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;SACH;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,QAAQ,EAAE,6CAAsB;YAChC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC5C;SACF,CAAC;IACJ,CAAC;IAEO,6BAA6B,CACnC,KAAgC;QAEhC,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAEhE,6FAA6F;QAC7F,gFAAgF;QAChF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CACL,KAAK,CAAC,KAAK,GAAG,EAAE;YAChB,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAChE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,mCAAmC,CACzC,KAAgC;QAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QAEjD,MAAM,IAAI,GACR,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC9C,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAEhD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YAC7C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YAC7C,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,QAAQ,EAAE,gDAAyB;YACnC,IAAI;YACJ,KAAK,EAAE;gBACL,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM;aACpD;SACF,CAAC;IACJ,CAAC;IAEO,mCAAmC,CACzC,KAAgC;QAEhC,iCAAiC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QAEjD,6FAA6F;QAC7F,gFAAgF;QAChF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,IACE,gBAAM,CAAC,EAAE,CACP,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC9B,2CAA2C,CAC5C,EACD;YACA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,4BAAkB,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACxE,OAAO,KAAK,CAAC;SACd;QAED,IAAI,yBAAyB,GAAG,KAAK,CAAC;QAEtC,4DAA4D;QAC5D,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IACE,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC3B,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3C;gBACA,OAAO,KAAK,CAAC;aACd;YAED,IAAI,IAAI,CAAC,MAAM,6BAAoB,IAAI,IAAA,6BAAa,EAAC,KAAK,CAAC,EAAE;gBAC3D,yBAAyB,GAAG,IAAI,CAAC;aAClC;SACF;QAED,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAEO,4CAA4C,CAClD,KAA6B;QAE7B,IAAI,IAAA,oCAAoB,EAAC,KAAK,CAAC,EAAE;YAC/B,OAAO;gBACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;gBACzC,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;gBAChE,YAAY,0CAAkC;aAC/C,CAAC;SACH;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QAEF,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,OAAO;gBACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;gBACzC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CACpD,KAAK,EACL,cAAc,CACf;gBACD,YAAY,uCAA+B;aAC5C,CAAC;SACH;QAED,qFAAqF;QACrF,yCAAyC;QACzC,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;YACzC,eAAe,EAAE,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;YAC7D,YAAY,uCAA+B;SAC5C,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAC7B,KAA6B;QAE7B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,SAAS;aACV;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,SAAS;aACV;YAED,MAAM,eAAe,GAAG,+BAA+B,CACrD,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,eAAe,CAAC;aACxB;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mCAAmC,CACzC,KAA8B;QAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAEO,kCAAkC,CACxC,KAA8B;QAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEzC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAEO,wBAAwB,CAC9B,KAA8B,EAC9B,IAAsB;QAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAChE,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,CACL,eAAe,CAAC,QAAQ,KAAK,SAAS;YACtC,eAAe,CAAC,MAAM,4BAAkB;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CACjD,CAAC;IACJ,CAAC;IAEO,iDAAiD,CACvD,KAA6B,EAC7B,IAAiB;QAEjB,MAAM,eAAe,GAAG,+BAA+B,CACrD,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,YAAY;YACtC,eAAe;YACf,OAAO,EAAE,IAAI,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,oBAAoB,EAAE,IAAI,CAAC,MAAM,6BAAmB;SACrD,CAAC;IACJ,CAAC;IAEO,qEAAqE,CAC3E,KAA6B,EAC7B,IAAiB;QAEjB,MAAM,eAAe,GAAG,+BAA+B,CACrD,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;YAC1D,eAAe;SAChB,CAAC;IACJ,CAAC;IAEO,gDAAgD,CACtD,KAA6B,EAC7B,IAAiB,EACjB,SAAiB;QAEjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAChE,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,WAAW;YACrC,eAAe,EACb,+BAA+B,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC9D,mBAAmB;YACrB,SAAS;SACV,CAAC;IACJ,CAAC;IAEO,sDAAsD,CAC5D,KAA6B,EAC7B,IAAiB,EACjB,OAAe;QAEf,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAA,+BAAsB,EACpB,mBAAmB,KAAK,SAAS,EACjC,8CAA8C,CAC/C,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,YAAY;YACtC,eAAe,EACb,+BAA+B,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC9D,mBAAmB;YACrB,OAAO;SACR,CAAC;IACJ,CAAC;IAEO,+BAA+B,CAAC,KAA6B;QACnE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE5D,OAAO,CACL,gBAAM,CAAC,SAAS,CACd,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC9B,IAAI,wCAAwC,EAAE,CAC/C,IAAI,QAAQ,CAAC,MAAM,4BAAkB,CACvC,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,kEAAkE;IAC1D,mDAAmD,CACzD,KAA8B;QAE9B,IAAI,WAAW,GACb,IAAI,CAAC,mDAAmD,CAAC,KAAK,CAAC,CAAC;QAElE,IACE,WAAW,KAAK,SAAS;YACzB,WAAW,CAAC,eAAe,KAAK,SAAS,EACzC;YACA,IACE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAC7C,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACzB;gBACA,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAClD,6BAA6B;oBAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC3D,WAAW,GAAG;wBACZ,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;wBAC1D,eAAe,EAAE;4BACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;4BACtC,QAAQ,EAAE,6CAAsB;4BAChC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;4BACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;4BACpC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;4BACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;yBAC5D;qBACF,CAAC;oBAEF,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;iBACjD;aACF;iBAAM;gBACL,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1D,WAAW,GAAG;oBACZ,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;oBAC1D,eAAe,EAAE;wBACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;wBACtC,QAAQ,EAAE,4CAAqB;wBAC/B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;wBACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;wBACpC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;wBACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;qBAC5D;iBACF,CAAC;gBAEF,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;aACjD;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,iDAAiD,CACvD,KAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,qBAAqB;YAC/C,eAAe,EACb,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;IAEO,gCAAgC,CACtC,KAA6B;QAE7B,oFAAoF;QACpF,2EAA2E;QAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,6CAA6C,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC,CAAC,8BAA8B;QAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,2BAAkB,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAY,CAAC,CAAC,8BAA8B;QACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,MAAM,gCAAuB,CAAC;IAChD,CAAC;IAEO,mDAAmD,CACzD,KAA6B;QAE7B,oEAAoE;QACpE,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE9D,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAClC,MAAM,QAAQ,GAAG,OAAO,EAAE,qBAAqB,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,EAAE,qBAAqB,EAAE,CAAC;YAElD,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,qDAAqD;YACrD,IACE,QAAQ,KAAK,SAAS;gBACtB,OAAO,KAAK,SAAS;gBACrB,OAAO,KAAK,SAAS;gBACrB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EACvB;gBACA,OAAO,IAAI,CAAC,qEAAqE,CAC/E,KAAK,EACL,QAAQ,CACT,CAAC;aACH;YAED,IAAI,WAAkE,CAAC;YAEvE,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACpD,WAAW;oBACT,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;aACL;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACjC,WAAW;oBACT,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;aACL;YAED,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;aACjD;YAED,OAAO,WAAW,CAAC;SACpB;QAED,IAAI,IAAA,6BAAa,EAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAClD,qEAAqE;YACrE,wEAAwE;YACxE,kCAAkC;YAClC,MAAM,sBAAsB,GAC1B,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;YAEJ,+DAA+D;YAC/D,mDAAmD;YACnD,IAAI,sBAAsB,CAAC,eAAe,KAAK,SAAS,EAAE;gBACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAClD,MAAM,sBAAsB,GAAoB;oBAC9C,QAAQ,EAAE,gDAAyB;oBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;oBACtC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;oBACpC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;oBACpC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;oBACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;iBAC5D,CAAC;gBAEF,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE;oBAC7D,sBAAsB,CAAC,IAAI;wBACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;iBAChF;gBAED,sBAAsB,CAAC,eAAe,GAAG,sBAAsB,CAAC;aACjE;iBAAM;gBACL,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;aAC5D;YAED,OAAO,sBAAsB,CAAC;SAC/B;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,mEAAmE;YACnE,yDAAyD;YACzD,kEAAkE;YAClE,aAAa;YACb,MAAM,4BAA4B,GAChC,IAAI,CAAC,qEAAqE,CACxE,KAAK,EACL,QAAQ,CACT,CAAC;YAEJ,IAAI,4BAA4B,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC9D,IAAI,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;aAClE;YACD,OAAO,4BAA4B,CAAC;SACrC;IACH,CAAC;IAEO,wBAAwB,CAAC,KAAgC;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,8CAAsC,CAAC;IAC/D,CAAC;IAEO,6BAA6B,CACnC,WAAsD;QAEtD,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAEhE,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACrE,OAAO;SACR;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtE,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;YAC5B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAE9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC/D,WAAW,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,GAAG,iBAAiB,CAAC;SAC3D;IACH,CAAC;IAEO,6CAA6C,CACnD,KAA6B;QAE7B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,OAAO,CAAC,CAAC;aACV;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oCAAoC,CAC1C,KAA6B;QAE7B,MAAM,iBAAiB,GACrB,IAAI,CAAC,6CAA6C,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,IAAA,yBAAS,EAAC,gBAAgB,CAAC,EAAE;YAC/B,MAAM,2BAA2B,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAC/D,gBAAgB,CAAC,EAAE,CACpB,CAAC;YACF,OAAO,2BAA2B,CAAC;SACpC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oDAAoD,CAC1D,QAAkB,EAClB,QAAqB;QAErB,MAAM,eAAe,GAAG,+BAA+B,CACrD,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAClB,CAAC;QACF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;QAEF,qCAAqC;QACrC,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,iBAAiB;YAC3C,eAAe;SAChB,CAAC;IACJ,CAAC;IAEO,gCAAgC,CACtC,KAA6B,EAC7B,iBAAgC;QAEhC,uFAAuF;QACvF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,qCAAqC,CAC1C,KAAK,CAAC,QAAQ,EACd,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAChD,CAAC;SACH;QAED,4FAA4F;QAC5F,uDAAuD;QACvD,IAAI,CAAC,IAAA,oCAAoB,EAAC,KAAK,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;SACH;QAED,wDAAwD;QACxD,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;YACzC,eAAe,EAAE,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC;YAChE,YAAY,0CAAkC;SAC/C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAC1B,KAA6B,EAC7B,qBAA6B;QAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,4BAAkB,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAY,CAAC;QACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAElE,8CAA8C;QAC9C,IAAA,+BAAsB,EACpB,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAC/B,kDAAkD,CACnD,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CACzB,KAAK,EACL,qBAAqB,GAAG,CAAC,EACzB,QAAQ,CAAC,QAAQ,CAClB,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,KAA6B,EAC7B,SAAiB,EACjB,eAA4B;QAE5B,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;QAE9C,8CAA8C;QAC9C,IAAA,+BAAsB,EACpB,YAAY,KAAK,SAAS,EAC1B,sCAAsC,CACvC,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAEO,eAAe,CACrB,KAA6B,EAC7B,QAAgB,EAChB,QAAwB;QAExB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAExD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,SAAS;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACvC,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,0BAA0B,CAChC,KAA6B,EAC7B,qBAA6B;QAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAiB,CAAC;QAEhE,IAAI,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YACnD,OAAO,KAAK,CAAC;SACd;QAED,IACE,KAAK,CAAC,IAAI,CAAC,IAAI,gCAAwB;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAwB,EACtC;YACA,OAAO,IAAI,CAAC;SACb;QAED,yEAAyE;QACzE,sBAAsB;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjE,CAAC;IAEO,uBAAuB,CAC7B,KAA6B,EAC7B,qBAA6B;QAE7B,IAAI,CAAC,IAAA,kCAAkB,EAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,kCAAwB,EAAE;YAC3C,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpD,IAAI,IAAA,yBAAS,EAAC,QAAQ,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAA,iCAAiB,EAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,iFAAiF;QACjF,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iCAAyB,EAAE;YAC5D,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;YACvD,OAAO,KAAK,CAAC;SACd;QAED,KAAK,IAAI,CAAC,GAAG,qBAAqB,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,kFAAkF;YAClF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACd;YAED,IACE,IAAI,CAAC,QAAQ,mCAA2B;gBACxC,IAAI,CAAC,QAAQ,oCAA4B,EACzC;gBACA,OAAO,KAAK,CAAC;aACd;SACF;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE5D,OAAO,QAAQ,CAAC,MAAM,4BAAkB,CAAC;IAC3C,CAAC;IAEO,+BAA+B,CACrC,KAA6B,EAC7B,aAAqB;QAErB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,4BAAoB,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAiB,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAwB,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB,CAAC,UAAsB;QAC/C,OAAO,IAAI,wBAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACxD,CAAC;CACF;AArpDD,sCAqpDC;AAED,SAAgB,qCAAqC,CACnD,QAAkB,EAClB,IAAiB;IAEjB,wEAAwE;IACxE,2EAA2E;IAC3E,WAAW;IACX,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,iCAAiC;YAC3D,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,eAAe,EAAE;gBACf,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;gBACtD,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;gBACtD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBAChC,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE;gBACxD,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;aAC5D;SACF,CAAC;KACH;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAEpD,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,eAAe,GAAG,+BAA+B,CACrD,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAA,+BAAsB,EACpB,eAAe,KAAK,SAAS,EAC7B,yCAAyC,CAC1C,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;YACzC,eAAe;YACf,YAAY,EAAE,IAAI,CAAC,IAAI;SACxB,CAAC;KACH;IAED,IAAA,+BAAsB,EACpB,IAAI,CAAC,QAAQ,KAAK,SAAS,EAC3B,6CAA6C,CAC9C,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,0CAAmB,CAAC,eAAe;QACzC,eAAe,EAAE;YACf,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAChC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;YACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;YACzC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC5C;SACF;QACD,YAAY,uCAA+B;KAC5C,CAAC;AACJ,CAAC;AA9DD,sFA8DC;AAED,SAAS,+BAA+B,CACtC,QAAkB,EAClB,QAAyB;IAEzB,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAE9C,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAEzB,IAAI,IAAI,CAAC,IAAI,6CAAqC,EAAE;QAClD,QAAQ,GAAG,gDAAyB,CAAC;KACtC;SAAM,IAAI,IAAI,CAAC,IAAI,0CAAkC,EAAE;QACtD,QAAQ,GAAG,6CAAsB,CAAC;KACnC;SAAM,IAAI,IAAI,CAAC,IAAI,yCAAiC,EAAE;QACrD,QAAQ,GAAG,4CAAqB,CAAC;KAClC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EACN,IAAI,CAAC,IAAI,+CAAuC;YAC9C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;QACzC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;QACzC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,EAAE;QACtC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/library-utils.d.ts b/internal/hardhat-network/stack-traces/library-utils.d.ts index 276b7c9d5556f1d7f62ddb07330bfb47f9dfaed8..0d369f51dc42a0fa5cc476ebebcea82660bd9a0d 100644 @@ -991,6 +1180,65 @@ index 832dcd0591d709d8a1ce313748cab6fcf1078b47..f4856550ada0c58f6ed8c92b891e1c5a \ No newline at end of file +{"version":3,"file":"mapped-inlined-internal-functions-heuristics.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts"],"names":[],"mappings":"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"} \ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/message-trace.d.ts b/internal/hardhat-network/stack-traces/message-trace.d.ts +index b20acd2945424cb558cf88147a124ac2c75f03c0..e552175dc6febe4eb388f3e78cd5070cf0e81896 100644 +--- a/internal/hardhat-network/stack-traces/message-trace.d.ts ++++ b/internal/hardhat-network/stack-traces/message-trace.d.ts +@@ -1,34 +1,9 @@ + import type { Bytecode } from "./model"; +-import type { Exit } from "../provider/vm/exit"; +-import type { CallOutput, CreateOutput, HaltResult, RevertResult, SuccessResult } from "@nomicfoundation/edr"; ++import type { CallOutput, CreateOutput, HaltResult, RevertResult, SuccessResult, PrecompileMessageTrace, CreateMessageTrace, CallMessageTrace } from "@nomicfoundation/edr"; ++export { PrecompileMessageTrace, CreateMessageTrace, CallMessageTrace }; + export type MessageTrace = CreateMessageTrace | CallMessageTrace | PrecompileMessageTrace; + export type EvmMessageTrace = CreateMessageTrace | CallMessageTrace; + export type DecodedEvmMessageTrace = DecodedCreateMessageTrace | DecodedCallMessageTrace; +-export interface BaseMessageTrace { +- value: bigint; +- returnData: Uint8Array; +- exit: Exit; +- gasUsed: bigint; +- depth: number; +-} +-export interface PrecompileMessageTrace extends BaseMessageTrace { +- precompile: number; +- calldata: Uint8Array; +-} +-export interface BaseEvmMessageTrace extends BaseMessageTrace { +- code: Uint8Array; +- steps: MessageTraceStep[]; +- bytecode?: Bytecode; +- numberOfSubtraces: number; +-} +-export interface CreateMessageTrace extends BaseEvmMessageTrace { +- deployedContract: Uint8Array | undefined; +-} +-export interface CallMessageTrace extends BaseEvmMessageTrace { +- calldata: Uint8Array; +- address: Uint8Array; +- codeAddress: Uint8Array; +-} + export interface DecodedCreateMessageTrace extends CreateMessageTrace { + bytecode: Bytecode; + } +diff --git a/internal/hardhat-network/stack-traces/message-trace.d.ts.map b/internal/hardhat-network/stack-traces/message-trace.d.ts.map +index b6d736afe014890a50569e7b1c9d6ea93577da17..d6ec1eefb3f7b674889100546c4b87a032d877b0 100644 +--- a/internal/hardhat-network/stack-traces/message-trace.d.ts.map ++++ b/internal/hardhat-network/stack-traces/message-trace.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"message-trace.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAGpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,sBAAsB,CAEjC;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,kBAAkB,CAE7B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,gBAAgB,CAE1E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,uBAAuB,CAElC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,OAAO,CAEjE;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,GAAG,YAAY,GAChC,MAAM,IAAI,UAAU,CAEtB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,GAAG,YAAY,GAChC,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,aAAa,CAGzB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,UAAU,CAEtB"} +\ No newline at end of file ++{"version":3,"file":"message-trace.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;AAExE,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,sBAAsB,CAEjC;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,kBAAkB,CAE7B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,gBAAgB,CAE1E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,uBAAuB,CAElC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,OAAO,CAEjE;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,GAAG,YAAY,GAChC,MAAM,IAAI,UAAU,CAEtB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,GAAG,YAAY,GAChC,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,aAAa,CAGzB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,UAAU,CAEtB"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/message-trace.js.map b/internal/hardhat-network/stack-traces/message-trace.js.map +index 74f564c4c42358b85f531aeb5bf293c019c3fef8..fe1e2da7d79d0da6bba0afe677dd1a2a550383a0 100644 +--- a/internal/hardhat-network/stack-traces/message-trace.js.map ++++ b/internal/hardhat-network/stack-traces/message-trace.js.map +@@ -1 +1 @@ +-{"version":3,"file":"message-trace.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":";;;AA6DA,SAAgB,iBAAiB,CAC/B,KAAmB;IAEnB,OAAO,YAAY,IAAI,KAAK,CAAC;AAC/B,CAAC;AAJD,8CAIC;AAED,SAAgB,aAAa,CAC3B,KAAmB;IAEnB,OAAO,MAAM,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAJD,sCAIC;AAED,SAAgB,oBAAoB,CAClC,KAAmB;IAEnB,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9D,CAAC;AAJD,oDAIC;AAED,SAAgB,WAAW,CAAC,KAAmB;IAC7C,OAAO,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,kCAEC;AAED,SAAgB,kBAAkB,CAChC,KAAmB;IAEnB,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC5D,CAAC;AAJD,gDAIC;AAED,SAAgB,SAAS,CAAC,IAAsB;IAC9C,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,8BAEC;AAQD,SAAgB,YAAY,CAC1B,MAAiC;IAEjC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAJD,oCAIC;AAED,SAAgB,cAAc,CAC5B,MAAiC;IAEjC,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC;AAJD,wCAIC;AAED,SAAgB,eAAe,CAC7B,MAAiD;IAEjD,0CAA0C;IAC1C,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AALD,0CAKC;AAED,SAAgB,cAAc,CAC5B,MAAiD;IAEjD,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,wCAIC;AAED,SAAgB,YAAY,CAC1B,MAAiD;IAEjD,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,oCAIC"} +\ No newline at end of file ++{"version":3,"file":"message-trace.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":";;;AAiCA,SAAgB,iBAAiB,CAC/B,KAAmB;IAEnB,OAAO,YAAY,IAAI,KAAK,CAAC;AAC/B,CAAC;AAJD,8CAIC;AAED,SAAgB,aAAa,CAC3B,KAAmB;IAEnB,OAAO,MAAM,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAJD,sCAIC;AAED,SAAgB,oBAAoB,CAClC,KAAmB;IAEnB,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9D,CAAC;AAJD,oDAIC;AAED,SAAgB,WAAW,CAAC,KAAmB;IAC7C,OAAO,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,kCAEC;AAED,SAAgB,kBAAkB,CAChC,KAAmB;IAEnB,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC5D,CAAC;AAJD,gDAIC;AAED,SAAgB,SAAS,CAAC,IAAsB;IAC9C,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,8BAEC;AAQD,SAAgB,YAAY,CAC1B,MAAiC;IAEjC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAJD,oCAIC;AAED,SAAgB,cAAc,CAC5B,MAAiC;IAEjC,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC;AAJD,wCAIC;AAED,SAAgB,eAAe,CAC7B,MAAiD;IAEjD,0CAA0C;IAC1C,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AALD,0CAKC;AAED,SAAgB,cAAc,CAC5B,MAAiD;IAEjD,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,wCAIC;AAED,SAAgB,YAAY,CAC1B,MAAiD;IAEjD,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,oCAIC"} +\ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/model.d.ts b/internal/hardhat-network/stack-traces/model.d.ts index 8a895b3253f14c7fdea677415db8a3e853c11b13..5c2d7773c9da42ac972e9ace2e95c41662585b22 100644 --- a/internal/hardhat-network/stack-traces/model.d.ts @@ -2128,10 +2376,14 @@ index 9a8272264f21d996492dc1efdeddf2619211adc1..c572f64326e70d71e7efb9cecba0f007 +{"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/opcodes.ts"],"names":[],"mappings":";;;AAAA,4CAS8B;AAP5B,6FAAA,MAAM,OAAA;AACN,6FAAA,MAAM,OAAA;AACN,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,6FAAA,MAAM,OAAA;AACN,+FAAA,QAAQ,OAAA;AACR,qGAAA,cAAc,OAAA"} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/solidityTracer.js b/internal/hardhat-network/stack-traces/solidityTracer.js -index 08f4e6bf80b81fed910dccc3052b9c886fd0338e..6561e5d5e8d92b7ecec271a8fd41a9a6593dec06 100644 +index 08f4e6bf80b81fed910dccc3052b9c886fd0338e..0d6416f3fdedcec4f91a63321e935e91e982aa2d 100644 --- a/internal/hardhat-network/stack-traces/solidityTracer.js +++ b/internal/hardhat-network/stack-traces/solidityTracer.js -@@ -7,8 +7,6 @@ const exit_1 = require("../provider/vm/exit"); +@@ -3,12 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); + exports.SolidityTracer = void 0; + const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util"); + const return_data_1 = require("../provider/return-data"); +-const exit_1 = require("../provider/vm/exit"); const error_inferrer_1 = require("./error-inferrer"); const mapped_inlined_internal_functions_heuristics_1 = require("./mapped-inlined-internal-functions-heuristics"); const message_trace_1 = require("./message-trace"); @@ -2140,7 +2392,24 @@ index 08f4e6bf80b81fed910dccc3052b9c886fd0338e..6561e5d5e8d92b7ecec271a8fd41a9a6 const solidity_stack_trace_1 = require("./solidity-stack-trace"); class SolidityTracer { constructor() { -@@ -118,11 +116,11 @@ class SolidityTracer { +@@ -58,14 +55,14 @@ class SolidityTracer { + return [unrecognizedEntry, ...this.getStackTrace(subtrace)]; + } + } +- if (trace.exit.kind === exit_1.ExitCode.CODESIZE_EXCEEDS_MAXIMUM) { ++ if (trace.exit.kind === 6 /* ExitCode.CODESIZE_EXCEEDS_MAXIMUM */) { + return [ + { + type: solidity_stack_trace_1.StackTraceEntryType.CONTRACT_TOO_LARGE_ERROR, + }, + ]; + } +- const isInvalidOpcodeError = trace.exit.kind === exit_1.ExitCode.INVALID_OPCODE; ++ const isInvalidOpcodeError = trace.exit.kind === 4 /* ExitCode.INVALID_OPCODE */; + if ((0, message_trace_1.isCreateTrace)(trace)) { + return [ + { +@@ -118,11 +115,11 @@ class SolidityTracer { const nextStep = trace.steps[stepIndex + 1]; if ((0, message_trace_1.isEvmStep)(step)) { const inst = trace.bytecode.getInstruction(step.pc); @@ -2154,7 +2423,7 @@ index 08f4e6bf80b81fed910dccc3052b9c886fd0338e..6561e5d5e8d92b7ecec271a8fd41a9a6 stacktrace.push((0, error_inferrer_1.instructionToCallstackStackTraceEntry)(trace.bytecode, inst)); if (nextInst.location !== undefined) { jumpedIntoFunction = true; -@@ -130,7 +128,7 @@ class SolidityTracer { +@@ -130,7 +127,7 @@ class SolidityTracer { functionJumpdests.push(nextInst); } } @@ -2164,13 +2433,13 @@ index 08f4e6bf80b81fed910dccc3052b9c886fd0338e..6561e5d5e8d92b7ecec271a8fd41a9a6 functionJumpdests.pop(); } diff --git a/internal/hardhat-network/stack-traces/solidityTracer.js.map b/internal/hardhat-network/stack-traces/solidityTracer.js.map -index 8aa9ffe76723470f68ffd824d9cac39de6494962..f7d29ee500cd49317bba4b2c935643a175323a58 100644 +index 8aa9ffe76723470f68ffd824d9cac39de6494962..a13cd7177df2df7f7f3ae0abcdbd9db3b15c7985 100644 --- a/internal/hardhat-network/stack-traces/solidityTracer.js.map +++ b/internal/hardhat-network/stack-traces/solidityTracer.js.map @@ -1 +1 @@ -{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"} \ No newline at end of file -+{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"} ++{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/vm-trace-decoder.js b/internal/hardhat-network/stack-traces/vm-trace-decoder.js index 4d344963203e4ddb9e0ce4eddc2c08797847547b..0f78fe89d0d4028a04b3a5bae38d45f65e6ab939 100644 @@ -2205,6 +2474,214 @@ index 445c3d5dd155afa63e92ca1bc586e86b2edc2f1e..dc762aedbfaaa335080d1335d0afe771 \ No newline at end of file +{"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":"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"} \ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/vm-tracer.d.ts b/internal/hardhat-network/stack-traces/vm-tracer.d.ts +index b70c116300e0b3c2da6b458fc8126de65717eb8b..966c475a4c2b7a8ed3b0b19c6a17cfa8b1268841 100644 +--- a/internal/hardhat-network/stack-traces/vm-tracer.d.ts ++++ b/internal/hardhat-network/stack-traces/vm-tracer.d.ts +@@ -1,20 +1,3 @@ +-import type { ExecutionResult, TracingMessage, TracingStep } from "@nomicfoundation/edr"; +-import { MessageTrace } from "./message-trace"; +-/** +- * Consumes the incoming VM trace events, until an error occurs, to keep track +- * of the last top level message trace/error. +- */ +-export declare class VMTracer { +- tracingSteps: TracingStep[]; +- private _messageTraces; +- private _lastError; +- private _maxPrecompileNumber; +- constructor(); +- getLastTopLevelMessageTrace(): MessageTrace | undefined; +- getLastError(): Error | undefined; +- private _shouldKeepTracing; +- addBeforeMessage(message: TracingMessage): void; +- addStep(step: TracingStep): void; +- addAfterMessage(result: ExecutionResult): void; +-} ++import { VmTracer as VMTracer } from "@nomicfoundation/edr"; ++export { VMTracer }; + //# sourceMappingURL=vm-tracer.d.ts.map +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map b/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +index 6edf4416b271d98977bc4687ee8020ee337ffeda..381885f9c9ffda8559b7efbccb09bdbbf5d67c02 100644 +--- a/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map ++++ b/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAOL,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAOzB;;;GAGG;AACH,qBAAa,QAAQ;IACZ,YAAY,EAAE,WAAW,EAAE,CAAM;IAExC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,oBAAoB,CAAC;;IAOtB,2BAA2B,IAAI,YAAY,GAAG,SAAS;IAIvD,YAAY,IAAI,KAAK,GAAG,SAAS;IAIxC,OAAO,CAAC,kBAAkB;IAInB,gBAAgB,CAAC,OAAO,EAAE,cAAc;IA6FxC,OAAO,CAAC,IAAI,EAAE,WAAW;IAsBzB,eAAe,CAAC,MAAM,EAAE,eAAe;CAoC/C"} +\ No newline at end of file ++{"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,CAAC"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/vm-tracer.js b/internal/hardhat-network/stack-traces/vm-tracer.js +index 6fc3f0d1ec7ba96abe5374443630088cfb0e24a2..ccbcc0314c36ef1316f411a1cc5967308e3707f9 100644 +--- a/internal/hardhat-network/stack-traces/vm-tracer.js ++++ b/internal/hardhat-network/stack-traces/vm-tracer.js +@@ -1,154 +1,6 @@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.VMTracer = void 0; +-const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util"); +-const errors_1 = require("../../core/errors"); +-const exit_1 = require("../provider/vm/exit"); +-const message_trace_1 = require("./message-trace"); +-/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */ +-const DUMMY_RETURN_DATA = Buffer.from([]); +-const DUMMY_GAS_USED = 0n; +-/** +- * Consumes the incoming VM trace events, until an error occurs, to keep track +- * of the last top level message trace/error. +- */ +-class VMTracer { +- constructor() { +- this.tracingSteps = []; +- this._messageTraces = []; +- // TODO: temporarily hardcoded to remove the need of using ethereumjs' common and evm here +- this._maxPrecompileNumber = 10; +- } +- getLastTopLevelMessageTrace() { +- return this._messageTraces[0]; +- } +- getLastError() { +- return this._lastError; +- } +- _shouldKeepTracing() { +- return this._lastError === undefined; +- } +- addBeforeMessage(message) { +- if (!this._shouldKeepTracing()) { +- return; +- } +- try { +- let trace; +- if (message.depth === 0) { +- this._messageTraces = []; +- this.tracingSteps = []; +- } +- if (message.to === undefined) { +- const createTrace = { +- code: message.data, +- steps: [], +- value: message.value, +- exit: new exit_1.Exit(exit_1.ExitCode.SUCCESS), +- returnData: DUMMY_RETURN_DATA, +- numberOfSubtraces: 0, +- depth: message.depth, +- deployedContract: undefined, +- gasUsed: DUMMY_GAS_USED, +- }; +- trace = createTrace; +- } +- else { +- const toAsBigInt = (0, ethereumjs_util_1.bytesToBigInt)(message.to); +- if (toAsBigInt > 0 && toAsBigInt <= this._maxPrecompileNumber) { +- const precompileTrace = { +- precompile: Number(toAsBigInt), +- calldata: message.data, +- value: message.value, +- exit: new exit_1.Exit(exit_1.ExitCode.SUCCESS), +- returnData: DUMMY_RETURN_DATA, +- depth: message.depth, +- gasUsed: DUMMY_GAS_USED, +- }; +- trace = precompileTrace; +- } +- else { +- const codeAddress = message.codeAddress; +- // if we enter here, then `to` is not undefined, therefore +- // `codeAddress` and `code` should be defined +- (0, errors_1.assertHardhatInvariant)(codeAddress !== undefined, "codeAddress should be defined"); +- (0, errors_1.assertHardhatInvariant)(message.code !== undefined, "code should be defined"); +- const callTrace = { +- code: message.code, +- calldata: message.data, +- steps: [], +- value: message.value, +- exit: new exit_1.Exit(exit_1.ExitCode.SUCCESS), +- returnData: DUMMY_RETURN_DATA, +- address: message.to, +- numberOfSubtraces: 0, +- depth: message.depth, +- gasUsed: DUMMY_GAS_USED, +- codeAddress, +- }; +- trace = callTrace; +- } +- } +- if (this._messageTraces.length > 0) { +- const parentTrace = this._messageTraces[this._messageTraces.length - 1]; +- if ((0, message_trace_1.isPrecompileTrace)(parentTrace)) { +- throw new Error("This should not happen: message execution started while a precompile was executing"); +- } +- parentTrace.steps.push(trace); +- parentTrace.numberOfSubtraces += 1; +- } +- this._messageTraces.push(trace); +- } +- catch (error) { +- this._lastError = error; +- } +- } +- addStep(step) { +- if (!this._shouldKeepTracing()) { +- return; +- } +- this.tracingSteps.push(step); +- try { +- const trace = this._messageTraces[this._messageTraces.length - 1]; +- if ((0, message_trace_1.isPrecompileTrace)(trace)) { +- throw new Error("This should not happen: step event fired while a precompile was executing"); +- } +- trace.steps.push({ pc: Number(step.pc) }); +- } +- catch (error) { +- this._lastError = error; +- } +- } +- addAfterMessage(result) { +- if (!this._shouldKeepTracing()) { +- return; +- } +- try { +- const trace = this._messageTraces[this._messageTraces.length - 1]; +- trace.gasUsed = result.result.gasUsed; +- const executionResult = result.result; +- if ((0, message_trace_1.isSuccessResult)(executionResult)) { +- trace.exit = exit_1.Exit.fromEdrSuccessReason(executionResult.reason); +- trace.returnData = executionResult.output.returnValue; +- if ((0, message_trace_1.isCreateTrace)(trace)) { +- trace.deployedContract = executionResult.output.address; +- } +- } +- else if ((0, message_trace_1.isHaltResult)(executionResult)) { +- trace.exit = exit_1.Exit.fromEdrExceptionalHalt(executionResult.reason); +- trace.returnData = Buffer.from([]); +- } +- else { +- trace.exit = new exit_1.Exit(exit_1.ExitCode.REVERT); +- trace.returnData = executionResult.output; +- } +- if (this._messageTraces.length > 1) { +- this._messageTraces.pop(); +- } +- } +- catch (error) { +- this._lastError = error; +- } +- } +-} +-exports.VMTracer = VMTracer; ++const edr_1 = require("@nomicfoundation/edr"); ++Object.defineProperty(exports, "VMTracer", { enumerable: true, get: function () { return edr_1.VmTracer; } }); + //# sourceMappingURL=vm-tracer.js.map +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/vm-tracer.js.map b/internal/hardhat-network/stack-traces/vm-tracer.js.map +index 6db66753b80cd5e6774dc638827ec13bbd2c86d7..c127a15f66f899a2c97e9eb8efb92cd5b81963fc 100644 +--- a/internal/hardhat-network/stack-traces/vm-tracer.js.map ++++ b/internal/hardhat-network/stack-traces/vm-tracer.js.map +@@ -1 +1 @@ +-{"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":";;;AAAA,8CAA4D;AACnD,yFADY,cAAQ,OACZ"} +\ No newline at end of file diff --git a/src/internal/core/providers/construction.ts b/src/internal/core/providers/construction.ts index e7302ba37a7f33d46f91142831c1337b767e00cf..59ac2c3439379006407b66b5c22bf2007d92f750 100644 --- a/src/internal/core/providers/construction.ts @@ -2218,7 +2695,7 @@ index e7302ba37a7f33d46f91142831c1337b767e00cf..59ac2c3439379006407b66b5c22bf200 { enabled: hardhatNetConfig.loggingEnabled, diff --git a/src/internal/hardhat-network/provider/provider.ts b/src/internal/hardhat-network/provider/provider.ts -index 4f1197ec3e27c8e0584276629b6783add9687573..f29bb15bcd5f69cc9f2210876ea52aa8b4ec6bc5 100644 +index 4f1197ec3e27c8e0584276629b6783add9687573..647237545b1920df6bf24b55511b453338e345ff 100644 --- a/src/internal/hardhat-network/provider/provider.ts +++ b/src/internal/hardhat-network/provider/provider.ts @@ -120,6 +120,7 @@ interface HardhatNetworkProviderConfig { @@ -2227,7 +2704,7 @@ index 4f1197ec3e27c8e0584276629b6783add9687573..f29bb15bcd5f69cc9f2210876ea52aa8 enableTransientStorage: boolean; + enableRip7212: boolean; } - + export function getNodeConfig( @@ -256,6 +257,7 @@ export class EdrProviderWrapper }), @@ -2237,18 +2714,163 @@ index 4f1197ec3e27c8e0584276629b6783add9687573..f29bb15bcd5f69cc9f2210876ea52aa8 fork, hardfork: ethereumsjsHardforkToEdrSpecId(hardforkName), genesisAccounts: config.genesisAccounts.map((account) => { +@@ -367,6 +369,9 @@ export class EdrProviderWrapper + if (needsTraces) { + const rawTraces = responseObject.traces; + for (const rawTrace of rawTraces) { ++ this._vmTracer?.observe(rawTrace); ++ ++ // For other consumers in JS we need to marshall the entire trace over FFI + const trace = rawTrace.trace(); + + // beforeTx event +@@ -383,8 +388,6 @@ export class EdrProviderWrapper + edrTracingStepToMinimalInterpreterStep(traceItem) + ); + } +- +- this._vmTracer?.addStep(traceItem); + } + // afterMessage event + else if ("executionResult" in traceItem) { +@@ -394,8 +397,6 @@ export class EdrProviderWrapper + edrTracingMessageResultToMinimalEVMResult(traceItem) + ); + } +- +- this._vmTracer?.addAfterMessage(traceItem.executionResult); + } + // beforeMessage event + else { +@@ -405,8 +406,6 @@ export class EdrProviderWrapper + edrTracingMessageToMinimalMessage(traceItem) + ); + } +- +- this._vmTracer?.addBeforeMessage(traceItem); + } + } + +@@ -577,17 +576,7 @@ export class EdrProviderWrapper + rawTrace: RawTrace + ): Promise { + const vmTracer = new VMTracer(); +- +- const trace = rawTrace.trace(); +- for (const traceItem of trace) { +- if ("pc" in traceItem) { +- vmTracer.addStep(traceItem); +- } else if ("executionResult" in traceItem) { +- vmTracer.addAfterMessage(traceItem.executionResult); +- } else { +- vmTracer.addBeforeMessage(traceItem); +- } +- } ++ vmTracer.observe(rawTrace); + + let vmTrace = vmTracer.getLastTopLevelMessageTrace(); + const vmTracerError = vmTracer.getLastError(); diff --git a/src/internal/hardhat-network/provider/vm/exit.ts b/src/internal/hardhat-network/provider/vm/exit.ts -index 53e1b4545a5c57a1b3216240675ad5d9bd4353f8..c9fcc7cbea28ca0fcac3aa37c3a976df5acd3b16 100644 +index 53e1b4545a5c57a1b3216240675ad5d9bd4353f8..143a576bf94aff1e84cb15ce9c89e7955efb6b21 100644 --- a/src/internal/hardhat-network/provider/vm/exit.ts +++ b/src/internal/hardhat-network/provider/vm/exit.ts -@@ -24,6 +24,7 @@ export class Exit { - case SuccessReason.Stop: - case SuccessReason.Return: - case SuccessReason.SelfDestruct: -+ case SuccessReason.EofReturnContract: - return new Exit(ExitCode.SUCCESS); - } - +@@ -1,94 +1,2 @@ +-import type { ExceptionalHalt, SuccessReason } from "@nomicfoundation/edr"; +- +-import { requireNapiRsModule } from "../../../../common/napi-rs"; +- +-export enum ExitCode { +- SUCCESS, +- REVERT, +- OUT_OF_GAS, +- INTERNAL_ERROR, +- INVALID_OPCODE, +- STACK_UNDERFLOW, +- CODESIZE_EXCEEDS_MAXIMUM, +- CREATE_COLLISION, +- STATIC_STATE_CHANGE, +-} +- +-export class Exit { +- public static fromEdrSuccessReason(reason: SuccessReason): Exit { +- const { SuccessReason } = requireNapiRsModule( +- "@nomicfoundation/edr" +- ) as typeof import("@nomicfoundation/edr"); +- +- switch (reason) { +- case SuccessReason.Stop: +- case SuccessReason.Return: +- case SuccessReason.SelfDestruct: +- return new Exit(ExitCode.SUCCESS); +- } +- +- const _exhaustiveCheck: never = reason; +- } +- +- public static fromEdrExceptionalHalt(halt: ExceptionalHalt): Exit { +- const { ExceptionalHalt } = requireNapiRsModule( +- "@nomicfoundation/edr" +- ) as typeof import("@nomicfoundation/edr"); +- +- switch (halt) { +- case ExceptionalHalt.OutOfGas: +- return new Exit(ExitCode.OUT_OF_GAS); +- +- case ExceptionalHalt.OpcodeNotFound: +- case ExceptionalHalt.InvalidFEOpcode: +- // Returned when an opcode is not implemented for the hardfork +- case ExceptionalHalt.NotActivated: +- return new Exit(ExitCode.INVALID_OPCODE); +- +- case ExceptionalHalt.StackUnderflow: +- return new Exit(ExitCode.STACK_UNDERFLOW); +- +- case ExceptionalHalt.CreateCollision: +- return new Exit(ExitCode.CREATE_COLLISION); +- +- case ExceptionalHalt.CreateContractSizeLimit: +- return new Exit(ExitCode.CODESIZE_EXCEEDS_MAXIMUM); +- +- default: { +- // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error +- throw new Error(`Unmatched EDR exceptional halt: ${halt}`); +- } +- } +- } +- +- constructor(public kind: ExitCode) {} +- +- public isError(): boolean { +- return this.kind !== ExitCode.SUCCESS; +- } +- +- public getReason(): string { +- switch (this.kind) { +- case ExitCode.SUCCESS: +- return "Success"; +- case ExitCode.REVERT: +- return "Reverted"; +- case ExitCode.OUT_OF_GAS: +- return "Out of gas"; +- case ExitCode.INTERNAL_ERROR: +- return "Internal error"; +- case ExitCode.INVALID_OPCODE: +- return "Invalid opcode"; +- case ExitCode.STACK_UNDERFLOW: +- return "Stack underflow"; +- case ExitCode.CODESIZE_EXCEEDS_MAXIMUM: +- return "Codesize exceeds maximum"; +- case ExitCode.CREATE_COLLISION: +- return "Create collision"; +- case ExitCode.STATIC_STATE_CHANGE: +- return "Static state change"; +- } +- +- const _exhaustiveCheck: never = this.kind; +- } +-} ++import { ExitCode } from "@nomicfoundation/edr"; ++export { ExitCode }; diff --git a/src/internal/hardhat-network/stack-traces/compiler-to-model.ts b/src/internal/hardhat-network/stack-traces/compiler-to-model.ts index e801691fe54b61794278083d0b802cdd05bb98fb..63bbf517f1e62e1e1dfeba76b4df7aaa5293dbaa 100644 --- a/src/internal/hardhat-network/stack-traces/compiler-to-model.ts @@ -2976,7 +3598,7 @@ index 03c423f31895ca495059bba42b5568ea10cbaeb7..fb848f6396ca13128d445a532845adcc - ? chalk.bold(`(${JumpType[inst.jumpType]})`) + ? chalk.bold(`(${jumpTypeToString(inst.jumpType)})`) : ""; - + console.log( - `${margin} ${pc} ${Opcode[inst.opcode]} ${jump}`.padEnd(50), + `${margin} ${pc} ${opcodeToString(inst.opcode)} ${jump}`.padEnd(50), @@ -3003,7 +3625,7 @@ index e185841f421641b2fe9a7fa34aeaf7b0813723cb..95698cada44b39bf4f1c591b7a8ef6f5 +++ b/src/internal/hardhat-network/stack-traces/error-inferrer.ts @@ -641,9 +641,13 @@ export class ErrorInferrer { ); - + if (calledFunction !== undefined) { - const isValidCalldata = calledFunction.isValidCalldata( - trace.calldata.slice(4) @@ -3015,7 +3637,7 @@ index e185841f421641b2fe9a7fa34aeaf7b0813723cb..95698cada44b39bf4f1c591b7a8ef6f5 + calledFunction.paramTypes, + trace.calldata.slice(4) + ); - + if (!isValidCalldata) { return [ diff --git a/src/internal/hardhat-network/stack-traces/library-utils.ts b/src/internal/hardhat-network/stack-traces/library-utils.ts @@ -3030,7 +3652,7 @@ index 9f45bebdcde3092695f44efcd3e6b06222d344bb..8538a24e5a46ff577f9342fbe7fb3ef4 + linkHexStringBytecode, +} from "@nomicfoundation/edr"; import { Opcode } from "./opcodes"; - + -export function getLibraryAddressPositions( - bytecodeOutput: CompilerOutputBytecode -): number[] { @@ -3078,9 +3700,71 @@ index 9f45bebdcde3092695f44efcd3e6b06222d344bb..8538a24e5a46ff577f9342fbe7fb3ef4 - ); -} +export { getLibraryAddressPositions, linkHexStringBytecode }; - + export function zeroOutAddresses( code: Uint8Array, +diff --git a/src/internal/hardhat-network/stack-traces/message-trace.ts b/src/internal/hardhat-network/stack-traces/message-trace.ts +index ddfe86ce4d1ff90969db10bc6bd1f0f6667a5715..f4da68574666d43e9c0494e00db3f6415b23d086 100644 +--- a/src/internal/hardhat-network/stack-traces/message-trace.ts ++++ b/src/internal/hardhat-network/stack-traces/message-trace.ts +@@ -1,13 +1,17 @@ + import type { Bytecode } from "./model"; +-import type { Exit } from "../provider/vm/exit"; + import type { + CallOutput, + CreateOutput, + HaltResult, + RevertResult, + SuccessResult, ++ PrecompileMessageTrace, ++ CreateMessageTrace, ++ CallMessageTrace, + } from "@nomicfoundation/edr"; + ++export { PrecompileMessageTrace, CreateMessageTrace, CallMessageTrace }; ++ + export type MessageTrace = + | CreateMessageTrace + | CallMessageTrace +@@ -19,38 +23,6 @@ export type DecodedEvmMessageTrace = + | DecodedCreateMessageTrace + | DecodedCallMessageTrace; + +-export interface BaseMessageTrace { +- value: bigint; +- returnData: Uint8Array; +- exit: Exit; +- gasUsed: bigint; +- depth: number; +-} +- +-export interface PrecompileMessageTrace extends BaseMessageTrace { +- precompile: number; +- calldata: Uint8Array; +-} +- +-export interface BaseEvmMessageTrace extends BaseMessageTrace { +- code: Uint8Array; +- steps: MessageTraceStep[]; +- bytecode?: Bytecode; +- // The following is just an optimization: When processing this traces it's useful to know ahead of +- // time how many subtraces there are. +- numberOfSubtraces: number; +-} +- +-export interface CreateMessageTrace extends BaseEvmMessageTrace { +- deployedContract: Uint8Array | undefined; +-} +- +-export interface CallMessageTrace extends BaseEvmMessageTrace { +- calldata: Uint8Array; +- address: Uint8Array; +- codeAddress: Uint8Array; +-} +- + export interface DecodedCreateMessageTrace extends CreateMessageTrace { + bytecode: Bytecode; + } diff --git a/src/internal/hardhat-network/stack-traces/model.ts b/src/internal/hardhat-network/stack-traces/model.ts index 534ae112a663f90fce98e68efca01db3d391c96f..c8c58387f660815730ddfc5b49f0d3cc319620c5 100644 --- a/src/internal/hardhat-network/stack-traces/model.ts @@ -3886,6 +4570,221 @@ index e0602c17fb8c0c48b740d5e6bb8925cfaba67740..52a10924b4fdba9dea211c0ddeb1910e diff --git a/src/internal/hardhat-network/stack-traces/source-maps.ts b/src/internal/hardhat-network/stack-traces/source-maps.ts deleted file mode 100644 index 8ff03b3c7337cb0da035004844c850bf89745669..0000000000000000000000000000000000000000 +diff --git a/src/internal/hardhat-network/stack-traces/vm-tracer.ts b/src/internal/hardhat-network/stack-traces/vm-tracer.ts +index 520573ab34cbc0d421af7ddccd2ff90f46f345e9..6785ccae843cc9f04a5056ef3bd02a3955c386e7 100644 +--- a/src/internal/hardhat-network/stack-traces/vm-tracer.ts ++++ b/src/internal/hardhat-network/stack-traces/vm-tracer.ts +@@ -1,208 +1,2 @@ +-import type { +- CreateOutput, +- ExecutionResult, +- TracingMessage, +- TracingStep, +-} from "@nomicfoundation/edr"; +- +-import { bytesToBigInt } from "@nomicfoundation/ethereumjs-util"; +- +-import { assertHardhatInvariant } from "../../core/errors"; +-import { Exit, ExitCode } from "../provider/vm/exit"; +- +-import { +- CallMessageTrace, +- CreateMessageTrace, +- isCreateTrace, +- isHaltResult, +- isPrecompileTrace, +- isSuccessResult, +- MessageTrace, +- PrecompileMessageTrace, +-} from "./message-trace"; +- +-/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */ +- +-const DUMMY_RETURN_DATA = Buffer.from([]); +-const DUMMY_GAS_USED = 0n; +- +-/** +- * Consumes the incoming VM trace events, until an error occurs, to keep track +- * of the last top level message trace/error. +- */ +-export class VMTracer { +- public tracingSteps: TracingStep[] = []; +- +- private _messageTraces: MessageTrace[] = []; +- private _lastError: Error | undefined; +- private _maxPrecompileNumber; +- +- constructor() { +- // TODO: temporarily hardcoded to remove the need of using ethereumjs' common and evm here +- this._maxPrecompileNumber = 10; +- } +- +- public getLastTopLevelMessageTrace(): MessageTrace | undefined { +- return this._messageTraces[0]; +- } +- +- public getLastError(): Error | undefined { +- return this._lastError; +- } +- +- private _shouldKeepTracing() { +- return this._lastError === undefined; +- } +- +- public addBeforeMessage(message: TracingMessage) { +- if (!this._shouldKeepTracing()) { +- return; +- } +- +- try { +- let trace: MessageTrace; +- +- if (message.depth === 0) { +- this._messageTraces = []; +- this.tracingSteps = []; +- } +- +- if (message.to === undefined) { +- const createTrace: CreateMessageTrace = { +- code: message.data, +- steps: [], +- value: message.value, +- exit: new Exit(ExitCode.SUCCESS), +- returnData: DUMMY_RETURN_DATA, +- numberOfSubtraces: 0, +- depth: message.depth, +- deployedContract: undefined, +- gasUsed: DUMMY_GAS_USED, +- }; +- +- trace = createTrace; +- } else { +- const toAsBigInt = bytesToBigInt(message.to); +- +- if (toAsBigInt > 0 && toAsBigInt <= this._maxPrecompileNumber) { +- const precompileTrace: PrecompileMessageTrace = { +- precompile: Number(toAsBigInt), +- calldata: message.data, +- value: message.value, +- exit: new Exit(ExitCode.SUCCESS), +- returnData: DUMMY_RETURN_DATA, +- depth: message.depth, +- gasUsed: DUMMY_GAS_USED, +- }; +- +- trace = precompileTrace; +- } else { +- const codeAddress = message.codeAddress; +- +- // if we enter here, then `to` is not undefined, therefore +- // `codeAddress` and `code` should be defined +- assertHardhatInvariant( +- codeAddress !== undefined, +- "codeAddress should be defined" +- ); +- assertHardhatInvariant( +- message.code !== undefined, +- "code should be defined" +- ); +- +- const callTrace: CallMessageTrace = { +- code: message.code, +- calldata: message.data, +- steps: [], +- value: message.value, +- exit: new Exit(ExitCode.SUCCESS), +- returnData: DUMMY_RETURN_DATA, +- address: message.to, +- numberOfSubtraces: 0, +- depth: message.depth, +- gasUsed: DUMMY_GAS_USED, +- codeAddress, +- }; +- +- trace = callTrace; +- } +- } +- +- if (this._messageTraces.length > 0) { +- const parentTrace = this._messageTraces[this._messageTraces.length - 1]; +- +- if (isPrecompileTrace(parentTrace)) { +- throw new Error( +- "This should not happen: message execution started while a precompile was executing" +- ); +- } +- +- parentTrace.steps.push(trace); +- parentTrace.numberOfSubtraces += 1; +- } +- +- this._messageTraces.push(trace); +- } catch (error) { +- this._lastError = error as Error; +- } +- } +- +- public addStep(step: TracingStep) { +- if (!this._shouldKeepTracing()) { +- return; +- } +- +- this.tracingSteps.push(step); +- +- try { +- const trace = this._messageTraces[this._messageTraces.length - 1]; +- +- if (isPrecompileTrace(trace)) { +- throw new Error( +- "This should not happen: step event fired while a precompile was executing" +- ); +- } +- +- trace.steps.push({ pc: Number(step.pc) }); +- } catch (error) { +- this._lastError = error as Error; +- } +- } +- +- public addAfterMessage(result: ExecutionResult) { +- if (!this._shouldKeepTracing()) { +- return; +- } +- +- try { +- const trace = this._messageTraces[this._messageTraces.length - 1]; +- trace.gasUsed = result.result.gasUsed; +- +- const executionResult = result.result; +- if (isSuccessResult(executionResult)) { +- trace.exit = Exit.fromEdrSuccessReason(executionResult.reason); +- trace.returnData = executionResult.output.returnValue; +- +- if (isCreateTrace(trace)) { +- trace.deployedContract = ( +- executionResult.output as CreateOutput +- ).address; +- } +- } else if (isHaltResult(executionResult)) { +- trace.exit = Exit.fromEdrExceptionalHalt(executionResult.reason); +- +- trace.returnData = Buffer.from([]); +- } else { +- trace.exit = new Exit(ExitCode.REVERT); +- +- trace.returnData = executionResult.output; +- } +- +- if (this._messageTraces.length > 1) { +- this._messageTraces.pop(); +- } +- } catch (error) { +- this._lastError = error as Error; +- } +- } +-} ++import { VmTracer as VMTracer } from "@nomicfoundation/edr"; ++export { VMTracer }; diff --git a/src/types/config.ts b/src/types/config.ts index 3f53d4b3a181af665a91ff6d562edd090ad7a5e7..027a3a5f064654026921f939e6550f6ef1db173f 100644 --- a/src/types/config.ts @@ -3896,7 +4795,7 @@ index 3f53d4b3a181af665a91ff6d562edd090ad7a5e7..027a3a5f064654026921f939e6550f6e enableTransientStorage?: boolean; + enableRip7212?: boolean; } - + export type HardhatNetworkAccountsUserConfig = @@ -155,6 +156,7 @@ export interface HardhatNetworkConfig { chains: HardhatNetworkChainsConfig; @@ -3904,7 +4803,7 @@ index 3f53d4b3a181af665a91ff6d562edd090ad7a5e7..027a3a5f064654026921f939e6550f6e enableTransientStorage?: boolean; + enableRip7212?: boolean; } - + export type HardhatNetworkAccountsConfig = diff --git a/types/config.d.ts b/types/config.d.ts index 935aea29d60a4e7b3ff69a1f6b6ecc5ebabbd926..53f3ffb7dbdce8a90c2137a2b9960c1f9bd713b7 100644 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e9bf2cef9..23a83e1e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: patchedDependencies: hardhat@2.22.6: - hash: kpm5clguhc4skavtwsk2jhaefy + hash: q3nnrfsdmjujtkscve3dm62mmu path: patches/hardhat@2.22.6.patch importers: @@ -66,7 +66,7 @@ importers: version: 4.4.1 hardhat: specifier: 2.22.6 - version: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + version: 2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) lodash: specifier: ^4.17.11 version: 4.17.21 @@ -186,7 +186,7 @@ importers: version: 7.0.1 hardhat: specifier: 2.22.6 - version: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + version: 2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) mocha: specifier: ^10.0.0 version: 10.3.0 @@ -216,10 +216,10 @@ importers: devDependencies: '@defi-wonderland/smock': specifier: ^2.4.0 - version: 2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) + version: 2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) '@nomiclabs/hardhat-ethers': specifier: ^2.2.3 - version: 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) + version: 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) chai: specifier: ^4.3.6 version: 4.4.1 @@ -228,7 +228,7 @@ importers: version: 5.7.2 hardhat: specifier: 2.22.6 - version: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + version: 2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) mocha: specifier: ^10.0.0 version: 10.3.0 @@ -3082,16 +3082,16 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@defi-wonderland/smock@2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': + '@defi-wonderland/smock@2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 '@nomicfoundation/ethereumjs-util': 9.0.4 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) diff: 5.0.0 ethers: 5.7.2 - hardhat: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + hardhat: 2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) lodash.isequal: 4.5.0 lodash.isequalwith: 4.4.0 rxjs: 7.8.1 @@ -3602,10 +3602,10 @@ snapshots: '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 - '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': dependencies: ethers: 5.7.2 - hardhat: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + hardhat: 2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) '@scure/base@1.1.5': {} @@ -4872,7 +4872,7 @@ snapshots: hard-rejection@2.1.0: {} - hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4): + hardhat@2.22.6(patch_hash=q3nnrfsdmjujtkscve3dm62mmu)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1