@jshookmcp/jshook 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -4
- package/README.zh.md +19 -4
- package/dist/AntiCheatDetector-B-mz4DK_.mjs +1 -0
- package/dist/{BrowserSessionCoordinator-BJ-HOxo0.mjs → BrowserSessionCoordinator-Cdic8FsH.mjs} +1 -1
- package/dist/CodeAnalyzerDataFlow-a-NkwcaG.mjs +2 -0
- package/dist/CodeInjector-B099WO6x.mjs +1 -0
- package/dist/ConsoleMonitor-BZRqrBH-.mjs +306 -0
- package/dist/CpuEngine-BC8jayy9.mjs +1 -0
- package/dist/DartAotExecutor-B7WVTKsd.mjs +1 -0
- package/dist/DartAotLoader-BxdhW-K2.mjs +2 -0
- package/dist/DarwinAPI-DzojdfjF.mjs +1 -0
- package/dist/DetailedDataManager-Dgh402Gp.mjs +5 -0
- package/dist/ExecutionSandbox-QbWQmzuC.mjs +45 -0
- package/dist/ExtensionManager.tools-D3h818Xs.mjs +1 -0
- package/dist/FingerprintManager-D9Zlr6be.mjs +1 -0
- package/dist/HardwareBreakpoint-C_lJ22bj.mjs +1 -0
- package/dist/HeapAnalyzer-bJbLvzp6.mjs +1 -0
- package/dist/HookPatternScanner-yx4vJ9sd.mjs +1 -0
- package/dist/InstrumentationSession-Cv1wikLA.mjs +1 -0
- package/dist/IntegrityScanner-BB7sw-SA.mjs +1 -0
- package/dist/JScramblerDeobfuscator-NVR5VatT.mjs +1 -0
- package/dist/MCPServer.activation.ttl-C2wOCMLV.mjs +1 -0
- package/dist/MCPServer.search.helpers-DlassAew.mjs +2 -0
- package/dist/MCPServer.search.validation-DnifPCCv.mjs +1 -0
- package/dist/MemoryController-CCsGuGJS.mjs +2 -0
- package/dist/{MemoryScanSession-DG_F-PjE.mjs → MemoryScanSession-BZ2A9Ph1.mjs} +1 -1
- package/dist/MemoryScanner-DAxsq7Sx.mjs +1 -0
- package/dist/NativeMemoryManager.impl-BIJzXMqH.mjs +1 -0
- package/dist/{NativeMemoryManager.utils-BHy1P_jM.mjs → NativeMemoryManager.utils-CMoul2an.mjs} +1 -1
- package/dist/PEAnalyzer-CB_kaTis.mjs +1 -0
- package/dist/PackerDeobfuscator-BpwGjxDL.mjs +7 -0
- package/dist/PointerChainEngine-B6SYv6ZM.mjs +1 -0
- package/dist/ProcessRegistry-C5W1Tkn9.mjs +1 -0
- package/dist/{handlers-mPFiNPe8.mjs → QuickJSSandbox-CIde-jzG.mjs} +2 -5
- package/dist/{ResponseBuilder-BfWP-uaT.mjs → ResponseBuilder-BLicSCjn.mjs} +1 -1
- package/dist/ReverseEvidenceGraph-DJzk0GQz.mjs +2 -0
- package/dist/ServerRuntimeState-DGXNv8Ji.mjs +1 -0
- package/dist/Speedhack-MGoeq1ZS.mjs +1 -0
- package/dist/StructureAnalyzer-CCTWAXR3.mjs +2 -0
- package/dist/ToolHandlerMap-C40EmuLT.mjs +1 -0
- package/dist/{ToolProbe-C7ZU2x7M.mjs → ToolProbe-B02GC3ZY.mjs} +1 -1
- package/dist/ToolRegistry-CzqQxFqf.mjs +1 -0
- package/dist/ToolRouter.policy-Bgb3S8jc.mjs +4 -0
- package/dist/TraceRecorder-BfeCTQUj.mjs +407 -0
- package/dist/VMDeobfuscator-BHtkV850.mjs +1 -0
- package/dist/Win32API-G7QPyckq.mjs +1 -0
- package/dist/{Win32Debug-CYrIQBvr.mjs → Win32Debug-6yzmtv5b.mjs} +1 -1
- package/dist/allocation-track-CiI-CnaI.mjs +1 -0
- package/dist/analysis-CojUzwX-.mjs +27 -0
- package/dist/antidebug-CgU84TE1.mjs +1 -0
- package/dist/apk-DrPBsOq8.mjs +1 -0
- package/dist/artifactRetention-Bk6fW2uF.mjs +1 -0
- package/dist/artifacts-Bx9GLx4J.mjs +1 -0
- package/dist/ast-bridge-BlOrmVAv.mjs +1 -0
- package/dist/ast-utils-B9E5k_v1.mjs +1 -0
- package/dist/{betterSqlite3-Brtq-SIQ.mjs → betterSqlite3-Bdo_ifuJ.mjs} +1 -1
- package/dist/binary-instrument-DiE1BP0x.mjs +12 -0
- package/dist/boringssl-inspector-C6M3sOga.mjs +2 -0
- package/dist/browser-QDUu5ML9.mjs +29 -0
- package/dist/{handlers-yo_xYzT8.mjs → canvas-g5kmLdY-.mjs} +1098 -24
- package/dist/{capabilities-CyXuKUl1.mjs → capabilities-DwzyxL2w.mjs} +1 -1
- package/dist/cdp-session-Dy4OwMOP.mjs +1 -0
- package/dist/collector-Cld4i-E4.mjs +1 -0
- package/dist/config-5ODJ3Aj0.mjs +3 -0
- package/dist/constants-nvsLpSri.mjs +1 -0
- package/dist/coordination-C6y2gM9O.mjs +98 -0
- package/dist/coverage-and-block--cWjjEe5.mjs +1 -0
- package/dist/dart-inspector-D4IKxZ6u.mjs +0 -0
- package/dist/debugger-C2SpiXoO.mjs +1 -0
- package/dist/definitions-0mtilYzG.mjs +1 -0
- package/dist/definitions-9csunmeX.mjs +1 -0
- package/dist/definitions-B11MudW_.mjs +1 -0
- package/dist/definitions-BKpRDjcI.mjs +1 -0
- package/dist/definitions-BXE3H4re.mjs +1 -0
- package/dist/definitions-BlPHe5DX.mjs +1 -0
- package/dist/definitions-Bob4XMxI.mjs +27 -0
- package/dist/definitions-BpIQN2nm.mjs +1 -0
- package/dist/definitions-BvolWeSu.mjs +1 -0
- package/dist/definitions-C-6j3Ejl.mjs +1 -0
- package/dist/definitions-C-AdFfFu.mjs +1 -0
- package/dist/definitions-CArdw_9T.mjs +1 -0
- package/dist/definitions-CCvIcRrT.mjs +1 -0
- package/dist/definitions-CJPE5PIl.mjs +1 -0
- package/dist/definitions-CbqeW06u.mjs +1 -0
- package/dist/definitions-Cexmkypg.mjs +1 -0
- package/dist/definitions-D1dxl8qt.mjs +1 -0
- package/dist/definitions-D3uT-ZbU.mjs +1 -0
- package/dist/definitions-DtOY5iUc.mjs +1 -0
- package/dist/{definitions-DxFNRQNK2.mjs → definitions-DvrYdDCJ2.mjs} +1 -1
- package/dist/{definitions-Cenu6mxo.mjs → definitions-aeRd5DAR.mjs} +1 -1
- package/dist/definitions-ihxOqOC4.mjs +1 -0
- package/dist/deopt-trace-qnAcC931.mjs +17 -0
- package/dist/disasm-DoxSucGp.mjs +1 -0
- package/dist/dumpsys-parser-Du-5ruEe.mjs +2 -0
- package/dist/encoding-UMtwgy4M.mjs +2 -0
- package/dist/ensure-browser-core-BP70x0TB.mjs +285 -0
- package/dist/factory-BeND77hf.mjs +2 -0
- package/dist/graphql-CF7QKJME.mjs +68 -0
- package/dist/grpc-raw-Dp7ps2sv.mjs +1 -0
- package/dist/handlers--qCl9vNv.mjs +1 -0
- package/dist/handlers-BHIu1LqA.mjs +1 -0
- package/dist/{antidebug-7L3ygj_9.mjs → handlers-BQ4K8Jbr.mjs} +2 -2
- package/dist/handlers-BxQv-wtf.mjs +8 -0
- package/dist/handlers-ByYG27-5.mjs +1 -0
- package/dist/handlers-C0I9-BtX.mjs +5 -0
- package/dist/handlers-CL0Iokmw.mjs +1 -0
- package/dist/handlers-CNbhIdSK.mjs +4 -0
- package/dist/handlers-CnTTSJFs.mjs +109 -0
- package/dist/handlers-CoDx6akJ2.mjs +49 -0
- package/dist/{handlers-0yKLRIfo.mjs → handlers-DASJI0Pn.mjs} +1 -1
- package/dist/handlers-DRKMaA-_.mjs +74 -0
- package/dist/handlers-Dalu0olz.mjs +2 -0
- package/dist/handlers-KY0g31ny.mjs +9 -0
- package/dist/handlers-oGo60aVv.mjs +1 -0
- package/dist/handlers.impl-BTXLw6Qc.mjs +1 -0
- package/dist/heap-sampling-BqdiU-5j.mjs +1 -0
- package/dist/{hooks-D4XLfgtV.mjs → hooks-COK3t5rT.mjs} +52 -33
- package/dist/index.mjs +11 -11
- package/dist/logger-BGCcd-jJ.mjs +1 -0
- package/dist/macro-nUYUjKNZ.mjs +2 -0
- package/dist/maintenance-CfnE7ZKU.mjs +4 -0
- package/dist/manifest-7EOTUc0D.mjs +1 -0
- package/dist/manifest-B5ujuQmf.mjs +1 -0
- package/dist/manifest-BErXl3zn.mjs +1 -0
- package/dist/manifest-BKA-mD3J.mjs +1 -0
- package/dist/manifest-BUXj23bX.mjs +1 -0
- package/dist/manifest-BfXt9cau.mjs +1 -0
- package/dist/manifest-Bx-tpURK.mjs +1 -0
- package/dist/manifest-C0owVAdq.mjs +1 -0
- package/dist/manifest-C5XqYc9o.mjs +1 -0
- package/dist/manifest-CVKzLjsA.mjs +1 -0
- package/dist/manifest-CaeFjdhj.mjs +1 -0
- package/dist/manifest-CegBgip0.mjs +1 -0
- package/dist/manifest-CoJHqlgS.mjs +1 -0
- package/dist/manifest-D0dbtDqd.mjs +1 -0
- package/dist/manifest-D5Gr8ujd.mjs +12 -0
- package/dist/manifest-D82z-5og.mjs +1 -0
- package/dist/manifest-DA2afIwh.mjs +1 -0
- package/dist/manifest-DAbiFP5o.mjs +1 -0
- package/dist/manifest-DEY0s1O72.mjs +1 -0
- package/dist/manifest-DTOqNqiA.mjs +1 -0
- package/dist/manifest-DZ6ELNgX.mjs +1 -0
- package/dist/manifest-DjHkjddT.mjs +1 -0
- package/dist/manifest-DocA_itf2.mjs +1 -0
- package/dist/manifest-Dpnhvfq0.mjs +1 -0
- package/dist/manifest-DucPMG_a.mjs +1 -0
- package/dist/manifest-Dw5yYEac.mjs +1 -0
- package/dist/manifest-Ic_Cg66S.mjs +1 -0
- package/dist/manifest-JHaG6GMN.mjs +1 -0
- package/dist/manifest-QdkIzmYM.mjs +1 -0
- package/dist/manifest-YZqaCe25.mjs +1 -0
- package/dist/manifest-f0lUeXwq.mjs +1 -0
- package/dist/manifest-h-Ebisf8.mjs +1 -0
- package/dist/manifest-oOfTymBS.mjs +1 -0
- package/dist/manifest-qXqrO6KC.mjs +2 -0
- package/dist/mapsParser-DrJoeC0c.mjs +1 -0
- package/dist/modules-CC_ADmwi.mjs +333 -0
- package/dist/mojo-ipc-kVztXYw-.mjs +140 -0
- package/dist/native-D9ouskXO.mjs +961 -0
- package/dist/native-bridge-Dzd7hYoq.mjs +1 -0
- package/dist/network-C5Y-S87J.mjs +7 -0
- package/dist/one-gadget-CiWFE17F.mjs +1 -0
- package/dist/outputPaths-CHtELDyi.mjs +1 -0
- package/dist/parse-args-B6dwWc9k.mjs +1 -0
- package/dist/platform-BIXgJaM3.mjs +94 -0
- package/dist/process-aDIfLC0v.mjs +6 -0
- package/dist/proxy-DsHsQ1I4.mjs +2 -0
- package/dist/registry-7h8jJ9y9.mjs +1 -0
- package/dist/{registry-DH4sc1dt.mjs → registry-DJDnkQW2.mjs} +1 -1
- package/dist/response-R8ghbZSb.mjs +1 -0
- package/dist/retry-policy-DtYv0kDi.mjs +1 -0
- package/dist/reverseEngineeringConfig-BhZLOa3C.mjs +1 -0
- package/dist/safeOutput-Dt4mfjXA.mjs +1 -0
- package/dist/search-defaults-BBRJNAzC.mjs +1 -0
- package/dist/server/plugin-api.mjs +1 -1
- package/dist/server/search/EmbeddingWorker.d.mts +1 -0
- package/dist/server/search/EmbeddingWorker.mjs +1 -0
- package/dist/shared-BKtWZDGN.mjs +1 -0
- package/dist/sourcemap-2VIeVeKw.mjs +3 -0
- package/dist/streaming-DkpE3GGU.mjs +15 -0
- package/dist/syscall-DGZoYM_U.mjs +1 -0
- package/dist/transform-BJqsBC_-.mjs +105 -0
- package/dist/turbofan-graph-CbGHNVtl.mjs +1 -0
- package/dist/turbofan-inspect--NdCuYXi.mjs +23 -0
- package/dist/types-CWSvzmIh.mjs +1 -0
- package/dist/v8-inspector-CTJo08-K.mjs +297 -0
- package/dist/wasm-DX4Qm2Vs.mjs +235 -0
- package/dist/weakrefs-inspect-CnhaF-rN.mjs +57 -0
- package/dist/webgpu-D4-DxbxZ.mjs +6 -0
- package/dist/workflow-DHktRNF2.mjs +108 -0
- package/package.json +33 -27
- package/dist/AntiCheatDetector-B6d4Qe9D.mjs +0 -1
- package/dist/CodeInjector-Cll_7bLJ.mjs +0 -1
- package/dist/ConsoleMonitor-CxDJV15E.mjs +0 -306
- package/dist/DOMInspector-C19J4zeq.mjs +0 -95
- package/dist/DarwinAPI-ZfQdpLNI.mjs +0 -1
- package/dist/DetailedDataManager-DmQ1LT-W.mjs +0 -1
- package/dist/ExtensionManager-BD724zkO.mjs +0 -1
- package/dist/ExtensionManager.tools-oVMJgPcN.mjs +0 -1
- package/dist/FingerprintManager-DT0EAUEo.mjs +0 -1
- package/dist/HardwareBreakpoint-BUfPdp0f.mjs +0 -1
- package/dist/HeapAnalyzer-B_aqY8oj.mjs +0 -1
- package/dist/InstrumentationSession-D_G1ZPyd.mjs +0 -1
- package/dist/MCPServer.search.handlers.domain-BbS-6LnX.mjs +0 -1
- package/dist/MemoryController-X1XNSn1n.mjs +0 -2
- package/dist/MemoryScanner-g1_L1ub5.mjs +0 -1
- package/dist/NativeMemoryManager.impl-DniBe2wf.mjs +0 -1
- package/dist/NetworkMonitor-B_-au6aV.mjs +0 -185
- package/dist/PEAnalyzer-yWQaGrcx.mjs +0 -1
- package/dist/PageController-Dfsm1_o7.mjs +0 -1
- package/dist/PointerChainEngine-BhCUkmxY.mjs +0 -1
- package/dist/PrerequisiteError-BjCQA-gK.mjs +0 -1
- package/dist/ProcessRegistry-C-bN48oR.mjs +0 -1
- package/dist/ReverseEvidenceGraph-BhSYYdiI.mjs +0 -2
- package/dist/ScriptManager-LWGPTdvD.mjs +0 -7
- package/dist/ServerRuntimeState-D2bWHqEE.mjs +0 -1
- package/dist/Speedhack-yseDPSZ9.mjs +0 -1
- package/dist/StructureAnalyzer-C5lpuZkg.mjs +0 -2
- package/dist/ToolCatalog-CYdD9F5f.mjs +0 -1
- package/dist/ToolRegistry-C5oB8KP8.mjs +0 -1
- package/dist/ToolRouter.policy-CfhJczkt.mjs +0 -4
- package/dist/TraceRecorder-BiJWBXHX.mjs +0 -272
- package/dist/VersionDetector-CHT36Az0.mjs +0 -9
- package/dist/Win32API-eUCF57l_.mjs +0 -1
- package/dist/WorkflowEngine-D876meOO.mjs +0 -1
- package/dist/analysis-D4swdMvq.mjs +0 -6
- package/dist/apk-packer-BqXcInnX.mjs +0 -1
- package/dist/artifactRetention-BCPQASm7.mjs +0 -1
- package/dist/artifacts-CkodUM4j.mjs +0 -1
- package/dist/binary-instrument-DU7V6TUM.mjs +0 -7
- package/dist/binary-secrets-PdMVoyt0.mjs +0 -1
- package/dist/boringssl-inspector-BBaJwwkU.mjs +0 -2
- package/dist/browser-Qqco2rOT.mjs +0 -11
- package/dist/collector-Bpl6qy2L.mjs +0 -1
- package/dist/constants-BYj8Xek8.mjs +0 -1
- package/dist/coordination-CWXW1o8K.mjs +0 -1
- package/dist/dart-inspector-7AkPeZ_Q.mjs +0 -0
- package/dist/debugger-DyALjYMk.mjs +0 -1
- package/dist/definitions-BWxBke3r.mjs +0 -1
- package/dist/definitions-BYwATKc-.mjs +0 -1
- package/dist/definitions-B_83XfNQ.mjs +0 -1
- package/dist/definitions-Bf3H1EwV.mjs +0 -1
- package/dist/definitions-BftdXgXI.mjs +0 -1
- package/dist/definitions-Bio5XJYy.mjs +0 -1
- package/dist/definitions-C3qNgSn1.mjs +0 -1
- package/dist/definitions-CB6vmOer.mjs +0 -1
- package/dist/definitions-CMZRSy3k.mjs +0 -1
- package/dist/definitions-CQd7yCQH.mjs +0 -1
- package/dist/definitions-CT8ln6GQ.mjs +0 -1
- package/dist/definitions-D4g-MS10.mjs +0 -1
- package/dist/definitions-D5wl_8HN.mjs +0 -1
- package/dist/definitions-DAQm1Xar.mjs +0 -1
- package/dist/definitions-DP1vgxEY.mjs +0 -1
- package/dist/definitions-Ibci7e_L.mjs +0 -1
- package/dist/definitions-OeLvmlQy.mjs +0 -1
- package/dist/definitions-RZYGD_Ey.mjs +0 -1
- package/dist/definitions-Tls8c0A0.mjs +0 -1
- package/dist/definitions-bybDvnG0.mjs +0 -26
- package/dist/definitions-l7TjdE6V.mjs +0 -1
- package/dist/encoding-ycOaz8Vr.mjs +0 -2
- package/dist/ensure-browser-core-DxWC-NTp.mjs +0 -1
- package/dist/factory-CKr4fAE1.mjs +0 -1
- package/dist/flat-target-session-DvcQX7J5.mjs +0 -1
- package/dist/graphql-B2TiPEow.mjs +0 -62
- package/dist/handlers-8zN_vBIz.mjs +0 -1
- package/dist/handlers-B62K4FTc.mjs +0 -1
- package/dist/handlers-BpDlVVVU.mjs +0 -1
- package/dist/handlers-CMJK7m1c.mjs +0 -31
- package/dist/handlers-D2ZOul9p.mjs +0 -54
- package/dist/handlers-D5E40ssn.mjs +0 -5
- package/dist/handlers-DGbdQAgD.mjs +0 -4
- package/dist/handlers-DHO3rjsW.mjs +0 -1
- package/dist/handlers-FJ80VzUI.mjs +0 -2
- package/dist/handlers-VHWrxbM_.mjs +0 -1
- package/dist/handlers-l8QIKqBj.mjs +0 -2
- package/dist/handlers.impl-D9Hh8Bgl.mjs +0 -1
- package/dist/jadx-search-B_Yse0Zh.mjs +0 -5
- package/dist/logger-sBC6IdRT.mjs +0 -1
- package/dist/maintenance-BUpIukhg.mjs +0 -1
- package/dist/manifest-0Jpt_AQa.mjs +0 -1
- package/dist/manifest-B3fZbSWR.mjs +0 -1
- package/dist/manifest-B7NB2rh2.mjs +0 -1
- package/dist/manifest-BDi4nbH1.mjs +0 -1
- package/dist/manifest-BLDfkE7n.mjs +0 -1
- package/dist/manifest-BcXbB4gf.mjs +0 -1
- package/dist/manifest-Bdnc_vrc.mjs +0 -1
- package/dist/manifest-BuYKgCnp.mjs +0 -1
- package/dist/manifest-CBfNnGPV.mjs +0 -1
- package/dist/manifest-CPS1Xv69.mjs +0 -1
- package/dist/manifest-CQH9FhwI.mjs +0 -1
- package/dist/manifest-CRryuZF4.mjs +0 -1
- package/dist/manifest-CctIumog.mjs +0 -1
- package/dist/manifest-CvTe5ZGV2.mjs +0 -1
- package/dist/manifest-D-5GH0DV.mjs +0 -1
- package/dist/manifest-D3Ssf3IC.mjs +0 -1
- package/dist/manifest-D5ck3NvC.mjs +0 -1
- package/dist/manifest-D9jUUJAu.mjs +0 -1
- package/dist/manifest-DCx6w2XV.mjs +0 -1
- package/dist/manifest-DG19q-Ld.mjs +0 -1
- package/dist/manifest-DLMlD0Zc.mjs +0 -1
- package/dist/manifest-DYpn8w_h.mjs +0 -1
- package/dist/manifest-DYzWI8Xs.mjs +0 -1
- package/dist/manifest-D_obs5F4.mjs +0 -1
- package/dist/manifest-DujQqEQR.mjs +0 -2
- package/dist/manifest-DwL2ik8P.mjs +0 -1
- package/dist/manifest-ItF5P8A12.mjs +0 -1
- package/dist/manifest-KZphqIyX.mjs +0 -1
- package/dist/manifest-LG42zPLY2.mjs +0 -1
- package/dist/manifest-LLdI5m4T.mjs +0 -1
- package/dist/manifest-QYbQXJn0.mjs +0 -1
- package/dist/manifest-RcpX_MyZ.mjs +0 -123
- package/dist/manifest-YgVd8Sgz.mjs +0 -1
- package/dist/manifest-Zy7Odg5J.mjs +0 -1
- package/dist/manifest-ff1H7Pdp.mjs +0 -1
- package/dist/manifest-iuhF6pTL2.mjs +0 -1
- package/dist/manifest-nXHmtMSp2.mjs +0 -1
- package/dist/manifest-xWfu6iLo.mjs +0 -1
- package/dist/manifest-yC16OhL2.mjs +0 -1
- package/dist/manifest-ztWJoXy4.mjs +0 -1
- package/dist/matchesWildcardPattern-BAG6LvX5.mjs +0 -1
- package/dist/modules-BPBcSaM-.mjs +0 -333
- package/dist/mojo-ipc-BhwsdVUW.mjs +0 -9
- package/dist/native-j8l473zn.mjs +0 -961
- package/dist/network-T0VRwNPd.mjs +0 -7
- package/dist/outputPaths-B4Ic4RZh.mjs +0 -2
- package/dist/parse-args-Bw413PlW.mjs +0 -1
- package/dist/platform-CzaQtISh.mjs +0 -93
- package/dist/playwright-cdp-fallback-DqFdx9-s.mjs +0 -1
- package/dist/process-CWhsCWrf.mjs +0 -2
- package/dist/proxy-DZFlDsG3.mjs +0 -2
- package/dist/renderer-pid-9tJnZ_9N.mjs +0 -1
- package/dist/response-C7rKQst4.mjs +0 -1
- package/dist/search-defaults-lYBVn_3L.mjs +0 -1
- package/dist/shared-state-board-BSjXLUV1.mjs +0 -1
- package/dist/sourcemap-Dh3Ai_ur.mjs +0 -1
- package/dist/streaming-BcJ0B6ao.mjs +0 -1
- package/dist/transform-DOxzeWPB.mjs +0 -103
- package/dist/types-D9EiE5o9.mjs +0 -1
- package/dist/wasm-CZ_HTfKR.mjs +0 -174
- package/dist/webcrack-C1iYG_EX.mjs +0 -46
- package/dist/workflow-BdwQmARn.mjs +0 -101
- /package/dist/{CacheAdapters-CsNtQIR8.mjs → CacheAdapters-BlDrQg8f.mjs} +0 -0
- /package/dist/{EventBus-DL8iLA09.mjs → EventBus-Cm-t-B65.mjs} +0 -0
- /package/dist/{EvidenceGraphBridge-BtbwXsLC.mjs → EvidenceGraphBridge-DBDc0wUA.mjs} +0 -0
- /package/dist/{HookGeneratorBuilders.core.generators.storage-DzD6dIJd.mjs → HookGeneratorBuilders.core.generators.storage-CWaWpOHa.mjs} +0 -0
- /package/dist/{RingBuffer-Dm54ELKT.mjs → RingBuffer-B6RTHmij.mjs} +0 -0
- /package/dist/{StealthVerifier-BmcxfwSF.mjs → StealthVerifier-DMBrtkhN.mjs} +0 -0
- /package/dist/{ToolError-DWU_z7gp.mjs → ToolError-g3rjWzhx.mjs} +0 -0
- /package/dist/{authorization-schema-BOFwSXUN.mjs → authorization-schema-Jtikc5Yt.mjs} +0 -0
- /package/dist/{bind-helpers-m2U8glkF.mjs → bind-helpers-D0mGAOof.mjs} +0 -0
- /package/dist/{concurrency-DCr8WQ2M.mjs → concurrency-Dehnw4JC.mjs} +0 -0
- /package/dist/{evidence-graph-bridge-CV_UdYqj.mjs → evidence-graph-bridge-eT9icP6a.mjs} +0 -0
- /package/dist/{formatAddress-vLA_hOJt.mjs → formatAddress-DAcw4Ckg.mjs} +0 -0
- /package/dist/{chunk-C_pMuVsO.mjs → rolldown-runtime-88NL7fhV.mjs} +0 -0
- /package/dist/{ssrf-policy-CsIJGkpd.mjs → ssrf-policy-B72vdy23.mjs} +0 -0
- /package/dist/{tool-builder-qif8M9-K.mjs → tool-builder-CpLh-UQd.mjs} +0 -0
- /package/dist/{types-Fz69RzbZ.mjs → types-BzPBzmVB.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=[127,69,76,70],t=1025,n=1026;var r=class{is64Bit;isLittleEndian;type;machine;entry;bytes;view;phoff;phentsize;phnum;shoff;shentsize;shnum;constructor(t){if(t.length<64||t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||t[3]!==e[3])throw Error(`Not an ELF file (bad magic)`);if(this.bytes=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.is64Bit=t[4]===2,this.isLittleEndian=t[5]===1,!this.is64Bit)throw Error(`Only ELF64 is supported`);let n=this.isLittleEndian;this.type=this.view.getUint16(16,n),this.machine=this.view.getUint16(18,n),this.entry=Number(this.view.getBigUint64(24,n)),this.phoff=Number(this.view.getBigUint64(32,n)),this.phentsize=this.view.getUint16(54,n),this.phnum=this.view.getUint16(56,n),this.shoff=Number(this.view.getBigUint64(40,n)),this.shentsize=this.view.getUint16(58,n),this.shnum=this.view.getUint16(60,n)}loadableSegments(){let e=this.isLittleEndian,t=[];for(let n=0;n<this.phnum;n++){let r=this.phoff+n*this.phentsize;if(this.view.getUint32(r+0,e)!==1)continue;let i=this.view.getUint32(r+4,e),a=Number(this.view.getBigUint64(r+8,e)),o=Number(this.view.getBigUint64(r+16,e)),s=Number(this.view.getBigUint64(r+32,e)),c=Number(this.view.getBigUint64(r+40,e)),l=new Uint8Array(c);l.set(this.bytes.subarray(a,a+s),0),t.push({vaddr:o,fileSize:s,memSize:c,readable:(i&4)!=0,writable:(i&2)!=0,executable:(i&1)!=0,data:l})}return t}exportedSymbols(){let e=new Map,t=this.isLittleEndian,n=-1;for(let e=0;e<this.shnum;e++){let r=this.shoff+e*this.shentsize;if(this.view.getUint32(r+4,t)===11){n=r;break}}if(n<0)return this.exportedSymbolsFromDynamic();let r=Number(this.view.getBigUint64(n+24,t)),i=Number(this.view.getBigUint64(n+32,t)),a=this.view.getUint32(n+40,t),o=this.shoff+a*this.shentsize,s=Number(this.view.getBigUint64(o+24,t)),c=Number(this.view.getBigUint64(o+32,t)),l=Math.floor(i/24);for(let n=1;n<l;n++){let i=r+n*24,a=this.view.getUint32(i+0,t),o=Number(this.view.getBigUint64(i+8,t)),l=this.view.getUint16(i+6,t),u=this.readCString(s,c,a);u&&l!==0&&e.set(u,o)}return e}exportedSymbolsFromDynamic(){let e=new Map,t=this.dynamicInfo();if(!t||t.symtab===0||t.strtab===0)return e;let n=this.isLittleEndian,r=this.vaddrToOffset(t.symtab),i=this.vaddrToOffset(t.strtab);if(r<0||i<0)return e;let a=i>r?i:this.bytes.length,o=Math.floor((a-r)/24);for(let a=1;a<o;a++){let o=r+a*24;if(o+24>this.bytes.length)break;let s=this.view.getUint32(o+0,n),c=this.view.getUint16(o+6,n),l=Number(this.view.getBigUint64(o+8,n)),u=this.readCString(i,t.strsz||this.bytes.length-i,s);u&&c!==0&&e.set(u,l)}return e}relocations(){let e=this.dynamicInfo();if(!e)return[];let t=this.isLittleEndian,n=[],r=e.symtab?this.vaddrToOffset(e.symtab):-1,i=e.strtab?this.vaddrToOffset(e.strtab):-1,a=(a,o)=>{if(a===0||o===0)return;let s=this.vaddrToOffset(a);if(s<0)return;let c=Math.floor(o/24);for(let a=0;a<c;a++){let o=s+a*24;if(o+24>this.bytes.length)break;let c=Number(this.view.getBigUint64(o+0,t)),l=this.view.getBigUint64(o+8,t),u=Number(BigInt.asIntN(64,this.view.getBigUint64(o+16,t))),d=Number(l&4294967295n),f=Number(l>>32n),p=``,m=0;if(f>0&&r>=0){let n=r+f*24;if(n+24<=this.bytes.length){let r=this.view.getUint32(n+0,t);m=Number(this.view.getBigUint64(n+8,t)),i>=0&&(p=this.readCString(i,e.strsz||this.bytes.length-i,r))}}n.push({offset:c,type:d,addend:u,symbolName:p,symbolValue:m})}};return a(e.rela,e.relasz),a(e.jmprel,e.pltrelsz),n}initializers(){let e=this.dynamicInfo();if(!e)return{init:0,arraySlots:[]};let t=[],n=Math.floor(e.initArraySz/8);for(let r=0;r<n;r++)t.push(e.initArray+r*8);return{init:e.init,arraySlots:t}}dynamicInfo(){let e=this.isLittleEndian,t=-1,n=0;for(let r=0;r<this.phnum;r++){let i=this.phoff+r*this.phentsize;if(this.view.getUint32(i+0,e)===2){t=Number(this.view.getBigUint64(i+8,e)),n=Number(this.view.getBigUint64(i+32,e));break}}if(t<0)return null;let r={symtab:0,strtab:0,strsz:0,rela:0,relasz:0,jmprel:0,pltrelsz:0,init:0,initArray:0,initArraySz:0},i=Math.floor(n/16);for(let n=0;n<i;n++){let i=t+n*16,a=Number(BigInt.asIntN(64,this.view.getBigUint64(i+0,e))),o=Number(this.view.getBigUint64(i+8,e));if(a===0)break;switch(a){case 6:r.symtab=o;break;case 5:r.strtab=o;break;case 10:r.strsz=o;break;case 7:r.rela=o;break;case 8:r.relasz=o;break;case 23:r.jmprel=o;break;case 2:r.pltrelsz=o;break;case 12:r.init=o;break;case 25:r.initArray=o;break;case 27:r.initArraySz=o;break;default:break}}return r}vaddrToOffset(e){let t=this.isLittleEndian;for(let n=0;n<this.phnum;n++){let r=this.phoff+n*this.phentsize;if(this.view.getUint32(r+0,t)!==1)continue;let i=Number(this.view.getBigUint64(r+8,t)),a=Number(this.view.getBigUint64(r+16,t)),o=Number(this.view.getBigUint64(r+32,t));if(e>=a&&e<a+o)return i+(e-a)}return-1}readCString(e,t,n){if(n<=0||n>=t)return``;let r=e+n,i=e+t;for(;r<i&&this.bytes[r]!==0;)r++;return new TextDecoder().decode(this.bytes.subarray(e+n,r))}};const i=Uint8Array.from([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),a=Uint8Array.from([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]);function o(e,t){let n=0,r=e,i=t;for(let e=0;e<8;e++){i&1&&(n^=r);let e=r&128;r=r<<1&255,e&&(r^=27),i>>=1}return n&255}function s(e){let t=e.slice();for(let n=0;n<4;n++)for(let r=0;r<4;r++)e[r*4+n]=t[(r+n)%4*4+n]??0}function c(e){let t=e.slice();for(let n=0;n<4;n++)for(let r=0;r<4;r++)e[r*4+n]=t[((r-n)%4+4)%4*4+n]??0}function l(e,t){for(let n=0;n<16;n++)e[n]=t[e[n]??0]??0}function u(e){for(let t=0;t<4;t++){let n=e[t*4]??0,r=e[t*4+1]??0,i=e[t*4+2]??0,a=e[t*4+3]??0;e[t*4]=o(n,2)^o(r,3)^i^a,e[t*4+1]=n^o(r,2)^o(i,3)^a,e[t*4+2]=n^r^o(i,2)^o(a,3),e[t*4+3]=o(n,3)^r^i^o(a,2)}}function d(e){for(let t=0;t<4;t++){let n=e[t*4]??0,r=e[t*4+1]??0,i=e[t*4+2]??0,a=e[t*4+3]??0;e[t*4]=o(n,14)^o(r,11)^o(i,13)^o(a,9),e[t*4+1]=o(n,9)^o(r,14)^o(i,11)^o(a,13),e[t*4+2]=o(n,13)^o(r,9)^o(i,14)^o(a,11),e[t*4+3]=o(n,11)^o(r,13)^o(i,9)^o(a,14)}}function f(e,t){let n=Uint8Array.from(e);for(let e=0;e<16;e++)n[e]=(n[e]??0)^(t[e]??0);return s(n),l(n,i),n}function p(e,t){let n=Uint8Array.from(e);for(let e=0;e<16;e++)n[e]=(n[e]??0)^(t[e]??0);return c(n),l(n,a),n}function m(e){let t=Uint8Array.from(e);return u(t),t}function h(e){let t=Uint8Array.from(e);return d(t),t}const g=e=>e>>>0,_=(e,t)=>g(e>>>t|e<<32-t),v=(...e)=>e.reduce((e,t)=>g(e+t),0),ee=e=>_(e,2)^_(e,13)^_(e,22),te=e=>_(e,6)^_(e,11)^_(e,25),ne=e=>_(e,7)^_(e,18)^e>>>3,re=e=>_(e,17)^_(e,19)^e>>>10,ie=(e,t,n)=>e&t^~e&n,ae=(e,t,n)=>e&t^e&n^t&n;function y(e){let t=new DataView(e.buffer,e.byteOffset,16);return[t.getUint32(0,!0),t.getUint32(4,!0),t.getUint32(8,!0),t.getUint32(12,!0)]}function b(e,t,n,r){let i=new Uint8Array(16),a=new DataView(i.buffer);return a.setUint32(0,g(e),!0),a.setUint32(4,g(t),!0),a.setUint32(8,g(n),!0),a.setUint32(12,g(r),!0),i}function oe(e,t,n){let[r,i,a,o]=e,[s,c,l,u]=t;for(let e=0;e<4;e++){let t=v(u,te(s),ie(s,c,l),n[e]??0),d=v(ee(r),ae(r,i,a));u=l,l=c,c=s,s=v(o,t),o=a,a=i,i=r,r=v(t,d)}return{abcd:[r,i,a,o],efgh:[s,c,l,u]}}function se(e,t,n){let r=oe(y(e),y(t),y(n));return b(r.abcd[0],r.abcd[1],r.abcd[2],r.abcd[3])}function ce(e,t,n){let r=oe(y(t),y(e),y(n));return b(r.efgh[0],r.efgh[1],r.efgh[2],r.efgh[3])}function le(e,t){let[n,r,i,a]=y(e),o=y(t)[0];return b(v(n,ne(r)),v(r,ne(i)),v(i,ne(a)),v(a,ne(o)))}function ue(e,t,n){let r=y(e),i=y(t),a=y(n),o=v(r[0],i[1],re(a[2])),s=v(r[1],i[2],re(a[3]));return b(o,s,v(r[2],i[3],re(o)),v(r[3],a[0],re(s)))}const x=(e,t)=>g(e<<t|e>>>32-t),de=(e,t,n)=>e&t|~e&n,fe=(e,t,n)=>e^t^n,pe=(e,t,n)=>e&t|e&n|t&n;function me(e){return x(g(e),30)}function he(e,t,n,r){let i=r===`choose`?de:r===`majority`?pe:fe,[a,o,s,c]=y(e),l=g(t),u=y(n);for(let e=0;e<4;e++){let t=v(x(a,5),i(o,s,c),l,u[e]??0);l=c,c=s,s=x(o,30),o=a,a=t}return{abcd:b(a,o,s,c),e:l}}function ge(e,t,n){let r=y(e),i=y(t),a=y(n);return b(r[0]^r[2]^a[0],r[1]^r[3]^a[1],r[2]^i[0]^a[2],r[3]^i[1]^a[3])}function _e(e,t){let n=y(e),r=y(t),i=x(n[0]^r[1],1);return b(i,x(n[1]^r[2],1),x(n[2]^r[3],1),x(n[3]^i,1))}function ve(e,t){let n=0n,r=e&18446744073709551615n,i=t&18446744073709551615n;for(;i!==0n;)i&1n&&(n^=r),r<<=1n,i>>=1n;return n&(1n<<128n)-1n}function ye(e,t){return new DataView(e.buffer,e.byteOffset,16).getBigUint64(t*8,!0)}function be(e){let t=new Uint8Array(16),n=new DataView(t.buffer);return n.setBigUint64(0,e&18446744073709551615n,!0),n.setBigUint64(8,e>>64n&18446744073709551615n,!0),t}function xe(e,t){return be(ve(ye(e,0),ye(t,0)))}function Se(e,t){return be(ve(ye(e,1),ye(t,1)))}const Ce=Uint8Array.from([214,144,233,254,204,225,61,183,22,182,20,194,40,251,44,5,43,103,154,118,42,190,4,195,170,68,19,38,73,134,6,153,156,66,80,244,145,239,152,122,51,84,11,67,237,207,172,98,228,179,28,169,201,8,232,149,128,223,148,250,117,143,63,166,71,7,167,252,243,115,23,186,131,89,60,25,230,133,79,168,104,107,129,178,113,100,218,139,248,235,15,75,112,86,157,53,30,36,14,94,99,88,209,162,37,34,124,59,1,33,120,135,212,0,70,87,159,211,39,82,76,54,2,231,160,196,200,158,234,191,138,210,64,199,56,181,163,247,242,206,249,97,21,161,224,174,93,164,155,52,26,85,173,147,50,48,245,140,177,227,29,246,226,46,130,102,202,96,192,41,35,171,13,83,78,111,213,219,55,69,222,253,142,47,3,255,106,114,109,108,91,81,141,27,175,146,187,221,188,127,17,217,92,65,31,16,90,216,10,193,49,136,165,205,123,189,45,116,208,18,184,229,180,176,137,105,151,74,12,150,119,126,101,185,241,9,197,110,198,132,24,240,125,236,58,220,77,32,121,238,95,62,215,203,57,72]);function we(e){let t=e>>>24&255,n=e>>>16&255,r=e>>>8&255,i=e&255;return((Ce[t]??0)<<24|(Ce[n]??0)<<16|(Ce[r]??0)<<8|(Ce[i]??0))>>>0}function Te(e){return(e^x(e,2)^x(e,10)^x(e,18)^x(e,24))>>>0}function Ee(e){return(e^x(e,13)^x(e,23))>>>0}function De(e,t,n,r,i){return(e^Te(we((t^n^r^i)>>>0)))>>>0}(()=>{let e=[];for(let t=0;t<32;t++){let n=(4*t+0)*7%256&255,r=(4*t+1)*7%256&255,i=(4*t+2)*7%256&255,a=(4*t+3)*7%256&255;e.push((n<<24|r<<16|i<<8|a)>>>0)}return e})();function Oe(e,t){let[n,r,i,a]=y(e),[o,s,c,l]=y(t),u=De(n,r,i,a,o),d=De(r,i,a,u,s),f=De(i,a,u,d,c);return b(u,d,f,De(a,u,d,f,l))}function ke(e,t,n){let[r,i,a,o]=y(e),[s,c,l]=y(t),[u,d,f,p]=y(n),m=(r^Ee(we((s^c^l^u)>>>0)))>>>0,h=(i^Ee(we((c^l^m^d)>>>0)))>>>0,g=(a^Ee(we((l^m^h^f)>>>0)))>>>0;return b(m,h,g,(o^Ee(we((m^h^g^p)>>>0)))>>>0)}function Ae(e,t,n){let[r,i,a,o]=y(e),[s,c,l,u]=y(t),[d,f,p,m]=y(n);return b(x(v(x(r,12),s,d),7),x(v(x(i,12),c,f),7),x(v(x(a,12),l,p),7),x(v(x(o,12),u,m),7))}function je(e,t,n){let[r,i,a,o]=y(e),[s,c,l,u]=y(t),[d,f,p,m]=y(n);return b((r^s^x(d,15))>>>0,(i^c^x(f,15))>>>0,(a^l^x(p,15))>>>0,(o^u^x(m,15))>>>0)}function Me(e,t,n){let[r,i,a,o]=y(e),[s,c,l,u]=y(t),[d,f,p,m]=y(n);return b((r^s^x(d,7))>>>0,(i^c^x(f,7))>>>0,(a^l^x(p,7))>>>0,(o^u^x(m,7))>>>0)}const S=e=>e&18446744073709551615n;function C(e,t){return S(e>>BigInt(t)|e<<BigInt(64-t))}const Ne=e=>C(e,28)^C(e,34)^C(e,39),Pe=e=>C(e,14)^C(e,18)^C(e,41),Fe=e=>C(e,1)^C(e,8)^e>>7n,Ie=e=>C(e,19)^C(e,61)^e>>6n,Le=(e,t,n)=>e&(t^n)^n,Re=(e,t,n)=>e&t|(e|t)&n;function w(e){let t=new DataView(e.buffer,e.byteOffset,16);return[t.getBigUint64(0,!0),t.getBigUint64(8,!0)]}function ze(e,t){let n=new Uint8Array(16),r=new DataView(n.buffer);return r.setBigUint64(0,S(e),!0),r.setBigUint64(8,S(t),!0),n}function Be(e,t,n){let[r,i]=w(e),[a,o]=w(t),[s,c]=w(n),l=S(i+Pe(c)+Le(c,a,o));return ze(S(r+Pe(l+s)+Le(l+s,c,a)),l)}function Ve(e,t,n){let[r,i]=w(e),a=w(t)[0],[o,s]=w(n),c=S(i+Ne(o)+Re(a,s,o));return ze(S(r+Ne(c)+Re(c,o,s)),c)}function He(e,t){let[n,r]=w(e),i=w(t)[0];return ze(S(n+Fe(r)),S(r+Fe(i)))}function Ue(e,t,n){let[r,i]=w(e),[a,o]=w(t),[s,c]=w(n);return ze(S(r+Ie(a)+s),S(i+Ie(o)+c))}function We(e){let t=new DataView(e.buffer,e.byteOffset,16);return t.getBigUint64(0,!0)|t.getBigUint64(8,!0)<<64n}function Ge(e){let t=new Uint8Array(16),n=new DataView(t.buffer);return n.setBigUint64(0,S(e&18446744073709551615n),!0),n.setBigUint64(8,S(e>>64n&18446744073709551615n),!0),t}function Ke(e,t,n){return Ge(We(e)^We(t)^We(n))}function qe(e,t,n){return Ge(We(e)^We(t)&~We(n))}function Je(e,t){let[n,r]=w(e),[i,a]=w(t),o=(e,t)=>{let n=S(e^S(~t));return S(n<<1n|n>>63n)};return ze(o(n,i),o(r,a))}function Ye(e,t,n){let[r,i]=w(e),[a,o]=w(t),s=n&63,c=(e,t)=>S((e>>BigInt(s)|e<<BigInt(64-s))^t);return ze(c(r,a),c(i,o))}const T=e=>Math.fround(e);function Xe(e){return new DataView(e.buffer,e.byteOffset,16).getFloat32(0,!0)}function Ze(e){return new DataView(e.buffer,e.byteOffset,16).getFloat64(0,!0)}function Qe(e){let t=new Uint8Array(16);return new DataView(t.buffer).setFloat32(0,T(e),!0),t}function $e(e){let t=new Uint8Array(16);return new DataView(t.buffer).setFloat64(0,e,!0),t}function E(e,t){return t?Ze(e):Xe(e)}function D(e,t){return t?$e(e):Qe(e)}const et=(e,t,n)=>n?e+t:T(e+t),tt=(e,t,n)=>n?e-t:T(e-t),nt=(e,t,n)=>n?e*t:T(e*t),rt=(e,t,n)=>n?e/t:T(e/t),it=(e,t,n)=>n?-(e*t):T(-(e*t)),at=(e,t,n)=>Number.isNaN(e)||Number.isNaN(t)?n?NaN:T(NaN):e===0&&t===0?Object.is(e,-0)?t:e:n?Math.max(e,t):T(Math.max(e,t)),ot=(e,t,n)=>Number.isNaN(e)||Number.isNaN(t)?n?NaN:T(NaN):e===0&&t===0?Object.is(e,-0)?e:t:n?Math.min(e,t):T(Math.min(e,t)),st=(e,t)=>t?Math.abs(e):T(Math.abs(e)),ct=(e,t)=>t?-e:T(-e),lt=(e,t)=>t?Math.sqrt(e):T(Math.sqrt(e)),ut=(e,t)=>{let n=Math.round(e);return Math.abs(e-n)===.5&&n%2!=0?t?n-Math.sign(e):T(n-Math.sign(e)):t?n:T(n)},dt=(e,t)=>t?Math.ceil(e):T(Math.ceil(e)),ft=(e,t)=>t?Math.floor(e):T(Math.floor(e)),pt=(e,t)=>t?Math.trunc(e):T(Math.trunc(e)),mt=(e,t)=>t?Math.round(e):T(Math.round(e)),ht=ut,gt=ut;function _t(e,t){return Number.isNaN(e)||Number.isNaN(t)?{n:!1,z:!1,c:!0,v:!0}:e<t?{n:!0,z:!1,c:!1,v:!1}:e===t?{n:!1,z:!0,c:!0,v:!1}:{n:!1,z:!1,c:!0,v:!1}}function vt(e,t){switch(t){case`zero`:return Math.trunc(e);case`minus`:return Math.floor(e);case`plus`:return Math.ceil(e);case`away`:return e<0?-Math.round(-e):Math.round(e);case`nearest`:{let t=Math.floor(e),n=e-t;return n<.5?t:n>.5?t+1:t%2==0?t:t+1}}}function yt(e,t,n,r){if(Number.isNaN(e))return 0n;let i=vt(e,t);if(n){let e=r===64?-(2n**63n):-(2n**31n),t=r===64?2n**63n-1n:2n**31n-1n;if(i===1/0||i>Number(t))return t;if(i===-1/0||i<Number(e))return e;let n=BigInt(Math.trunc(i));return n>t&&(n=t),n<e&&(n=e),n}let a=r===64?2n**64n-1n:2n**32n-1n;if(i<=0)return 0n;if(i===1/0||i>Number(a))return a;let o=BigInt(Math.trunc(i));return o>a&&(o=a),o}function bt(e,t,n,r){let i=BigInt.asUintN(n,e),a=t?BigInt.asIntN(n,i):i;return r?Number(a):T(Number(a))}function xt(e,t){return t?e:T(e)}const St=(1n<<BigInt(10))-1n,Ct=1n<<BigInt(10);function wt(e){let t=new Uint8Array(16),n=BigInt(e)&65535n;return t[0]=Number(n&255n),t[1]=Number(n>>8n&255n),t}function Tt(e){let t=new DataView(e.buffer,e.byteOffset,16);return BigInt(t.getUint16(0,!0))}function Et(e){let t=e&65535n,n=t>>15n&1n,r=Number(t>>10n&31n),i=t&St,a=n===1n?-1:1;if(r===0)return i===0n?a===-1?-0:0:a*2**-14*(Number(i)/Number(Ct));if(r===31)return i===0n?a===-1?-1/0:1/0:NaN;let o=2**(r-15)*(1+Number(i)/Number(Ct));return a===-1?-o:o}const O=e=>Et(Tt(e));function Dt(e){if(Number.isNaN(e))return 32256n;if(e===0)return Object.is(e,-0)?32768n:0n;if(e===1/0)return 31744n;if(e===-1/0)return 64512n;let t=e<0,n=Math.abs(e);if(n<2**-24/2)return t?32768n:0n;if(n>(2-2**-10)*2**15)return t?64512n:31744n;let r=Math.floor(Math.log2(n)),i=r<-14,a=i?-14:r,o=n*2**(10-a),s=Math.floor(o),c=o-s,l=s;(c>.5||c===.5&&l%2!=0)&&(l+=1);let u,d;if(i)BigInt(l)>=Ct?(u=1,d=0n):(u=0,d=BigInt(l)&St);else if(BigInt(l)>=1n<<BigInt(11)){let e=a+1;if(e>15)return t?64512n:31744n;u=e+15,d=0n}else u=a+15,d=BigInt(l)&St;let f=(t?1n:0n)<<15n;return f|=BigInt(u)<<10n,f|=d,f&65535n}const k=e=>Et(Dt(e)),A=e=>wt(Dt(e)),Ot=(e,t)=>k(e+t),kt=(e,t)=>k(e-t),At=(e,t)=>k(e*t),jt=(e,t)=>k(e/t),Mt=e=>k(Math.sqrt(e)),Nt=e=>k(Math.abs(e)),Pt=e=>Et(Dt(e)^32768n);function Ft(e,t,n){let r=BigInt.asUintN(n,e),i=t?BigInt.asIntN(n,r):r;return k(Number(i))}function It(e,t){return Number.isNaN(e)||Number.isNaN(t)?{n:!1,z:!1,c:!0,v:!0}:e<t?{n:!0,z:!1,c:!1,v:!1}:e===t?{n:!1,z:!0,c:!0,v:!1}:{n:!1,z:!1,c:!0,v:!1}}const j=e=>1<<e;function M(e,t){let n=BigInt(t*8);return(e&1n<<n-1n)==0n?e:e-(1n<<n)}function N(e,t){let n=j(t),r=new Uint8Array(16),i=new DataView(r.buffer);for(let t=0;t<e.length;t++){let r=t*n;if(r+n>16)break;let a=e[t]??0n;switch(n){case 1:i.setUint8(r,Number(a&255n));break;case 2:i.setUint16(r,Number(a&65535n),!0);break;case 4:i.setUint32(r,Number(a&4294967295n),!0);break;default:i.setBigUint64(r,a&18446744073709551615n,!0);break}}return r}function P(e,t,n){let r=j(t),i=(n===1?16:8)/r,a=new DataView(e.buffer,e.byteOffset,16),o=[];for(let e=0;e<i;e++){let t=e*r;switch(r){case 1:o.push(BigInt(a.getUint8(t)));break;case 2:o.push(BigInt(a.getUint16(t,!0)));break;case 4:o.push(BigInt(a.getUint32(t,!0)));break;default:o.push(a.getBigUint64(t,!0));break}}return o}function F(e,t,n){let r=j(n),i=t*r,a=new DataView(e.buffer,e.byteOffset,16),o;switch(r){case 1:o=BigInt(a.getInt8(i));break;case 2:o=BigInt(a.getInt16(i,!0));break;case 4:o=BigInt(a.getInt32(i,!0));break;default:o=a.getBigInt64(i,!0);break}return o}function I(e,t,n){let r=j(n),i=t*r,a=new DataView(e.buffer,e.byteOffset,16);switch(r){case 1:return BigInt(a.getUint8(i));case 2:return BigInt(a.getUint16(i,!0));case 4:return BigInt(a.getUint32(i,!0));default:return a.getBigUint64(i,!0)}}function Lt(e,t,n,r){if(n>=3)throw Error(`SADDL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=F(e,o+r,n)+F(t,o+r,n);s.push(i)}return N(s,i)}function Rt(e,t,n,r){if(n>=3)throw Error(`UADDL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=I(e,o+r,n)+I(t,o+r,n);s.push(i)}return N(s,i)}function zt(e,t,n,r){if(n>=3)throw Error(`SSUBL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=F(e,o+r,n)-F(t,o+r,n);s.push(i)}return N(s,i)}function Bt(e,t,n,r){if(n>=3)throw Error(`USUBL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=I(e,o+r,n)-I(t,o+r,n);s.push(i)}return N(s,i)}function Vt(e,t,n,r){if(n>=3)throw Error(`SADDW: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=P(e,i,1),c=[];for(let e=0;e<s.length;e++){let r=M(s[e]??0n,j(i))+F(t,o+e,n);c.push(r)}return N(c,i)}function Ht(e,t,n,r){if(n>=3)throw Error(`UADDW: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=P(e,i,1),c=[];for(let e=0;e<s.length;e++){let r=(s[e]??0n)+I(t,o+e,n);c.push(r)}return N(c,i)}function Ut(e,t,n,r){if(n>=3)throw Error(`SSUBW: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=P(e,i,1),c=[];for(let e=0;e<s.length;e++){let r=M(s[e]??0n,j(i))-F(t,o+e,n);c.push(r)}return N(c,i)}function Wt(e,t,n,r){if(n>=3)throw Error(`USUBW: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=P(e,i,1),c=[];for(let e=0;e<s.length;e++){let r=(s[e]??0n)-I(t,o+e,n);c.push(r)}return N(c,i)}function Gt(e,t,n,r){if(n>=3)throw Error(`SMULL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=F(e,o+r,n)*F(t,o+r,n);s.push(i)}return N(s,i)}function Kt(e,t,n,r){if(n>=3)throw Error(`UMULL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=I(e,o+r,n)*I(t,o+r,n);s.push(i)}return N(s,i)}function qt(e,t,n,r,i){if(r>=3)throw Error(`SMLAL: invalid size (must be 0-2)`);let a=r+1,o=8>>r,s=i===1?o:0,c=P(e,a,1),l=[];for(let e=0;e<c.length;e++){let i=M(c[e]??0n,j(a))+F(t,s+e,r)*F(n,s+e,r);l.push(i)}return N(l,a)}function Jt(e,t,n,r,i){if(r>=3)throw Error(`UMLAL: invalid size (must be 0-2)`);let a=r+1,o=8>>r,s=i===1?o:0,c=P(e,a,1),l=[];for(let e=0;e<c.length;e++){let i=(c[e]??0n)+I(t,s+e,r)*I(n,s+e,r);l.push(i)}return N(l,a)}function Yt(e,t,n,r,i){if(r>=3)throw Error(`SMLSL: invalid size (must be 0-2)`);let a=r+1,o=8>>r,s=i===1?o:0,c=P(e,a,1),l=[];for(let e=0;e<c.length;e++){let i=M(c[e]??0n,j(a))-F(t,s+e,r)*F(n,s+e,r);l.push(i)}return N(l,a)}function Xt(e,t,n,r,i){if(r>=3)throw Error(`UMLSL: invalid size (must be 0-2)`);let a=r+1,o=8>>r,s=i===1?o:0,c=P(e,a,1),l=[];for(let e=0;e<c.length;e++){let i=(c[e]??0n)-I(t,s+e,r)*I(n,s+e,r);l.push(i)}return N(l,a)}function Zt(e,t,n){if(t>=3)throw Error(`SADDLP: invalid size (must be 0-2)`);let r=(n===1?16:8)/j(t),i=t+1,a=[];for(let n=0;n<r;n+=2){let r=F(e,n,t)+F(e,n+1,t);a.push(r)}return N(a,i)}function Qt(e,t,n){if(t>=3)throw Error(`UADDLP: invalid size (must be 0-2)`);let r=(n===1?16:8)/j(t),i=t+1,a=[];for(let n=0;n<r;n+=2){let r=I(e,n,t)+I(e,n+1,t);a.push(r)}return N(a,i)}function $t(e,t,n,r){if(n>=3)throw Error(`SSHLL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=BigInt(t),c=[];for(let t=0;t<a;t++){let r=F(e,o+t,n)<<s;c.push(r)}return N(c,i)}function en(e,t,n,r){if(n>=3)throw Error(`USHLL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=BigInt(t),c=[];for(let t=0;t<a;t++){let r=I(e,o+t,n)<<s;c.push(r)}return N(c,i)}function tn(e,t,n,r){if(n>=3)throw Error(`ADDHN: invalid size (must be 0-2)`);let i=n+1,a=P(e,i,1),o=P(t,i,1),s=a.length,c=j(n),l=BigInt(c*8),u=new Uint8Array(16),d=r===1?s:0;r===1&&u.set(e.subarray(0,s*c),0);let f=new DataView(u.buffer);for(let e=0;e<s;e++){let t=(a[e]??0n)+(o[e]??0n)>>l,n=(d+e)*c;if(!(n+c>16))switch(c){case 1:f.setUint8(n,Number(t&255n));break;case 2:f.setUint16(n,Number(t&65535n),!0);break;case 4:f.setUint32(n,Number(t&4294967295n),!0);break}}return u}function nn(e,t,n,r){if(n>=3)throw Error(`SUBHN: invalid size (must be 0-2)`);let i=n+1,a=P(e,i,1),o=P(t,i,1),s=a.length,c=j(n),l=BigInt(c*8),u=new Uint8Array(16),d=r===1?s:0;r===1&&u.set(e.subarray(0,s*c),0);let f=new DataView(u.buffer);for(let e=0;e<s;e++){let t=(a[e]??0n)-(o[e]??0n)>>l,n=(d+e)*c;if(!(n+c>16))switch(c){case 1:f.setUint8(n,Number(t&255n));break;case 2:f.setUint16(n,Number(t&65535n),!0);break;case 4:f.setUint32(n,Number(t&4294967295n),!0);break}}return u}function rn(e,t,n,r){if(n>=3)throw Error(`RADDHN: invalid size (must be 0-2)`);let i=n+1,a=P(e,i,1),o=P(t,i,1),s=a.length,c=j(n),l=BigInt(c*8),u=1n<<l-1n,d=new Uint8Array(16),f=r===1?s:0;r===1&&d.set(e.subarray(0,s*c),0);let p=new DataView(d.buffer);for(let e=0;e<s;e++){let t=(a[e]??0n)+(o[e]??0n)+u>>l,n=(f+e)*c;if(!(n+c>16))switch(c){case 1:p.setUint8(n,Number(t&255n));break;case 2:p.setUint16(n,Number(t&65535n),!0);break;case 4:p.setUint32(n,Number(t&4294967295n),!0);break}}return d}function an(e,t,n,r){if(n>=3)throw Error(`RSUBHN: invalid size (must be 0-2)`);let i=n+1,a=P(e,i,1),o=P(t,i,1),s=a.length,c=j(n),l=BigInt(c*8),u=1n<<l-1n,d=new Uint8Array(16),f=r===1?s:0;r===1&&d.set(e.subarray(0,s*c),0);let p=new DataView(d.buffer);for(let e=0;e<s;e++){let t=(a[e]??0n)-(o[e]??0n)+u>>l,n=(f+e)*c;if(!(n+c>16))switch(c){case 1:p.setUint8(n,Number(t&255n));break;case 2:p.setUint16(n,Number(t&65535n),!0);break;case 4:p.setUint32(n,Number(t&4294967295n),!0);break}}return d}function on(e,t){let n=(1n<<BigInt(t-1))-1n,r=-(1n<<BigInt(t-1));return e>n?n:e<r?r:e}function sn(e,t,n,r){if(n<1||n>2)throw Error(`SQDMULL: only 16-bit and 32-bit sizes supported`);let i=n+1,a=j(i)*8,o=8>>n,s=r===1?o:0,c=[];for(let r=0;r<o;r++){let i=on(F(e,s+r,n)*F(t,s+r,n)*2n,a);c.push(i)}return N(c,i)}function cn(e,t,n,r,i){if(r<1||r>2)throw Error(`SQDMLAL: only 16-bit and 32-bit sizes supported`);let a=r+1,o=j(a)*8,s=8>>r,c=i===1?s:0,l=P(e,a,1),u=[];for(let e=0;e<l.length;e++){let i=on(M(l[e]??0n,j(a))+F(t,c+e,r)*F(n,c+e,r)*2n,o);u.push(i)}return N(u,a)}function ln(e,t,n,r,i){if(r<1||r>2)throw Error(`SQDMLSL: only 16-bit and 32-bit sizes supported`);let a=r+1,o=j(a)*8,s=8>>r,c=i===1?s:0,l=P(e,a,1),u=[];for(let e=0;e<l.length;e++){let i=on(M(l[e]??0n,j(a))-F(t,c+e,r)*F(n,c+e,r)*2n,o);u.push(i)}return N(u,a)}function un(e,t,n,r,i){if(r>=3)throw Error(`SABAL: invalid size (must be 0-2)`);let a=r+1,o=8>>r,s=i===1?o:0,c=P(e,a,1),l=[];for(let e=0;e<c.length;e++){let i=M(c[e]??0n,j(a)),o=F(t,s+e,r),u=F(n,s+e,r),d=i+(o>u?o-u:u-o);l.push(d)}return N(l,a)}function dn(e,t,n,r,i){if(r>=3)throw Error(`UABAL: invalid size (must be 0-2)`);let a=r+1,o=8>>r,s=i===1?o:0,c=P(e,a,1),l=[];for(let e=0;e<c.length;e++){let i=c[e]??0n,a=I(t,s+e,r),o=I(n,s+e,r),u=i+(a>o?a-o:o-a);l.push(u)}return N(l,a)}function fn(e,t,n,r){if(n>=3)throw Error(`SABDL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=F(e,o+r,n),a=F(t,o+r,n),c=i>a?i-a:a-i;s.push(c)}return N(s,i)}function pn(e,t,n,r){if(n>=3)throw Error(`UABDL: invalid size (must be 0-2)`);let i=n+1,a=8>>n,o=r===1?a:0,s=[];for(let r=0;r<a;r++){let i=I(e,o+r,n),a=I(t,o+r,n),c=i>a?i-a:a-i;s.push(c)}return N(s,i)}function mn(e,t,n,r){if(n!==0&&n!==3)throw Error(`PMULL: size must be 0 (.8B→.8H) or 3 (.1Q→.1Q)`);if(n===0){let n=r===1?8:0,i=[];for(let r=0;r<8;r++){let a=I(e,n+r,0),o=I(t,n+r,0),s=0n;for(let e=0;e<8;e++)a>>BigInt(e)&1n&&(s^=o<<BigInt(e));i.push(s&65535n)}return N(i,1)}let i=r===1?I(e,1,3):I(e,0,3),a=r===1?I(t,1,3):I(t,0,3),o=0n;for(let e=0;e<64;e++)i>>BigInt(e)&1n&&(o^=a<<BigInt(e));let s=new Uint8Array(16),c=new DataView(s.buffer);return c.setBigUint64(0,o&18446744073709551615n,!0),c.setBigUint64(8,o>>64n&18446744073709551615n,!0),s}const L=e=>1<<e;function R(e,t,n){let r=L(t),i=(n===1?16:8)/r,a=new DataView(e.buffer,e.byteOffset,16),o=[];for(let e=0;e<i;e++){let t=e*r;switch(r){case 1:o.push(BigInt(a.getUint8(t)));break;case 2:o.push(BigInt(a.getUint16(t,!0)));break;case 4:o.push(BigInt(a.getUint32(t,!0)));break;default:o.push(a.getBigUint64(t,!0));break}}return o}function z(e,t){let n=L(t),r=new Uint8Array(16),i=new DataView(r.buffer);for(let t=0;t<e.length;t++){let r=t*n;if(r+n>16)break;let a=e[t]??0n;switch(n){case 1:i.setUint8(r,Number(a&255n));break;case 2:i.setUint16(r,Number(a&65535n),!0);break;case 4:i.setUint32(r,Number(a&4294967295n),!0);break;default:i.setBigUint64(r,a&18446744073709551615n,!0);break}}return r}const B=e=>(1n<<BigInt(e*8))-1n;function V(e,t){let n=BigInt(t*8);return(e&1n<<n-1n)==0n?e:e-(1n<<n)}function H(e,t,n,r,i){let a=R(e,n,r),o=R(t,n,r),s=L(n),c=B(s);return z(a.map((e,t)=>i(e,o[t]??0n,c,s)&c),n)}const hn=(e,t,n,r)=>H(e,t,n,r,(e,t)=>e+t),gn=(e,t,n,r)=>H(e,t,n,r,(e,t)=>e-t),_n=(e,t,n,r)=>H(e,t,n,r,(e,t)=>e*t),vn=(e,t,n)=>{let r=R(e,0,n),i=R(t,0,n),a=n===1?16:8,o=[];for(let e=0;e<a;e++){let t=Number(r[e]??0n)&255,n=Number(i[e]??0n)&255,a=0;for(let e=0;e<8;e++)n>>>e&1&&(a^=t<<e);o.push(BigInt(a&255))}return z(o,0)},yn=(e,t,n)=>H(e,t,3,n,(e,t)=>e&t),bn=(e,t,n)=>H(e,t,3,n,(e,t)=>e|t),xn=(e,t,n)=>H(e,t,3,n,(e,t)=>e^t),Sn=(e,t,n)=>H(e,t,3,n,(e,t,n)=>e&~t&n),Cn=(e,t,n)=>H(e,t,3,n,(e,t,n)=>e|~t&n),wn=(e,t,n,r)=>{let i=R(e,3,r),a=R(t,3,r),o=R(n,3,r),s=B(8);return z(i.map((e,t)=>(e&(a[t]??0n)|(o[t]??0n)&~(a[t]??0n)&s)&s),3)},Tn=(e,t,n,r)=>{let i=R(e,3,r),a=R(t,3,r),o=R(n,3,r),s=B(8);return z(i.map((e,t)=>{let n=a[t]??0n;return(e&~n&s|(o[t]??0n)&n)&s}),3)},En=(e,t,n,r)=>{let i=R(e,3,r),a=R(t,3,r),o=R(n,3,r),s=B(8);return z(i.map((e,t)=>{let n=a[t]??0n;return(e&n|(o[t]??0n)&~n&s)&s}),3)},Dn=e=>e,On=0n,kn=(e,t,n,r)=>H(e,t,n,r,(e,t,n)=>e===t?Dn(n):On),An=(e,t,n,r)=>H(e,t,n,r,(e,t,n,r)=>V(e,r)>V(t,r)?Dn(n):On),jn=(e,t,n,r)=>H(e,t,n,r,(e,t,n,r)=>V(e,r)>=V(t,r)?Dn(n):On),Mn=(e,t,n,r)=>H(e,t,n,r,(e,t,n)=>e>t?Dn(n):On),Nn=(e,t,n,r)=>H(e,t,n,r,(e,t,n)=>e>=t?Dn(n):On),Pn=(e,t,n,r)=>H(e,t,n,r,(e,t,n)=>(e&t)===0n?On:Dn(n)),Fn=(e,t,n,r)=>H(e,t,n,r,(e,t,n,r)=>V(e,r)>V(t,r)?e:t),In=(e,t,n,r)=>H(e,t,n,r,(e,t,n,r)=>V(e,r)<V(t,r)?e:t),Ln=(e,t,n,r)=>H(e,t,n,r,(e,t)=>e>t?e:t),Rn=(e,t,n,r)=>H(e,t,n,r,(e,t)=>e<t?e:t);function U(e,t,n,r){let i=R(e,t,n),a=L(t),o=B(a);return z(i.map(e=>r(e,o,a)&o),t)}const zn=(e,t,n)=>U(e,t,n,(e,t)=>~e+1n&t),Bn=(e,t,n)=>U(e,t,n,(e,t,n)=>{let r=V(e,n);return(r<0n?-r:r)&t}),Vn=(e,t)=>U(e,0,t,(e,t)=>~e&t),Hn=(e,t)=>U(e,0,t,e=>{let t=e&255n,n=0n;for(;t;)n+=t&1n,t>>=1n;return n}),Un=(e,t,n)=>U(e,t,n,(e,t,n)=>{let r=n*8;if(e===0n)return BigInt(r);let i=0n;for(let t=r-1;t>=0&&!(e>>BigInt(t)&1n);t--)i++;return i}),Wn=(e,t,n)=>U(e,t,n,(e,t)=>e===0n?t:0n);function Gn(e,t,n){let r=n===1?16:8,i=new Uint8Array(16);for(let n=0;n<r;n+=t)for(let r=0;r<t;r++)i[n+r]=e[n+t-1-r]??0;return i}function Kn(e,t,n,r){let i=R(e,t,1)[n]??0n,a=(r===1?16:8)/L(t);return z(Array.from({length:a},()=>i),t)}function qn(e,t,n){let r=e&B(L(t)),i=(n===1?16:8)/L(t);return z(Array.from({length:i},()=>r),t)}const Jn=(e,t,n,r)=>U(e,t,r,(e,t)=>e<<BigInt(n)&t),Yn=(e,t,n,r)=>U(e,t,r,e=>e>>BigInt(n)),Xn=(e,t,n,r)=>U(e,t,r,(e,t,r)=>V(e,r)>>BigInt(n)&t);function Zn(e,t,n,r){let i=R(e,t,n),a=L(t),o=i[0]??0n;for(let e=1;e<i.length;e++)o=r(o,i[e]??0n,a);return z([o&B(a)],t)}const Qn=(e,t,n)=>Zn(e,t,n,(e,t)=>e+t),$n=(e,t,n)=>Zn(e,t,n,(e,t,n)=>V(e,n)>=V(t,n)?e:t),er=(e,t,n)=>Zn(e,t,n,(e,t,n)=>V(e,n)<=V(t,n)?e:t),tr=(e,t,n)=>Zn(e,t,n,(e,t)=>e>=t?e:t),nr=(e,t,n)=>Zn(e,t,n,(e,t)=>e<=t?e:t);function rr(e,t,n,r,i){let a=R(e,n,r),o=R(t,n,r),s=a.length,c=i*s/2,l=[];for(let e=0;e<s;e++){let t=e>>1;l.push(e&1?o[c+t]??0n:a[c+t]??0n)}return z(l,n)}function ir(e,t,n,r,i){let a=R(e,n,r),o=R(t,n,r),s=a.length,c=[];for(let e=0;e<s;e++){let t=2*e+i;c.push(t<s?a[t]??0n:o[t-s]??0n)}return z(c,n)}function ar(e,t,n,r,i){let a=R(e,n,r),o=R(t,n,r),s=a.length,c=[];for(let e=0;e<s;e++){let t=(e&-2)+i;c.push(e&1?o[t]??0n:a[t]??0n)}return z(c,n)}function or(e,t,n,r){let i=r===1?16:8,a=new Uint8Array(i*2);a.set(e.subarray(0,i),0),a.set(t.subarray(0,i),i);let o=new Uint8Array(16);for(let e=0;e<i;e++)o[e]=a[n+e]??0;return o}function sr(e,t,n,r,i){let a=n===1?16:8,o=e.length,s=new Uint8Array(16);i&&s.set(r.subarray(0,16));for(let n=0;n<a;n++){let r=t[n]??0;r<o?s[n]=e[r]??0:i||(s[n]=0)}return n===0&&s.fill(0,8),s}const W=e=>e|e<<32n;function cr(e,t,n){let r=t>>1&7,i=t&1,a=BigInt(n&255);switch(r){case 0:return W(a);case 1:return W(a<<8n);case 2:return W(a<<16n);case 3:return W(a<<24n);case 4:return W(a|a<<16n);case 5:return W(a<<8n|a<<24n);case 6:{let e=i===0?8n:16n,t=(1n<<e)-1n;return W(a<<e|t)}default:if(i===0){let e=0n;for(let t=0;t<8;t++)e|=a<<BigInt(t*8);return e}if(e===0){let e=0n;for(let t=0;t<8;t++)n>>t&1&&(e|=255n<<BigInt(t*8));return e}return W(a)}}const G=e=>1<<e,K=e=>(1n<<BigInt(e*8))-1n;function q(e,t,n){let r=G(n),i=t*r,a=new DataView(e.buffer,e.byteOffset,16);switch(r){case 1:return BigInt(a.getInt8(i));case 2:return BigInt(a.getInt16(i,!0));case 4:return BigInt(a.getInt32(i,!0));default:return a.getBigInt64(i,!0)}}function J(e,t,n){let r=G(n),i=t*r,a=new DataView(e.buffer,e.byteOffset,16);switch(r){case 1:return BigInt(a.getUint8(i));case 2:return BigInt(a.getUint16(i,!0));case 4:return BigInt(a.getUint32(i,!0));default:return a.getBigUint64(i,!0)}}function Y(e,t,n,r){let i=G(n),a=t*i,o=new DataView(e.buffer,e.byteOffset,16);switch(i){case 1:o.setUint8(a,Number(r&255n));break;case 2:o.setUint16(a,Number(r&65535n),!0);break;case 4:o.setUint32(a,Number(r&4294967295n),!0);break;default:o.setBigUint64(a,r&18446744073709551615n,!0);break}}function X(e,t,n){let r=(1n<<BigInt(t-1))-1n,i=-(1n<<BigInt(t-1));return e>r?(n.setQC(),r):e<i?(n.setQC(),i):e}function Z(e,t,n){let r=(1n<<BigInt(t))-1n;return e>r?(n.setQC(),r):e<0n?(n.setQC(),0n):e}function lr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=X(q(t,i,r)+q(n,i,r),s,a);Y(e,i,r,o&K(G(r)))}}function ur(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=Z(J(t,i,r)+J(n,i,r),s,a);Y(e,i,r,o)}}function dr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=X(q(t,i,r)-q(n,i,r),s,a);Y(e,i,r,o&K(G(r)))}}function fr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=Z(J(t,i,r)-J(n,i,r),s,a);Y(e,i,r,o)}}function pr(e,t,n,r,i){let a=(16>>n)*(r===1?1:.5),o=8<<n;for(let r=0;r<a;r++){let a=X(q(e,r,n)+J(t,r,n),o,i);Y(e,r,n,a&K(G(n)))}}function mr(e,t,n,r,i){let a=(16>>n)*(r===1?1:.5),o=8<<n;for(let r=0;r<a;r++){let a=J(e,r,n),s=q(t,r,n),c=Z(BigInt(a)+s,o,i);Y(e,r,n,c)}}function hr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=q(t,i,r),c=q(n,i,r),l=Number(c&255n),u;if(l>=0)l>=s?(u=o>=0n?(1n<<BigInt(s-1))-1n:-(1n<<BigInt(s-1)),a.setQC()):u=o<<BigInt(l);else{let e=-l;u=o>>BigInt(e)}let d=X(u,s,a);Y(e,i,r,d&K(G(r)))}}function gr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=J(t,i,r),c=q(n,i,r),l=Number(c&255n),u;if(l>=0)l>=s?(u=(1n<<BigInt(s))-1n,a.setQC()):u=o<<BigInt(l);else{let e=-l;u=o>>BigInt(e)}let d=Z(u,s,a);Y(e,i,r,d)}}function _r(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=Z(q(t,i,r)<<BigInt(n),s,a);Y(e,i,r,o)}}function vr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=q(t,i,r),c=q(n,i,r),l=Number(c&255n),u;if(l>=0)u=o<<BigInt(l);else{let e=-l;u=o+(e>0?1n<<BigInt(e-1):0n)>>BigInt(e)}let d=X(u,s,a);Y(e,i,r,d&K(G(r)))}}function yr(e,t,n,r,i,a){let o=(16>>r)*(i===1?1:.5),s=8<<r;for(let i=0;i<o;i++){let o=J(t,i,r),c=q(n,i,r),l=Number(c&255n),u;if(l>=0)u=o<<BigInt(l);else{let e=-l;u=o+(e>0?1n<<BigInt(e-1):0n)>>BigInt(e)}let d=Z(u,s,a);Y(e,i,r,d)}}function br(e,t,n,r,i){if(n>=3)throw Error(`SQXTN: invalid size (must be 0-2)`);let a=n+1,o=r===0?16>>a:8>>a,s=8<<n,c=r===1?o:0;for(let r=0;r<o;r++){let o=X(q(t,r,a),s,i);Y(e,c+r,n,o&K(G(n)))}}function xr(e,t,n,r,i){if(n>=3)throw Error(`UQXTN: invalid size (must be 0-2)`);let a=n+1,o=r===0?16>>a:8>>a,s=8<<n,c=r===1?o:0;for(let r=0;r<o;r++){let o=Z(J(t,r,a),s,i);Y(e,c+r,n,o)}}function Sr(e,t,n,r,i){if(n>=3)throw Error(`SQXTUN: invalid size (must be 0-2)`);let a=8>>n,o=n+1,s=8<<n,c=r===1?a:0;for(let r=0;r<a;r++){let a=Z(q(t,r,o),s,i);Y(e,c+r,n,a)}}function Cr(e,t,n,r,i,a){if(r>=3)throw Error(`SQSHRN: invalid size (must be 0-2)`);let o=8>>r,s=r+1,c=8<<r,l=i===1?o:0;for(let i=0;i<o;i++){let o=X(q(t,i,s)>>BigInt(n),c,a);Y(e,l+i,r,o&K(G(r)))}}function wr(e,t,n,r,i,a){if(r>=3)throw Error(`UQSHRN: invalid size (must be 0-2)`);let o=8>>r,s=r+1,c=8<<r,l=i===1?o:0;for(let i=0;i<o;i++){let o=Z(J(t,i,s)>>BigInt(n),c,a);Y(e,l+i,r,o)}}function Tr(e,t,n,r,i,a){if(r>=3)throw Error(`SQRSHRN: invalid size (must be 0-2)`);let o=8>>r,s=r+1,c=8<<r,l=i===1?o:0;for(let i=0;i<o;i++){let o=X(q(t,i,s)+(n>0?1n<<BigInt(n-1):0n)>>BigInt(n),c,a);Y(e,l+i,r,o&K(G(r)))}}function Er(e,t,n,r,i,a){if(r>=3)throw Error(`UQRSHRN: invalid size (must be 0-2)`);let o=8>>r,s=r+1,c=8<<r,l=i===1?o:0;for(let i=0;i<o;i++){let o=Z(J(t,i,s)+(n>0?1n<<BigInt(n-1):0n)>>BigInt(n),c,a);Y(e,l+i,r,o)}}function Dr(e,t,n,r,i,a){if(r>=3)throw Error(`SQSHRUN: invalid size (must be 0-2)`);let o=8>>r,s=r+1,c=8<<r,l=i===1?o:0;for(let i=0;i<o;i++){let o=Z(q(t,i,s)>>BigInt(n),c,a);Y(e,l+i,r,o)}}function Or(e,t,n,r,i,a){if(r>=3)throw Error(`SQRSHRUN: invalid size (must be 0-2)`);let o=8>>r,s=r+1,c=8<<r,l=i===1?o:0;for(let i=0;i<o;i++){let o=Z(q(t,i,s)+(n>0?1n<<BigInt(n-1):0n)>>BigInt(n),c,a);Y(e,l+i,r,o)}}function kr(e,t,n,r,i){let a=(16>>n)*(r===1?1:.5),o=8<<n;for(let r=0;r<a;r++){let a=q(t,r,n),s=X(a<0n?-a:a,o,i);Y(e,r,n,s&K(G(n)))}}function Ar(e,t,n,r,i){let a=(16>>n)*(r===1?1:.5),o=8<<n;for(let r=0;r<a;r++){let a=X(-q(t,r,n),o,i);Y(e,r,n,a&K(G(n)))}}function jr(e){return{insn:e,high8:e>>>24&255,q:e>>>30&1,u:e>>>29&1,base28_24:e>>>24&31,size:e>>>22&3,bit21:e>>>21&1,field21_17:e>>>17&31,bit15:e>>>15&1,op16_12:e>>>12&31,op15_12:e>>>12&15,op14_12:e>>>12&7,ra:e>>>10&31,low11_10:e>>>10&3,rm:e>>>16&31,rn:e>>>5&31,rd:e&31,ftype:e>>>22&3,fpOp1Src:e>>>15&63,fpOp2Src:e>>>12&15,fpCond:e>>>12&15,fpRmode:e>>>19&3,fpConvOp:e>>>16&7,sf:e>>>31&1,neonOpcode:e>>>11&31,base29_24:e>>>24&63,base28_19:e>>>19&1023,op29:e>>>29&1,neonOp16_12:e>>>12&31,neonOp14_12:e>>>12&7,imm5:e>>>16&31,imm4:e>>>11&15,cmode:e>>>12&15,immh:e>>>19&15,immb:e>>>16&7,len:e>>>13&3,tbx:e>>>12&1}}const Mr=e=>e.high8===78&&e.field21_17===20&&e.low11_10===2,Nr=e=>e.high8===94&&e.size===0&&e.bit21===0&&e.bit15===0&&e.low11_10===0,Pr=e=>e.high8===94&&e.size===0&&e.field21_17===20&&e.low11_10===2,Fr=e=>e.high8===206&&e.size===1,Ir=e=>e.high8===206&&(e.insn>>>15&1)==1&&(e.bit21===1||e.size===3),Lr=e=>e.high8===206?e.bit21===0&&e.size===0&&e.bit15===0||e.bit21===1&&e.size===0&&e.bit15===0||e.bit21===1&&e.size===2&&(e.insn>>>10&63)==6||e.bit21===0&&e.size===2:!1,Rr=e=>{let t=e.high8,n=(t===46||t===110)&&e.size===3&&e.bit21===1&&(e.insn>>>10&63)==56,r=(t===14||t===78)&&e.bit21===1&&(e.insn>>>10&63)==56;return n||r},zr=e=>(e.insn>>>31&1)==0&&(e.insn>>>30&1)==0&&(e.insn>>>29&1)==0&&e.base28_24===30&&e.bit21===1,Br=e=>(e.insn>>>31&1)==0&&e.base28_24===14&&e.bit21===1&&(e.insn>>>10&1)==1,Vr=e=>(e.insn>>>31&1)==0&&e.base28_24===14&&e.bit21===1&&e.low11_10===0,Hr=e=>(e.insn>>>31&1)==0&&e.base28_24===14&&(e.insn>>>17&31)==16&&e.low11_10===2,Ur=e=>(e.insn>>>31&1)==0&&e.base28_24===14&&(e.insn>>>17&31)==24&&e.low11_10===2,Wr=e=>(e.insn>>>31&1)==0&&(e.insn>>>21&255)==112&&(e.insn>>>10&1)==1,Gr=e=>(e.insn>>>31&1)==0&&e.base28_19===480&&(e.insn>>>10&1)==1,Kr=e=>(e.insn>>>31&1)==0&&(e.insn>>>23&63)==30&&e.immh!==0&&(e.insn>>>10&1)==1,qr=e=>(e.insn>>>31&1)==0&&e.base29_24===46&&(e.insn>>>21&7)==0&&(e.insn>>>15&1)==0&&(e.insn>>>10&1)==0,Jr=e=>(e.insn>>>31&1)==0&&e.base29_24===14&&(e.insn>>>21&1)==0&&(e.insn>>>15&1)==0&&e.low11_10===2,Yr=e=>(e.insn>>>31&1)==0&&e.base29_24===14&&(e.insn>>>21&3)==0&&(e.insn>>>15&1)==0&&e.low11_10===0;function Xr(e,t){let n=(e,n)=>t>>>n&(1<<e-n+1)-1,r=n(29,27);return r===7?ei(e,t):r===5?ti(e,t):r===3&&n(25,24)===0?ni(e,t):r===1&&n(24,24)===0?Zr(e,t):!1}function Zr(e,t){let n=t>>>30&1,r=(t>>>22&1)==1,i=(t>>>23&1)==1,a=t>>>12&15,o=t>>>16&31,s=t>>>5&31,c=t&31,l=t>>>10&3,u=a===7?1:a===10?2:a===6?3:a===2?4:0,d=a===8?2:a===4?3:a===0?4:0;if(u===0&&d===0)return!1;let f=n===1?16:8,p=Number(e.gprReadSp(s)),m=(u||d)*f;if(u>0){let t=p;for(let n=0;n<u;n++){let i=(c+n)%32;if(r){let n=e.memRead(t,f),r=new Uint8Array(16);r.set(n.subarray(0,f)),e.vSetBytes(i,r)}else e.memWrite(t,e.vGetBytes(i).subarray(0,f));t+=f}}else Qr(e,{isLoad:r,base:p,rt:c,structCount:d,regBytes:f,elementBytes:1<<l});if(i){let t=o===31?m:Number(e.gprRead(o));e.gprWrite(s,BigInt(p+t))}return!0}function Qr(e,t){let{isLoad:n,base:r,rt:i,structCount:a,regBytes:o,elementBytes:s}=t,c=o/s;if(!Number.isInteger(c)||c<=0)return;if(n){let t=e.memRead(r,a*o),n=Array.from({length:a},()=>new Uint8Array(16));for(let e=0;e<c;e++)for(let r=0;r<a;r++){let i=(e*a+r)*s,o=e*s;n[r].set(t.subarray(i,i+s),o)}for(let t=0;t<a;t++)e.vSetBytes((i+t)%32,n[t]);return}let l=new Uint8Array(a*o),u=Array.from({length:a},(t,n)=>e.vGetBytes((i+n)%32));for(let e=0;e<c;e++)for(let t=0;t<a;t++){let n=e*s,r=(e*a+t)*s;l.set(u[t].subarray(n,n+s),r)}e.memWrite(r,l)}function $r(e,t,n,r,i){if(t){let t=e.memRead(r,i),a=new Uint8Array(16);a.set(t.subarray(0,i)),e.vSetBytes(n,a)}else e.memWrite(r,e.vGetBytes(n).subarray(0,i))}function ei(e,t){let n=t>>>30&3,r=t>>>22&3,i=n|r>>1<<2;if(i>4)return!1;let a=1<<i,o=(r&1)==1,s=t>>>5&31,c=t&31,l=Number(e.gprReadSp(s));if((t>>>24&3)==1)return $r(e,o,c,l+(t>>>10&4095)*a,a),!0;if(!(t>>>24&3)){if((t>>>21&1)==1){let n=t>>>16&31,r=t>>>13&7,s=t>>>12&1,u=ri(e.gprRead(n),r,s?i:0);return $r(e,o,c,l+Number(u),a),!0}let n=ii(t>>>12&511),r=t>>>10&3,u=l;return(r===3||r===0)&&(u=l+n),$r(e,o,c,u,a),(r===1||r===3)&&e.gprWrite(s,BigInt(l+n)),!0}return!1}function ti(e,t){let n=t>>>30&3;if(n>2)return!1;let r=n===0?4:n===1?8:16,i=(t>>>22&1)==1,a=ai(t>>>15&127)*r,o=t>>>10&31,s=t>>>5&31,c=t&31,l=t>>>23&3,u=Number(e.gprReadSp(s)),d=l===1?u:u+a;return $r(e,i,c,d,r),$r(e,i,o,d+r,r),(l===1||l===3)&&e.gprWrite(s,BigInt(u+a)),!0}function ni(e,t){let n=t>>>30&3;if(n>2)return!1;let r=n===0?4:n===1?8:16,i=oi(t>>>5&524287);return $r(e,!0,t&31,e.getPc()+i*4,r),!0}function ri(e,t,n){let r;switch(t){case 2:r=e&4294967295n;break;case 6:r=BigInt.asIntN(32,e&4294967295n);break;case 7:r=BigInt.asIntN(64,e);break;default:r=e;break}return r<<BigInt(n)}const ii=e=>e&256?e-512:e,ai=e=>e&64?e-128:e,oi=e=>e&262144?e-524288:e;function si(e,t){let n=jr(t);return Mr(n)?ci(e,n):Nr(n)?li(e,n):Pr(n)?ui(e,n):Ir(n)?pi(e,n):Lr(n)?mi(e,n):Fr(n)?fi(e,n):Rr(n)?di(e,n):zr(n)?hi(e,n):Br(n)?ki(e,n):Vr(n)?Mi(e,n):Gr(n)?Ri(e,n):Kr(n)?Bi(e,n):Hr(n)?Ni(e,n):Ur(n)?Pi(e,n):Wr(n)?Ii(e,n):qr(n)?Vi(e,n):Jr(n)?Hi(e,n):Yr(n)?Ui(e,n):!1}function ci(e,t){let n=e.vGetBytes(t.rd),r=e.vGetBytes(t.rn);switch(t.op16_12){case 4:return e.vSetBytes(t.rd,f(n,r)),!0;case 5:return e.vSetBytes(t.rd,p(n,r)),!0;case 6:return e.vSetBytes(t.rd,m(r)),!0;case 7:return e.vSetBytes(t.rd,h(r)),!0;default:return!1}}function li(e,t){switch(t.op14_12){case 0:case 1:case 2:{let n=t.op14_12===0?`choose`:t.op14_12===2?`majority`:`parity`,r=Number(e.vGetLane(t.rn,2,0)&4294967295n),i=he(e.vGetBytes(t.rd),r,e.vGetBytes(t.rm),n);return e.vSetBytes(t.rd,i.abcd),!0}case 3:return e.vSetBytes(t.rd,ge(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;case 4:return e.vSetBytes(t.rd,se(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;case 5:return e.vSetBytes(t.rd,ce(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;case 6:return e.vSetBytes(t.rd,ue(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;default:return!1}}function ui(e,t){switch(t.op16_12){case 0:{let n=Number(e.vGetLane(t.rn,2,0)&4294967295n),r=new Uint8Array(16);return new DataView(r.buffer).setUint32(0,me(n)>>>0,!0),e.vSetBytes(t.rd,r),!0}case 1:return e.vSetBytes(t.rd,_e(e.vGetBytes(t.rd),e.vGetBytes(t.rn))),!0;case 2:return e.vSetBytes(t.rd,le(e.vGetBytes(t.rd),e.vGetBytes(t.rn))),!0;default:return!1}}function di(e,t){let n=e.vGetBytes(t.rn),r=e.vGetBytes(t.rm);return e.vSetBytes(t.rd,t.q===1?Se(n,r):xe(n,r)),!0}function fi(e,t){let n=t.insn>>>10&63;if(t.bit21===1)switch(n){case 24:return e.vSetBytes(t.rd,je(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;case 26:return e.vSetBytes(t.rd,Me(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;case 14:return e.vSetBytes(t.rd,ke(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0;default:return!1}return t.bit15===1&&t.op16_12===8?(e.vSetBytes(t.rd,Oe(e.vGetBytes(t.rd),e.vGetBytes(t.rn))),!0):t.bit15===0&&n===17?(e.vSetBytes(t.rd,Ae(e.vGetBytes(t.rd),e.vGetBytes(t.rn),e.vGetBytes(t.rm))),!0):!1}function pi(e,t){let n=e.vGetBytes(t.rd);if(t.bit21===1){let r=e.vGetBytes(t.rn),i=e.vGetBytes(t.rm);switch(t.low11_10){case 0:return e.vSetBytes(t.rd,Be(n,r,i)),!0;case 1:return e.vSetBytes(t.rd,Ve(n,r,i)),!0;case 2:return e.vSetBytes(t.rd,Ue(n,r,i)),!0;default:return!1}}if(t.bit21===0){let r=e.vGetBytes(t.rn);return e.vSetBytes(t.rd,He(n,r)),!0}return!1}function mi(e,t){let n=e.vGetBytes(t.rn),r=e.vGetBytes(t.rm);if(t.bit21===0&&t.size===0&&t.bit15===0)return e.vSetBytes(t.rd,Ke(n,r,e.vGetBytes(t.ra&31))),!0;if(t.bit21===1&&t.size===0&&t.bit15===0)return e.vSetBytes(t.rd,qe(n,r,e.vGetBytes(t.ra&31))),!0;if(t.bit21===1&&t.size===2&&(t.insn>>>10&63)==6)return e.vSetBytes(t.rd,Je(n,r)),!0;if(t.bit21===0&&t.size===2){let i=t.insn>>>10&63;return e.vSetBytes(t.rd,Ye(n,r,i)),!0}return!1}function hi(e,t){if(t.ftype===3)return gi(e,t);let n=t.ftype===1,r=t.insn>>>10&63,i=t.insn>>>10&31,a=t.insn>>>10&15,o=t.insn>>>10&3;return o===0&&(t.insn>>>12&1)==1?wi(e,t,n):r===0?Oi(e,t,n):a===8?Ei(e,t,n):i===16?Ti(e,t,n):o===2?Ci(e,t,n):o===3?Di(e,t,n):!1}function gi(e,t){let n=t.insn>>>10&63,r=t.insn>>>10&31,i=t.insn>>>10&15,a=t.insn>>>10&3;return a===0&&(t.insn>>>12&1)==1?_i(e,t):n===0?Si(e,t):i===8?bi(e,t):r===16?yi(e,t):a===2?vi(e,t):a===3?xi(e,t):!1}function _i(e,t){let n=t.insn>>>13&255,r=n>>>7&1,i=n>>>6&1,a=n&63,o=+!i,s=r<<4|o<<3|i<<2|i<<1|i,c=a<<4&1023,l=(r<<15|s<<10|c)>>>0;return e.vSetBytes(t.rd,wt(l)),!0}function vi(e,t){let n=O(e.vGetBytes(t.rn)),r=O(e.vGetBytes(t.rm)),i;switch(t.fpOp2Src){case 0:i=At(n,r);break;case 1:i=jt(n,r);break;case 2:i=Ot(n,r);break;case 3:i=kt(n,r);break;case 4:i=Number.isNaN(n)||Number.isNaN(r)?NaN:n===0&&r===0?Object.is(n,-0)?r:n:Math.max(n,r),i=k(i);break;case 5:i=Number.isNaN(n)||Number.isNaN(r)?NaN:n===0&&r===0?Object.is(n,-0)?n:r:Math.min(n,r),i=k(i);break;case 8:i=k(-(n*r));break;default:return!1}return e.vSetBytes(t.rd,A(i)),!0}function yi(e,t){let n=O(e.vGetBytes(t.rn));switch(t.fpOp1Src){case 0:return e.vSetBytes(t.rd,A(n)),!0;case 1:return e.vSetBytes(t.rd,A(Nt(n))),!0;case 2:return e.vSetBytes(t.rd,A(Pt(n))),!0;case 3:return e.vSetBytes(t.rd,A(Mt(n))),!0;case 4:return e.vSetBytes(t.rd,D(n,!1)),!0;case 5:return e.vSetBytes(t.rd,D(n,!0)),!0;default:return!1}}function bi(e,t){let n=t.insn&31,r=It(O(e.vGetBytes(t.rn)),n&8?0:O(e.vGetBytes(t.rm)));return e.setNZCV(r.n,r.z,r.c,r.v),!0}function xi(e,t){let n=e.conditionHolds(t.fpCond)?t.rn:t.rm;return e.vSetBytes(t.rd,A(O(e.vGetBytes(n)))),!0}function Si(e,t){let n=t.sf===1?64:32,r=t.fpRmode,i=t.fpConvOp,a=r===0?`nearest`:r===1?`plus`:r===2?`minus`:`zero`;switch(i){case 0:{let r=O(e.vGetBytes(t.rn));return e.gprWrite(t.rd,BigInt.asUintN(64,yt(r,a,!0,n))),!0}case 1:{let r=O(e.vGetBytes(t.rn));return e.gprWrite(t.rd,BigInt.asUintN(64,yt(r,a,!1,n))),!0}case 2:{let r=e.gprRead(t.rn);return e.vSetBytes(t.rd,A(Ft(r,!0,n))),!0}case 3:{let r=e.gprRead(t.rn);return e.vSetBytes(t.rd,A(Ft(r,!1,n))),!0}default:return!1}}function Ci(e,t,n){let r=E(e.vGetBytes(t.rn),n),i=E(e.vGetBytes(t.rm),n),a;switch(t.fpOp2Src){case 0:a=nt(r,i,n);break;case 1:a=rt(r,i,n);break;case 2:a=et(r,i,n);break;case 3:a=tt(r,i,n);break;case 4:a=at(r,i,n);break;case 5:a=ot(r,i,n);break;case 8:a=it(r,i,n);break;default:return!1}return e.vSetBytes(t.rd,D(a,n)),!0}function wi(e,t,n){let r=t.insn>>>13&255,i=r>>>7&1,a=r>>>6&1,o=r&63;if(n){let n=+!a,r=i<<10|n<<9|n<<8|n<<7|n<<6|n<<5|n<<4|n<<3|a<<2|o>>>4,s=(o&15)<<48,c=BigInt(i)<<63n|BigInt(r)<<52n|BigInt(s),l=new DataView(new ArrayBuffer(8));l.setBigUint64(0,c,!0);let u=l.getFloat64(0,!0);e.vSetBytes(t.rd,D(u,!0))}else{let n=+!a,r=o>>>5&1,s=o&31,c=i<<7|n<<6|n<<5|n<<4|n<<3|n<<2|n<<1|r,l=s<<18,u=i<<31|c<<23|l,d=new DataView(new ArrayBuffer(4));d.setUint32(0,u>>>0,!0);let f=d.getFloat32(0,!0);e.vSetBytes(t.rd,D(f,!1))}return!0}function Ti(e,t,n){let r=E(e.vGetBytes(t.rn),n);switch(t.fpOp1Src){case 0:return e.vSetBytes(t.rd,D(r,n)),!0;case 1:return e.vSetBytes(t.rd,D(st(r,n),n)),!0;case 2:return e.vSetBytes(t.rd,D(ct(r,n),n)),!0;case 3:return e.vSetBytes(t.rd,D(lt(r,n),n)),!0;case 4:{let n=xt(r,!1);return e.vSetBytes(t.rd,D(n,!1)),!0}case 5:{let n=xt(r,!0);return e.vSetBytes(t.rd,D(n,!0)),!0}case 6:return e.vSetBytes(t.rd,D(ut(r,n),n)),!0;case 7:return e.vSetBytes(t.rd,D(dt(r,n),n)),!0;case 8:return e.vSetBytes(t.rd,D(ft(r,n),n)),!0;case 9:return e.vSetBytes(t.rd,D(pt(r,n),n)),!0;case 10:return e.vSetBytes(t.rd,D(mt(r,n),n)),!0;case 14:return e.vSetBytes(t.rd,D(gt(r,n),n)),!0;case 15:return e.vSetBytes(t.rd,D(ht(r,n),n)),!0;default:return!1}}function Ei(e,t,n){let r=t.insn&31,i=_t(E(e.vGetBytes(t.rn),n),r&8?0:E(e.vGetBytes(t.rm),n));return e.setNZCV(i.n,i.z,i.c,i.v),!0}function Di(e,t,n){let r=e.conditionHolds(t.fpCond)?t.rn:t.rm;return e.vSetBytes(t.rd,D(E(e.vGetBytes(r),n),n)),!0}function Oi(e,t,n){let r=t.sf===1?64:32,i=t.fpRmode,a=t.fpConvOp,o=i===0?`nearest`:i===1?`plus`:i===2?`minus`:`zero`;switch(a){case 0:{let i=E(e.vGetBytes(t.rn),n);return e.gprWrite(t.rd,BigInt.asUintN(64,yt(i,o,!0,r))),!0}case 1:{let i=E(e.vGetBytes(t.rn),n);return e.gprWrite(t.rd,BigInt.asUintN(64,yt(i,o,!1,r))),!0}case 2:{let i=e.gprRead(t.rn);return e.vSetBytes(t.rd,D(bt(i,!0,r,n),n)),!0}case 3:{let i=e.gprRead(t.rn);return e.vSetBytes(t.rd,D(bt(i,!1,r,n),n)),!0}case 6:{let r=e.vGetBytes(t.rn),i=new DataView(r.buffer,r.byteOffset,16);return e.gprWrite(t.rd,n?i.getBigUint64(0,!0):BigInt(i.getUint32(0,!0))),!0}case 7:{let r=e.gprRead(t.rn),i=new Uint8Array(16),a=new DataView(i.buffer);return n?a.setBigUint64(0,BigInt.asUintN(64,r),!0):a.setUint32(0,Number(BigInt.asUintN(32,r)),!0),e.vSetBytes(t.rd,i),!0}default:return!1}}function ki(e,t){let{rd:n,rn:r,rm:i,size:a,q:o,u:s}=t,c=e.vGetBytes(r),l=e.vGetBytes(i);switch(t.neonOpcode){case 1:{let t=new Uint8Array(16);return s===0?lr(t,c,l,a,o,e):ur(t,c,l,a,o,e),e.vSetBytes(n,t),!0}case 5:{let t=new Uint8Array(16);return s===0?dr(t,c,l,a,o,e):fr(t,c,l,a,o,e),e.vSetBytes(n,t),!0}case 9:{let t=new Uint8Array(16);return s===0?hr(t,c,l,a,o,e):gr(t,c,l,a,o,e),e.vSetBytes(n,t),!0}case 11:{let t=new Uint8Array(16);return s===0?vr(t,c,l,a,o,e):yr(t,c,l,a,o,e),e.vSetBytes(n,t),!0}case 3:{if(s===0)switch(a){case 0:return e.vSetBytes(n,yn(c,l,o)),!0;case 1:return e.vSetBytes(n,Sn(c,l,o)),!0;case 2:return e.vSetBytes(n,bn(c,l,o)),!0;default:return e.vSetBytes(n,Cn(c,l,o)),!0}let t=e.vGetBytes(n);return a===0?(e.vSetBytes(n,xn(c,l,o)),!0):a===1?(e.vSetBytes(n,wn(t,c,l,o)),!0):a===2?(e.vSetBytes(n,Tn(t,c,l,o)),!0):a===3?(e.vSetBytes(n,En(t,c,l,o)),!0):!1}case 16:return e.vSetBytes(n,s===0?hn(c,l,a,o):gn(c,l,a,o)),!0;case 19:return s===0?(e.vSetBytes(n,_n(c,l,a,o)),!0):s===1&&a===0?(e.vSetBytes(n,vn(c,l,o)),!0):!1;case 6:return e.vSetBytes(n,s===0?An(c,l,a,o):Mn(c,l,a,o)),!0;case 7:return e.vSetBytes(n,s===0?jn(c,l,a,o):Nn(c,l,a,o)),!0;case 17:return e.vSetBytes(n,s===0?Pn(c,l,a,o):kn(c,l,a,o)),!0;case 12:return(t.insn>>>23&1)==1?s===0?Ai(e,t,at):!1:(e.vSetBytes(n,s===0?Fn(c,l,a,o):Ln(c,l,a,o)),!0);case 13:return(t.insn>>>23&1)==1?s===0?Ai(e,t,ot):!1:(e.vSetBytes(n,s===0?In(c,l,a,o):Rn(c,l,a,o)),!0);case 26:return Ai(e,t,s===0?et:tt);case 27:return s===0?Ai(e,t,nt):!1;case 31:return s===0?Ai(e,t,rt):!1;case 28:return s===0?ji(e,t,(e,t)=>e===t):(t.insn>>>23&1)==1?ji(e,t,(e,t)=>e>=t):ji(e,t,(e,t)=>e>t);default:return!1}}function Ai(e,t,n){let r=(t.size&1)==1,i=r?8:4,a=t.q===1?16/i:8/i,o=e.vGetBytes(t.rn),s=e.vGetBytes(t.rm),c=new Uint8Array(16),l=new DataView(c.buffer),u=new DataView(o.buffer,o.byteOffset,16),d=new DataView(s.buffer,s.byteOffset,16);for(let e=0;e<a;e++){let t=e*i,a=n(r?u.getFloat64(t,!0):u.getFloat32(t,!0),r?d.getFloat64(t,!0):d.getFloat32(t,!0),r);r?l.setFloat64(t,a,!0):l.setFloat32(t,a,!0)}return e.vSetBytes(t.rd,c),!0}function ji(e,t,n){let r=(t.size&1)==1,i=r?8:4,a=t.q===1?16/i:8/i,o=e.vGetBytes(t.rn),s=e.vGetBytes(t.rm),c=new Uint8Array(16),l=new DataView(o.buffer,o.byteOffset,16),u=new DataView(s.buffer,s.byteOffset,16);for(let e=0;e<a;e++){let t=e*i,a=n(r?l.getFloat64(t,!0):l.getFloat32(t,!0),r?u.getFloat64(t,!0):u.getFloat32(t,!0))?255:0;for(let e=0;e<i;e++)c[t+e]=a}return e.vSetBytes(t.rd,c),!0}function Mi(e,t){let{rd:n,rn:r,rm:i,size:a,q:o,u:s}=t,c=e.vGetBytes(r),l=e.vGetBytes(i);switch(t.op15_12){case 0:return e.vSetBytes(n,s===0?Lt(c,l,a,o):Rt(c,l,a,o)),!0;case 2:return e.vSetBytes(n,s===0?zt(c,l,a,o):Bt(c,l,a,o)),!0;case 1:return e.vSetBytes(n,s===0?Vt(c,l,a,o):Ht(c,l,a,o)),!0;case 3:return e.vSetBytes(n,s===0?Ut(c,l,a,o):Wt(c,l,a,o)),!0;case 12:return e.vSetBytes(n,s===0?Gt(c,l,a,o):Kt(c,l,a,o)),!0;case 8:return e.vSetBytes(n,s===0?qt(e.vGetBytes(n),c,l,a,o):Jt(e.vGetBytes(n),c,l,a,o)),!0;case 10:return e.vSetBytes(n,s===0?Yt(e.vGetBytes(n),c,l,a,o):Xt(e.vGetBytes(n),c,l,a,o)),!0;case 11:return s===0?(e.vSetBytes(n,sn(c,l,a,o)),!0):!1;case 9:return s===0?(e.vSetBytes(n,cn(e.vGetBytes(n),c,l,a,o)),!0):!1;case 7:return s===0?(e.vSetBytes(n,ln(e.vGetBytes(n),c,l,a,o)),!0):!1;case 4:return e.vSetBytes(n,s===0?tn(c,l,a,o):rn(c,l,a,o)),!0;case 6:return e.vSetBytes(n,s===0?nn(c,l,a,o):an(c,l,a,o)),!0;case 5:return e.vSetBytes(n,s===0?un(e.vGetBytes(n),c,l,a,o):dn(e.vGetBytes(n),c,l,a,o)),!0;case 13:return e.vSetBytes(n,s===0?fn(c,l,a,o):pn(c,l,a,o)),!0;case 14:return s===1&&a===0?(e.vSetBytes(n,mn(c,l,a,o)),!0):!1;default:return!1}}function Ni(e,t){let{rd:n,rn:r,size:i,q:a,u:o}=t,s=e.vGetBytes(r);switch(t.neonOp16_12){case 0:return e.vSetBytes(n,Gn(s,8,a)),!0;case 1:return e.vSetBytes(n,Gn(s,2,a)),!0;case 3:{let t=e.vGetBytes(n);return o===0?pr(t,s,i,a,e):mr(t,s,i,a,e),e.vSetBytes(n,t),!0}case 2:return o===0?(e.vSetBytes(n,Zt(s,i,a)),!0):(e.vSetBytes(n,Qt(s,i,a)),!0);case 4:return e.vSetBytes(n,Un(s,i,a)),!0;case 5:return e.vSetBytes(n,o===0?Hn(s,a):Vn(s,a)),!0;case 7:{let t=new Uint8Array(16);return o===0?kr(t,s,i,a,e):Ar(t,s,i,a,e),e.vSetBytes(n,t),!0}case 11:return e.vSetBytes(n,o===0?Bn(s,i,a):zn(s,i,a)),!0;case 9:return o===0?(e.vSetBytes(n,Wn(s,i,a)),!0):!1;case 18:if(o===1){let t=a===1?e.vGetBytes(n):new Uint8Array(16);return Sr(t,s,i,a,e),e.vSetBytes(n,t),!0}return!1;case 20:{let t=a===1?e.vGetBytes(n):new Uint8Array(16);return o===0?br(t,s,i,a,e):xr(t,s,i,a,e),e.vSetBytes(n,t),!0}default:return!1}}function Pi(e,t){let{rd:n,rn:r,size:i,q:a,u:o}=t,s=e.vGetBytes(r);switch(t.neonOp16_12){case 27:return e.vSetBytes(n,Qn(s,i,a)),!0;case 10:return e.vSetBytes(n,o===0?$n(s,i,a):tr(s,i,a)),!0;case 26:return e.vSetBytes(n,o===0?er(s,i,a):nr(s,i,a)),!0;default:return!1}}function Fi(e){return(e&1)==1?{size:0,index:e>>1}:(e&3)==2?{size:1,index:e>>2}:(e&7)==4?{size:2,index:e>>3}:(e&15)==8?{size:3,index:e>>4}:null}function Ii(e,t){let n=Fi(t.imm5);if(!n)return!1;let{size:r,index:i}=n;if(t.op29===0&&t.imm4===0)return e.vSetBytes(t.rd,Kn(e.vGetBytes(t.rn),r,i,t.q)),!0;if(t.op29===0&&t.imm4===1)return e.vSetBytes(t.rd,qn(e.gprRead(t.rn),r,t.q)),!0;if(t.op29===0&&t.imm4===3){let n=e.vGetBytes(t.rd),a=1<<r,o=i*a,s=BigInt.asUintN(8*a,e.gprRead(t.rn));for(let e=0;e<a;e++)n[o+e]=Number(BigInt.asUintN(8,s)),s>>=8n;return e.vSetBytes(t.rd,n),!0}return!1}function Li(e,t,n){if(t.size!==0)return!1;let r=n>>>7&1,i=n>>>6&1,a=n&63,o=+!i,s=a>>>5&1,c=a&31,l=r<<7|o<<6|o<<5|o<<4|o<<3|o<<2|o<<1|s,u=c<<18,d=(r<<31|l<<23|u)>>>0,f=new DataView(new ArrayBuffer(4));f.setUint32(0,d,!0),f.getFloat32(0,!0);let p=new Uint8Array(16),m=new DataView(p.buffer),h=t.q===1?4:2;for(let e=0;e<h;e++)m.setUint32(e*4,d,!0);return e.vSetBytes(t.rd,p),!0}function Ri(e,t){let n=t.insn>>>16&7,r=t.insn>>>5&31,i=n<<5|r,a=t.cmode,o=t.op29;if(a===15&&o===0)return Li(e,t,i);let s=cr(o,a,i),c=e=>Array.from({length:t.q===1?2:1},()=>e),l=a&1;if(o===0&&l===0)return e.vSetBytes(t.rd,z(c(s),3)),!0;if(o===1&&l===0)return e.vSetBytes(t.rd,z(c(~s&18446744073709551615n),3)),!0;let u=e.vGetBytes(t.rd),d=new DataView(u.buffer,u.byteOffset,16),f=new Uint8Array(16),p=new DataView(f.buffer),m=e=>o===0?e|s:e&~s&18446744073709551615n;return p.setBigUint64(0,m(d.getBigUint64(0,!0)),!0),t.q===1&&p.setBigUint64(8,m(d.getBigUint64(8,!0)),!0),e.vSetBytes(t.rd,f),!0}function zi(e){return e&8?3:e&4?2:e&2?1:0}function Bi(e,t){let n=zi(t.immh),r=8<<n,i=t.immh<<3|t.immb,a=e.vGetBytes(t.rn);switch(t.insn>>>11&31){case 10:{let o=i-r;return e.vSetBytes(t.rd,Jn(a,n,o,t.q)),!0}case 0:{let o=2*r-i;return e.vSetBytes(t.rd,t.u===0?Xn(a,n,o,t.q):Yn(a,n,o,t.q)),!0}case 12:if(t.u===1){let o=i-r,s=new Uint8Array(16);return _r(s,a,o,n,t.q,e),e.vSetBytes(t.rd,s),!0}return!1;case 16:if(t.u===1){let o=2*r-i,s=t.q===1?e.vGetBytes(t.rd):new Uint8Array(16);return Dr(s,a,o,n,t.q,e),e.vSetBytes(t.rd,s),!0}return!1;case 17:if(t.u===1){let o=2*r-i,s=t.q===1?e.vGetBytes(t.rd):new Uint8Array(16);return Or(s,a,o,n,t.q,e),e.vSetBytes(t.rd,s),!0}return!1;case 18:{let o=2*r-i,s=t.q===1?e.vGetBytes(t.rd):new Uint8Array(16);return t.u===0?Cr(s,a,o,n,t.q,e):wr(s,a,o,n,t.q,e),e.vSetBytes(t.rd,s),!0}case 19:{let o=2*r-i,s=t.q===1?e.vGetBytes(t.rd):new Uint8Array(16);return t.u===0?Tr(s,a,o,n,t.q,e):Er(s,a,o,n,t.q,e),e.vSetBytes(t.rd,s),!0}case 20:{let o=i-r;return e.vSetBytes(t.rd,t.u===0?$t(a,o,n,t.q):en(a,o,n,t.q)),!0}default:return!1}}function Vi(e,t){return e.vSetBytes(t.rd,or(e.vGetBytes(t.rn),e.vGetBytes(t.rm),t.imm4,t.q)),!0}function Hi(e,t){let{rd:n,rn:r,rm:i,size:a,q:o}=t,s=e.vGetBytes(r),c=e.vGetBytes(i);switch(t.neonOp14_12){case 1:return e.vSetBytes(n,ir(s,c,a,o,0)),!0;case 5:return e.vSetBytes(n,ir(s,c,a,o,1)),!0;case 2:return e.vSetBytes(n,ar(s,c,a,o,0)),!0;case 6:return e.vSetBytes(n,ar(s,c,a,o,1)),!0;case 3:return e.vSetBytes(n,rr(s,c,a,o,0)),!0;case 7:return e.vSetBytes(n,rr(s,c,a,o,1)),!0;default:return!1}}function Ui(e,t){let n=t.len+1,r=new Uint8Array(n*16);for(let i=0;i<n;i++){let n=(t.rn+i)%32;r.set(e.vGetBytes(n).subarray(0,16),i*16)}return e.vSetBytes(t.rd,sr(r,e.vGetBytes(t.rm),t.q,e.vGetBytes(t.rd),t.tbx===1)),!0}const Wi=(1n<<64n)-1n,Gi=(1n<<32n)-1n;function Ki(e,t){let n=BigInt(t),r=1n<<n-1n,i=e&(1n<<n)-1n;return i&r?i-(1n<<n):i}function qi(e,t,n,r){let i=e<<6|~n&63,a=-1;for(let e=6;e>=0;e--)if(i>>e&1){a=e;break}if(a<1)throw Error(`Reserved logical-immediate encoding (N=${e}, imms=0x${n.toString(16)})`);let o=1<<a,s=o-1,c=n&s,l=t&s;if(c===s)throw Error(`Reserved logical-immediate encoding (imms all-ones)`);let u=BigInt(o),d=(1n<<BigInt(c+1))-1n,f=BigInt(l),p=(d>>f|d<<u-f)&(1n<<u)-1n,m=r===1?64:32,h=0n;for(let e=0;e<m;e+=o)h|=p<<BigInt(e);return h&(r===1?Wi:Gi)}function Ji(e,t){let n=0n,r=e;for(let e=0;e<t;e++)n=n<<1n|r&1n,r>>=1n;return n}function Yi(e,t,n){let r=t/8,i=[],a=e;for(let e=0;e<r;e++)i.push(a&255n),a>>=8n;let o=0n;for(let e=0;e<r;e+=n)for(let t=0;t<n;t++){let r=i[e+n-1-t]??0n;o|=r<<BigInt((e+t)*8)}return o}function Xi(e,t){for(let n=t-1;n>=0;n--)if(e>>BigInt(n)&1n)return t-1-n;return t}const Zi=(1n<<64n)-1n,Qi=(1n<<32n)-1n;function $i(e,t,n,r){if(n===0)return e;let i=r===1?Zi:Qi,a=r===1?64n:32n,o=BigInt(n);switch(t){case 0:return e<<o&i;case 1:return(e&i)>>o;case 2:{let t=1n<<a-1n;return(e&i&t?(e&i)-(1n<<a):e&i)>>o&i}case 3:{let t=e&i,n=o%a;return(t>>n|t<<a-n)&i}default:throw Error(`Unsupported shift type ${t}`)}}function ea(e,t,n,r){let i=r===1?Zi:Qi,a;switch(t){case 0:a=e&255n;break;case 1:a=e&65535n;break;case 2:a=e&4294967295n;break;case 3:a=e&Zi;break;case 4:a=BigInt.asUintN(64,Ki(e,8));break;case 5:a=BigInt.asUintN(64,Ki(e,16));break;case 6:a=BigInt.asUintN(64,Ki(e,32));break;default:a=e&Zi;break}return a<<BigInt(n)&i}var ta=class{gpr=Array.from({length:31},()=>0n);_sp=0n;_pc=0;flagN=!1;flagZ=!1;flagC=!1;flagV=!1;vreg=Array.from({length:32},()=>new Uint8Array(16));vview=this.vreg.map(e=>new DataView(e.buffer));readGpr(e){return e===31?0n:this.gpr[e]??0n}writeGpr(e,t){e!==31&&(this.gpr[e]=BigInt.asUintN(64,t))}readGprSp(e){return e===31?this._sp:this.gpr[e]??0n}writeGprSp(e,t){if(e===31){this._sp=BigInt.asUintN(64,t);return}this.gpr[e]=BigInt.asUintN(64,t)}writeNamed(e,t){let n=e.toLowerCase();if(n===`sp`){this._sp=t;return}if(n===`pc`){this._pc=Number(t);return}n!==`xzr`&&(this.gpr[this.gprIndex(n)]=t)}readNamed(e){let t=e.toLowerCase();return t===`sp`?this._sp:t===`pc`?BigInt(this._pc):t===`xzr`?0n:this.gpr[this.gprIndex(t)]??0n}gprIndex(e){let t=/^x(\d{1,2})$/.exec(e),n=t?Number(t[1]):NaN;if(!Number.isInteger(n)||n<0||n>=31)throw Error(`Unknown register: "${e}"`);return n}get sp(){return this._sp}set sp(e){this._sp=BigInt.asUintN(64,e)}get pc(){return this._pc}set pc(e){this._pc=e}setFlags(e,t,n,r){this.flagN=e,this.flagZ=t,this.flagC=n,this.flagV=r}getFlags(){return{n:this.flagN,z:this.flagZ,c:this.flagC,v:this.flagV}}get n(){return this.flagN}set n(e){this.flagN=e}get z(){return this.flagZ}set z(e){this.flagZ=e}get c(){return this.flagC}set c(e){this.flagC=e}get v(){return this.flagV}set v(e){this.flagV=e}readVectorAlias(e){let t=/^([vqdshb])(\d{1,2})$/i.exec(e);if(!t)throw Error(`Unknown vector register: "${e}" (expected vN/qN/dN/sN/hN/bN)`);let n=t[1].toLowerCase(),r=Number(t[2]);if(!Number.isInteger(r)||r<0||r>=32)throw Error(`Vector register index out of range: "${e}"`);let i=n===`b`?1:n===`h`?2:n===`s`?4:n===`d`?8:16,a=this.vreg[r]??new Uint8Array(16),o=``;for(let e=0;e<i;e++)o+=a[e].toString(16).padStart(2,`0`);return o}writeVector(e,t){if(e<0||e>=32)throw Error(`Vector register index out of range: ${e}`);this.vreg[e].set(t.subarray(0,16))}getVectorView(e){if(e<0||e>=32)throw Error(`Vector register index out of range: ${e}`);return this.vview[e]}getVectorBytes(e){if(e<0||e>=32)throw Error(`Vector register index out of range: ${e}`);return this.vreg[e]}},na=class{regions=[];regionsByBase=[];lastRegion;regionFastPathSafe=!0;symbols=new Map;mapMemory(e,t){this.addRegion({base:e,size:t,data:new Uint8Array(t)})}writeCode(e,t){let n=this.findRegion(e,t.length);n.data.set(t,e-n.base)}addRegion(e){this.regionFastPathSafe&&this.regions.some(t=>ra(t,e.base,e.size))&&(this.regionFastPathSafe=!1,this.lastRegion=void 0,this.regionsByBase.length=0),this.regions.push(e),this.regionFastPathSafe&&ia(this.regionsByBase,e)}findRegion(e,t){let n=this.lastRegion;if(this.regionFastPathSafe&&n&&e>=n.base&&e+t<=n.base+n.size)return n;if(this.regionFastPathSafe){let n=aa(this.regionsByBase,e,t);if(n)return this.lastRegion=n,n}for(let n of this.regions)if(e>=n.base&&e+t<=n.base+n.size)return this.regionFastPathSafe&&(this.lastRegion=n),n;throw Error(`Unmapped memory access at 0x${e.toString(16)} (len ${t})`)}loadValue(e,t){let n=this.findRegion(e,t),r=n.data,i=e-n.base,a=0n;for(let e=0;e<t;e++)a|=BigInt(r[i++])<<BigInt(e*8);return a}storeValue(e,t,n){let r=this.findRegion(e,t),i=r.data,a=e-r.base,o=n;for(let e=0;e<t;e++)i[a++]=Number(o&255n),o>>=8n}readMemory(e,t){let n=this.findRegion(e,t),r=e-n.base;return n.data.slice(r,r+t)}writeMemory(e,t){let n=this.findRegion(e,t.length),r=e-n.base;n.data.set(t,r)}addSymbol(e,t){this.symbols.set(e,t)}findSymbol(e){return this.symbols.get(e)}hasSymbol(e){return this.symbols.has(e)}getSymbolNames(){return[...this.symbols.keys()]}clearSymbols(){this.symbols.clear()}dumpMemory(e,t){let n=this.readMemory(e,t);return Array.from(n).map(e=>e.toString(16).padStart(2,`0`)).join(``)}};function ra(e,t,n){return t<e.base+e.size&&e.base<t+n}function ia(e,t){let n=e.findIndex(e=>e.base>t.base);n===-1?e.push(t):e.splice(n,0,t)}function aa(e,t,n){let r=0,i=e.length-1;for(;r<=i;){let a=r+i>>>1,o=e[a];if(t>=o.base&&t+n<=o.base+o.size)return o;t<o.base?i=a-1:r=a+1}}const oa=11754943508222875e-54,sa=22250738585072014e-324,ca=NaN,la=NaN;function ua(e,t){return Object.is(e,t)||Number.isNaN(e)||Number.isNaN(t)?!1:e!==t}function da(e,t){return e===0||Object.is(e,-0)||!Number.isFinite(e)?!1:Math.abs(e)<(t?oa:sa)}function fa(e,t){if(!Number.isFinite(e)||e===0)return e;switch(t){case 0:return pa(e);case 1:return Math.ceil(e);case 2:return Math.floor(e);case 3:return Math.trunc(e)}}function pa(e){let t=Math.floor(e),n=e-t;return n<.5?t:n>.5?t+1:Math.abs(t)<=2**53-1?t&1?t+1:t:t%2==0?t:t+1}var ma=class{fpsr=0;fpcr=0;fastPath=!0;pendingFlags=0;getFPSR(){return this.pendingFlags!==0&&(this.fpsr|=this.pendingFlags,this.pendingFlags=0),this.fpsr}setFPSR(e){this.fpsr=e,this.pendingFlags=0}getFPCR(){return this.fpcr}setFPCR(e){this.fpcr=e,this.fastPath=e===0}buildFlags(e){return{ioc:e.ioc??!1,dzc:e.dzc??!1,ofc:e.ofc??!1,ufc:e.ufc??!1,ixc:e.ixc??!1,idc:e.idc??!1}}checkAndSetFlags(e){let t=0;if(e.ioc&&(t|=1),e.dzc&&(t|=2),e.ofc&&(t|=4),e.ufc&&(t|=8),e.ixc&&(t|=16),e.idc&&(t|=128),t!==0&&(this.fpsr|=t,this.fpcr&40704)){if(e.ioc&&this.fpcr&256)throw Error(`FP Invalid Operation`);if(e.dzc&&this.fpcr&512)throw Error(`FP Divide by Zero`);if(e.ofc&&this.fpcr&1024)throw Error(`FP Overflow`);if(e.ufc&&this.fpcr&2048)throw Error(`FP Underflow`);if(e.ixc&&this.fpcr&4096)throw Error(`FP Inexact`);if(e.idc&&this.fpcr&32768)throw Error(`FP Input Denormal`)}}getRoundingMode(){return this.fpcr>>22&3}isFlushToZero(){return(this.fpcr&1<<24)!=0}handleInputDenormal(e,t){return this.isFlushToZero()&&da(e,t)?[Object.is(e,-0)||e<0?-0:0,!0]:[e,!1]}handleNaN(e){return e?ca:la}fadd(e,t,n=!1){let r=e+t;if(n&&(r=Math.fround(r)),this.fastPath)return Number.isNaN(r)&&(this.fpsr|=1),r;let i=e,a=t,o=0;if(this.isFlushToZero()){let r=n?oa:sa;e!==0&&Math.abs(e)<r&&Number.isFinite(e)&&(i=Object.is(e,-0)||e<0?-0:0,o|=128),t!==0&&Math.abs(t)<r&&Number.isFinite(t)&&(a=Object.is(t,-0)||t<0?-0:0,o|=128)}if((i!==e||a!==t)&&(r=i+a,n&&(r=Math.fround(r))),Number.isNaN(r)&&!Number.isNaN(i)&&!Number.isNaN(a)?!Number.isFinite(i)&&!Number.isFinite(a)&&(i>0&&a<0||i<0&&a>0)&&(o|=1):(Number.isNaN(i)||Number.isNaN(a))&&(o|=1),o!==0){this.fpsr|=o;let e=this.fpcr>>8&63;if(o&e){if(o&1)throw Error(`FP Invalid Operation`);if(o&128)throw Error(`FP Input Denormal`)}}return o&1?n?ca:la:r}fsub(e,t,n=!1){let r=e-t;if(n&&(r=Math.fround(r)),this.fastPath)return Number.isNaN(r)&&(this.fpsr|=1),r;let i=e,a=t,o=0;if(this.isFlushToZero()){let r=n?oa:sa;e!==0&&Math.abs(e)<r&&Number.isFinite(e)&&(i=Object.is(e,-0)||e<0?-0:0,o|=128),t!==0&&Math.abs(t)<r&&Number.isFinite(t)&&(a=Object.is(t,-0)||t<0?-0:0,o|=128)}if((i!==e||a!==t)&&(r=i-a,n&&(r=Math.fround(r))),Number.isNaN(r)&&!Number.isNaN(i)&&!Number.isNaN(a)?!Number.isFinite(i)&&!Number.isFinite(a)&&(i>0&&a>0||i<0&&a<0)&&(o|=1):(Number.isNaN(i)||Number.isNaN(a))&&(o|=1),o!==0){this.fpsr|=o;let e=this.fpcr>>8&63;if(o&e){if(o&1)throw Error(`FP Invalid Operation`);if(o&128)throw Error(`FP Input Denormal`)}}return o&1?n?ca:la:r}fmul(e,t,n=!1){let r=e*t;if(n&&(r=Math.fround(r)),this.fastPath)return Number.isNaN(r)?this.fpsr|=1:Number.isFinite(r)?r!==0&&!Object.is(r,-0)&&Math.abs(r)<(n?11754943508222875e-54:22250738585072014e-324)&&(this.fpsr|=8):this.fpsr|=4,r;let i=e,a=t,o=0;if(this.isFlushToZero()){let r=n?oa:sa;e!==0&&Math.abs(e)<r&&Number.isFinite(e)&&(i=Object.is(e,-0)||e<0?-0:0,o|=128),t!==0&&Math.abs(t)<r&&Number.isFinite(t)&&(a=Object.is(t,-0)||t<0?-0:0,o|=128)}if((i!==e||a!==t)&&(r=i*a,n&&(r=Math.fround(r))),Number.isNaN(r))if(!Number.isNaN(i)&&!Number.isNaN(a)){let e=i===0||Object.is(i,-0),t=a===0||Object.is(a,-0);(e&&!Number.isFinite(a)||!Number.isFinite(i)&&t)&&(o|=1)}else o|=1;if(!Number.isNaN(r)&&!Number.isFinite(r)&&Number.isFinite(i)&&Number.isFinite(a)&&(o|=4),r!==0&&!Object.is(r,-0)&&Number.isFinite(r)&&Math.abs(r)<(n?11754943508222875e-54:22250738585072014e-324)&&(o|=8),o!==0){this.fpsr|=o;let e=this.fpcr>>8&63;if(o&e){if(o&1)throw Error(`FP Invalid Operation`);if(o&4)throw Error(`FP Overflow`);if(o&8)throw Error(`FP Underflow`);if(o&128)throw Error(`FP Input Denormal`)}}if(o&1)return n?ca:la;if(o&4){let e=Math.sign(i*a);if(this.getRoundingMode()===3){let t=n?34028234663852886e22:17976931348623157e292,r=e<0?-t:t;return n?Math.fround(r):r}return e<0?-1/0:1/0}return o&8&&this.isFlushToZero()?Object.is(r,-0)||r<0?-0:0:r}fdiv(e,t,n=!1){let r=e/t;if(n&&(r=Math.fround(r)),this.fastPath){if(Number.isNaN(r))this.fpsr|=1;else if(!Number.isFinite(r))this.fpsr|=2;else if(r!==0&&Number.isFinite(r)){let e=Math.log2(Math.abs(t));Number.isInteger(e)||(this.fpsr|=16)}return r}let i=e,a=t,o=0;if(this.isFlushToZero()){let r=n?oa:sa;e!==0&&Math.abs(e)<r&&Number.isFinite(e)&&(i=Object.is(e,-0)||e<0?-0:0,o|=128),t!==0&&Math.abs(t)<r&&Number.isFinite(t)&&(a=Object.is(t,-0)||t<0?-0:0,o|=128)}if((i!==e||a!==t)&&(r=i/a,n&&(r=Math.fround(r))),a===0||Object.is(a,-0)?i===0||Object.is(i,-0)||Number.isNaN(i)?(o|=1,r=NaN):(o|=2,r=(i<0||Object.is(i,-0)?-1:1)*(Object.is(a,-0)?-1:1)>0?1/0:-1/0):Number.isNaN(r)&&(!Number.isNaN(i)&&!Number.isNaN(a)?!Number.isFinite(i)&&!Number.isFinite(a)&&(o|=1):o|=1),!(o&3)&&r!==0&&Number.isFinite(r)){let e=Math.log2(Math.abs(a));Number.isInteger(e)||(o|=16)}if(o!==0){this.fpsr|=o;let e=this.fpcr>>8&63;if(o&e){if(o&1)throw Error(`FP Invalid Operation`);if(o&2)throw Error(`FP Divide by Zero`);if(o&16)throw Error(`FP Inexact`);if(o&128)throw Error(`FP Input Denormal`)}}return o&1?n?ca:la:r}fsqrt(e,t=!1){let n=Math.sqrt(e);if(t&&(n=Math.fround(n)),this.fastPath)return Number.isNaN(n)?this.fpsr|=1:n!==0&&Number.isFinite(n)&&(!Number.isInteger(n)||n*n!==e)&&(this.fpsr|=16),n;let r=e,i=0;if(this.isFlushToZero()&&e!==0&&Math.abs(e)<(t?11754943508222875e-54:22250738585072014e-324)&&Number.isFinite(e)&&(r=Object.is(e,-0)||e<0?-0:0,i|=32),r!==e&&(n=Math.sqrt(r),t&&(n=Math.fround(n))),Number.isNaN(n)&&(r<0&&!Object.is(r,-0)||Number.isNaN(r))&&(i|=1),!(i&1)&&n!==0&&Number.isFinite(n)&&(Number.isInteger(n)?n*n!==r&&(i|=16):i|=16),i!==0){this.fpsr|=i;let e=this.fpcr>>8&63;if(i&e){if(i&1)throw Error(`FP Invalid Operation`);if(i&16)throw Error(`FP Inexact`);if(i&128)throw Error(`FP Input Denormal`)}}return i&1?t?ca:la:n}fabs(e,t=!1){let[n,r]=this.handleInputDenormal(e,t),i=Math.abs(n);return t&&(i=Math.fround(i)),r&&this.checkAndSetFlags(this.buildFlags({idc:!0})),i}fneg(e,t=!1){let[n,r]=this.handleInputDenormal(e,t),i=-n;return t&&(i=Math.fround(i)),r&&this.checkAndSetFlags(this.buildFlags({idc:!0})),i}fmax(e,t,n=!1){let[r,i]=this.handleInputDenormal(e,n),[a,o]=this.handleInputDenormal(t,n);if(Number.isNaN(r)||Number.isNaN(a))return(i||o)&&this.checkAndSetFlags(this.buildFlags({idc:!0})),this.handleNaN(n);if(r===0&&a===0){let e=Object.is(r,-0)?a:r;return n?Math.fround(e):e}let s=Math.max(r,a);return n&&(s=Math.fround(s)),(i||o)&&this.checkAndSetFlags(this.buildFlags({idc:!0})),s}fmin(e,t,n=!1){let[r,i]=this.handleInputDenormal(e,n),[a,o]=this.handleInputDenormal(t,n);if(Number.isNaN(r)||Number.isNaN(a))return(i||o)&&this.checkAndSetFlags(this.buildFlags({idc:!0})),this.handleNaN(n);if(r===0&&a===0){let e=Object.is(r,-0)?r:a;return n?Math.fround(e):e}let s=Math.min(r,a);return n&&(s=Math.fround(s)),(i||o)&&this.checkAndSetFlags(this.buildFlags({idc:!0})),s}frint(e,t,n=!1){let[r,i]=this.handleInputDenormal(e,n),a=fa(r,t===null?this.getRoundingMode():t),o=a;n&&(o=Math.fround(o));let s=this.buildFlags({ixc:ua(r,a),idc:i});return this.checkAndSetFlags(s),o}roundTiesToEven(e){return pa(e)}roundTowardPlusInf(e){return Math.ceil(e)}roundTowardMinusInf(e){return Math.floor(e)}roundTowardZero(e){return Math.trunc(e)}fmul32(e,t){return this.fmul(e,t,!0)}};function ha(e,t,n,r,i=0n){let a=r===1?64n:32n,o=(1n<<a)-1n,s=t&o,c=n&o,l=s+c+i,u=l&o,d=u>>a-1n==1n,f=u===0n,p=l>o,m=s>>a-1n&1n,h=c>>a-1n&1n,g=u>>a-1n&1n,_=m===h&&m!==g;return e.setFlags(d,f,p,_),u}function ga(e,t,n,r){let i=r===1?64n:32n,a=(1n<<i)-1n,o=t&a,s=n&a,c=o-s&a,l=c>>i-1n==1n,u=c===0n,d=o>=s,f=o>>i-1n&1n,p=s>>i-1n&1n,m=c>>i-1n&1n,h=f!==p&&f!==m;return e.setFlags(l,u,d,h),c}function _a(e,t){let n=e.n,r=e.z,i=e.c,a=e.v;switch(t>>1){case 0:return t&1?!r:r;case 1:return t&1?!i:i;case 2:return t&1?!n:n;case 3:return t&1?!a:a;case 4:return t&1?!(i&&!r):i&&!r;case 5:return t&1?n!==a:n===a;case 6:return t&1?!(!r&&n===a):!r&&n===a;default:return!0}}const va=(1n<<64n)-1n,ya=(1n<<32n)-1n;function ba(e,t){let n=t>>>29&3;if((t>>>24&31)==16){let n=t>>>31,r=t>>>29&3,i=t>>>5&524287,a=t&31,o=e.signExtend(BigInt(i<<2|r),21),s=n===1?BigInt(e.pc&-4096)+(o<<12n):BigInt(e.pc)+o;return e.writeGpr(a,BigInt.asUintN(64,s)),!0}if(n===0&&(t>>>23&63)==34){let n=t>>>31,r=t>>>22&1,i=t>>>10&4095;r===1&&(i<<=12);let a=t>>>5&31,o=t&31,s=e.readGprSp(a)+BigInt(i);return e.writeGprSp(o,n===1?BigInt.asUintN(64,s):BigInt.asUintN(32,s)),!0}if(n===1&&(t>>>23&63)==34){let n=t>>>31,r=t>>>22&1,i=t>>>10&4095;r===1&&(i<<=12);let a=t>>>5&31,o=t&31,s=e.addWithFlags(e.readGprSp(a),BigInt(i),n);return e.writeGpr(o,s),!0}if(n===2&&(t>>>23&63)==34){let n=t>>>31,r=t>>>22&1,i=t>>>10&4095;r===1&&(i<<=12);let a=t>>>5&31,o=t&31,s=e.readGprSp(a)-BigInt(i);return e.writeGprSp(o,n===1?BigInt.asUintN(64,s):BigInt.asUintN(32,s)),!0}if(n===0&&(t>>>23&63)==37){let n=t>>>31,r=t>>>21&3,i=t>>>5&65535,a=t&31,o=~(BigInt(i)<<BigInt(r*16));return e.writeGpr(a,n===1?BigInt.asUintN(64,o):BigInt.asUintN(32,o)),!0}if(n===2&&(t>>>23&63)==37){let n=t>>>31,r=t>>>21&3,i=t>>>5&65535,a=t&31,o=BigInt(i)<<BigInt(r*16);return e.writeGpr(a,n===1?BigInt.asUintN(64,o):BigInt.asUintN(32,o)),!0}if(n===3&&(t>>>23&63)==37){let n=t>>>31,r=t>>>21&3,i=t>>>5&65535,a=t&31,o=BigInt(r*16),s=e.readGpr(a)&~(65535n<<o)|BigInt(i)<<o;return e.writeGpr(a,n===1?BigInt.asUintN(64,s):BigInt.asUintN(32,s)),!0}if(n===3&&(t>>>23&63)==34){let n=t>>>31,r=t>>>22&1,i=t>>>10&4095;r===1&&(i<<=12);let a=t>>>5&31,o=t&31,s=e.subWithFlags(e.readGprSp(a),BigInt(i),n);return e.writeGpr(o,s),!0}if((t>>>23&63)==36){let n=t>>>31,r=t>>>29&3,i=t>>>22&1,a=t>>>16&63,o=t>>>10&63,s=t>>>5&31,c=t&31;if(n===0&&i===1)return!1;let l=e.decodeBitMask(i,a,o,n),u=e.readGpr(s),d;switch(r){case 0:case 3:d=u&l;break;case 1:d=u|l;break;default:d=u^l;break}if(d=n===1?BigInt.asUintN(64,d):BigInt.asUintN(32,d),r===3){let t=d>>(n===1?64n:32n)-1n==1n,r=d===0n;e.setFlags(t,r,!1,!1),e.writeGpr(c,d)}else e.writeGprSp(c,d);return!0}if((t>>>23&63)==38){let n=t>>>31,r=t>>>29&3;if(r===3)return!1;let i=t>>>16&63,a=t>>>10&63,o=t>>>5&31,s=t&31,c=n===1?64:32,l=e.readGpr(o)&(n===1?va:ya),u=i%c,d=a,f=BigInt(c),p,m;if(d>=u)m=d-u+1,p=l>>BigInt(u)&(1n<<BigInt(m))-1n;else{let e=(l>>BigInt(u)|l<<f-BigInt(u))&(n===1?va:ya);m=d+1,p=e&(1n<<BigInt(m))-1n}let h=(1n<<BigInt(m))-1n,g;return r===1?g=e.readGpr(s)&(n===1?va:ya)&~h|p:r===2?g=p:(g=e.signExtend(p,m),g=BigInt.asUintN(64,g)),e.writeGpr(s,n===1?BigInt.asUintN(64,g):BigInt.asUintN(32,g)),!0}if((t>>>23&63)==39){let n=t>>>31,r=t>>>16&31,i=t>>>10&63,a=t>>>5&31,o=t&31,s=n===1?64:32,c=e.readGpr(a)&(n===1?va:ya),l=e.readGpr(r)&(n===1?va:ya),u=(c<<BigInt(s)|l)>>BigInt(i)&(n===1?va:ya);return e.writeGpr(o,n===1?BigInt.asUintN(64,u):BigInt.asUintN(32,u)),!0}return!1}var xa=class extends Error{constructor(e){super(e),this.name=`NullIndirectCallError`}};function Sa(e,t,n){if(t===0)throw new xa(`NULL indirect call: ${n} to address 0 at pc=0x${e.pc.toString(16)} (likely an uninitialised function pointer)`)}function Ca(e){let t=e&67108863;return((t&33554432?-1:0)<<26|t)*4}function wa(e){let t=e>>>5&524287;return((t&262144?-1:0)<<19|t)*4}function Ta(e,t,n,r,i){if(t>>>26==5)return e.setPc(e.getPc()+Ca(t)),e.markBranched(),!0;if(t>>>26==37)return e.writeGpr(30,BigInt(e.getPc()+4)),e.setPc(e.getPc()+Ca(t)),e.markBranched(),!0;if((t&4294966303)>>>0==3596550144){let n=t>>>5&31;return e.setPc(Number(e.readGpr(n))),e.markBranched(),!0}if((t&4294966303)>>>0==3592355840){let n=t>>>5&31,r=Number(e.readGpr(n));return Sa(e,r,`BR`),e.setPc(r),e.markBranched(),!0}if((t&4294966303)>>>0==3594452992){let n=t>>>5&31,r=Number(e.readGpr(n));return Sa(e,r,`BLR`),e.writeGpr(30,BigInt(e.getPc()+4)),e.setPc(r),e.markBranched(),!0}if((t>>>25&63)==26){let n=t>>>31,r=t>>>24&1,i=t&31,a=(n===1?e.readGpr(i):BigInt.asUintN(32,e.readGpr(i)))===0n;return(r===0?a:!a)&&(e.setPc(e.getPc()+wa(t)),e.markBranched()),!0}if(t>>>24==84&&!(t>>>4&1)){let n=t&15;return e.conditionHolds(n)&&(e.setPc(e.getPc()+wa(t)),e.markBranched()),!0}if((t>>>25&63)==27){let n=t>>>24&1,r=t>>>31,i=t>>>19&31,a=r<<5|i,o=t&31,s=t>>>5&16383,c=Number(e.signExtend(BigInt(s),14))*4,l=(e.readGpr(o)>>BigInt(a)&1n)==1n;return(n===0?!l:l)&&(e.setPc(e.getPc()+c),e.markBranched()),!0}if((t&4294963231)>>>0==3573751839||(t&4294963231)>>>0==3573755935)return!0;if(t>>>20==3411){let r=t&31,i=t>>>16&7,a=t>>>12&15,o=t>>>8&15,s=t>>>5&7,c=i===3&&a===13&&o===0&&s===2;return e.writeGpr(r,c?BigInt(n()):0n),!0}if((t&4292870175)>>>0==3556769793){let t=Number(e.readGpr(8)),n=i.get(t);if(!n)throw Error(`Unimplemented syscall ${t} (x8) at pc=0x${e.pc.toString(16)}`);let a=n(r());return a!==void 0&&e.writeGpr(0,BigInt.asUintN(64,BigInt(a))),!0}return!1}function Ea(e){let t=new Uint32Array(256);for(let n=0;n<256;n++){let r=n;for(let t=0;t<8;t++)r=r&1?r>>>1^e:r>>>1;t[n]=r>>>0}return t}const Da=Ea(3988292384),Oa=Ea(2197175160);function ka(e,t,n,r){let i=r?Oa:Da,a=e>>>0,o=BigInt.asUintN(64,t);for(let e=0;e<n;e++){let t=Number(o>>BigInt(e*8)&255n);a=a>>>8^i[(a^t)&255]}return a>>>0}const Q=(1n<<64n)-1n,$=(1n<<32n)-1n;function Aa(e,t){let n=t>>>29&3;if(n===0&&(t>>>24&31)==11&&!(t>>>21&1)){let n=t>>>31,r=t>>>22&3,i=t>>>16&31,a=t>>>10&63,o=t>>>5&31,s=t&31,c=a===0?e.readGpr(o)+e.readGpr(i):e.readGpr(o)+e.applyShift(e.readGpr(i),r,a,n);return e.writeGpr(s,n===1?BigInt.asUintN(64,c):BigInt.asUintN(32,c)),!0}if(n===2&&(t>>>24&31)==11&&!(t>>>21&1)){let n=t>>>31,r=t>>>22&3,i=t>>>16&31,a=t>>>10&63,o=t>>>5&31,s=t&31,c=e.applyShift(e.readGpr(i),r,a,n),l=e.readGpr(o)-c;return e.writeGpr(s,n===1?BigInt.asUintN(64,l):BigInt.asUintN(32,l)),!0}if(n===1&&(t>>>24&31)==10&&!(t>>>21&1)){let n=t>>>31,r=t>>>22&3,i=t>>>16&31,a=t>>>10&63,o=t>>>5&31,s=t&31,c=e.applyShift(e.readGpr(i),r,a,n),l=e.readGpr(o)|c;return e.writeGpr(s,n===1?BigInt.asUintN(64,l):BigInt.asUintN(32,l)),!0}if(n===2&&(t>>>24&31)==10&&!(t>>>21&1)){let n=t>>>31,r=t>>>22&3,i=t>>>16&31,a=t>>>10&63,o=t>>>5&31,s=t&31,c=e.applyShift(e.readGpr(i),r,a,n),l=e.readGpr(o)^c;return e.writeGpr(s,n===1?BigInt.asUintN(64,l):BigInt.asUintN(32,l)),!0}if(n===3&&(t>>>24&31)==11&&!(t>>>21&1)){let n=t>>>31,r=t>>>22&3,i=t>>>16&31,a=t>>>10&63,o=t>>>5&31,s=t&31,c=e.applyShift(e.readGpr(i),r,a,n),l=e.subWithFlags(e.readGpr(o),c,n);return e.writeGpr(s,l),!0}if(n===1&&(t>>>24&31)==11&&!(t>>>21&1)){let n=t>>>31,r=t>>>22&3,i=t>>>16&31,a=t>>>10&63,o=t>>>5&31,s=t&31,c=e.applyShift(e.readGpr(i),r,a,n),l=e.addWithFlags(e.readGpr(o),c,n);return e.writeGpr(s,l),!0}if((t>>>24&31)==10){let n=t>>>31,r=t>>>29&3,i=t>>>21&1;if(!(i===0&&(r===1||r===2))){let a=t>>>22&3,o=t>>>16&31,s=t>>>10&63,c=t>>>5&31,l=t&31,u=e.applyShift(e.readGpr(o),a,s,n);i===1&&(u=~u);let d=e.readGpr(c),f;if(f=r===0||r===3?d&u:r===1?d|u:d^u,f=n===1?BigInt.asUintN(64,f):BigInt.asUintN(32,f),r===3){let t=f>>(n===1?64n:32n)-1n==1n,r=f===0n;e.setFlags(t,r,!1,!1)}return e.writeGpr(l,f),!0}}if((t>>>24&31)==11&&(t>>>21&7)==1){let n=t>>>31,r=t>>>30&1,i=t>>>29&1,a=t>>>16&31,o=t>>>13&7,s=t>>>10&7,c=t>>>5&31,l=t&31,u=e.extendReg(e.readGpr(a),o,s,n);if(i===1){let t=r===0?e.addWithFlags(e.readGprSp(c),u,n):e.subWithFlags(e.readGprSp(c),u,n);e.writeGpr(l,t)}else{let t=e.readGprSp(c),i=r===0?t+u:t-u;e.writeGprSp(l,n===1?BigInt.asUintN(64,i):BigInt.asUintN(32,i))}return!0}if((t>>>21&255)==208){let n=t>>>31,r=t>>>30&1,i=t>>>29&1,a=t>>>16&31,o=t>>>5&31,s=t&31,c=e.c?1n:0n;if(r===0){let t=i===1?e.addWithFlags(e.readGpr(o),e.readGpr(a),n,c):e.readGpr(o)+e.readGpr(a)+c;e.writeGpr(s,n===1?BigInt.asUintN(64,t):BigInt.asUintN(32,t))}else{let t=~e.readGpr(a),r=i===1?e.addWithFlags(e.readGpr(o),t,n,c):e.readGpr(o)+t+c;e.writeGpr(s,n===1?BigInt.asUintN(64,r):BigInt.asUintN(32,r))}return!0}if((t>>>24&31)==27){let n=t>>>31,r=t>>>21&7,i=t>>>15&1,a=t>>>16&31,o=t>>>10&31,s=t>>>5&31,c=t&31;if(r===0){if(n===0){let t=e.readGpr(s)&$,n=e.readGpr(a)&$,r=e.readGpr(o)&$,l=t*n,u=i===0?r+l:r-l;e.writeGpr(c,BigInt.asUintN(32,u))}else{let t=e.readGpr(s)*e.readGpr(a),n=e.readGpr(o),r=i===0?n+t:n-t;e.writeGpr(c,BigInt.asUintN(64,r))}return!0}if(r===2&&i===0){let t=BigInt.asIntN(64,e.readGpr(s)),n=BigInt.asIntN(64,e.readGpr(a));return e.writeGpr(c,BigInt.asUintN(64,t*n>>64n)),!0}if(r===6&&i===0){let t=e.readGpr(s)&Q,n=e.readGpr(a)&Q;return e.writeGpr(c,t*n>>64n&Q),!0}if(r===1){let t=BigInt.asIntN(32,e.readGpr(s)&$),n=BigInt.asIntN(32,e.readGpr(a)&$),r=BigInt.asIntN(64,e.readGpr(o)),l=i===0?r+t*n:r-t*n;return e.writeGpr(c,BigInt.asUintN(64,l)),!0}if(r===5){let t=e.readGpr(s)&$,n=e.readGpr(a)&$,r=e.readGpr(o)&Q,l=i===0?r+t*n:r-t*n;return e.writeGpr(c,BigInt.asUintN(64,l)),!0}}if((t>>>21&255)==214&&!(t>>>30&1)){let n=t>>>31,r=t>>>10&63,i=t>>>16&31,a=t>>>5&31,o=t&31,s=n===1?64:32,c=n===1?Q:$,l=e.readGpr(a)&c,u=e.readGpr(i)&c;switch(r){case 2:{let t=u===0n?0n:l/u;return e.writeGpr(o,t&c),!0}case 3:{let t=BigInt.asIntN(s,l),n=BigInt.asIntN(s,u),r=n===0n?0n:t/n;return e.writeGpr(o,BigInt.asUintN(s,r)),!0}case 8:return e.writeGpr(o,e.applyShift(l,0,Number(u%BigInt(s)),n)),!0;case 9:return e.writeGpr(o,e.applyShift(l,1,Number(u%BigInt(s)),n)),!0;case 10:return e.writeGpr(o,e.applyShift(l,2,Number(u%BigInt(s)),n)),!0;case 11:return e.writeGpr(o,e.applyShift(l,3,Number(u%BigInt(s)),n)),!0;default:break}}if((t>>>21&255)==212){let n=t>>>31,r=t>>>30&1,i=t>>>16&31,a=t>>>12&15,o=t>>>10&3,s=t>>>5&31,c=t&31,l=n===1?Q:$,u;if(e.conditionHolds(a))u=e.readGpr(s)&l;else{let t=e.readGpr(i)&l;r===0&&o===1?t=t+1n&l:r===1&&o===0?t=~t&l:r===1&&o===1&&(t=~t+1n&l),u=t}return e.writeGpr(c,u),!0}if((t>>>21&255)==210&&!(t>>>11&1)&&!(t>>>4&1)){let n=t>>>31,r=t>>>30&1,i=t>>>16&31,a=t>>>12&15,o=t>>>5&31,s=t&15;return e.conditionHolds(a)?r===1?e.subWithFlags(e.readGpr(o),e.readGpr(i),n):e.addWithFlags(e.readGpr(o),e.readGpr(i),n):e.setFlags((s>>3&1)==1,(s>>2&1)==1,(s>>1&1)==1,(s&1)==1),!0}if((t>>>21&255)==210&&(t>>>11&1)==1&&!(t>>>4&1)){let n=t>>>31,r=t>>>30&1,i=BigInt(t>>>16&31),a=t>>>12&15,o=t>>>5&31,s=t&15;return e.conditionHolds(a)?r===1?e.subWithFlags(e.readGpr(o),i,n):e.addWithFlags(e.readGpr(o),i,n):e.setFlags((s>>3&1)==1,(s>>2&1)==1,(s>>1&1)==1,(s&1)==1),!0}if((t>>>21&255)==214&&(t>>>30&1)==1){let n=t>>>31,r=t>>>10&63,i=t>>>5&31,a=t&31,o=n===1?64:32,s=e.readGpr(i)&(n===1?Q:$);switch(r){case 0:return e.writeGpr(a,Ji(s,o)),!0;case 1:return e.writeGpr(a,Yi(s,o,2)),!0;case 2:return e.writeGpr(a,Yi(s,o,n===1?4:o/8)),!0;case 3:return e.writeGpr(a,Yi(s,o,o/8)),!0;case 4:return e.writeGpr(a,BigInt(Xi(s,o))),!0;default:break}}if((t>>>21&1023)==428){let n=t>>>31,r=t>>>12&1,i=t>>>10&3,a=t>>>16&31,o=t>>>5&31,s=t&31;if(i===3&&n!==1)throw Error(`CRC32: 64-bit operand (size=11) requires sf=1`);let c=1<<i,l=ka(Number(e.readGpr(o)&$),e.readGpr(a),c,r===1);return e.writeGpr(s,BigInt(l)),!0}return!1}function ja(e,t,n){if((t>>>26&1)==1)return Xr(n,t);if((t>>>24&63)==8){let n=1<<(t>>>30),r=(t>>>22&1)==1,i=t>>>16&31,a=t>>>5&31,o=t&31,s=Number(e.readGprSp(a));return r?e.writeGpr(o,e.loadValue(s,n)):(e.storeValue(s,n,e.readGpr(o)),e.writeGpr(i,0n)),!0}if((t>>>27&7)==7&&!(t>>>26&1)){let n=t>>>30,r=t>>>22&3,i=t>>>24&3,a=t>>>5&31,o=t&31,s=1<<n,c=r!==0,l=r===2||r===3,u=r===3?32:64,d=t=>{let n=e.loadValue(t,s),r=l?BigInt.asUintN(u,e.signExtend(n,s*8)):n;e.writeGpr(o,r)};if(i===1){let n=t>>>10&4095,r=Number(BigInt.asUintN(64,e.readGprSp(a)+BigInt(n*s)));return c?d(r):e.storeValue(r,s,e.readGpr(o)),!0}if(i===0&&(t>>>21&1)==1&&(t>>>10&3)==2){let r=t>>>16&31,i=t>>>13&7,l=(t>>>12&1)==1?n:0,u=e.extendReg(e.readGpr(r),i,l,1),f=e.readGprSp(a),p=Number(BigInt.asUintN(64,f+u));return c?d(p):e.storeValue(p,s,e.readGpr(o)),!0}if(i===0){let n=t>>>12&511,r=n&256?n-512:n,i=t>>>10&3,l=e.readGprSp(a),u=Number(i===1?l:BigInt.asUintN(64,l+BigInt(r)));return c?d(u):e.storeValue(u,s,e.readGpr(o)),(i===3||i===1)&&e.writeGprSp(a,BigInt.asUintN(64,l+BigInt(r))),!0}}if((t>>>24&63)==24&&!(t>>>26&1)){let n=t>>>30==1?8:4,r=t&31,i=t>>>5&524287,a=(i&262144?i-524288:i)*4,o=e.pc+a;return e.writeGpr(r,e.loadValue(o,n)),!0}if((t>>>25&31)==20){let n=t>>>30==2?8:4,r=t>>>23&3,i=(t>>>22&1)==1,a=t>>>15&127,o=(a&64?a-128:a)*n,s=t>>>10&31,c=t>>>5&31,l=t&31,u=e.readGprSp(c),d=Number(r===1?u:BigInt.asUintN(64,u+BigInt(o)));return i?(e.writeGpr(l,e.loadValue(d,n)),e.writeGpr(s,e.loadValue(d+n,n))):(e.storeValue(d,n,e.readGpr(l)),e.storeValue(d+n,n,e.readGpr(s))),r!==2&&e.writeGprSp(c,BigInt.asUintN(64,u+BigInt(o))),!0}return!1}const Ma=(1n<<64n)-1n;function Na(e){return e===257?`R_AARCH64_ABS64`:e===1025?`R_AARCH64_GLOB_DAT`:e===1026?`R_AARCH64_JUMP_SLOT`:e===1027?`R_AARCH64_RELATIVE`:e===1024?`R_AARCH64_COPY`:`R_AARCH64_${e}`}function Pa(e){return e.map(e=>`${e.symbol}@GOT(0x${e.gotOffset.toString(16)}, ${e.relocationType})`).join(`, `)}const Fa=1e6,Ia=1744830464,La=1879048192;var Ra=class{registerFile=new ta;memory=new na;fpContext=new ma;branched=!1;hostFns=new Map;syscalls=new Map;stackTop=0;tlsBase=0;importStubBump=Ia;importStubsByName=new Map;instructionHooks=[];constructorFaults=[];unresolvedImportDiagnostics=[];stopRequested=!1;isAvailable(){return!0}requestStop(){this.stopRequested=!0}dispose(){this.memory.regions.length=0,this.memory.regionsByBase.length=0,this.memory.lastRegion=void 0,this.memory.clearSymbols();for(let e=0;e<31;e++)this.registerFile.writeGpr(e,0n);this.registerFile.sp=0n,this.registerFile.pc=0,this.registerFile.setFlags(!1,!1,!1,!1);for(let e=0;e<32;e++)this.registerFile.writeVector(e,new Uint8Array(16));this.hostFns.clear(),this.syscalls.clear(),this.instructionHooks.length=0,this.constructorFaults.length=0,this.unresolvedImportDiagnostics.length=0,this.stackTop=0,this.tlsBase=0,this.importStubBump=Ia,this.importStubsByName.clear(),this.fpContext.fpcr=0,this.fpContext.fpsr=0,this.stopRequested=!1,this.branched=!1}mapMemory(e,t){this.memory.addRegion({base:e,size:t,data:new Uint8Array(t)})}writeCode(e,t){let n=this.memory.findRegion(e,t.length);n.data.set(t,e-n.base)}loadElf(e,t,n=0,i=n===0){let a=new r(e);if(a.machine!==183)throw Error(`Unsupported ELF machine 0x${a.machine.toString(16)} (expected AArch64)`);n===0&&(this.constructorFaults.length=0,this.unresolvedImportDiagnostics.length=0);for(let e of a.loadableSegments())this.memory.addRegion({base:n+e.vaddr,size:e.data.length,data:e.data});let o=a.exportedSymbols();if(i)for(let[e,t]of o)this.memory.addSymbol(e,n+t);return this.applyRelocations(a,t,n,o),n===0&&this.runInitializers(a,n),{entry:n+a.entry}}loadLibraryChain(e,t,n){for(let t=0;t<e.length;t++){let r=e[t];if(!r)continue;let i=268435456+t*67108864;this.loadElf(r,n,i,!0)}this.constructorFaults.length=0,this.unresolvedImportDiagnostics.length=0;let{entry:r}=this.loadElf(t,n,0,!0);return{entry:r,unresolvedImports:[...this.unresolvedImportDiagnostics],constructorFaults:[...this.constructorFaults]}}runInitializers(e,t=0){let{init:n,arraySlots:r}=e.initializers(),i=[];n!==0&&i.push(t+n);for(let e of r){let n=Number(this.memory.loadValue(t+e,8));n!==0&&i.push(n)}for(let e of i)this.runConstructor(e)}runConstructor(e){this.registerFile.writeGpr(0,0n),this.registerFile.writeGpr(1,0n),this.registerFile.writeGpr(2,0n),this.registerFile.writeGpr(30,BigInt(0)),this.registerFile.sp=BigInt(this.ensureStack());try{this.run(e,0)}catch(t){if(t instanceof xa){this.constructorFaults.push(`ctor@0x${e.toString(16)}: ${t.message}`);return}throw t}}applyRelocations(e,r,i=0,a){let o=a??e.exportedSymbols();for(let a of e.relocations()){let e=i+a.offset;switch(a.type){case 1027:this.memory.storeValue(e,8,BigInt(i+a.addend));break;case 257:case t:case n:{this.isUnresolvedImport(a.symbolName,a.symbolValue,r)&&this.unresolvedImportDiagnostics.push({symbol:a.symbolName,gotOffset:e,relocationType:Na(a.type),addend:a.addend,resolution:`unresolved`});let t=a.symbolName?o.get(a.symbolName):void 0,n=t===void 0?this.resolveRelocSymbol(a.symbolName,a.symbolValue,r):i+t;this.memory.storeValue(e,8,BigInt(n+a.addend));break}case 1024:if(a.symbolValue===0)break;try{let t=this.memory.readMemory(a.symbolValue,8);this.memory.writeMemory(e,t)}catch{}break;default:break}}}resolveRelocSymbol(e,t,n){return e&&this.memory.hasSymbol(e)?this.memory.findSymbol(e):e&&n?.has(e)?this.bindImportStub(e,n.get(e)):t}isUnresolvedImport(e,t,n){return e!==``&&t===0&&!this.memory.hasSymbol(e)&&!n?.has(e)}callSymbol(e,t){let n=this.memory.findSymbol(e);if(n===void 0)throw Error(`Unknown symbol: "${e}" is not an exported function`);if(t.length>8)throw Error(`callSymbol supports up to 8 register arguments, got ${t.length}`);for(let e=0;e<t.length;e++)this.registerFile.writeGpr(e,BigInt.asUintN(64,BigInt(t[e])));this.registerFile.writeGpr(30,BigInt(0)),this.registerFile.sp=BigInt(this.ensureStack());try{this.run(n,0)}catch(e){throw e instanceof xa&&this.unresolvedImportDiagnostics.length>0?new xa(`${e.message}; unresolved imports: ${Pa(this.unresolvedImportDiagnostics)}`):e}return Number(this.registerFile.readGpr(0))}exportedSymbolNames(){return[...this.memory.getSymbolNames()]}lookupSymbol(e){return this.memory.findSymbol(e)}bindImportStub(e,t){let n=this.importStubsByName.get(e);if(n!==void 0)return n;let r=this.importStubBump;return this.importStubBump+=8,this.registerHostFunction(r,t),this.importStubsByName.set(e,r),r}constructorFaultLog(){return this.constructorFaults}unresolvedImports(){return this.unresolvedImportDiagnostics}writeRegister(e,t){this.registerFile.writeNamed(e,BigInt(t)&Ma)}readRegister(e){return Number(this.registerFile.readNamed(e))}readVectorAlias(e){let t=/^([vqdshb])(\d{1,2})$/i.exec(e);if(!t)throw Error(`Unknown vector register: "${e}" (expected vN/qN/dN/sN/hN/bN)`);let n=t[1].toLowerCase(),r=Number(t[2]);if(!Number.isInteger(r)||r<0||r>=32)throw Error(`Vector register index out of range: "${e}"`);let i=n===`b`?1:n===`h`?2:n===`s`?4:n===`d`?8:16,a=this.registerFile.getVectorBytes(r)??new Uint8Array(16),o=``;for(let e=0;e<i;e++)o+=a[e].toString(16).padStart(2,`0`);return o}registerHostFunction(e,t){this.hostFns.set(e,t)}registerSyscall(e,t){this.syscalls.set(e,t)}addInstructionHook(e){return this.instructionHooks.push(e),()=>{let t=this.instructionHooks.indexOf(e);t>=0&&this.instructionHooks.splice(t,1)}}readMemory(e,t){let n=this.memory.findRegion(e,t),r=e-n.base;return n.data.slice(r,r+t)}ensureStack(){return this.stackTop===0&&(this.memory.mapMemory(2147418112,65536),this.stackTop=2147483648),this.stackTop}ensureTls(){if(this.tlsBase===0){this.memory.mapMemory(La,4096),this.tlsBase=La;let e=new Uint8Array([0,17,34,51,68,85,102,119]);this.memory.writeCode(1879048232,e)}return this.tlsBase}callHost(e){let t=this.hostFns.get(e);if(!t)throw Error(`No host function registered at 0x${e.toString(16)}`);this.invokeHost(t)}hostContext(){return{x:e=>this.registerFile.readGpr(e),setX:(e,t)=>this.registerFile.writeGpr(e,BigInt.asUintN(64,t)),read:(e,t)=>this.memory.readMemory(e,t),write:(e,t)=>this.memory.writeCode(e,t)}}readVReg(e){let t=this.registerFile.getVectorBytes(e);if(!t)return new Uint8Array(16);let n=new Uint8Array(16);return n.set(t),n}writeVReg(e,t){let n=this.registerFile.getVectorBytes(e);n&&(n.fill(0),n.set(t.subarray(0,16)))}readGprValue(e){return this.registerFile.readGpr(e)}writeGprValue(e,t){this.registerFile.writeGpr(e,t)}vGet128(e){let t=this.registerFile.getVectorView(e);if(!t)return 0n;let n=t.getBigUint64(0,!0);return t.getBigUint64(8,!0)<<64n|n}vSet128(e,t){let n=this.registerFile.getVectorView(e);if(!n)return;let r=BigInt.asUintN(128,t);n.setBigUint64(0,r&Ma,!0),n.setBigUint64(8,r>>64n&Ma,!0)}vGetLane(e,t,n){let r=this.registerFile.getVectorView(e);if(!r)return 0n;let i=n<<t;if(i<0||i+(1<<t)>16)return 0n;switch(t){case 0:return BigInt(r.getUint8(i));case 1:return BigInt(r.getUint16(i,!0));case 2:return BigInt(r.getUint32(i,!0));default:return r.getBigUint64(i,!0)}}vSetLane(e,t,n,r){let i=this.registerFile.getVectorView(e);if(!i)return;let a=n<<t;if(!(a<0||a+(1<<t)>16))switch(t){case 0:i.setUint8(a,Number(r&255n));break;case 1:i.setUint16(a,Number(r&65535n),!0);break;case 2:i.setUint32(a,Number(r&4294967295n),!0);break;default:i.setBigUint64(a,r&Ma,!0);break}}simdContext(){return{vGetBytes:e=>this.readVReg(e),vSetBytes:(e,t)=>this.writeVReg(e,t),vGet128:e=>this.vGet128(e),vSet128:(e,t)=>this.vSet128(e,t),vGetLane:(e,t,n)=>this.vGetLane(e,t,n),vSetLane:(e,t,n,r)=>this.vSetLane(e,t,n,r),memRead:(e,t)=>this.memory.readMemory(e,t),memWrite:(e,t)=>this.memory.writeCode(e,t),gprRead:e=>this.registerFile.readGpr(e),gprWrite:(e,t)=>this.registerFile.writeGpr(e,BigInt.asUintN(64,t)),gprReadSp:e=>this.registerFile.readGprSp(e),setNZCV:(e,t,n,r)=>{this.registerFile.n=e,this.registerFile.z=t,this.registerFile.c=n,this.registerFile.v=r},conditionHolds:e=>this.conditionHolds(e),getPc:()=>this.registerFile.pc,setQC:()=>this.setQC()}}invokeHost(e){let t=e(this.hostContext());t!==void 0&&this.registerFile.writeGpr(0,BigInt.asUintN(64,BigInt(t)))}start(e,t){this.run(e,t)}run(e,t){this.registerFile.pc=e,this.stopRequested=!1;let n=0;for(;this.registerFile.pc!==t;){if(this.stopRequested)return;if(++n>Fa)throw Error(`Execution exceeded ${Fa} steps (no halt before ${t})`);if(this.hostFns.size>0){let e=this.hostFns.get(this.registerFile.pc);if(e){this.invokeHost(e),this.registerFile.pc=Number(this.registerFile.readGpr(30));continue}}let e=this.memory.findRegion(this.registerFile.pc,4),r=this.registerFile.pc-e.base,i=e.data,a=(i[r]|i[r+1]<<8|i[r+2]<<16|i[r+3]<<24)>>>0;this.instructionHooks.length>0&&this.fireInstructionHooks(this.registerFile.pc,a,n),this.branched=!1,this.execute(a),this.branched||(this.registerFile.pc+=4)}}fireInstructionHooks(e,t,n){let r={pc:e,insn:t,step:n,x:e=>this.registerFile.readGpr(e),reg:e=>this.readRegister(e),vector:e=>this.readVectorAlias(e)};for(let e of this.instructionHooks)e(r)}execute(e){let t=e>>>25&15;if(t===8||t===9){if(ba(this,e))return}else if(t===10||t===11){let t=new Map;for(let[e,n]of this.syscalls)t.set(e,e=>{let t=n(e);if(t!=null)return typeof t==`bigint`?Number(t):t});if(Ta(this,e,()=>this.ensureTls(),()=>this.hostContext(),t))return}else if((t&7)==5){if(Aa(this,e))return}else if((t&5)==4){if(ja(this,e,this.simdContext()))return}else if((t&7)==7&&si(this.simdContext(),e))return;throw Error(`Unsupported ARM64 opcode 0x${(e>>>0).toString(16).padStart(8,`0`)} at pc=0x${this.registerFile.pc.toString(16)}`)}readGpr(e){return this.registerFile.readGpr(e)}writeGpr(e,t){this.registerFile.writeGpr(e,t)}readGprSp(e){return this.registerFile.readGprSp(e)}writeGprSp(e,t){this.registerFile.writeGprSp(e,t)}loadValue(e,t){return this.memory.loadValue(e,t)}storeValue(e,t,n){this.memory.storeValue(e,t,n)}setFlags(e,t,n,r){this.registerFile.n=e,this.registerFile.z=t,this.registerFile.c=n,this.registerFile.v=r}getFlags(){return{n:this.registerFile.n,z:this.registerFile.z,c:this.registerFile.c,v:this.registerFile.v}}get n(){return this.registerFile.n}get z(){return this.registerFile.z}get c(){return this.registerFile.c}get v(){return this.registerFile.v}getPc(){return this.registerFile.pc}setPc(e){this.registerFile.pc=e}markBranched(){this.branched=!0}get pc(){return this.registerFile.pc}addWithFlags(e,t,n,r=0n){return ha(this,e,t,n,r)}subWithFlags(e,t,n){return ga(this,e,t,n)}conditionHolds(e){return _a(this,e)}applyShift(e,t,n,r){return $i(e,t,n,r)}extendReg(e,t,n,r){return ea(e,t,n,r)}signExtend(e,t){return Ki(e,t)}decodeBitMask(e,t,n,r){return qi(e,t,n,r)}getFPCR(){return this.fpContext.getFPCR()}setFPCR(e){this.fpContext.setFPCR(e)}getFPSR(){return this.fpContext.getFPSR()}setFPSR(e){this.fpContext.setFPSR(e)}setQC(){let e=this.fpContext.getFPSR();this.fpContext.setFPSR(e|1<<27)}fadd(e,t,n=!1){return this.fpContext.fadd(e,t,n)}fsub(e,t,n=!1){return this.fpContext.fsub(e,t,n)}fmul(e,t,n=!1){return this.fpContext.fmul(e,t,n)}fdiv(e,t,n=!1){return this.fpContext.fdiv(e,t,n)}fsqrt(e,t=!1){return this.fpContext.fsqrt(e,t)}fmul32(e,t){return this.fpContext.fmul32(e,t)}roundTiesToEven(e){return this.fpContext.roundTiesToEven(e)}roundTowardPlusInf(e){return this.fpContext.roundTowardPlusInf(e)}roundTowardMinusInf(e){return this.fpContext.roundTowardMinusInf(e)}roundTowardZero(e){return this.fpContext.roundTowardZero(e)}};export{n as a,t as i,xa as n,r,Ra as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./ToolError-g3rjWzhx.mjs";import{t}from"./CpuEngine-BC8jayy9.mjs";import{r as n,t as r}from"./DartAotLoader-BxdhW-K2.mjs";function i(e){return e&-2n}function a(e){return(e&1n)==0n}function o(e){return e>>1n}var s=class{cpu;dartThread=0n;dartObjectPool=0n;dartNullObject=0n;dartHeapBase=0n;constructor(e){this.cpu=e}initializeRuntime(e,t,n,r){this.dartThread=e,this.dartObjectPool=t,this.dartNullObject=n,this.dartHeapBase=r,this.cpu.writeGpr(15,e),this.cpu.writeGpr(27,t),this.cpu.writeGpr(26,n),this.cpu.writeGpr(28,r)}getRegisters(){return{thread:this.dartThread,objectPool:this.dartObjectPool,nullObject:this.dartNullObject,heapBase:this.dartHeapBase}}setObjectPool(e){this.dartObjectPool=e,this.cpu.writeGpr(27,e)}readDartRegister(e){if(e===15)return this.dartThread;if(e===27)return this.dartObjectPool;if(e===26)return this.dartNullObject;if(e===28)return this.dartHeapBase}isDartRegister(e){return e===15||e===27||e===26||e===28}decodeValue(e){return a(e)?{type:`smi`,value:o(e)}:{type:`object`,address:i(e)}}readObjectField(e,t){let n=Number(e)+t,r=this.cpu.readMemory(n,8);return new DataView(r.buffer,r.byteOffset).getBigUint64(0,!0)}isNull(e){return e===this.dartNullObject}reset(){this.dartThread=0n,this.dartObjectPool=0n,this.dartNullObject=0n,this.dartHeapBase=0n}},c=class{snapshot;cpu;dartRuntime;poolRegistry;async load(e){let t=await new r().loadSnapshot(e);this.initFromSnapshot(t)}loadFromSnapshot(e){this.initFromSnapshot(e)}initFromSnapshot(e){this.snapshot=e,this.cpu=new t,this.dartRuntime=new s(this.cpu),this.dartRuntime.initializeRuntime(1879048192n,0n,1n,2147483648n),this.poolRegistry=new n;for(let{address:e,pool:t}of this.snapshot.objectPools)this.poolRegistry.register(e,t.getAllEntries().length>0?new Uint8Array(t.getLength()*8):new Uint8Array);this.registerBuiltinStubs()}async call(t){if(!this.snapshot||!this.cpu||!this.dartRuntime)throw new e(`RUNTIME`,`Snapshot not loaded. Call load() first.`);let n;if(t.address)n=t.address;else if(t.name){let i=new r().findCodeByName(this.snapshot,t.name);if(!i)throw new e(`NOT_FOUND`,`Function not found: ${t.name}`);n=i.entryPoint}else throw new e(`VALIDATION`,`Either address or name must be provided`);let i=new r().findCodeByAddress(this.snapshot,n);i&&this.dartRuntime.setObjectPool(i.objectPool);let a=t.args??[];for(let e=0;e<a.length&&e<8;e++){let t=a[e];t!==void 0&&this.cpu.writeGpr(e,t)}let o=[];t.trace&&this.cpu.addInstructionHook(e=>{let t={};for(let n=0;n<31;n++)t[`x${n}`]=`0x${e.x(n).toString(16)}`;t.sp=`0x${e.reg(`sp`).toString(16)}`,t.pp=`0x${e.x(27).toString(16)}`,o.push({pc:`0x${e.pc.toString(16)}`,insn:`0x${e.insn.toString(16)}`,step:e.step,registers:t})});let s=0n,c=0,l;try{s=0n,c=1}catch(e){l=e instanceof Error?e.message:String(e)}return{returnValue:s,steps:c,trace:t.trace?o:void 0,error:l}}registerBuiltinStubs(){this.cpu}getSnapshot(){return this.snapshot}getCpu(){return this.cpu}getRuntime(){return this.dartRuntime}};export{c as DartAotExecutor};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./ToolError-g3rjWzhx.mjs";import{t as n}from"./apk-DrPBsOq8.mjs";const r=4126530780;function i(e){if(e.length<80)throw new t(`VALIDATION`,`Snapshot buffer too small for header (need >= 80 bytes)`,{details:{bufferSize:e.length}});let n=new DataView(e.buffer,e.byteOffset,e.byteLength),i=n.getUint32(0,!0);if(i!==4126530780)throw new t(`VALIDATION`,`Invalid Dart snapshot magic: 0x${i.toString(16)}`,{details:{expected:`0x${r.toString(16)}`,actual:`0x${i.toString(16)}`}});return{magic:i,kind:n.getUint32(4,!0),hash:e.slice(8,40),features:n.getBigUint64(40,!0),baseObjects:n.getUint32(48,!0),numObjects:n.getUint32(52,!0),numClusters:n.getUint32(56,!0),fieldTableLen:n.getUint32(60,!0),codeStartOffset:n.getBigUint64(64,!0),dataStartOffset:n.getBigUint64(72,!0)}}function a(e,n){let r=new DataView(e.buffer,e.byteOffset,e.byteLength),i=Number(n);if(i+16>e.length)throw new t(`VALIDATION`,`Cluster offset ${n} exceeds buffer bounds`,{details:{offset:n.toString(),bufferSize:e.length}});let a=r.getUint32(i,!0),s=r.getUint32(i+4,!0),c=o(a),l=[],u=BigInt(i+16);for(let t=0;t<s;t++){let t=Number(u);if(t+12>e.length)break;let n=r.getUint32(t,!0),i=r.getUint32(t+4,!0),a=t+8,o=Math.min(a+i,e.length),s=e.slice(a,o);l.push({cid:n,offset:u,size:i,data:s}),u+=BigInt(8+i)}return{cluster:{type:c,offset:n,count:s,objects:l},nextOffset:u}}function o(e){return e>=100&&e<120?`Code`:e>=120&&e<140?`ObjectPool`:e>=140&&e<160?`PcDescriptors`:e>=160&&e<180?`Instructions`:`Unknown`}function s(e){let t=i(e),n=[],r=t.dataStartOffset;for(let i=0;i<t.numClusters&&!(Number(r)>=e.length);i++){let{cluster:t,nextOffset:i}=a(e,r);if(r=i,t.type===`Code`)for(let r of t.objects){let t=c(r,e);t&&n.push(t)}}return n}function c(e,t){if(e.data.length<32)return;let n=new DataView(e.data.buffer,e.data.byteOffset,e.data.byteLength);try{let e=n.getBigUint64(0,!0),r=n.getUint32(8,!0),i=n.getBigUint64(12,!0),a=n.getBigUint64(20,!0),o=Number(n.getBigUint64(28,!0));return{entryPoint:e,size:r,objectPool:i,pcDescriptors:a,instructions:t.slice(o,o+r)}}catch{return}}var l=class{baseAddress;entries;length;constructor(e,n=0n){if(this.baseAddress=n,e.length<8)throw new t(`VALIDATION`,`ObjectPool data too small (need >= 8 bytes for header)`,{details:{dataSize:e.length}});let r=new DataView(e.buffer,e.byteOffset,e.byteLength);if(this.length=r.getUint32(0,!0),e.length<8+this.length*8)throw new t(`VALIDATION`,`ObjectPool header claims ${this.length} entries but data only has ${e.length} bytes`,{details:{claimedLength:this.length,dataSize:e.length}});this.entries=[];for(let e=0;e<this.length;e++){let t=8+e*8,n=r.getBigUint64(t,!0),i=this.inferEntryType(n);this.entries.push({type:i,value:n})}}lookup(e){if(e<0||e%8!=0)throw new t(`VALIDATION`,`Invalid ObjectPool offset: ${e} (must be >= 0 and 8-byte aligned)`);let n=e/8;if(n>=this.entries.length)throw new t(`VALIDATION`,`ObjectPool index out of bounds: ${n} (pool has ${this.entries.length} entries)`);let r=this.entries[n];if(!r)throw new t(`RUNTIME`,`ObjectPool entry at index ${n} is undefined`);return r.value}getEntry(e){let n=e/8;if(n<0||n>=this.entries.length)throw new t(`VALIDATION`,`ObjectPool index out of bounds: ${n}`);let r=this.entries[n];if(!r)throw new t(`RUNTIME`,`ObjectPool entry at index ${n} is undefined`);return r}getAllEntries(){return this.entries}getLength(){return this.length}setEntryName(e,t){let n=e/8,r=this.entries[n];r&&(r.name=t)}inferEntryType(e){return(e&1n)==1n||(e&1n)==0n&&e!==0n&&e<4294967296n?`object`:e>268435456n&&e<18446744073709551615n?`native`:e>4096n&&e<268435456n?`external`:`immediate`}isValidOffset(e){return e>=0&&e%8==0&&e/8<this.entries.length}toString(){let e=[`ObjectPool @ 0x${this.baseAddress.toString(16)} (${this.length} entries):`];for(let t=0;t<this.entries.length;t++){let n=this.entries[t];if(!n)continue;let r=t*8,i=n.name?` // ${n.name}`:``;e.push(` [0x${r.toString(16).padStart(4,`0`)}] ${n.type.padEnd(10)} 0x${n.value.toString(16)}${i}`)}return e.join(`
|
|
2
|
+
`)}},u=class{pools=new Map;register(e,t){let n=new l(t,e);return this.pools.set(e,n),n}get(e){return this.pools.get(e)}has(e){return this.pools.has(e)}getAllPools(){return new Map(this.pools)}clear(){this.pools.clear()}size(){return this.pools.size}},d=e({DartAotLoader:()=>f}),f=class{async loadSnapshot(e){let r=e.toLowerCase().endsWith(`.apk`),o;if(r){let r=await n(e),i=r.find(e=>e.name.toLowerCase()===`libapp.so`);if(!i)throw new t(`NOT_FOUND`,`libapp.so not found in APK arm64-v8a libs`,{details:{apkPath:e,foundLibs:r.map(e=>e.name)}});o=i.bytes}else{let t=await(await import(`node:fs/promises`)).readFile(e);o=new Uint8Array(t)}let c=i(o),d=[],f=c.dataStartOffset;for(let e=0;e<c.numClusters&&!(Number(f)>=o.length);e++)try{let{cluster:e,nextOffset:t}=a(o,f);d.push(e),f=t}catch(t){console.warn(`[DartAotLoader] Cluster ${e} parse failed:`,t);break}let p=s(o),m=[],h=new u;for(let e of d)if(e.type===`ObjectPool`)for(let t of e.objects)try{let e=new l(t.data,t.offset);h.register(t.offset,t.data),m.push({address:t.offset,pool:e})}catch(e){console.warn(`[DartAotLoader] ObjectPool at 0x${t.offset.toString(16)} parse failed:`,e)}return{header:c,clusters:d,codeObjects:p,objectPools:m,rawBytes:o}}findCodeByName(e,t){return e.codeObjects.find(e=>e.name===t)}findCodeByAddress(e,t){return e.codeObjects.find(e=>e.entryPoint===t)}getObjectPool(e,t){return e.objectPools.find(e=>e.address===t)?.pool}};export{r as i,d as n,u as r,f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";import n from"koffi";var r=e({EXC_RAISE_REPLY_ID:()=>EXC_RAISE_REPLY_ID,KERN:()=>i,MACH_MSG_SUCCESS:()=>0,MACH_MSG_TYPE_MOVE_SEND_ONCE:()=>5,MACH_RCV_ERROR_BASE:()=>MACH_RCV_ERROR_BASE,SM:()=>l,VM_FLAGS:()=>c,VM_PROT:()=>s,VM_REGION_BASIC_INFO_64:()=>9,VM_REGION_BASIC_INFO_COUNT_64:()=>9,dyldGetImageHeader:()=>O,dyldGetImageName:()=>D,dyldImageCount:()=>E,isDarwin:()=>f,isKoffiAvailableOnDarwin:()=>p,kernReturnName:()=>o,machPortDeallocate:()=>_,machTaskSelf:()=>h,machVmAllocate:()=>S,machVmDeallocate:()=>C,machVmProtect:()=>x,machVmReadOverwrite:()=>v,machVmRegion:()=>b,machVmWrite:()=>y,taskForPid:()=>g,taskResume:()=>T,taskSuspend:()=>w});const i={SUCCESS:0,INVALID_ADDRESS:1,PROTECTION_FAILURE:2,NO_SPACE:3,INVALID_ARGUMENT:4,FAILURE:5,RESOURCE_SHORTAGE:6,NOT_RECEIVER:7,NO_ACCESS:8,MEMORY_FAILURE:9,MEMORY_ERROR:10,ALREADY_IN_SET:11,NOT_IN_SET:12,NAME_EXISTS:13,ABORTED:14,INVALID_NAME:15,INVALID_TASK:16,INVALID_RIGHT:17,INVALID_VALUE:18,UREFS_OVERFLOW:19,INVALID_CAPABILITY:20,RIGHT_EXISTS:21,INVALID_HOST:22,MEMORY_PRESENT:23,MEMORY_DATA_MOVED:24,MEMORY_RESTART_COPY:25,INVALID_PROCESSOR_SET:26,POLICY_LIMIT:27,INVALID_POLICY:28,INVALID_OBJECT:29,ALREADY_WAITING:30,DEFAULT_SET:31,EXCEPTION_PROTECTED:32,INVALID_LEDGER:33,INVALID_MEMORY_CONTROL:34,INVALID_SECURITY:35,NOT_DEPRESSED:36,TERMINATED:37,LOCK_SET_DESTROYED:38,LOCK_UNSTABLE:39,LOCK_OWNED:40,LOCK_OWNED_SELF:41,SEMAPHORE_DESTROYED:42,RPC_SERVER_TERMINATED:43,RPC_TERMINATE_ORPHAN:44,RPC_CONTINUE_ORPHAN:45,NOT_SUPPORTED:46,NODE_DOWN:47,NOT_WAITING:48,OPERATION_TIMED_OUT:49,CODESIGN_ERROR:50,POLICY_STATIC:51},a={[i.SUCCESS]:`KERN_SUCCESS`,[i.INVALID_ADDRESS]:`KERN_INVALID_ADDRESS`,[i.PROTECTION_FAILURE]:`KERN_PROTECTION_FAILURE`,[i.NO_SPACE]:`KERN_NO_SPACE`,[i.INVALID_ARGUMENT]:`KERN_INVALID_ARGUMENT`,[i.FAILURE]:`KERN_FAILURE`,[i.NO_ACCESS]:`KERN_NO_ACCESS`,[i.INVALID_TASK]:`KERN_INVALID_TASK`,[i.INVALID_RIGHT]:`KERN_INVALID_RIGHT`,[i.CODESIGN_ERROR]:`KERN_CODESIGN_ERROR`};function o(e){return a[e]??`KERN_UNKNOWN(${e})`}const s={NONE:0,READ:1,WRITE:2,EXECUTE:4,ALL:7},c={FIXED:0,ANYWHERE:1,PURGABLE:2,RANDOM_ADDR:8,OVERWRITE:16384},l={COW:1,PRIVATE:2,EMPTY:3,SHARED:4,TRUESHARED:5,PRIVATE_ALIASED:6,SHARED_ALIASED:7,LARGE_PAGE:8};let u=null,d=null;function f(){return process.platform===`darwin`}function p(){if(d!==null)return d;try{return n.load(`/usr/lib/libSystem.B.dylib`).unload(),d=!0,!0}catch{return d=!1,!1}}function m(){return u||(u=n.load(`/usr/lib/libSystem.B.dylib`),t.debug(`Loaded libSystem.B.dylib via koffi`)),u}function h(){return m().func(`uint32 mach_task_self()`)()}function g(e,t){let n=m().func(`int32 task_for_pid(uint32, int32, _Out_ uint32 *)`),r=Buffer.alloc(4);return{kr:n(e,t,r),task:r.readUInt32LE(0)}}function _(e,t){return m().func(`int32 mach_port_deallocate(uint32, uint32)`)(e,t)}function v(e,t,n){let r=m().func(`int32 mach_vm_read_overwrite(uint32, uint64, uint64, _Out_ uint8_t *, uint64, _Out_ uint64 *)`),i=Buffer.alloc(n),a=Buffer.alloc(8);return{kr:r(e,t,BigInt(n),i,BigInt(n),a),data:i,outsize:a.readBigUInt64LE(0)}}function y(e,t,n){return m().func(`int32 mach_vm_write(uint32, uint64, uint8_t *, uint32)`)(e,t,n,n.length)}function b(e,t){let n=m().func(`int32 mach_vm_region(uint32, _Inout_ uint64 *, _Out_ uint64 *, int32, _Out_ uint8_t *, _Inout_ uint32 *, _Out_ uint32 *)`),r=Buffer.alloc(8);r.writeBigUInt64LE(t);let i=Buffer.alloc(8),a=Buffer.alloc(36),o=Buffer.alloc(4);o.writeUInt32LE(9);let s=n(e,r,i,9,a,o,Buffer.alloc(4)),c={protection:a.readUInt32LE(0),max_protection:a.readUInt32LE(4),inheritance:a.readUInt32LE(8),shared:a.readUInt32LE(12)!==0,reserved:a.readUInt32LE(16)!==0,offset:a.readBigUInt64LE(20),behavior:a.readUInt32LE(28),user_wired_count:a.readUInt32LE(32)};return{kr:s,address:r.readBigUInt64LE(0),size:i.readBigUInt64LE(0),info:c}}function x(e,t,n,r,i){return m().func(`int32 mach_vm_protect(uint32, uint64, uint64, int32, int32)`)(e,t,n,+!!r,i)}function S(e,t,n){let r=m().func(`int32 mach_vm_allocate(uint32, _Inout_ uint64 *, uint64, int32)`),i=Buffer.alloc(8);return i.writeBigUInt64LE(0n),{kr:r(e,i,t,n),address:i.readBigUInt64LE(0)}}function C(e,t,n){return m().func(`int32 mach_vm_deallocate(uint32, uint64, uint64)`)(e,t,n)}function w(e){return m().func(`int32 task_suspend(uint32)`)(e)}function T(e){return m().func(`int32 task_resume(uint32)`)(e)}function E(){return m().func(`uint32 _dyld_image_count()`)()}function D(e){let t=m().func(`const char * _dyld_get_image_name(uint32)`)(e);return t?String(t):``}function O(e){let t=m().func(`void * _dyld_get_image_header(uint32)`);return BigInt(t(e))}export{v as _,s as a,g as b,E as c,o as d,_ as f,x as g,C as h,c as i,f as l,S as m,i as n,O as o,h as p,l as r,D as s,r as t,p as u,b as v,y};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{t as e}from"./logger-BGCcd-jJ.mjs";import{Ia as t,ba as n,xa as r,ya as i}from"./constants-nvsLpSri.mjs";import{i as a}from"./outputPaths-CHtELDyi.mjs";import{n as o,r as s}from"./artifacts-Bx9GLx4J.mjs";import{mkdirSync as c,promises as l,readFileSync as u,writeFileSync as d}from"node:fs";import{join as f,relative as p,resolve as m}from"node:path";import{gunzipSync as h,gzip as g}from"node:zlib";import{promisify as _}from"node:util";const v=/^data:([a-zA-Z0-9/+.-]+);base64,/;function y(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function b(e){return`_offload`in e}function x(e,t,n){c(n,{recursive:!0});let r=m(n,`offload-${new Date().toISOString().replace(/[:.]/g,`-`).replace(`T`,`_`).slice(0,19)}-${Math.random().toString(36).substring(2,8)}.${t?`bin`:`txt`}`),i=t?e.match(v):null;if(i){let t=e.slice(i[0].length);d(r,Buffer.from(t,`base64`))}else d(r,e,`utf8`);return p(a(),r).replace(/\\/g,`/`)}function S(t,n){let r=t.match(v)?.[1],i=t.slice(0,128),a=``;if(n.writeFile)try{a=x(t,r,n.outputDir)}catch(t){e.warn(`[sanitizeForCache] Failed to offload field to disk: ${String(t)}`)}return{_offload:{type:`file`,path:a,size:y(Buffer.byteLength(t,`utf8`)),...r?{mimeType:r}:{},sample:i}}}function C(e,t){return v.test(e)||e.length>t}function w(e,t,n){if(typeof e==`string`)return C(e,t.threshold)?S(e,t):e;if(typeof e!=`object`||!e||b(e)||n.has(e))return e;if(n.add(e),Array.isArray(e)){let r=!1,i=e.map(e=>{let i=w(e,t,n);return i!==e&&(r=!0),i});return n.delete(e),r?i:e}let r=!1,i={};for(let[a,o]of Object.entries(e)){let e=w(o,t,n);e!==o&&(r=!0),i[a]=e}return n.delete(e),r?i:e}function T(e,n={}){return w(e,{threshold:n.threshold??t,outputDir:n.outputDir??o(`offloaded`),writeFile:n.writeFile??!0},new WeakSet)}function E(){return s()}const D=_(g),O=1024;var k=class t{static instance;cache=new Map;cleanupInterval=null;persistDir;metadataPath;persistenceEnabled=!0;disposed=!1;DEFAULT_TTL=i;MAX_TTL=n;MAX_CACHE_SIZE=100;MAX_TOTAL_MEMORY_BYTES=50*1024*1024;AUTO_EXTEND_ON_ACCESS=!0;EXTEND_DURATION=900*1e3;serializationMemo=new WeakMap;metrics={diskWriteCount:0,diskWriteFailCount:0,diskReadCount:0,diskReadFailCount:0,diskReadLazyCount:0,gzipCompressCount:0,gzipDecompressCount:0,evictedBySizeCount:0,evictedByLRUCount:0,totalBytesWritten:0,totalBytesRead:0};constructor(){this.persistDir=f(o(`tmp`),`detailed-data`),this.metadataPath=f(this.persistDir,`.metadata.jsonl`),this.cleanupInterval=setInterval(()=>this.cleanup(),300*1e3),typeof this.cleanupInterval==`object`&&`unref`in this.cleanupInterval&&this.cleanupInterval.unref(),this.init()}static getInstance(){return this.instance||=new t,this.instance}shutdown(){this.disposed=!0,this.cleanupInterval&&=(clearInterval(this.cleanupInterval),null),this.cache.clear(),t.instance=void 0}async init(){try{if(await l.mkdir(this.persistDir,{recursive:!0}),this.disposed||(await this.loadPersistedEntries(),this.disposed))return;await this.cleanupExpired()}catch(t){if(this.disposed)return;e.warn(`Failed to initialize persistence, falling back to memory-only`,t),this.persistenceEnabled=!1}}async loadPersistedEntries(){try{let t=await l.readFile(this.metadataPath,`utf-8`);if(this.disposed)return;let n=t.trim().split(`
|
|
2
|
+
`).filter(Boolean),r=Date.now();for(let e of n){if(this.disposed)return;let t=JSON.parse(e);t.expiresAt>r&&this.cache.set(t.detailId,{data:null,expiresAt:t.expiresAt,createdAt:t.createdAt,lastAccessedAt:r,accessCount:0,size:t.size,persistPath:f(this.persistDir,`${t.detailId}${t.compressed?`.gz`:`.json`}`),compressed:t.compressed})}this.disposed||e.info(`Loaded ${this.cache.size} persisted detail entries`)}catch(t){!this.disposed&&t.code!==`ENOENT`&&e.warn(`Failed to load persisted metadata`,t)}}async cleanupExpired(){if(this.disposed||!this.persistenceEnabled)return;let t=Date.now(),n=[];for(let[e,r]of this.cache.entries())if(r.expiresAt<=t&&(n.push(e),r.persistPath&&(await l.unlink(r.persistPath).catch(()=>{}),this.disposed)))return;n.length>0&&(n.forEach(e=>this.cache.delete(e)),await this.rebuildMetadata(),this.disposed||e.info(`Cleaned up ${n.length} expired detail entries`))}async rebuildMetadata(){if(this.disposed||!this.persistenceEnabled)return;let e=[];for(let[t,n]of this.cache.entries())if(n.persistPath){let r={detailId:t,expiresAt:n.expiresAt,createdAt:n.createdAt,size:n.size};e.push(JSON.stringify(r))}this.disposed||await l.writeFile(this.metadataPath,e.join(`
|
|
3
|
+
`)+`
|
|
4
|
+
`).catch(()=>{})}serializeWithMemo(e){if(typeof e==`object`&&e){let t=this.serializationMemo.get(e);if(t)return t}let t=JSON.stringify(e),n={json:t,size:t.length};return typeof e==`object`&&e&&this.serializationMemo.set(e,n),n}isRecord(e){return typeof e==`object`&&!!e}readPathSegment(e,t){return Object(e)[t]}smartHandle(t,n=r){if(t==null||typeof t!=`object`&&typeof t!=`string`||typeof t==`string`&&t.length<=n)return t;let{json:i,size:a}=this.serializeWithMemo(t);return a<=n?t:(e.info(`Data too large (${(a/1024).toFixed(1)}KB), returning summary with detailId`),this.createDetailedResponseWithSize(t,i,a))}createDetailedResponseWithSize(e,t,n){let r=this.storeWithSize(e,n);return{summary:this.generateSummaryFromJson(e,t,n),detailId:r,hint:`Data too large. Use get_detailed_data("${r}") to retrieve full data, or get_detailed_data("${r}", path="key.subkey") for specific part.`,expiresAt:Date.now()+this.DEFAULT_TTL}}store(e,t){let{size:n}=this.serializeWithMemo(e);return this.storeWithSize(e,n,t)}storeWithSize(t,n,r){this.cache.size>=this.MAX_CACHE_SIZE&&this.evictLRU();let i=T(t),a=i===t?n:this.serializeWithMemo(i).size,o=`detail_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,s=Date.now(),c=r||this.DEFAULT_TTL,l=s+c,u=a>O,d=this.persistenceEnabled?f(this.persistDir,`${o}${u?`.gz`:`.json`}`):void 0,p={data:i,expiresAt:l,createdAt:s,lastAccessedAt:s,accessCount:0,size:a,persistPath:d,compressed:u};return this.cache.set(o,p),d&&this.persistToDisk(d,i,u).then(e=>(this.metrics.diskWriteCount++,this.metrics.totalBytesWritten+=e,this.appendMetadata({detailId:o,expiresAt:l,createdAt:s,size:a,compressed:u}))).catch(t=>{this.metrics.diskWriteFailCount++,e.warn(`Failed to persist ${o}`,t)}),e.debug(`Stored detailed data: ${o}, size: ${(a/1024).toFixed(1)}KB, expires in ${c/1e3}s`),o}async appendMetadata(t){try{await l.appendFile(this.metadataPath,JSON.stringify(t)+`
|
|
5
|
+
`)}catch(t){e.warn(`Failed to append metadata`,t)}}retrieve(t,n){let r=this.cache.get(t);if(!r)throw Error(`DetailId not found or expired: ${t}`);let i=Date.now();if(i>r.expiresAt)throw this.cache.delete(t),r.persistPath&&l.unlink(r.persistPath).catch(()=>{}),Error(`DetailId expired: ${t}`);if(r.data===null&&r.persistPath)try{let e=u(r.persistPath);if(r.compressed){let t=h(e);r.data=JSON.parse(t.toString(`utf-8`)),this.metrics.gzipDecompressCount++,this.metrics.totalBytesRead+=t.length}else r.data=JSON.parse(e.toString(`utf-8`)),this.metrics.totalBytesRead+=e.length;this.metrics.diskReadCount++,this.metrics.diskReadLazyCount++}catch(n){throw this.metrics.diskReadFailCount++,e.warn(`Failed to load persisted data for ${t}`,n),Error(`DetailId not found or expired: ${t}`,{cause:n})}return r.lastAccessedAt=i,r.accessCount++,this.AUTO_EXTEND_ON_ACCESS&&r.expiresAt-i<300*1e3&&(r.expiresAt=Math.min(i+this.EXTEND_DURATION,i+this.MAX_TTL),e.debug(`Auto-extended detailId ${t}, new expiry: ${new Date(r.expiresAt).toISOString()}`)),n?this.getByPath(r.data,n):r.data}getByPath(e,t){let n=t.split(`.`),r=e;for(let e of n){if(r==null)throw Error(`Path not found: ${t} (stopped at ${e})`);r=this.readPathSegment(r,e)}return r}generateSummaryFromJson(e,t,n){let r={type:Array.isArray(e)?`array`:typeof e,size:n,sizeKB:(n/1024).toFixed(1)+`KB`,preview:t.substring(0,200)+(n>200?`...`:``)};if(this.isRecord(e)){let t=Object.keys(e);if(r.structure={keys:t.slice(0,50)},Array.isArray(e))r.structure.length=e.length;else{let n=t.filter(t=>typeof e[t]==`function`),i=t.filter(t=>typeof e[t]!=`function`);r.structure.methods=n.slice(0,30),r.structure.properties=i.slice(0,50)}}return r}cleanup(){let t=Date.now(),n=0;for(let[e,r]of this.cache.entries())t>r.expiresAt&&(this.cache.delete(e),n++);n>0&&e.debug(`Cleaned ${n} expired detailed data entries`)}evictLRU(){if(this.cache.size===0)return;let t=this.computeTotalMemory();if(t>this.MAX_TOTAL_MEMORY_BYTES){this.evictBySize(t-this.MAX_TOTAL_MEMORY_BYTES);return}let n=null,r=1/0;for(let[e,t]of this.cache.entries())t.lastAccessedAt<r&&(r=t.lastAccessedAt,n=e);if(n){let t=this.cache.get(n);this.cache.delete(n),this.metrics.evictedByLRUCount++,e.info(`Evicted LRU entry: ${n}, last accessed: ${new Date(t.lastAccessedAt).toISOString()}, access count: ${t.accessCount}`)}}evictBySize(t){let n=Array.from(this.cache.entries()).toSorted((e,t)=>e[1].lastAccessedAt-t[1].lastAccessedAt),r=0;for(let[i,a]of n){if(r>=t)break;this.cache.delete(i),r+=a.size,this.metrics.evictedBySizeCount++,e.info(`Evicted oversized entry: ${i}, freed: ${(a.size/1024).toFixed(1)}KB`)}}computeTotalMemory(){let e=0;for(let t of this.cache.values())e+=t.size;return e}async persistToDisk(e,t,n){let r=JSON.stringify(t);if(n){let t=await D(Buffer.from(r,`utf-8`));return await l.writeFile(e,t),this.metrics.gzipCompressCount++,t.length}return await l.writeFile(e,r,`utf-8`),r.length}extend(t,n){let r=this.cache.get(t);if(!r)throw Error(`DetailId not found: ${t}`);let i=Date.now();if(i>r.expiresAt)throw Error(`DetailId already expired: ${t}`);let a=n||this.EXTEND_DURATION,o=Math.min(r.expiresAt+a,i+this.MAX_TTL);r.expiresAt=o,e.info(`Extended detailId ${t} by ${a/1e3}s, new expiry: ${new Date(o).toISOString()}`)}getStats(){let e=0,t=0,n=0,r=0,i=Array.from(this.cache.values());for(let a of i)e+=a.size,t+=a.accessCount,a.persistPath&&n++,a.compressed&&r++;return{cacheSize:this.cache.size,maxCacheSize:this.MAX_CACHE_SIZE,totalMemoryMB:(e/(1024*1024)).toFixed(2),maxMemoryMB:(this.MAX_TOTAL_MEMORY_BYTES/(1024*1024)).toFixed(0),memoryUtilization:(e/this.MAX_TOTAL_MEMORY_BYTES*100).toFixed(1)+`%`,defaultTTLSeconds:this.DEFAULT_TTL/1e3,maxTTLSeconds:this.MAX_TTL/1e3,totalSizeKB:(e/1024).toFixed(1),avgAccessCount:i.length>0?(t/i.length).toFixed(1):`0`,autoExtendEnabled:this.AUTO_EXTEND_ON_ACCESS,extendDurationSeconds:this.EXTEND_DURATION/1e3,persistence:{enabled:this.persistenceEnabled,persistedCount:n,compressedCount:r,gzipEnabled:!0,gzipThresholdKB:(O/1024).toFixed(1)},metrics:{...this.metrics}}}getDetailedStats(){let e=Date.now(),t=Array.from(this.cache.entries()).map(([t,n])=>({detailId:t,sizeKB:(n.size/1024).toFixed(1),createdAt:new Date(n.createdAt).toISOString(),lastAccessedAt:new Date(n.lastAccessedAt).toISOString(),expiresAt:new Date(n.expiresAt).toISOString(),remainingSeconds:Math.max(0,Math.floor((n.expiresAt-e)/1e3)),accessCount:n.accessCount,isExpired:e>n.expiresAt}));return t.sort((e,t)=>new Date(t.lastAccessedAt).getTime()-new Date(e.lastAccessedAt).getTime()),t}clear(){this.cache.clear(),e.info(`Cleared all detailed data cache`)}};export{T as a,E as i,v as n,y as r,k as t};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import{t as e}from"./logger-BGCcd-jJ.mjs";import{St as t,Tt as n,wt as r,yt as i}from"./constants-nvsLpSri.mjs";import{t as a}from"./ProcessRegistry-C5W1Tkn9.mjs";import{n as o}from"./concurrency-Dehnw4JC.mjs";import{Worker as s}from"node:worker_threads";var c=class{async execute(e){return o(()=>this.executeInternal(e))}executeInternal(o){let c=o.timeoutMs??i,l=o.memoryLimitMB??t,u=Date.now();return new Promise(t=>{let i=!1,d=setTimeout(()=>{i||(p.terminate(),e.warn(`[ExecutionSandbox] Worker terminated after ${c+n}ms`),m({ok:!1,error:`Execution timed out (worker terminated)`,timedOut:!0}))},c+n),f={eval:!0,workerData:{code:o.code,timeoutMs:c},resourceLimits:{maxOldGenerationSizeMb:l,maxYoungGenerationSizeMb:Math.ceil(l/4),stackSizeMb:r}};f.type=`module`;let p=new s(`
|
|
2
|
+
import { workerData, parentPort } from 'node:worker_threads';
|
|
3
|
+
import * as vm from 'node:vm';
|
|
4
|
+
|
|
5
|
+
const { code, timeoutMs } = workerData;
|
|
6
|
+
|
|
7
|
+
try {
|
|
8
|
+
// Create an isolated context with minimal globals
|
|
9
|
+
const sandbox = {
|
|
10
|
+
// Safe built-ins only
|
|
11
|
+
parseInt, parseFloat, isNaN, isFinite,
|
|
12
|
+
encodeURIComponent, decodeURIComponent,
|
|
13
|
+
encodeURI, decodeURI,
|
|
14
|
+
JSON: { parse: JSON.parse, stringify: JSON.stringify },
|
|
15
|
+
Math,
|
|
16
|
+
String, Number, Boolean, Array, Object, Map, Set,
|
|
17
|
+
Date, RegExp, Error, TypeError, RangeError,
|
|
18
|
+
Promise,
|
|
19
|
+
Symbol,
|
|
20
|
+
undefined,
|
|
21
|
+
NaN,
|
|
22
|
+
Infinity,
|
|
23
|
+
// Explicitly denied: require, process, __filename, __dirname, Buffer, setTimeout, setInterval, fetch
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const context = vm.createContext(sandbox, {
|
|
27
|
+
name: 'jshook-sandbox',
|
|
28
|
+
codeGeneration: { strings: false, wasm: false },
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const script = new vm.Script(code, {
|
|
32
|
+
filename: 'sandbox-eval.js',
|
|
33
|
+
timeout: timeoutMs,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const result = script.runInContext(context, { timeout: timeoutMs });
|
|
37
|
+
parentPort.postMessage({ ok: true, output: result });
|
|
38
|
+
} catch (err) {
|
|
39
|
+
parentPort.postMessage({
|
|
40
|
+
ok: false,
|
|
41
|
+
error: err.message || String(err),
|
|
42
|
+
timedOut: err.code === 'ERR_SCRIPT_EXECUTION_TIMEOUT',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
`,f);typeof p.unref==`function`&&p.unref(),a.register(p);let m=e=>{i||(i=!0,d&&clearTimeout(d),t({...e,durationMs:Date.now()-u}))};p.on(`message`,e=>{m({ok:e.ok,output:e.output,error:e.error,timedOut:e.timedOut||!1}),p.terminate()}),p.on(`error`,e=>{m({ok:!1,error:`Worker error: ${e.message}`,timedOut:!1})}),p.on(`exit`,e=>{i||m({ok:!1,error:`Worker exited unexpectedly with code ${e}`,timedOut:!1})})})}};export{c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e}from"./registry-7h8jJ9y9.mjs";const t=[`search`,`workflow`,`full`];function n(e){return e.profiles&&e.profiles.length>0?e.profiles:t}function r(t,n){for(let r of t.selectedTools)if(e(r.name)===n)return!0;for(let r of t.activatedToolNames){let i=t.extensionToolsByName.get(r);if(i){if(i.domain===n)return!0;continue}if(e(r)===n)return!0}return!1}function i(e,t){if(r(e,t)){e.enabledDomains.add(t);return}e.enabledDomains.delete(t)}function a(e,t){return n(t).includes(e)}function o(e,t,n=`activate_tools`){if(e.activatedToolNames.has(t.name))return e.enabledDomains.add(t.domain),t.activationSource??=n,t.activatedAt??=new Date().toISOString(),!1;let r=e.registerSingleTool(t.tool);return e.activatedToolNames.add(t.name),e.activatedRegisteredTools.set(t.name,r),t.registeredTool=r,t.activationSource=n,t.activatedAt=new Date().toISOString(),e.enabledDomains.add(t.domain),t.handler&&e.router.addHandlers({[t.name]:t.handler}),!0}function s(e,t,n={}){let r=t.registeredTool??e.activatedRegisteredTools.get(t.name),a=!!r||e.activatedToolNames.has(t.name)||e.activatedRegisteredTools.has(t.name);if(r&&!n.skipRegisteredToolRemoval)try{r.remove()}catch(e){n.onRemoveError?.(e)}return e.router.removeHandler(t.name),e.activatedToolNames.delete(t.name),e.activatedRegisteredTools.delete(t.name),t.registeredTool=void 0,t.activationSource=void 0,t.activatedAt=void 0,n.removeDefinition&&e.extensionToolsByName.delete(t.name),i(e,t.domain),a}export{a as n,s as r,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";var n=class n{static instance=null;activeProfile=null;available=null;constructor(){}static getInstance(){return n.instance||=new n,n.instance}isAvailable(){if(this.available!==null)return this.available;try{e.resolve(`fingerprint-generator`),e.resolve(`fingerprint-injector`),this.available=!0}catch{this.available=!1}return this.available}async generateFingerprint(e){if(!this.isAvailable())return t.warn(`fingerprint-generator not installed. Run: pnpm add fingerprint-generator fingerprint-injector`),null;try{let{FingerprintGenerator:n}=await import(`fingerprint-generator`),r=new n,i={};e?.os&&(i.operatingSystems=[{windows:`windows`,macos:`macos`,linux:`linux`}[e.os]??`windows`]),e?.browser&&(i.browsers=[e.browser]),e?.locale&&(i.locales=[e.locale]),e?.screen&&(i.screen=e.screen);let a=r.getFingerprint(i);return this.activeProfile={fingerprint:a.fingerprint,headers:a.headers??{},generatedAt:Date.now(),os:e?.os??`windows`,browser:e?.browser??`chrome`},t.info(`Fingerprint generated for ${this.activeProfile.os}/${this.activeProfile.browser}`),this.activeProfile}catch(e){return t.error(`Failed to generate fingerprint:`,e),null}}async injectFingerprint(e,n){if(!this.isAvailable())throw Error(`fingerprint-injector not installed`);try{let{newInjectedPage:r}=await import(`fingerprint-injector`);await r(e,{fingerprint:`fingerprint`in n?n.fingerprint:n}),t.info(`Fingerprint injected into page`)}catch(e){throw t.error(`Failed to inject fingerprint:`,e),e}}getActiveProfile(){return this.activeProfile}clearProfile(){this.activeProfile=null}static resetInstance(){n.instance=null}};export{n as FingerprintManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{cr as e,sr as t}from"./constants-nvsLpSri.mjs";import{t as n}from"./ToolError-g3rjWzhx.mjs";import{t as r}from"./Win32API-G7QPyckq.mjs";import{CONTEXT_FLAGS as i,ContinueDebugEvent as a,DBG as o,DebugActiveProcess as s,DebugActiveProcessStop as c,DebugSetProcessKillOnExit as l,EXCEPTION_CODE as u,EnumerateProcessThreads as d,GetThreadContext as f,ResumeThread as p,SetThreadContext as m,SuspendThread as h,WaitForDebugEvent as g,encodeDR7 as _,openThreadForDebug as v,parseContext as y,writeContext as b}from"./Win32Debug-6yzmtv5b.mjs";import{randomUUID as x}from"node:crypto";const S=e=>`0x${e.toString(16).toUpperCase()}`;var C=class{breakpoints=new Map;attachedPids=new Set;drAllocation=[!1,!1,!1,!1];async attach(e){if(!this.attachedPids.has(e)){s(e),l(!1),this.attachedPids.add(e);for(let e=0;e<100;e++){let e=g(100);if(!e)break;a(e.processId,e.threadId,o.CONTINUE)}}}async detach(e){for(let[t,n]of this.breakpoints)n.pid===e&&(this.clearDR(e,n.drIndex),this.drAllocation[n.drIndex]=!1,this.breakpoints.delete(t));if(this.attachedPids.has(e)){try{c(e)}catch{}this.attachedPids.delete(e)}}async setBreakpoint(e,t,n,r=4){this.attachedPids.has(e)||await this.attach(e);let i=this.allocateDR(),a=BigInt(t.startsWith(`0x`)?t:`0x${t}`);this.applyDRToAllThreads(e,i,a,n,r,!0);let o={id:x(),pid:e,address:`0x${a.toString(16).toUpperCase()}`,access:n,size:r,enabled:!0,drIndex:i,hitCount:0};return this.breakpoints.set(o.id,o),o}async removeBreakpoint(e){let t=this.breakpoints.get(e);return t?(this.clearDR(t.pid,t.drIndex),this.drAllocation[t.drIndex]=!1,this.breakpoints.delete(e),!0):!1}listBreakpoints(){return Array.from(this.breakpoints.values()).map(e=>({id:e.id,address:e.address,access:e.access,size:e.size,enabled:e.enabled,hitCount:e.hitCount,lastHit:e.lastHit}))}async waitForHit(e){let n=e??t,r=Date.now()+n;for(;Date.now()<r;){let e=Math.max(100,r-Date.now()),t=g(Math.min(e,500));if(t)if(t.exceptionCode===u.SINGLE_STEP){let e=this.processHit(t.threadId,t.processId,t.exceptionAddress);if(a(t.processId,t.threadId,o.CONTINUE),e)return e}else a(t.processId,t.threadId,o.CONTINUE)}return null}async traceAccess(n,r,i,a,o){let s=a??e,c=o??t,l=await this.setBreakpoint(n,r,i),u=[],d=Date.now()+c;for(;u.length<s&&Date.now()<d;){let e=await this.waitForHit(Math.min(1e3,d-Date.now()));e?.breakpointId===l.id&&u.push(e)}return await this.removeBreakpoint(l.id),u}allocateDR(){for(let e=0;e<4;e++)if(!this.drAllocation[e])return this.drAllocation[e]=!0,e;throw new n(`PREREQUISITE`,`All 4 hardware breakpoint registers (DR0-DR3) are in use`)}applyDRToAllThreads(e,t,n,a,o,s){let c=d(e),l={execute:`execute`,write:`write`,readwrite:`readwrite`,read:`read`};for(let e of c){let c;try{c=v(e)}catch{continue}try{h(c);let e=f(c,i.ALL),r=[72,80,88,96];s?e.writeBigUInt64LE(n,r[t]):e.writeBigUInt64LE(0n,r[t]);let u=Array.from(this.breakpoints.values()).filter(e=>e.enabled).map(e=>({drIndex:e.drIndex,enabled:!0,access:l[e.access],size:e.size}));s&&u.push({drIndex:t,enabled:!0,access:l[a],size:o});let d=_(u);e.writeBigUInt64LE(d,112),b(e,{contextFlags:i.ALL}),m(c,e),p(c)}catch{try{p(c)}catch{}}finally{r(c)}}}clearDR(e,t){this.applyDRToAllThreads(e,t,0n,`write`,1,!1)}processHit(e,t,n){let a;try{a=v(e)}catch{return null}try{let n=f(a,i.ALL),r=y(n);for(let[i,o]of this.breakpoints){if(o.pid!==t)continue;let s=1n<<BigInt(o.drIndex);if(r.dr6&s)return o.hitCount++,o.lastHit=Date.now(),n.writeBigUInt64LE(0n,104),m(a,n),{breakpointId:i,address:o.address,accessAddress:o.address,instructionAddress:S(r.rip),threadId:e,accessType:o.access,timestamp:Date.now(),registers:{rax:S(r.rax),rbx:S(r.rbx),rcx:S(r.rcx),rdx:S(r.rdx),rsi:S(r.rsi),rdi:S(r.rdi),rsp:S(r.rsp),rbp:S(r.rbp),r8:S(r.r8),r9:S(r.r9),r10:S(r.r10),r11:S(r.r11),r12:S(r.r12),r13:S(r.r13),r14:S(r.r14),r15:S(r.r15),rip:S(r.rip),rflags:`0x${r.eflags.toString(16).toUpperCase()}`}}}return null}finally{r(a)}}};const w=new C;export{C as HardwareBreakpointEngine,w as hardwareBreakpointEngine};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";import{dr as n,fr as r,mr as i,pr as a}from"./constants-nvsLpSri.mjs";import{t as o}from"./ToolError-g3rjWzhx.mjs";import{p as s,t as c,w as l}from"./Win32API-G7QPyckq.mjs";import{n as u}from"./mapsParser-DrJoeC0c.mjs";import{TH32CS as d}from"./Win32Debug-6yzmtv5b.mjs";import{readFileSync as f}from"node:fs";import p from"koffi";const m={FIXED:1,FREE:2,MOVEABLE:4},h={DEFAULT:1,SHARED:2};let g=null;function _(){let e=p.load(`kernel32.dll`);return{CreateToolhelp32Snapshot:e.func(`CreateToolhelp32Snapshot`,`intptr`,[`uint32`,`uint32`]),Heap32ListFirst:e.func(`Heap32ListFirst`,`bool`,[`intptr`,`_Inout_ uint8_t *`]),Heap32ListNext:e.func(`Heap32ListNext`,`bool`,[`intptr`,`_Inout_ uint8_t *`]),Heap32First:e.func(`Heap32First`,`bool`,[`_Inout_ uint8_t *`,`uint32`,`uintptr_t`]),Heap32Next:e.func(`Heap32Next`,`bool`,[`_Inout_ uint8_t *`]),CloseHandle:e.func(`int CloseHandle(intptr)`),HEAPLIST32_SIZE:36,HEAPENTRY32_SIZE:56}}function v(){return g||=_(),g}const y=[[`0-64B`,0,64],[`64-256B`,64,256],[`256B-1KB`,256,1024],[`1-4KB`,1024,4096],[`4-16KB`,4096,16384],[`16-64KB`,16384,65536],[`64KB-1MB`,65536,1048576],[`>1MB`,1048576,2**53-1]];function b(e){for(let t=0;t<y.length;t++)if(e>=y[t][1]&&e<y[t][2])return t;return y.length-1}function x(){return y.map(([e])=>({range:e,count:0,totalBytes:0}))}function S(e=0,t=0){return{totalHeaps:e,totalBlocks:t,totalSize:0,freeSize:0,usedSize:0,largestBlock:0,smallestBlock:0,averageBlockSize:0,sizeDistribution:x(),fragmentationRatio:0}}function C(e){if(e.length===0)return 0;let t=Array.from({length:256},()=>0);for(let n of e)t[n]+=1;let n=0,r=e.length;for(let e=0;e<256;e++){if(!t[e])continue;let i=t[e]/r;n-=i*Math.log2(i)}return n}function w(e){try{return u(f(`/proc/${e}/maps`,`utf8`)).filter(e=>e.permissions.read).map(e=>({addr:e.start,size:Number(e.end-e.start),isExec:e.permissions.exec,isWrite:e.permissions.write,path:e.pathname||``}))}catch{return[]}}function T(e,t){return{address:`0x${e.addr.toString(16)}`,size:e.size,flags:0,heapId:t,isFree:!1}}function E(t,n,r){try{let i=e(`node:fs`).openSync(`/proc/${t}/mem`,`r`),a=Buffer.alloc(r);return e(`node:fs`).readSync(i,a,0,r,Number(n)),e(`node:fs`).closeSync(i),a}catch{return null}}var D=class{async enumerateHeaps(e){if(process.platform===`win32`)return this.winEnumerateHeaps(e);let t=w(e);if(t.length===0)return{heaps:[],stats:S(),platformNote:`Cannot read /proc/${e}/maps — process may not exist or ptrace access is denied.`};let n=t.filter(e=>!e.path),r=t.filter(e=>e.path),i=[],a=n.reduce((e,t)=>e+t.size,0);i.push({heapId:`anon`,processId:e,flags:0,isDefault:!0,blockCount:n.length,totalSize:a});let o=new Map;for(let e of r){let t=e.path||`<unknown>`;o.has(t)||o.set(t,[]),o.get(t).push(e)}for(let[t,n]of o)i.push({heapId:t,processId:e,flags:0,isDefault:!1,blockCount:n.length,totalSize:n.reduce((e,t)=>e+t.size,0)});let s=i.reduce((e,t)=>e+t.blockCount,0);return{heaps:i,stats:{totalHeaps:i.length,totalBlocks:s,totalSize:0,freeSize:0,usedSize:0,largestBlock:0,smallestBlock:0,averageBlockSize:0,sizeDistribution:x(),fragmentationRatio:0},platformNote:`Region-based heap enumeration (${process.platform}). Uses /proc/pid/maps groupings — not Toolhelp32.`}}async enumerateBlocks(e,t,r){if(process.platform===`win32`)return this.winEnumerateBlocks(e,t,r);let i=w(e),a=r?.maxBlocks??n,o=[];for(let e of i){let n=e.path||(e.path,`anon`),r=t===`anon`?`anon`:n;if(!(r!==t&&t!==`*`&&t!==`anon`&&!n.includes(t))){if(o.length>=a)break;o.push(T(e,r))}}return o}async getStats(e){if(process.platform===`win32`)return this.winGetStats(e);let t=w(e),n=x(),r=0,i=0,a=2**53-1,o=0;for(let e of t){r+=e.size,o++,e.size>i&&(i=e.size),e.size<a&&(a=e.size);let t=b(e.size);n[t].count++,n[t].totalBytes+=e.size}return a===2**53-1&&(a=0),{totalHeaps:1,totalBlocks:o,totalSize:r,freeSize:0,usedSize:r,largestBlock:i,smallestBlock:a,averageBlockSize:o>0?Math.round(r/o):0,sizeDistribution:n,fragmentationRatio:0,platformNote:`Region-based statistics (${process.platform}). Reads /proc/pid/maps, not Toolhelp32.`}}async detectAnomalies(e){if(process.platform===`win32`)return this.winDetectAnomalies(e);let t=[],n=w(e),o=new Map;for(let e of n){if(e.path)continue;let t=Math.round(e.size/r)*r,n=o.get(t)??[];n.push(e),o.set(t,n)}for(let[e,n]of o)n.length>=a&&t.push({type:`heap_spray_pattern`,severity:`high`,address:`0x${n[0].addr.toString(16)}`,details:`${n.length} anonymous regions of ~${e} bytes — possible heap spray.`,heapId:`anon`});for(let e of n)e.size===0?t.push({type:`suspicious_size`,severity:`medium`,address:`0x${e.addr.toString(16)}`,details:`Zero-size region.`,heapId:e.path||`anon`}):e.size>i&&t.push({type:`suspicious_size`,severity:`medium`,address:`0x${e.addr.toString(16)}`,details:`Large region: ${(e.size/1048576).toFixed(1)} MB.`,heapId:e.path||`anon`});let s=n.filter(e=>!e.isExec&&e.size>=64).slice(0,500);for(let n of s){let r=E(e,n.addr,Math.min(256,n.size));if(!r||r.length<8)continue;let i=C(r);i>=7&&t.push({type:`high_entropy`,severity:`medium`,address:`0x${n.addr.toString(16)}`,details:`Entropy ${i.toFixed(2)} bits/byte in ${r.length}B sample — possible shellcode or encrypted data.`,heapId:n.path||`anon`})}return t}async winEnumerateHeaps(e){let t=v(),r=t.CreateToolhelp32Snapshot(d.SNAPHEAPLIST,e);if(r===-1n&&typeof r==`bigint`)throw new o(`RUNTIME`,`Failed to create heap snapshot for PID ${e}`);let i=[];try{let a=Buffer.alloc(t.HEAPLIST32_SIZE);a.writeBigUInt64LE(BigInt(t.HEAPLIST32_SIZE),0);let o=t.Heap32ListFirst(r,a);for(;o;){let s=a.readUInt32LE(8),c=a.readBigUInt64LE(12),l=a.readUInt32LE(20),u=await this.winEnumBlocks(e,c,n);i.push({heapId:`0x${c.toString(16)}`,processId:s,flags:l,isDefault:(l&h.DEFAULT)!==0,blockCount:u.length,totalSize:u.reduce((e,t)=>e+t.size,0)}),a.writeBigUInt64LE(BigInt(t.HEAPLIST32_SIZE),0),o=t.Heap32ListNext(r,a)}}finally{t.CloseHandle(r)}return{heaps:i,stats:this.winComputeStats(i,[])}}async winEnumerateBlocks(e,t,r){return this.winEnumBlocks(e,BigInt(t),r?.maxBlocks??n)}async winGetStats(e){let{heaps:t}=await this.winEnumerateHeaps(e),r=[];for(let i of t){let t=await this.winEnumBlocks(e,BigInt(i.heapId),n);r.push(...t)}return this.winComputeStats(t,r)}async winDetectAnomalies(e){let t=[],{heaps:r}=await this.winEnumerateHeaps(e);for(let i of r){let r=await this.winEnumBlocks(e,BigInt(i.heapId),n);this.winSpray(r,i.heapId,t),this.winSuspicious(r,i.heapId,t),await this.winUaf(e,r,i.heapId,t),await this.winEntropy(e,r,i.heapId,t),this.detectDoubleFree(r,i.heapId,t)}return t}async winEnumBlocks(e,t,n){let r=v(),i=Buffer.alloc(r.HEAPENTRY32_SIZE);i.writeBigUInt64LE(BigInt(r.HEAPENTRY32_SIZE),0);let a=[],o=r.Heap32First(i,e,t);for(;o&&a.length<n;){let e=i.readBigUInt64LE(16);a.push({address:`0x${e.toString(16)}`,size:Number(i.readBigUInt64LE(24)),flags:i.readUInt32LE(32),heapId:`0x${t.toString(16)}`,isFree:(i.readUInt32LE(32)&m.FREE)!==0}),i.writeBigUInt64LE(BigInt(r.HEAPENTRY32_SIZE),0),o=r.Heap32Next(i)}return a}winComputeStats(e,t){let n=x(),r=0,i=0,a=0,o=2**53-1;for(let e of t){r+=e.size,e.isFree&&(i+=e.size),e.size>a&&(a=e.size),!e.isFree&&e.size<o&&(o=e.size);let t=b(e.size);n[t].count++,n[t].totalBytes+=e.size}return o===2**53-1&&(o=0),r===0&&e.length>0&&(r=e.reduce((e,t)=>e+t.totalSize,0)),{totalHeaps:e.length,totalBlocks:t.length||e.reduce((e,t)=>e+t.blockCount,0),totalSize:r,freeSize:i,usedSize:r-i,largestBlock:a,smallestBlock:o,averageBlockSize:t.length>0?Math.round(r/t.length):0,sizeDistribution:n,fragmentationRatio:r>0?i/r:0}}winSpray(e,t,n){let i=new Map;for(let t of e){if(t.isFree)continue;let e=Math.round(t.size/r)*r,n=i.get(e)??[];n.push(t),i.set(e,n)}for(let[e,r]of i)r.length>=a&&n.push({type:`heap_spray_pattern`,severity:`high`,address:r[0].address,details:`${r.length} blocks ~${e}B — possible heap spray`,heapId:t})}winSuspicious(e,t,n){for(let r of e)r.size===0?n.push({type:`suspicious_size`,severity:`medium`,address:r.address,details:`Block with zero size`,heapId:t}):r.size>i&&n.push({type:`suspicious_size`,severity:`medium`,address:r.address,details:`${(r.size/1048576).toFixed(1)} MB block`,heapId:t})}async winUaf(e,n,r,i){let a=n.filter(e=>e.isFree&&e.size>=8).slice(0,100);if(!a.length)return;let o=null;try{o=l(e);for(let e of a){let t=s(o,BigInt(e.address),8);t.readBigUInt64LE(0)!==0n&&i.push({type:`possible_uaf`,severity:`low`,address:e.address,details:`Free block has non-zero data: 0x${t.readBigUInt64LE(0).toString(16)}`,heapId:r})}}catch(n){t.debug(`UAF check failed for PID ${e}: ${n}`)}finally{o&&c(o)}}async winEntropy(e,n,r,i){let a=n.filter(e=>!e.isFree&&e.size>=64).slice(0,500);if(!a.length)return;let o=null;try{o=l(e);for(let e of a){let t=Math.min(256,e.size),n=s(o,BigInt(e.address),t);if(n.length<8)continue;let a=C(n);a>=7&&i.push({type:`high_entropy`,severity:`medium`,address:e.address,details:`Entropy ${a.toFixed(2)} bits/byte in ${n.length}B sample`,heapId:r})}}catch(n){t.debug(`High-entropy check failed for PID ${e}: ${n}`)}finally{o&&c(o)}}detectDoubleFree(e,t,n){let r=new Map;for(let t of e){if(!t.isFree)continue;let e=r.get(t.address)??[];e.push(t),r.set(t.address,e)}for(let[e,i]of r)i.length>=2&&n.push({type:`possible_double_free`,severity:`high`,address:e,details:`${i.length} free blocks at same address ${e} — possible double-free or overlapping free blocks (sizes: ${i.map(e=>e.size).join(`, `)}).`,heapId:t})}computeStats(e,t){return this.winComputeStats(e,t)}detectSpray(e,t,n){this.winSpray(e,t,n)}detectSuspiciousSizes(e,t,n){this.winSuspicious(e,t,n)}async detectPossibleUaf(e,t,n,r){return this.winUaf(e,t,n,r)}async detectHighEntropy(e,t,n,r){return this.winEntropy(e,t,n,r)}async enumerateBlocksInternal(e,t,n){return this.winEnumBlocks(e,t,n)}};const O=new D;export{D as HeapAnalyzer,C as computeShannonEntropy,O as heapAnalyzer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=new Set([`jmp_abs64`,`mov_jmp`,`mov_call`,`push_ret`]);function t(e,t){let n=(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0;return n>2147483647?n-4294967296:n}function n(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function r(e,t){return e[t]>127?e[t]-256:e[t]}function i(e,t){let n=0n;for(let r=7;r>=0;r--)n=n<<8n|BigInt(e[t+r]);return n}function a(e){if(e.length===0)return`unknown`;let t=e[0];if(t===204)return`int3_breakpoint`;if(e.length>=2&&e.every(e=>e===t))return`padding`;if(t===233)return`jmp_rel32`;if(t===232)return`call_rel32`;if(t===235)return`short_jmp`;if(t===255&&e[1]===37)return`jmp_abs64`;if(t>=184&&t<=191&&e.length>=7&&e[5]===255){let t=e[6];if(t>=224&&t<=239)return`mov_jmp`;if(t>=208&&t<=223)return`mov_call`}return t===104&&e[5]===195?`push_ret`:`unknown`}function o(e,a){if(e.length===0)return`0x0`;let o=e[0];if(o===233||o===232){if(e.length<5)return`0x0`;let n=t(e,1);return`0x${(a+5n+BigInt(n)).toString(16)}`}if(o===235){if(e.length<2)return`0x0`;let t=r(e,1);return`0x${(a+2n+BigInt(t)).toString(16)}`}return o===255&&e[1]===37?e.length>=14?`0x${i(e,6).toString(16)}`:`0x0`:o>=184&&o<=191||o===104&&e[5]===195?e.length<5?`0x0`:`0x${n(e,1).toString(16)}`:`0x0`}function s(t,n,r={}){let i=r.confidence??`high`,s=r.skipPadding??!0,l=[];for(let r=0;r+1<t.length;r++){let u=t.subarray(r,r+16),d=a(u);if(d===`unknown`)continue;let f=d===`int3_breakpoint`||d===`padding`;if(s&&f||!f&&i===`high`&&!e.has(d))continue;let p=n+BigInt(r);l.push({offset:r,address:`0x${p.toString(16)}`,hookType:d,jumpTarget:o(u,p),matchedBytes:Array.from(u.subarray(0,c(d)))})}return l}function c(e){switch(e){case`jmp_rel32`:case`call_rel32`:return 5;case`short_jmp`:return 2;case`jmp_abs64`:return 6;case`mov_jmp`:case`mov_call`:return 8;case`push_ret`:return 6;case`int3_breakpoint`:return 1;case`padding`:return 2;default:return 1}}export{o as n,s as r,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./types-CWSvzmIh.mjs";let e=0;function t(t){return`${t}-${Date.now().toString(36)}-${(++e).toString(36)}`}function n(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function r(e){let t=e.content.find(e=>e.type===`text`&&typeof e.text==`string`);if(!t)throw Error(`Expected JSON text payload from wrapped tool response`);let r;try{r=JSON.parse(t.text)}catch(e){throw Error(`Wrapped tool returned non-JSON text payload: ${e instanceof Error?e.message:String(e)}`,{cause:e})}if(!n(r))throw Error(`Wrapped tool returned JSON that is not an object`);return r}function i(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}var a=class{sessions=new Map;operations=new Map;artifacts=new Map;operationIndex=new Map;evidenceBridge;setEvidenceBridge(e){this.evidenceBridge=e}createSession(e){let n=t(`sess`),r={id:n,name:e,createdAt:Date.now(),operationCount:0,artifactCount:0,status:`active`};return this.sessions.set(n,r),this.operations.set(n,[]),this.artifacts.set(n,[]),r}destroySession(e){let t=this.sessions.get(e);if(!t)throw Error(`Session "${e}" not found`);t.status=`destroyed`;let n=this.operations.get(e)??[];for(let e of n)e.status===`active`&&(e.status=`completed`)}listSessions(){return[...this.sessions.values()].filter(e=>e.status===`active`)}getSession(e){return this.sessions.get(e)}registerOperation(e,n,r,i){let a=this.sessions.get(e);if(!a)throw Error(`Session "${e}" not found`);if(a.status===`destroyed`)throw Error(`Session "${e}" is destroyed — cannot register new operations`);let o=t(`op`),s={id:o,sessionId:e,type:n,target:r,config:i,createdAt:Date.now(),status:`active`},c=this.operations.get(e);return c.push(s),this.operationIndex.set(o,e),a.operationCount=c.length,this.evidenceBridge?.onOperation(s),s}getSessionOperations(e){return this.operations.get(e)??[]}getOperation(e,t){return this.getSessionOperations(e).find(e=>e.id===t)}stopOperation(e,t){if(!this.sessions.get(e))throw Error(`Session "${e}" not found`);let n=this.getOperation(e,t);if(!n)throw Error(`Operation "${t}" not found`);return(n.status===`active`||n.status===`paused`)&&(n.status=`cancelled`),n}recordArtifact(e,t){let n=this.operationIndex.get(e);if(!n)throw Error(`Operation "${e}" not found`);let r=(this.operations.get(n)??[]).find(t=>t.id===e);if(!r)throw Error(`Operation "${e}" metadata missing`);let i={operationId:e,sessionId:n,type:r.type,timestamp:Date.now(),data:t},a=this.artifacts.get(n);a.push(i);let o=this.sessions.get(n);return o.artifactCount=a.length,this.evidenceBridge?.onArtifact(i),i}getArtifacts(e,t){let n=this.artifacts.get(e)??[];return t?n.filter(e=>e.type===t):n}getSessionSnapshot(e){let t=this.sessions.get(e);if(t)return{session:t,stats:this.getSessionStats(e),operations:[...this.getSessionOperations(e)],artifacts:[...this.getArtifacts(e)]}}listSessionSnapshots(){return this.listSessions().map(e=>({session:e,stats:this.getSessionStats(e.id),operations:[...this.getSessionOperations(e.id)],artifacts:[...this.getArtifacts(e.id)]}))}async applyHookPreset(e,t,r){let a=i(r.presets),o=(typeof r.preset==`string`?r.preset:void 0)??(a.length>0?a.join(`, `):`hook_preset`);return this.executeTrackedTool({sessionId:e,type:`runtime-hook`,target:o,config:{...r},invoke:()=>t.handleHookPreset(r),isSuccessful:e=>i(e.injected).length>0,buildArtifacts:e=>{let t=i(e.injected);return[{presetIds:t,failedPresets:Array.isArray(e.failed)?e.failed.filter(e=>n(e)&&typeof e.preset==`string`&&typeof e.error==`string`):[],injectionPoint:e.method===`evaluateOnNewDocument`?`before-load`:`runtime`,scriptContent:t.join(`, `),body:e}]}})}async replayNetworkRequest(e,t,r){let i=typeof r.requestId==`string`?r.requestId:`network_replay`,a=typeof r.urlOverride==`string`?r.urlOverride:void 0;return this.executeTrackedTool({sessionId:e,type:`network-intercept`,target:i,config:{...r},invoke:()=>t.handleNetworkReplayRequest(r),buildArtifacts:e=>e.dryRun===!0&&n(e.preview)?[{requestId:i,url:typeof e.preview.url==`string`?e.preview.url:a,method:typeof e.preview.method==`string`?e.preview.method:void 0,headers:n(e.preview.headers)?e.preview.headers:void 0,body:e.preview.body,replayMode:`dry-run`}]:[{requestId:typeof e.requestId==`string`?e.requestId:i,url:a,method:typeof r.methodOverride==`string`?r.methodOverride:void 0,headers:n(e.headers)?e.headers:void 0,body:e.body,statusCode:typeof e.status==`number`?e.status:void 0,statusText:typeof e.statusText==`string`?e.statusText:void 0,bodyTruncated:typeof e.bodyTruncated==`boolean`?e.bodyTruncated:void 0,replayMode:`live`}]})}getSessionStats(e){let t=this.sessions.get(e);return t?{operationCount:t.operationCount,artifactCount:t.artifactCount}:{operationCount:0,artifactCount:0}}findOperation(e){let t=this.operationIndex.get(e);if(t)return(this.operations.get(t)??[]).find(t=>t.id===e)}setOperationStatus(e,t){let n=this.findOperation(e);n&&(n.status=t)}async executeTrackedTool(e){let t=this.registerOperation(e.sessionId,e.type,e.target,e.config);try{let n=r(await e.invoke());if(!(e.isSuccessful?e.isSuccessful(n):n.success!==!1))return this.setOperationStatus(t.id,`failed`),{operation:t,artifacts:[],payload:n};let i=(e.buildArtifacts?.(n)??[]).map(e=>this.recordArtifact(t.id,e));return this.setOperationStatus(t.id,`completed`),{operation:t,artifacts:i,payload:n}}catch(e){throw this.setOperationStatus(t.id,`failed`),e}}};export{a as InstrumentationSessionManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{hr as e}from"./constants-nvsLpSri.mjs";import{n as t}from"./ServerRuntimeState-DGXNv8Ji.mjs";import{readFileSync as n}from"node:fs";import{createHash as r}from"node:crypto";var i=class{buffer;head=0;count=0;capacity;constructor(t=e){this.capacity=Number.isInteger(t)&&t>0?t:e,this.buffer=Array.from({length:this.capacity})}record(e){let t={...e,timestamp:new Date().toISOString(),user:process.env.USERNAME||process.env.USER||`unknown`};if(this.count<this.capacity){let e=(this.head+this.count)%this.capacity;this.buffer[e]=t,this.count+=1;return}this.buffer[this.head]=t,this.head=(this.head+1)%this.capacity}exportJson(){let e=[];for(let t=0;t<this.count;t+=1){let n=(this.head+t)%this.capacity,r=this.buffer[n];r&&e.push(r)}return JSON.stringify(e,null,2)}clear(){this.buffer=[],this.head=0,this.count=0}size(){return this.count}};function a(e){if(!e||typeof e!=`string`)return null;let t=e.trim();return t.length>0&&t!==`about:blank`?t:null}async function o(e,n){if(!n)return null;let r=t(n),i=r?.getBrowserAttach(),o=i?.rendererPid??null;if(o&&Number.isInteger(o)&&o>0)return o;let s=i?.browserPid??null,c=a(i?.selectedUrl),l=i?.selectedTitle?.trim()||null;if(!s)return null;let u=await e.findBrowserProcesses();if(!u?.rendererProcesses?.length)return null;let d=u.rendererProcesses.filter(e=>e.parentPid===s||!e.parentPid),f=d.length>0?d:u.rendererProcesses,p=null;if(c||l)for(let e of f){let t=e.commandLine?.toLowerCase()??``,n=c?t.includes(c.toLowerCase()):!1,r=l&&e.windowTitle?e.windowTitle.toLowerCase().includes(l.toLowerCase()):!1;if(n||r){p=e.pid;break}}return p||=f[0]?.pid??null,p&&r?.setBrowserAttach({rendererPid:p,browserPid:s}),p}async function s(e,t,n){let r=Number(e);if(Number.isInteger(r)&&r>0)return r;if(e!=null)throw Error(`Invalid PID: ${JSON.stringify(e)}`);let i=await o(t,n);if(i)return i;throw Error(`Invalid PID. Attach a browser first to auto-discover the current renderer PID, or provide pid explicitly.`)}function c(e){let t;try{t=n(e)}catch{return null}return t.length<64||t[0]!==127||t[1]!==69||t[2]!==76||t[3]!==70||t[4]!==2?null:t}function l(e,t,n){let r=Math.min(t+n,e.length),i=``;for(let n=t;n<r;n++){let t=e[n];if(t===0)break;i+=String.fromCharCode(t)}return i}function u(e){let t=c(e);return t?{class:t[4],dataEncoding:t[5],type:t.readUInt16LE(16),machine:t.readUInt16LE(18),entry:t.readBigUInt64LE(24),flags:t.readUInt32LE(48),phnum:t.readUInt16LE(56),shnum:t.readUInt16LE(60)}:null}function d(e){let t=c(e);if(!t)return[];let n=Number(t.readBigUInt64LE(40)),r=t.readUInt16LE(58),i=t.readUInt16LE(60),a=t.readUInt16LE(62);if(i===0||r<64)return[];let o=n+a*r;if(o+24>t.length)return[];let s=Number(t.readBigUInt64LE(o+24)),u=[];for(let e=0;e<Math.min(i,512);e++){let i=n+e*r;if(i+r>t.length)break;let a=t.readUInt32LE(i),o=Number(t.readBigUInt64LE(i+8)),c=t.readBigUInt64LE(i+16),d=Number(t.readBigUInt64LE(i+24)),f=Number(t.readBigUInt64LE(i+32));o&2&&u.push({name:l(t,s+a,64)||`.sec_${e}`,addr:c,size:f,fileOffset:d,isExecutable:(o&4)!=0,isWritable:(o&1)!=0})}return u}function f(e){let t=c(e);if(!t)return{imports:[],exports:[]};let n=Number(t.readBigUInt64LE(40)),r=t.readUInt16LE(58),i=t.readUInt16LE(60);if(i===0||r<64)return{imports:[],exports:[]};let a=-1,o=0,s=24,u=-1;for(let e=0;e<i;e++){let i=n+e*r;if(i+r>t.length)break;let c=t.readUInt32LE(i+4);if(c===11){a=Number(t.readBigUInt64LE(i+24)),o=Number(t.readBigUInt64LE(i+32)),s=t.readUInt32LE(i+56)||24;let e=n+t.readUInt32LE(i+40)*r;e+r<=t.length&&(u=Number(t.readBigUInt64LE(e+24)))}else c===3&&u<0&&(u=Number(t.readBigUInt64LE(i+24)))}if(a<0||u<0)return{imports:[],exports:[]};let d=[],f=[],p=Math.floor(o/s);for(let e=0;e<Math.min(p,8192);e++){let n=a+e*s;if(n+24>t.length)break;let r=t.readUInt32LE(n),i=t[n+4],o=t.readUInt16LE(n+6),c=t.readBigUInt64LE(n+8),p=l(t,u+r,256);if(!p)continue;let m=i>>4,h=i&15,g=o===0,_={name:p,value:c,bind:m,type:h,isImport:g};g?d.push(_):(m===1||m===2)&&f.push(_)}return{imports:d,exports:f}}const p=4277009103,m=3405691582,h=3199925962;function g(e,t){if(t+32>e.length)return[];let n=e.readUInt32LE(t+20),r=t+32,i=Math.min(r+n,e.length),a=[];for(;r+8<=i;){let t=e.readUInt32LE(r),n=e.readUInt32LE(r+4);if(n<8)break;if(t===25&&r+72<=e.length){let t=_(e,r+8,16),n=e.readUInt32LE(r+74),i=e.readUInt32LE(r+64);for(let o=0;o<Math.min(i,256);o++){let i=r+72+o*80;if(i+80>e.length)break;let s=_(e,i,16),c=e.readBigUInt64LE(i+32),l=e.readBigUInt64LE(i+40),u=i,d=e.readUInt32LE(i+64);a.push({name:`${t}.${s}`,addr:c,size:Number(l),fileOffset:u,isExecutable:(n&4)!=0||(d&4)!=0,isWritable:(n&2)!=0})}}r+=n}return a}function _(e,t,n){let r=t;for(;r<t+n&&r<e.length&&e[r]!==0;)r++;return e.subarray(t,r).toString(`ascii`)}function v(e){let t;try{t=n(e)}catch{return[]}if(t.length<4)return[];let r=t.readUInt32LE(0);if(r===m||r===h){let e=t.readUInt32BE(4);for(let n=0;n<e;n++){let e=8+n*20;if(e+20>t.length)break;let r=t.readUInt32BE(e),i=t.readUInt32BE(e+8),a=t.readUInt32BE(e+12);if((r===16777223||r===16777228)&&i+a<=t.length&&t.readUInt32LE(i)===p)return g(t,i)}return[]}return r===p?g(t,0):[]}function y(e){if(e.length<4)return-1;let t=e.readUInt32LE(0);if(t===m||t===h){let t=e.readUInt32BE(4);for(let n=0;n<t;n++){let t=8+n*20;if(t+20>e.length)break;let r=e.readUInt32BE(t),i=e.readUInt32BE(t+8),a=e.readUInt32BE(t+12);if((r===16777223||r===16777228)&&i+a<=e.length&&e.readUInt32LE(i)===p)return i}return-1}return t===p?0:-1}function b(e){let t;try{t=n(e)}catch{return null}let r=y(t);return r<0||r+32>t.length?null:{cpuType:t.readUInt32LE(r+4),cpuSubtype:t.readUInt32LE(r+8),fileType:t.readUInt32LE(r+12),ncmds:t.readUInt32LE(r+16),sizeofcmds:t.readUInt32LE(r+20),flags:t.readUInt32LE(r+24)}}function x(e){let t;try{t=n(e)}catch{return{imports:[],exports:[]}}let r=y(t);if(r<0||r+32>t.length)return{imports:[],exports:[]};let i=t.readUInt32LE(r+20),a=r+32,o=Math.min(a+i,t.length),s=0,c=0,l=0,u=!1,d=a;for(;d+8<=o;){let e=t.readUInt32LE(d),n=t.readUInt32LE(d+4);if(n<8)break;if(e===2&&d+24<=t.length){s=t.readUInt32LE(d+8),c=t.readUInt32LE(d+12),l=t.readUInt32LE(d+16),t.readUInt32LE(d+20),u=!0;break}d+=n}if(!u)return{imports:[],exports:[]};let f=[],p=[];for(let e=0;e<Math.min(c,8192);e++){let n=s+e*16;if(n+16>t.length)break;let r=t.readUInt32LE(n),i=t[n+4],a=t[n+5],o=t.readBigUInt64LE(n+8),c=(i&1)!=0;if(!c)continue;let u=_(t,l+r,256);if(!u)continue;let d=a===0,m={name:u,value:o,sect:a,isExternal:c,isImport:d};d?f.push(m):p.push(m)}return{imports:f,exports:p}}const S=16*1024*1024,C=3e3;async function w(e,t,i){let a=Date.now(),o={scannedModules:0,scannedSections:0,hashedBytes:0,skippedModules:0,skippedSections:0,durationMs:0,timedOut:!1,truncated:!1,maxModules:32,maxSections:128,maxBytes:S,timeoutMs:C},s=[],c;try{c=e.openProcess(t,!1)}catch{return o.durationMs=Date.now()-a,{sections:s,stats:o}}try{let t=e.enumerateModules(c),l=i?t.filter(e=>e.name.toLowerCase().includes(i.toLowerCase())):t;for(let t of l){if(Date.now()-a>=C){o.timedOut=!0,o.truncated=!0;break}if(o.scannedModules>=32){o.truncated=!0;break}o.scannedModules+=1;let i=e.platform===`linux`?d(t.name):e.platform===`darwin`?v(t.name):[];for(let a of i){if(o.scannedSections>=128){o.truncated=!0;break}if(o.hashedBytes+a.size>S){o.truncated=!0;break}if(a.isExecutable){if(a.size<=0||a.size>2097152){o.skippedSections+=1;continue}try{let i=e.readMemory(c,t.baseAddress+a.addr,a.size),l=n(t.name).subarray(a.fileOffset,a.fileOffset+a.size),u=r(`sha256`).update(i.data).digest(`hex`),d=r(`sha256`).update(l).digest(`hex`);s.push({sectionName:a.name,moduleName:t.name.split(`/`).pop()??t.name,diskHash:d,memoryHash:u,isModified:u!==d}),o.scannedSections+=1,o.hashedBytes+=a.size}catch{o.skippedSections+=1}}}}}finally{e.closeProcess(c)}return o.durationMs=Date.now()-a,{sections:s,stats:o}}export{u as a,s as c,v as i,i as l,b as n,d as o,x as r,f as s,w as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";import*as n from"@babel/parser";import r from"@babel/traverse";import i from"@babel/generator";import*as a from"@babel/types";var o=e({JScramberDeobfuscator:()=>s}),s=class{async deobfuscate(e){let{code:r,removeDeadCode:a=!0,restoreControlFlow:o=!0,decryptStrings:s=!0,simplifyExpressions:c=!0}=e;t.info(` JScrambler...`);let l=[],u=[],d=r;try{let e=n.parse(d,{sourceType:`unambiguous`,plugins:[`jsx`,`typescript`],errorRecovery:!0});if(this.detectSelfDefending(e)&&(this.removeSelfDefending(e),l.push(``)),s){let t=this.decryptStrings(e);t>0&&l.push(`: ${t}`)}if(o){let t=this.restoreControlFlow(e);t>0&&l.push(`: ${t}`)}if(a){let t=this.removeDeadCode(e);t>0&&l.push(`: ${t}`)}if(c){let t=this.simplifyExpressions(e);t>0&&l.push(`: ${t}`)}d=i(e,{comments:!0,compact:!1}).code;let r=this.calculateConfidence(l.length);return t.info(`JScrambler deobfuscation complete, ${l.length} transformations applied`),{code:d,success:!0,transformations:l,warnings:u,confidence:r}}catch(e){return t.error(`JScrambler`,e),{code:d,success:!1,transformations:l,warnings:[...u,String(e)],confidence:0}}}detectSelfDefending(e){let t=!1;return r(e,{FunctionDeclaration(e){e.node.body.body.some(e=>a.isDebuggerStatement(e))&&(t=!0);let n=i(e.node).code;n.includes(`toString`)&&n.includes(`constructor`)&&(t=!0)}}),t}removeSelfDefending(e){r(e,{DebuggerStatement(e){e.remove()},CallExpression(e){if(a.isIdentifier(e.node.callee)&&(e.node.callee.name===`setInterval`||e.node.callee.name===`setTimeout`)){let t=e.node.arguments[0];if(a.isFunctionExpression(t)||a.isArrowFunctionExpression(t)){let n=t.body;a.isBlockStatement(n)&&n.body.some(e=>a.isDebuggerStatement(e))&&e.remove()}}}})}decryptStrings(e){let t=0,n=this.findDecryptFunctions(e);return r(e,{CallExpression(e){if(a.isIdentifier(e.node.callee)){let r=e.node.callee.name;if(n.has(r))try{e.replaceWith(a.stringLiteral(`[DECRYPTED_STRING]`)),t++}catch{}}}}),t}findDecryptFunctions(e){let t=new Set;return r(e,{FunctionDeclaration(e){let n=i(e.node).code;n.includes(`charCodeAt`)&&n.includes(`fromCharCode`)&&n.includes(`split`)&&e.node.id&&t.add(e.node.id.name)}}),t}restoreControlFlow(e){let t=0;return r(e,{WhileStatement:e=>{if(this.isControlFlowFlatteningPattern(e.node))try{this.unflattenControlFlowPattern(e),t++}catch{}}}),t}isControlFlowFlatteningPattern(e){if(!a.isBooleanLiteral(e.test)||!e.test.value||!a.isBlockStatement(e.body))return!1;let t=e.body.body[0];return a.isSwitchStatement(t)}unflattenControlFlowPattern(e){let t=e.node;if(a.isBlockStatement(t.body)){let n=t.body.body[0];a.isSwitchStatement(n)&&e.replaceWithMultiple(n.cases.map(e=>e.consequent).flat())}}removeDeadCode(e){let t=0;return r(e,{IfStatement(e){a.isBooleanLiteral(e.node.test)&&(e.node.test.value?e.replaceWith(e.node.consequent):e.node.alternate?e.replaceWith(e.node.alternate):e.remove(),t++)}}),t}simplifyExpressions(e){let t=0;return r(e,{BinaryExpression(e){if(a.isNumericLiteral(e.node.left)&&a.isNumericLiteral(e.node.right)){let n=e.node.left.value,r=e.node.right.value,i;switch(e.node.operator){case`+`:i=n+r;break;case`-`:i=n-r;break;case`*`:i=n*r;break;case`/`:i=n/r;break}i!==void 0&&(e.replaceWith(a.numericLiteral(i)),t++)}}}),t}calculateConfidence(e){return Math.min(e/5,1)}};export{o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./logger-BGCcd-jJ.mjs";import{p as t}from"./registry-7h8jJ9y9.mjs";import{n}from"./ServerRuntimeState-DGXNv8Ji.mjs";function r(t,n,r,i){if(o(t,n),r<=0)return;let a=r*60*1e3,c=new Set(i),l=setTimeout(()=>{e.info(`Domain "${n}" TTL expired (${r}min) — auto-deactivating ${c.size} tools`),s(t,n).catch(t=>{e.error(`Failed to deactivate domain "${n}" on TTL expiry:`,t)})},a);t.domainTtlEntries.set(n,{timer:l,ttlMs:a,toolNames:c})}function i(t,n){let r=t.domainTtlEntries.get(n);if(!r)return;clearTimeout(r.timer);let i=r.ttlMs/6e4;r.timer=setTimeout(()=>{e.info(`Domain "${n}" TTL expired (${i}min) — auto-deactivating`),s(t,n).catch(t=>{e.error(`Failed to deactivate domain "${n}" on TTL expiry:`,t)})},r.ttlMs)}function a(e,n){let r=t(n);if(!r){let t=e.extensionToolsByName.get(n);t&&(r=t.domain)}r&&e.domainTtlEntries.has(r)&&i(e,r)}function o(e,t){let r=e.domainTtlEntries.get(t);r&&(clearTimeout(r.timer),e.domainTtlEntries.delete(t)),n(e)?.clearPendingDomainActivation(t)}async function s(r,i){let a=r.domainTtlEntries.get(i);if(!a)return;let o=a.toolNames;r.domainTtlEntries.delete(i),n(r)?.clearPendingDomainActivation(i);let s=0;for(let t of o){if(!r.activatedToolNames.has(t))continue;let n=r.activatedRegisteredTools.get(t);if(n)try{n.remove()}catch(n){e.warn(`Failed to remove tool "${t}" on domain TTL expiry:`,n)}r.router.removeHandler(t),r.activatedToolNames.delete(t),r.activatedRegisteredTools.delete(t);let i=r.extensionToolsByName.get(t);i&&(i.registeredTool=void 0),s++}if(s>0){r.enabledDomains.delete(i);for(let e of r.activatedToolNames)if(t(e)===i){r.enabledDomains.add(i);break}for(let e of r.selectedTools)if(t(e.name)===i){r.enabledDomains.add(i);break}try{await r.server.sendToolListChanged()}catch(t){e.warn(`sendToolListChanged failed after domain TTL expiry:`,t)}e.info(`Domain "${i}" deactivated: removed ${s} tools`)}}export{a as n,r,o as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";import{$i as n,Ai as r,Bi as i,Ci as a,Di as o,Ei as s,Fi as c,Gi as l,Hi as u,Ii as d,Ji as f,Ki as p,Li as m,Mi as h,Ni as g,Oi as _,Pi as v,Qi as y,Ri as b,Si as ee,Ti as x,Ui as S,Vi as te,Wi as C,Xi as ne,Yi as re,Zi as ie,_i as ae,bi as w,ea as oe,gi as se,hi as ce,ji as le,ki as T,na as ue,ta as de,wi as E,xi as fe,yi as D,zi as pe}from"./constants-nvsLpSri.mjs";import{t as O}from"./search-defaults-BBRJNAzC.mjs";import{d as k,f as me,n as A,o as he,p as j,s as M}from"./registry-7h8jJ9y9.mjs";import{t as ge}from"./ProcessRegistry-C5W1Tkn9.mjs";import{t as _e}from"./RingBuffer-B6RTHmij.mjs";import{homedir as ve}from"node:os";import{existsSync as ye}from"node:fs";import{dirname as be,resolve as N}from"node:path";import{mkdir as xe,readFile as Se,rename as Ce,unlink as we,writeFile as Te}from"node:fs/promises";import{fileURLToPath as Ee}from"node:url";import{createHash as P,randomUUID as De}from"node:crypto";import{Worker as Oe}from"node:worker_threads";const ke=[[`navigate`,`go`,`open`,`visit`,`browse`,`load`],[`intercept`,`capture`,`monitor`,`sniff`,`collect`,`record`,`track`],[`request`,`fetch`,`xhr`,`ajax`,`http`,`api`],[`authenticate`,`auth`,`login`,`credential`,`token`,`jwt`,`session`],[`breakpoint`,`pause`,`halt`,`stop`,`break`],[`step`,`next`,`continue`,`resume`],[`deobfuscate`,`beautify`,`unminify`,`decode`,`transform`,`decompile`],[`screenshot`,`snapshot`,`image`,`picture`,`photo`],[`evaluate`,`execute`,`run`,`eval`,`invoke`,`call`],[`element`,`node`,`selector`,`dom`,`component`],[`click`,`tap`,`press`,`interact`,`trigger`],[`type`,`input`,`enter`,`fill`,`write`],[`cookie`,`localstorage`,`storage`,`cache`,`indexeddb`],[`websocket`,`ws`,`socket`,`realtime`],[`scroll`,`swipe`,`drag`],[`search`,`find`,`query`,`lookup`,`discover`,`locate`],[`hook`,`patch`,`override`,`replace`,`wrap`,`proxy`],[`script`,`code`,`source`,`javascript`,`js`],[`bundle`,`webpack`,`module`,`pack`,`chunk`],[`block`,`filter`,`deny`,`reject`,`prevent`],[`allow`,`permit`,`whitelist`,`accept`,`enable`],[`remove`,`delete`,`clear`,`clean`,`purge`,`erase`],[`list`,`show`,`display`,`enumerate`,`get`],[`set`,`configure`,`config`,`setup`,`assign`],[`stealth`,`antidetect`,`fingerprint`,`evasion`,`undetected`],[`mobile`,`device`,`emulate`,`responsive`,`phone`],[`performance`,`profile`,`benchmark`,`metric`,`vitals`],[`register`,`signup`,`account`,`enroll`,`join`],[`captcha`,`challenge`,`verification`,`verify`,`solve`],[`tab`,`window`,`page`],[`inspect`,`examine`,`analyze`,`analyse`,`debug`,`investigate`],[`wait`,`delay`,`sleep`,`timeout`,`poll`],[`close`,`disconnect`,`quit`,`exit`,`shutdown`,`terminate`],[`traffic`,`network`,`request`,`response`,`connection`],[`heap`,`memory`,`allocation`,`gc`,`garbage`],[`export`,`save`,`dump`,`download`,`extract`],[`replay`,`resend`,`repeat`,`redo`,`retry`],[`variable`,`scope`,`local`,`closure`,`context`],[`watch`,`observe`,`monitor`,`trace`,`track`],[`protobuf`,`proto`,`binary`,`msgpack`,`grpc`],[`wasm`,`webassembly`,`assembly`],[`sse`,`eventsource`,`stream`,`streaming`],[`graphql`,`gql`,`introspect`,`mutation`,`subscription`],[`v8`,`heap`,`snapshot`,`bytecode`,`jit`,`turbofan`,`ignition`,`hiddenclass`],[`tls`,`ssl`,`boringssl`,`cert`,`certificate`,`pinning`,`handshake`,`keylog`],[`skia`,`gpu`,`render`,`scenegraph`,`scene`,`draw`,`paint`,`raster`,`layer`],[`frida`,`ghidra`,`ida`,`unidbg`,`jadx`,`binary`,`disassemble`,`decompile`,`instrument`],[`mojo`,`ipc`,`chromium`,`interface`,`broker`,`message`],[`syscall`,`etw`,`strace`,`dtrace`,`kernel`,`systemcall`,`tracefs`],[`adb`,`android`,`webview`,`apk`,`dalvik`,`art`,`emulator`],[`extension`,`plugin`,`addon`,`webhook`,`c2`,`bluetooth`,`ble`,`hid`,`serial`,`registry`]];var Ae=class e{reverseMap;constructor(){this.reverseMap=e.buildReverseMap(ke)}expand(e){let t=this.reverseMap.get(e.toLowerCase());return t?[...t]:[]}expandQuery(e){let t=new Set(e.map(e=>e.toLowerCase())),n=[],r=m;for(let i of e){let e=this.reverseMap.get(i.toLowerCase());if(!e)continue;let a=0;for(let i of e){if(a>=r)break;t.has(i)||(n.push(i),t.add(i),a++)}}return n}static buildReverseMap(e){let t=new Map;for(let n of e)for(let e of n){let r=e.toLowerCase(),i=t.get(r);i||(i=new Set,t.set(r,i));for(let e of n){let t=e.toLowerCase();t!==r&&i.add(t)}}return t}};const je=w,Me=D;var Ne=class e{queryCategoryProfiles;cjkQueryAliases;synonymExpander;constructor(t){this.queryCategoryProfiles=t?.queryCategoryProfiles===void 0?e.compileQueryCategoryProfiles(O.queryCategoryProfiles):e.compileQueryCategoryProfiles(t.queryCategoryProfiles),this.cjkQueryAliases=t?.cjkQueryAliases===void 0?e.compileCjkQueryAliasRules(O.cjkQueryAliases):e.compileCjkQueryAliasRules(t.cjkQueryAliases),this.synonymExpander=new Ae}static compileQueryCategoryProfiles(e){return e.flatMap(e=>{if(!e||typeof e.pattern!=`string`||!Array.isArray(e.domainBoosts))return[];let t;try{t=new RegExp(e.pattern,e.flags)}catch{return[]}let n=new Map(e.domainBoosts.flatMap(e=>!e||typeof e.domain!=`string`||e.domain.length===0||typeof e.weight!=`number`||!Number.isFinite(e.weight)?[]:[[e.domain,e.weight]]));return[{pattern:t,domainBoosts:n}]})}static compileCjkQueryAliasRules(e){return e.flatMap(e=>{if(!e||typeof e.pattern!=`string`||!Array.isArray(e.tokens))return[];let t;try{t=new RegExp(e.pattern,e.flags)}catch{return[]}let n=e.tokens.filter(e=>typeof e==`string`&&e.length>0);return[{pattern:t,tokens:n}]})}detectQueryCategoryBoosts(e){let t=new Map;for(let n of this.queryCategoryProfiles)if(n.pattern.test(e))for(let[e,r]of n.domainBoosts){let n=t.get(e)??1;t.set(e,Math.max(n,r))}return t}expandCjkAliasTokens(e){let t=e.toLowerCase(),n=new Set;for(let e of this.cjkQueryAliases)if(e.pattern.test(t))for(let t of e.tokens)n.add(t);return[...n]}tokenise(e,t){let n=e.replace(/[_-]/g,` `);n=n.replace(/([\u4e00-\u9fff])/g,` $1 `);let r=n.split(/[^a-zA-Z0-9\u4e00-\u9fff]+/).filter(Boolean),i=[];for(let e of r){let t=e.toLowerCase(),n=e.replace(/([a-z])([A-Z])/g,`$1 $2`).split(/\s+/);if(n.length>1){for(let e of n)i.push(e.toLowerCase());i.push(t)}else i.push(t)}return i.push(...this.expandCjkAliasTokens(e)),t?.expandSynonyms&&i.push(...this.synonymExpander.expandQuery(i)),i}getK1(){return je}getB(){return Me}},Pe=class{worker=null;ready=!1;nextId=0;pending=new Map;idleTimer=null;idleMs;modelId;constructor(e){let t=e?.idleMs??de;this.idleMs=Number.isFinite(t)?Math.max(0,t):0,this.modelId=e?.modelId?.trim()||y}isReady(){return this.ready}isWorkerAlive(){return this.worker!==null}embed(e){return this.dispatch(`embed`,{text:e})}embedBatch(e){return e.length===0?Promise.resolve([]):this.dispatch(`embed_batch`,{texts:e})}async terminate(){this.clearIdleTimer();let e=this.worker;if(!e){this.ready=!1;return}await this.terminateWorker(e,Error(`EmbeddingEngine terminated`))}dispatch(e,t){this.clearIdleTimer();let n=this.ensureWorker(),r=this.nextId++;return new Promise((i,a)=>{let o={worker:n,resolve:i,reject:a};this.pending.set(r,o);try{n.postMessage({type:e,id:r,modelId:this.modelId,...t})}catch(e){this.takePendingRequest(r)?.reject(e instanceof Error?e:Error(String(e)))}}).finally(()=>this.armIdleRelease(n))}clearIdleTimer(){this.idleTimer&&=(clearTimeout(this.idleTimer),null)}armIdleRelease(e){this.worker!==e||this.idleMs<=0||this.hasPendingRequests(e)||(this.clearIdleTimer(),this.idleTimer=setTimeout(()=>{this.idleTimer=null,!(this.worker!==e||this.hasPendingRequests(e))&&this.terminateWorker(e,Error(`Embedding worker released after idle timeout`))},this.idleMs),this.idleTimer.unref?.())}hasPendingRequests(e){return[...this.pending.values()].some(t=>t.worker===e)}takePendingRequest(e){let t=this.pending.get(e);if(t)return this.pending.delete(e),t}rejectWorkerRequests(e,t){for(let[n,r]of this.pending)r.worker===e&&(this.takePendingRequest(n),r.reject(t))}async terminateWorker(e,t){this.worker===e&&(this.worker=null,this.ready=!1,this.clearIdleTimer()),this.rejectWorkerRequests(e,t);try{await e.terminate()}catch{}}ensureWorker(){if(this.worker)return this.worker;let e=new URL(`./server/search/EmbeddingWorker.mjs`,import.meta.url),t=new Oe(ye(Ee(e))?e:new URL(`./EmbeddingWorker.ts`,import.meta.url));return this.worker=t,t.unref?.(),ge.register(t),t.on(`message`,e=>{let n=this.pending.get(e.id);!n||n.worker!==t||(this.takePendingRequest(e.id),e.type===`result`&&e.embedding?(this.worker===t&&(this.ready=!0),n.resolve(e.embedding)):n.reject(Error(e.message??`Unknown embedding worker error`)))}),t.on(`error`,e=>{this.rejectWorkerRequests(t,e),this.worker===t&&(this.worker=null,this.ready=!1,this.clearIdleTimer())}),t.on(`exit`,e=>{e!==0&&this.rejectWorkerRequests(t,Error(`Embedding worker exited with code ${e}`)),this.worker===t&&(this.worker=null,this.ready=!1,this.clearIdleTimer())}),t}};function F(e,t){let n=P(`sha256`);n.update(e),n.update(`\0`),n.update(String(t.length)),n.update(`\0`);for(let e of t)n.update(e),n.update(`
|
|
2
|
+
`);return n.digest(`hex`)}function I(e=y){let t=process.env.JSHOOK_EMBEDDING_CACHE_DIR?.trim();return N(t?N(t):N(ve(),`.jshookmcp`,`cache`,`embeddings`),`${e.replace(/[^a-zA-Z0-9._-]+/g,`_`)}-${P(`sha256`).update(e).digest(`hex`).slice(0,12)}.json`)}function Fe(e){if(e.length===0)return{dim:0,data:``};let t=e[0].length;if(t<=0)throw Error(`Embedding dimension must be positive`);let n=new Float32Array(e.length*t);for(let r=0;r<e.length;r++){let i=e[r];if(i.length!==t)throw Error(`Embedding dim mismatch at index ${r}: expected ${t}, got ${i.length}`);n.set(i,r*t)}return{dim:t,data:Buffer.from(n.buffer,n.byteOffset,n.byteLength).toString(`base64`)}}function Ie(e,t,n){if(t===0&&n===0&&e===``)return[];if(!Number.isInteger(t)||t<=0||!Number.isInteger(n)||n<=0||!e)return null;let r=Buffer.from(e,`base64`),i=t*n*Float32Array.BYTES_PER_ELEMENT;if(!Number.isSafeInteger(i)||r.byteLength!==i)return null;let a=new Uint8Array(i);a.set(r);let o=new Float32Array(a.buffer);return Array.from({length:t},(e,t)=>o.subarray(t*n,(t+1)*n))}async function Le(e,n){if(!l)return null;let r=F(e,n),i=I(e);try{let a=JSON.parse(await Se(i,`utf8`));if(a.version!==1||a.modelId!==e||a.fingerprint!==r||a.count!==n.length)return null;let o=Ie(a.data,a.count,a.dim);return!o||o.length!==n.length?null:(t.debug(`[embedding-cache] hit model=${e} tools=${o.length}`),o)}catch{return null}}async function Re(e,n,r){if(!l||r.length!==n.length)return;let i=I(e),{dim:a,data:o}=Fe(r),s={version:1,modelId:e,fingerprint:F(e,n),dim:a,count:r.length,data:o},c=`${i}.${process.pid}.${De()}.tmp`;try{await xe(be(i),{recursive:!0}),await Te(c,JSON.stringify(s),`utf8`),await Ce(c,i),t.debug(`[embedding-cache] wrote model=${e} tools=${r.length}`)}catch(e){await we(c).catch(()=>void 0),t.warn(`[embedding-cache] write failed: ${e instanceof Error?e.message:String(e)}`)}}var ze=class e{compiledRules;constructor(t){this.compiledRules=t===void 0?e.compileIntentToolBoostRules(O.intentToolBoostRules):e.compileIntentToolBoostRules(t)}static compileIntentToolBoostRules(e){let t=[];for(let n of e){if(!n||typeof n.pattern!=`string`||!Array.isArray(n.boosts)||n.boosts.length===0)continue;let e;try{e=new RegExp(n.pattern,n.flags??`i`)}catch{continue}let r=n.boosts.filter(e=>e&&typeof e.tool==`string`&&e.tool.length>0).map(e=>({tool:e.tool,bonus:Number.isFinite(e.bonus)?e.bonus:0})).filter(e=>e.bonus>0);r.length!==0&&t.push({pattern:e,boosts:r})}return t}resolveIntentToolBonuses(e){let t=e.toLowerCase(),n=new Map;for(let e of this.compiledRules)if(e.pattern.test(t))for(let{tool:t,bonus:r}of e.boosts){let e=n.get(t)??0;n.set(t,Math.max(e,r))}return n}getCompiledRules(){return this.compiledRules}},Be=class e{trigramSets;constructor(t){this.trigramSets=t.map(t=>e.extractTrigrams(t))}search(t,n=u){let r=e.extractTrigrams(t);if(r.size===0)return new Map;let i=new Map;for(let t=0;t<this.trigramSets.length;t++){let a=this.trigramSets[t];if(a.size===0)continue;let o=e.jaccardSimilarity(r,a);o>=n&&i.set(t,o)}return i}static extractTrigrams(e){let t=e.toLowerCase().replace(/[_\-\s]+/g,``),n=new Set;for(let e=0;e<=t.length-3;e++)n.add(t.slice(e,e+3));return n}static jaccardSimilarity(e,t){let n=0,[r,i]=e.size<=t.size?[e,t]:[t,e];for(let e of r)i.has(e)&&n++;let a=e.size+t.size-n;return a===0?0:n/a}};const L=.1,R=.8;var Ve=class{vectorWeight;lastVectorRanking=null;topN;learnUp;learnDown;constructor(e){this.vectorWeight=e?.vectorCosineWeight??p,this.topN=Math.max(1,ne),this.learnUp=Math.max(0,ie),this.learnDown=Math.max(0,re)}getVectorWeight(){return this.vectorWeight}recordVectorRanking(e){this.lastVectorRanking=e}recordToolCallFeedback(e,t){if(!this.lastVectorRanking||!t)return!1;let n=this.lastVectorRanking.get(e),r=this.vectorWeight;return n===void 0?this.vectorWeight=Math.max(L,this.vectorWeight-this.learnDown):n<this.topN?this.vectorWeight=Math.min(R,this.vectorWeight+this.learnUp):n<this.topN*2?this.vectorWeight=Math.min(R,this.vectorWeight+this.learnUp*.3):this.vectorWeight=Math.max(L,this.vectorWeight-this.learnDown),this.vectorWeight!==r}};const He=new Set(`the.a.an.is.are.was.were.be.been.to.of.in.for.on.with.at.by.from.or.and.not.this.that.it.its.if.as.will.can.may.must.should.would.could.e.g.default.optional.required.when.set`.split(`.`)),z={extractParamTokens(e){let t=[];if(!e||typeof e!=`object`)return t;let n=e.properties;if(!n||typeof n!=`object`)return t;for(let[e,r]of Object.entries(n)){let n=e.replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[\s_-]+/);for(let e of n){let n=e.toLowerCase();n.length>1&&t.push(n)}if(r&&typeof r==`object`){let e=r.description;if(typeof e==`string`){let n=e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);for(let e of n)e.length>2&&!He.has(e)&&t.push(e)}}}return t},extractShortDescription(e){if(!e)return``;let t=e.match(/^[^.!?\n]+[.!?]?/);if(t){let e=t[0].trim();return e.length>120?e.slice(0,117)+`...`:e}return e.length>120?e.slice(0,117)+`...`:e},containsCJK(e){return/[\u4e00-\u9fff\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/.test(e)},normalizeToolName(e){return e.toLowerCase().replace(/[\s-]+/g,`_`)}},B={queryToolNameMatch:.35,descriptionKeywordOverlap:.25,domainRelevance:.2,intentAlignment:.2};function V(e){return e.toLowerCase().replace(/[\s-]+/g,`_`).replace(/[^a-z0-9_]/g,``)}function H(e){return e.toLowerCase().replace(/[_-]/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[^a-z0-9]+/).filter(e=>e.length>0)}function Ue(e,t){if(e===t)return 1;if(e.length===0||t.length===0)return 0;let n=e.length<=t.length?e:t,r=e.length<=t.length?t:e,i=new Float64Array(n.length+1),a=new Float64Array(n.length+1);for(let e=1;e<=r.length;e++){let t=r[e-1];for(let e=1;e<=n.length;e++){let r=i[e-1]??0;t===n[e-1]?a[e]=r+1:a[e]=Math.max(i[e]??0,a[e-1]??0)}let o=i;i=a,a=o,a.fill(0)}return(i[n.length]??0)/Math.max(e.length,t.length)}function We(e,t){if(e.size===0)return 0;let n=H(t),r=0;for(let t of n)e.has(t)&&r++;return r/e.size}var Ge=class{weights;domainKeywords;constructor(e){this.weights=e?{...B,...e}:B,this.domainKeywords=new Map}buildFromTools(e){let t=new Map;for(let n of e){if(!n.domain)continue;let e=t.get(n.domain);e||(e=new Map,t.set(n.domain,e));let r=H(n.name);for(let t of r)e.set(t,(e.get(t)??0)+1);let i=H(n.description);for(let t of i)t.length>=3&&e.set(t,(e.get(t)??0)+1)}for(let[e,n]of t){let t=[...n.entries()].toSorted((e,t)=>t[1]-e[1]).slice(0,15);this.domainKeywords.set(e,new Set(t.map(([e])=>e)))}}reRank(e,t,n){if(t.length===0)return[];let r=n??t.length,i=V(e),a=H(e),o=new Set(a),s=this.inferTargetDomain(a),c=1/0,l=-1/0;for(let e of t)e.score<c&&(c=e.score),e.score>l&&(l=e.score);let u=l-c,d=[];for(let e=0;e<t.length;e++){let n=t[e],r=Ue(i,V(n.toolName)),l=We(o,n.description),f=0;s.size>0&&n.domain&&(f=+!!s.has(n.domain));let p=this.computeIntentAlignment(a,n.description),m=this.weights.queryToolNameMatch*r+this.weights.descriptionKeywordOverlap*l+this.weights.domainRelevance*f+this.weights.intentAlignment*p,h=.6*(u>0?(n.score-c)/u:1)+.4*m;d.push({result:n,originalRank:e,reRankScore:h})}return d.toSorted((e,t)=>t.reRankScore-e.reRankScore).slice(0,r).map(e=>({toolName:e.result.toolName,originalRank:e.originalRank,reRankedScore:Math.round(e.reRankScore*1e4)/1e4}))}inferTargetDomain(e){let t=new Set,n=new Set(e);for(let[e,r]of this.domainKeywords)for(let i of r)if(n.has(i)){t.add(e);break}return t}computeIntentAlignment(e,t){if(e.length===0||this.domainKeywords.size===0)return 0;let n=t.toLowerCase(),r=[];for(let e of this.domainKeywords.values())for(let t of e)r.push(t);let i=e.filter(e=>r.includes(e));if(i.length===0)return 0;let a=0;for(let e of i)n.includes(e)&&a++;return a/i.length}};let Ke=0;function qe(){return`sq-${Date.now()}-${++Ke}`}function U(e,t){if(e.length===0)return 0;let n=Math.ceil(t/100*e.length)-1;return e[Math.max(0,n)]??0}var W=class{MAX_HISTORY=1e3;records=new _e(this.MAX_HISTORY);lastRecordId;recordSearch(e,t,n,r){let i=qe(),a={id:i,query:e,timestamp:Date.now(),returnedTools:t,returnedScores:n,latencyMs:r};return this.records.push(a),this.lastRecordId=i,i}recordToolUsed(e,t){let n=this.records.toArray();for(let r=n.length-1;r>=0;r--){let i=n[r];if(i.id===e){i.usedTool=t;let e=i.returnedTools.indexOf(t);i.usedToolRank=e>=0?e+1:void 0;return}}}associateLastSearch(e){if(!this.lastRecordId)return;let t=this.records.toArray();for(let n=t.length-1;n>=0;n--){let r=t[n];if(r.id===this.lastRecordId){let t=r.returnedTools.indexOf(e);t>=0&&(r.usedTool=e,r.usedToolRank=t+1);return}}}computeMetrics(){let e=this.records.toArray(),t=e.length;if(t===0)return{totalQueries:0,avgLatencyMs:0,p50LatencyMs:0,p99LatencyMs:0,toolUsedRate:0,avgUsedRank:0,mrr:0,topKDistribution:{}};let n=e.map(e=>e.latencyMs).toSorted((e,t)=>e-t),r=n.reduce((e,t)=>e+t,0),i=e.filter(e=>e.usedTool!==void 0),a=i.length/t,o=0,s=0,c={};if(i.length>0){let e=0,t=0;for(let n of i){let r=n.usedToolRank;if(r!==void 0&&r>0){e+=r,t+=1/r;let n=String(r);c[n]=(c[n]??0)+1}}o=e/i.length,s=t/i.length}return{totalQueries:t,avgLatencyMs:r/t,p50LatencyMs:U(n,50),p99LatencyMs:U(n,99),toolUsedRate:a,avgUsedRank:o,mrr:s,topKDistribution:c}}getRecentRecords(e=10){return this.records.toArray().slice(-e)}getStats(){return this.computeMetrics()}getEnhancementSuggestions(e,t,n){if(t>=5&&n>=.5)return null;let r=[];return t===0?r.push(`No tools found for "${e}". Try broader terms or use search_tools with a different query.`):t<3&&r.push(`Only ${t} tools found. Consider using synonyms or breaking down the query.`),n<.3&&t>0&&r.push(`Low relevance scores. Try more specific tool names or domain prefixes (e.g., "page_", "hook_", "network_").`),r.length>0?r:null}};function G(e,t,n){if(!t)return-1;let r=e.indexOf(t);for(;r>=0;){let i=r>0?e[r-1]:null,a=r+t.length<e.length?e[r+t.length]:null,o=i===null||!n.test(i),s=a===null||!n.test(a);if(o&&s)return r;r=e.indexOf(t,r+1)}return-1}function Je(e){let t=new Map,n=new Map;for(let t=0;t<e.length;t++){let r=e[t].name,i=r.indexOf(`_`);if(i<=0)continue;let a=r.slice(0,i),o=n.get(a)??[];o.push(t),n.set(a,o)}for(let[,e]of n){if(e.length<2||e.length>15)continue;let n=ce/Math.sqrt(e.length);for(let r of e){let i=t.get(r)??[];for(let t of e)t!==r&&i.push({docIndex:t,weight:n});t.set(r,i)}}return t}function Ye(e){let t=[];for(let n=0;n<e.length;n++)e[n]>0&&t.push({idx:n,score:e[n]});t.sort((e,t)=>t.score-e.score);let n=new Map;for(let e=0;e<t.length;e++)n.set(t[e].idx,e);return n}function K(e){let t=[...e.entries()].toSorted((e,t)=>t[1]-e[1]),n=new Map;for(let e=0;e<t.length;e++)n.set(t[e][0],e);return n}function Xe(e,t){for(let n=0;n<e.length;n++){let r=t[n];r<=0||(e[n]=e[n]+r*v*h)}}function Ze(e){let{scores:t,docs:n,affinityGraph:r}=e,i=[];for(let e=0;e<t.length;e++)t[e]>0&&i.push({idx:e,score:t[e]});if(i.length!==0){if(i.sort((e,t)=>t.score-e.score),r.size>0){let e=Math.min(ae,i.length);for(let n=0;n<e;n++){let{idx:e,score:a}=i[n],o=r.get(e);if(!o)continue;let s=1/(1+n);for(let{docIndex:e,weight:n}of o)t[e]>0&&(t[e]+=a*n*s*se)}}if(E>0&&i.length>=E){let e=i.slice(0,10),r=new Map;for(let{idx:t}of e){let e=n[t].domain;e&&r.set(e,(r.get(e)??0)+1)}for(let[e,i]of r)if(!(i<E))for(let r=0;r<n.length;r++)t[r]>0&&n[r].domain===e&&(t[r]*=a)}}}function Qe(e,t,n,r){return`${`${e.toLowerCase().trim()}\0${t}`}${!n||n.size===0?``:`\0${[...n].toSorted().join(`|`)}`}${r?`\0${r}`:``}`}var $e=class{capacity;map=new Map;constructor(e){this.capacity=Math.max(1,e)}get(e){let t=this.map.get(e);return t!==void 0&&(this.map.delete(e),this.map.set(e,t)),t}set(e,t){if(this.map.delete(e),this.map.set(e,t),this.map.size>this.capacity){let e=this.map.keys().next().value;this.map.delete(e)}}clear(){this.map.clear()}},et=class{docs=[];invertedIndex=new Map;sortedKeys;avgDocLength;docCount;domainOverrides;domainScoreMultipliers;toolScoreMultipliers;extensionEtag=``;docNameIndex=new Map;affinityGraph;queryCache;trigramIndex;embeddingEngine;vectorModelId;toolEmbeddings=null;prewarmPromise=null;embeddingRetryAfterMs=0;feedbackTracker;recencyTracker=new Map;bm25Scorer;intentBoost;reRanker;qualityTracker=new W;constructor(e,t,r,i,a,o){let l=e??k;this.domainOverrides=t,this.domainScoreMultipliers=r,this.toolScoreMultipliers=i,this.docCount=l.length,this.bm25Scorer=new Ne(a);let u=a?.vectorEnabled??f;this.vectorModelId=a?.vectorModelId??y,this.embeddingEngine=u?new Pe({modelId:this.vectorModelId}):null,this.feedbackTracker=new Ve(a),this.intentBoost=new ze(a?.intentToolBoostRules);let d=0;for(let e=0;e<l.length;e++){let t=l[e],n=this.domainOverrides?.get(t.name)??j(t.name),r=t.description??``,i=z.extractShortDescription(r),a=this.bm25Scorer.tokenise(t.name),u=new Set(a),f=n?this.bm25Scorer.tokenise(n):[],p=this.bm25Scorer.tokenise(r),m=z.extractParamTokens(t.inputSchema),h=[...a,...f,...p,...m],g={name:t.name,domain:n,description:r,shortDescription:i,tokens:h,length:h.length,nameTokens:a,nameTokenSet:u,nameTokenCount:u.size};this.docs.push(g),this.docNameIndex.set(t.name,e),d+=g.length;let _=new Map;for(let e of a){let t=_.get(e)??{tf:0,weight:0};t.tf++,t.weight=Math.max(t.weight,3),_.set(e,t)}for(let e of f){let t=_.get(e)??{tf:0,weight:0};t.tf++,t.weight=Math.max(t.weight,2),_.set(e,t)}for(let e of p){let t=_.get(e)??{tf:0,weight:0};t.tf++,t.weight=Math.max(t.weight,1),_.set(e,t)}for(let e of m){let t=_.get(e)??{tf:0,weight:0};t.tf++,t.weight=Math.max(t.weight,s),_.set(e,t)}let v=o?.get(t.name);if(v)for(let e of v){let t=_.get(e)??{tf:0,weight:0};t.tf++,t.weight=Math.max(t.weight,c),_.set(e,t)}for(let[t,{tf:n,weight:r}]of _){let i=this.invertedIndex.get(t);i||(i=[],this.invertedIndex.set(t,i)),i.push({docIndex:e,tf:n,weight:r})}}this.avgDocLength=this.docCount>0?d/this.docCount:1,this.sortedKeys=[...this.invertedIndex.keys()].toSorted(),this.reRanker=new Ge,this.reRanker.buildFromTools(this.docs.map(e=>({name:e.name,domain:e.domain??``,description:e.description}))),this.affinityGraph=Je(this.docs),this.trigramIndex=new Be(this.docs.map(e=>e.name)),this.queryCache=new $e(_),this.embeddingEngine&&n&&this.ensureToolEmbeddings().catch(()=>{})}async search(e,t=10,n,r,i){let a=performance.now(),s=this.bm25Scorer.tokenise(e);if(s.length===0)return[];if(d&&this.isSimpleQuery(e,s))return this.quickPathSearch(e,s,t,n,r,i);if(s.length>6){let e=s.filter(e=>this.invertedIndex.has(e));if(e.length>=3){let t=e.map(e=>{let t=this.invertedIndex.get(e).length;return{token:e,idf:Math.log((this.docCount-t+.5)/(t+.5)+1)}});t.sort((e,t)=>t.idf-e.idf);let n=new Set(t.slice(0,6).map(e=>e.token));s=s.filter(e=>n.has(e))}}let c=this.bm25Scorer.tokenise(s.join(` `),{expandSynonyms:!0}).filter(e=>!s.includes(e));s.push(...c);let l=(()=>{let t=e.toLowerCase();if(!/(?:\b(?:call|use|run|invoke|execute)\b|调用|执行|使用|运行)/i.test(t))return null;let n=/[a-z0-9_]/,r=/[a-z0-9]/,i=t.split(/[^a-z0-9_]+/).filter(e=>e.length>0),a=Math.min(i.length,5),o=null,s=1/0;for(let e=1;e<=a;e++)for(let a=0;a<=i.length-e;a++){let c=i.slice(a,a+e).join(`_`),l=-1;this.docNameIndex.has(c)&&(l=G(t,c,n)),l<0&&e>1&&(l=G(t,c.replace(/_/g,`-`),r),l<0&&(l=G(t,c.replace(/_/g,` `),r))),!(l<0)&&(l<s||l===s&&c.length>(o?.length??0))&&(o=c,s=l)}return o})(),u=Qe(e,t,r,this.extensionEtag),f=this.queryCache.get(u);if(f&&this.isCachedEntryFresh(f)){let e=n??new Set;return f.results.map(t=>({...t,isActive:e.has(t.name)}))}let p=this.intentBoost.resolveIntentToolBonuses(e),m=new Float64Array(this.docCount);for(let e of s)if(this.scoreToken(e,m),e.length>=3){let t=this.findPrefixMatches(e);for(let n of t)if(n!==e){let e=this.invertedIndex.get(n);e&&this.scorePostings(e,this.docCount,m,o)}}await this.applyRRFFusion(s,e,m);let h=this.bm25Scorer.detectQueryCategoryBoosts(e),g=e.toLowerCase().replace(/[\s-]+/g,`_`),_=new Set(s);for(let e=0;e<this.docCount;e++){let t=this.docs[e],n=p.get(t.name)??0;if(m[e]<=0&&n<=0)continue;if(t.name===g){m[e]*=x;continue}let r=0;for(let e of s)t.nameTokenSet.has(e)&&r++;if(r>0&&t.nameTokenCount>0&&_.size>0){let n=r/t.nameTokenCount,i=r/_.size;m[e]*=1+ee*n*i}let i=t.domain?this.domainScoreMultipliers?.get(t.domain)??1:1;if(i!==1&&(m[e]*=i),t.domain&&h.size>0){let n=h.get(t.domain);n!==void 0&&n>1&&(m[e]*=n)}let a=this.toolScoreMultipliers?.get(t.name)??1;a!==1&&(m[e]*=a)}if(this.applyIntentBonusBand(m,p),this.applyGraphExpansion(m),this.applyRecencyBoost(m),this.applyTierPenalty(m,r,i),l){let e=this.docNameIndex.get(l);if(e!==void 0){let t=0;for(let e=0;e<this.docCount;e++){let n=m[e];n>t&&(t=n)}let n=Math.max(1,t+1);m[e]+=n}}let v=n??new Set,y=[];for(let e=0;e<this.docCount;e++)if(m[e]>0){let t=this.docs[e];y.push({name:t.name,domain:t.domain,shortDescription:t.shortDescription,score:Math.round(m[e]*1e3)/1e3,isActive:v.has(t.name)})}y.sort((e,t)=>t.score-e.score);let b=y.slice(0,t);if(b.length>1){let n=b.map(e=>({toolName:e.name,score:e.score,domain:e.domain??``,description:this.docs[this.docNameIndex.get(e.name)??0]?.description??``})),r=this.reRanker.reRank(e,n,t),i=new Map(r.map((e,t)=>[e.toolName,t]));b=b.slice().toSorted((e,t)=>(i.get(e.name)??0)-(i.get(t.name)??0))}this.queryCache.set(u,{results:b,vectorWeightAtCache:this.feedbackTracker.getVectorWeight(),cachedAtMs:Date.now()});let S=performance.now()-a;return this.qualityTracker.recordSearch(e,b.map(e=>e.name),b.map(e=>e.score),S),b}isCachedEntryFresh(e){let t=this.feedbackTracker.getVectorWeight();return Math.abs(t-e.vectorWeightAtCache)<=fe}isSimpleQuery(e,t){let n=e.toLowerCase().replace(/[\s-]+/g,`_`);return!!(this.docNameIndex.has(n)||t.length===1)}quickPathSearch(e,t,n,r,i,a){let s=new Float64Array(this.docCount);for(let e of t)if(this.scoreToken(e,s),e.length>=3){let t=this.findPrefixMatches(e);for(let n of t)if(n!==e){let e=this.invertedIndex.get(n);e&&this.scorePostings(e,this.docCount,s,o)}}let c=this.trigramIndex.search(e,u),l=S;if(l>0)for(let[e,t]of c)t>0&&(s[e]+=t*l);let d=e.toLowerCase().replace(/[\s-]+/g,`_`);if(this.docNameIndex.has(d)){let e=this.docNameIndex.get(d);s[e]*=x}this.applyTierPenalty(s,i,a);let f=r??new Set,p=[];for(let e=0;e<this.docCount;e++)if(s[e]>0){let t=this.docs[e];p.push({name:t.name,domain:t.domain,shortDescription:t.shortDescription,score:Math.round(s[e]*1e3)/1e3,isActive:f.has(t.name)})}return p.sort((e,t)=>t.score-e.score),p.slice(0,n)}applyRecencyBoost(e){if(T<=0||this.recencyTracker.size===0)return;let t=le;if(t<=0)return;let n=Date.now(),r=T;for(let[i,a]of this.recencyTracker){let o=n-a;if(o<0||o>t)continue;let s=this.docNameIndex.get(i);if(s===void 0||e[s]<=0)continue;let c=1+r*(1-o/t);e[s]*=c}}applyTierPenalty(e,t,n){let r=n?n===`full`?pe:n===`workflow`?te:i:b;if(r>=1||r<=0)return;let a=t&&t.size>0;for(let n=0;n<this.docCount;n++){if(e[n]<=0)continue;let i=this.docs[n].domain;i&&(!a||!t.has(i))&&(e[n]*=r)}}getDomainSummary(){let e=new Map;for(let t of this.docs){let n=e.get(t.domain)??[];n.push(t.name),e.set(t.domain,n)}return Array.from(e.entries()).map(([e,t])=>({domain:e,count:t.length,tools:t})).toSorted((e,t)=>t.count-e.count)}scoreToken(e,t){let n=this.invertedIndex.get(e);n&&this.scorePostings(n,this.docCount,t,1)}findPrefixMatches(e){let t=this.sortedKeys,n=0,r=t.length;for(;n<r;){let i=n+r>>>1;t[i]<e?n=i+1:r=i}let i=[];for(;n<t.length&&t[n].startsWith(e);)i.push(t[n]),n++;return i}scorePostings(e,t,n,r){let i=e.length,a=Math.log((this.docCount-i+.5)/(i+.5)+1),o=D,s=w;for(let{docIndex:t,tf:i,weight:c}of e){let e=this.docs[t],l=1-o+o*(e.length/this.avgDocLength),u=i*(s+1)/(i+s*l);n[t]+=a*u*c*r}}async applyRRFFusion(e,t,n){let r=g,i=S,a=Ye(n),o=K(this.trigramIndex.search(t,u)),s,c;if(C>0&&a.size>0){let e=[...a.entries()].find(([,e])=>e===0)?.[0];(e===void 0?0:n[e])>=C?(s=new Map,c=new Map):(s=await this.computeVectorCosineScores(t),c=K(s))}else s=await this.computeVectorCosineScores(t),c=K(s);let l=new Map;for(let[e,t]of c)l.set(this.docs[e].name,t);this.feedbackTracker.recordVectorRanking(l);let d=new Float64Array(this.docCount);for(let e=0;e<this.docCount;e++){let t=0,n=a.get(e);n!==void 0&&(t+=1/(r+n));let s=o.get(e);s!==void 0&&i>0&&(t+=i*(1/(r+s)));let l=c.get(e);l!==void 0&&this.feedbackTracker.getVectorWeight()>0&&(t+=this.feedbackTracker.getVectorWeight()*(1/(r+l))),d[e]=t}Xe(n,d)}waitForEmbeddings(){return this.ensureToolEmbeddings()}ensureToolEmbeddings(){if(this.toolEmbeddings||!this.embeddingEngine)return Promise.resolve();if(this.prewarmPromise)return this.prewarmPromise;if(Date.now()<this.embeddingRetryAfterMs)return Promise.resolve();let e=this.docs.map(e=>`${e.name.replace(/_/g,` `)}: ${e.description}`),t=this.vectorModelId,n=this.embeddingEngine,r=(async()=>{try{let r=await Le(t,e);if(r&&r.length===e.length){this.toolEmbeddings=r,this.embeddingRetryAfterMs=0;return}let i=await n.embedBatch(e);this.toolEmbeddings=i,this.embeddingRetryAfterMs=0,await Re(t,e,i)}catch{this.embeddingRetryAfterMs=Date.now()+Math.max(0,oe)}finally{this.prewarmPromise=null}})();return this.prewarmPromise=r,r}async computeVectorCosineScores(e){if(!this.embeddingEngine||!this.toolEmbeddings&&(this.prewarmPromise||(await this.ensureToolEmbeddings(),!this.toolEmbeddings)))return new Map;let t;try{t=await this.embeddingEngine.embed(e)}catch{return new Map}let n=new Map;for(let e=0;e<this.toolEmbeddings.length;e++){let r=this.toolEmbeddings[e];if(r.length!==t.length)continue;let i=0;for(let e=0;e<t.length;e++)i+=t[e]*r[e];i>0&&n.set(e,i)}return n}recordToolCallFeedback(e,t){for(this.feedbackTracker.recordToolCallFeedback(e,!!this.embeddingEngine),this.recencyTracker.delete(e),this.recencyTracker.set(e,Date.now());this.recencyTracker.size>r;){let e=this.recencyTracker.keys().next().value;if(e===void 0)break;this.recencyTracker.delete(e)}}associateLastSearch(e){this.qualityTracker.associateLastSearch(e)}getSearchQualityMetrics(){return this.qualityTracker.computeMetrics()}getSearchQualityTracker(){return this.qualityTracker}applyIntentBonusBand(e,t){if(t.size===0)return;let n=0;for(let t=0;t<this.docCount;t++)n=Math.max(n,e[t]);let r=0;for(let e of t.values())r=Math.max(r,e);if(r<=0)return;let i=Math.max(1,n+1),a=[...new Set([...t.values()].filter(e=>e>0))].toSorted((e,t)=>e-t),o=new Map;for(let e=0;e<a.length;e++)o.set(a[e],e+1);for(let[n,r]of t){if(r<=0)continue;let t=this.docNameIndex.get(n);if(t===void 0)continue;let a=o.get(r);a!==void 0&&(e[t]+=i*a)}}applyGraphExpansion(e){Ze({scores:e,docs:this.docs,affinityGraph:this.affinityGraph})}},tt=e({buildDomainDescription:()=>at,buildSearchSignature:()=>rt,getActiveToolNames:()=>q,getBaseTier:()=>Y,getCombinedTools:()=>Z,getExtensionDomainMap:()=>X,getSearchEngine:()=>it,getToolByName:()=>Q,getVisibleDomainsForTier:()=>J});function q(e){let t=new Set(e.selectedTools.map(e=>e.name));for(let n of e.activatedToolNames)t.add(n);return t}function J(e){let t=new Set(me(e.baseTier));for(let n of e.enabledDomains)t.add(n);for(let n of e.extensionToolsByName.values())t.add(n.domain);for(let n of q(e)){let r=e.extensionToolsByName.get(n)?.domain;if(r){t.add(r);continue}let i=j(n);i&&t.add(i)}return t}function Y(e){return e.baseTier}function X(e){let t=new Map;for(let n of e.extensionToolsByName.values())t.set(n.name,n.domain);return t}async function Z(e){await A();let t=new Map(k.map(e=>[e.name,e]));for(let n of e.extensionToolsByName.values())t.set(n.name,n.tool);return[...t.values()]}async function Q(e){return new Map((await Z(e)).map(e=>[e.name,e]))}const $=new WeakMap;function nt(){let e=new Map;for(let t of he())if(t.sceneKeywords)for(let[n,r]of Object.entries(t.sceneKeywords))r.length>0&&e.set(n,r);return e}function rt(e){let t=[];for(let[n,r]of e.extensionToolsByName)t.push(`${n}:${r.domain}`);return t.sort(),[e.extensionWorkflowRuntimeById.size,t.join(`|`)].join(`::`)}async function it(e){await A();let t=rt(e),n=$.get(e);if(n?.signature===t)return n.engine;let r=await Z(e),i=X(e),a=new Map,o=new Map;for(let t of e.extensionToolsByName.values())o.set(t.name,1.12);e.extensionWorkflowRuntimeById.size>0&&(a.set(`workflow`,ue),o.set(`run_extension_workflow`,1.35),o.set(`list_extension_workflows`,1.25));let s=new et(r,i,a,o,e.config.search,nt());return s.extensionEtag=t,$.set(e,{signature:t,engine:s}),s}function at(e){let t={};for(let e of M())t[e.domain]=(t[e.domain]??0)+1;for(let n of e.extensionToolsByName.values())t[n.domain]=(t[n.domain]??0)+1;let n=M().length,r=e.extensionToolsByName.size;return`Search ${n+r} tools across ${Object.keys(t).length} capability domains. This includes built-in tools plus any loaded plugin/workflow tools (${r} currently loaded). In search-tier sessions, call this before assuming a capability is unavailable. Use activate_tools for exact matches, activate_domain for an entire domain. Domains: ${Object.entries(t).toSorted((e,t)=>t[1]-e[1]).map(([e,t])=>`${e} (${t})`).join(` | `)}. Query tip: before searching, distill your intent into key concepts (action verb + target + domain). Pass distilled keywords, not full sentences — the search engine works on token matching, not semantic understanding.`}export{it as a,W as c,Y as i,at as n,Q as o,q as r,J as s,tt as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){let t=e.trim();if(!t.startsWith(`mcp__`))return t;let n=t.split(`__`);return n.length<3?t:n.slice(2).join(`__`)}function t(t){let n=t.names;if(typeof n==`string`&&n.trim().startsWith(`[`))try{let e=JSON.parse(n);Array.isArray(e)&&(n=e)}catch{}if(!Array.isArray(n))return{names:[],error:`names must be an array`};let r=[];for(let t of n){if(typeof t!=`string`||t.trim().length===0)return{names:[],error:`invalid tool name: expected non-empty string`};r.push(e(t))}return{names:r}}export{t as n,e as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ti as e,ur as t}from"./constants-nvsLpSri.mjs";import{d as n,g as r,p as i,t as a,w as o,y as s}from"./Win32API-G7QPyckq.mjs";import{t as c}from"./factory-BeND77hf.mjs";import{i as l}from"./NativeMemoryManager.utils-CMoul2an.mjs";import{randomUUID as u}from"node:crypto";var d=class{freezes=new Map;writeHistory=[];undoneStack=[];platformProvider=null;getPortableProvider(){return this.platformProvider??=c(),this.platformProvider}readBuffer(e,t,n){if(process.platform===`win32`){let r=o(e,!1);try{return i(r,t,n)}finally{a(r)}}let r=this.getPortableProvider(),s=r.openProcess(e,!1);try{let e=r.readMemory(s,t,n);return e.data.subarray(0,e.bytesRead)}finally{r.closeProcess(s)}}writeBuffer(e,t,i){if(process.platform===`win32`){let c=o(e,!0);try{let{oldProtect:e}=r(c,t,i.length,n.READWRITE);s(c,t,i),r(c,t,i.length,e)}finally{a(c)}return}let c=this.getPortableProvider(),l=c.openProcess(e,!0),u;try{c.queryRegion(l,t)?.isWritable||(u=c.changeProtection(l,t,i.length,3).oldProtection),c.writeMemory(l,t,i)}finally{try{u!==void 0&&c.changeProtection(l,t,i.length,u)}finally{c.closeProcess(l)}}}async writeValue(t,n,r,i){let a=BigInt(n.startsWith(`0x`)?n:`0x${n}`),{patternBytes:o}=l(r,i),s=Buffer.from(o),c=this.readBuffer(t,a,s.length);this.writeBuffer(t,a,s);let d={id:u(),pid:t,address:`0x${a.toString(16).toUpperCase()}`,oldValue:Array.from(c),newValue:Array.from(s),timestamp:Date.now(),undone:!1};return this.writeHistory.push(d),this.undoneStack=[],this.writeHistory.length>e&&(this.writeHistory=this.writeHistory.slice(-e)),d}async undo(e){for(let t=this.writeHistory.length-1;t>=0;t--){let n=this.writeHistory[t];if(n.undone||e!==void 0&&n.pid!==e)continue;let r=BigInt(n.address),i=Buffer.from(n.oldValue);return this.writeBuffer(n.pid,r,i),n.undone=!0,this.undoneStack.push(n),n}return null}async redo(e){for(let t=this.undoneStack.length-1;t>=0;t--){let n=this.undoneStack[t];if(e!==void 0&&n.pid!==e)continue;this.undoneStack.splice(t,1);let r=BigInt(n.address),i=Buffer.from(n.newValue);return this.writeBuffer(n.pid,r,i),n.undone=!1,n}return null}async freeze(e,n,r,i,a){let o=BigInt(n.startsWith(`0x`)?n:`0x${n}`),{patternBytes:s}=l(r,i),c=Buffer.from(s),d=a??t,f={id:u(),pid:e,address:`0x${o.toString(16).toUpperCase()}`,value:Array.from(c),valueType:i,intervalMs:d,isActive:!0};return f.timer=setInterval(()=>{try{this.writeBuffer(e,o,c)}catch{f.isActive=!1,f.timer&&clearInterval(f.timer),this.freezes.delete(f.id)}},d),typeof f.timer.unref==`function`&&f.timer.unref(),this.freezes.set(f.id,f),f}async unfreeze(e){let t=this.freezes.get(e);return t?(t.timer&&clearInterval(t.timer),t.isActive=!1,this.freezes.delete(e),!0):!1}async unfreezeAll(){let e=0;for(let[t]of this.freezes)await this.unfreeze(t),e++;return e}listFreezes(){return Array.from(this.freezes.values()).map(({timer:e,...t})=>t)}async dumpMemory(e,t,n){let r=BigInt(t.startsWith(`0x`)?t:`0x${t}`);return this.readBuffer(e,r,n)}async dumpMemoryHex(e,t,n){let r=await this.dumpMemory(e,t,n),i=[],a=BigInt(t.startsWith(`0x`)?t:`0x${t}`);for(let e=0;e<r.length;e+=16){let t=a+BigInt(e),n=Array.from(r.subarray(e,Math.min(e+16,r.length))).map(e=>e.toString(16).padStart(2,`0`)).join(` `),o=Array.from(r.subarray(e,Math.min(e+16,r.length))).map(e=>e>=32&&e<=126?String.fromCharCode(e):`.`).join(``);i.push(`${t.toString(16).padStart(12,`0`)} ${n.padEnd(47)} |${o}|`)}return i.join(`
|
|
2
|
+
`)}getWriteHistory(){return[...this.writeHistory]}};const f=new d;export{d as MemoryController,f as memoryController};
|