@juspay/shooter 1.1.0 → 1.2.0
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/build/client/_app/immutable/assets/{0.DC5pAwP3.css → 0.BhZOCxO4.css} +1 -1
- package/build/client/_app/immutable/assets/0.BhZOCxO4.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BhZOCxO4.css.gz +0 -0
- package/build/client/_app/immutable/assets/1.BYutk3aU.css +1 -0
- package/build/client/_app/immutable/assets/1.BYutk3aU.css.br +0 -0
- package/build/client/_app/immutable/assets/1.BYutk3aU.css.gz +0 -0
- package/build/client/_app/immutable/assets/{3.BoXp0JoS.css → 3.DGDHCVnW.css} +1 -1
- package/build/client/_app/immutable/assets/3.DGDHCVnW.css.br +0 -0
- package/build/client/_app/immutable/assets/3.DGDHCVnW.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BFUut--w.css +1 -0
- package/build/client/_app/immutable/assets/4.BFUut--w.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BFUut--w.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.BTOx7yt7.css +1 -0
- package/build/client/_app/immutable/assets/5.BTOx7yt7.css.br +0 -0
- package/build/client/_app/immutable/assets/5.BTOx7yt7.css.gz +0 -0
- package/build/client/_app/immutable/assets/{7.PyEFVv_s.css → 7.DwS5ZHBh.css} +1 -1
- package/build/client/_app/immutable/assets/7.DwS5ZHBh.css.br +0 -0
- package/build/client/_app/immutable/assets/7.DwS5ZHBh.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css +1 -0
- package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatView.CwWbzIL-.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B-K5Sh65.js +1 -0
- package/build/client/_app/immutable/chunks/B-K5Sh65.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-K5Sh65.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5NAKyil.js +20 -0
- package/build/client/_app/immutable/chunks/B5NAKyil.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5NAKyil.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8XegpSE.js +1 -0
- package/build/client/_app/immutable/chunks/B8XegpSE.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8XegpSE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{50RPd5u3.js → B8zoBsv3.js} +1 -1
- package/build/client/_app/immutable/chunks/B8zoBsv3.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8zoBsv3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLszSzTT.js +1 -0
- package/build/client/_app/immutable/chunks/BLszSzTT.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLszSzTT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOYo8yTr.js +1 -0
- package/build/client/_app/immutable/chunks/BOYo8yTr.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOYo8yTr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CdL99jkG.js → BYqGCrTe.js} +1 -1
- package/build/client/_app/immutable/chunks/BYqGCrTe.js.br +0 -0
- package/build/client/_app/immutable/chunks/BYqGCrTe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bu1aqm5j.js +1 -0
- package/build/client/_app/immutable/chunks/Bu1aqm5j.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bu1aqm5j.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4mLaWWx.js +1 -0
- package/build/client/_app/immutable/chunks/C4mLaWWx.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4mLaWWx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{ClK4wZbC.js → CQjSATpv.js} +16 -16
- package/build/client/_app/immutable/chunks/CQjSATpv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQjSATpv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CojFyTPp.js → CSoRdFvv.js} +1 -1
- package/build/client/_app/immutable/chunks/CSoRdFvv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CSoRdFvv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{tjbnEgXP.js → CZHsSL_X.js} +1 -1
- package/build/client/_app/immutable/chunks/CZHsSL_X.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZHsSL_X.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVkn4r72.js +1 -0
- package/build/client/_app/immutable/chunks/DVkn4r72.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVkn4r72.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjsDGxCa.js +41 -0
- package/build/client/_app/immutable/chunks/DjsDGxCa.js.br +0 -0
- package/build/client/_app/immutable/chunks/DjsDGxCa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/UJOiqIYE.js +1 -0
- package/build/client/_app/immutable/chunks/UJOiqIYE.js.br +0 -0
- package/build/client/_app/immutable/chunks/UJOiqIYE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/r0JawsZc.js +2 -0
- package/build/client/_app/immutable/chunks/r0JawsZc.js.br +0 -0
- package/build/client/_app/immutable/chunks/r0JawsZc.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Z3zMnuSx.js +2 -0
- package/build/client/_app/immutable/entry/app.Z3zMnuSx.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Z3zMnuSx.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Dd-gIP4y.js +1 -0
- package/build/client/_app/immutable/entry/start.Dd-gIP4y.js.br +2 -0
- package/build/client/_app/immutable/entry/start.Dd-gIP4y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.D2YR8tTD.js +1 -0
- package/build/client/_app/immutable/nodes/0.D2YR8tTD.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.D2YR8tTD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B3m6rO4C.js +1 -0
- package/build/client/_app/immutable/nodes/1.B3m6rO4C.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B3m6rO4C.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CyRB2euU.js +1 -0
- package/build/client/_app/immutable/nodes/2.CyRB2euU.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CyRB2euU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.3yohCM25.js +3 -0
- package/build/client/_app/immutable/nodes/3.3yohCM25.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.3yohCM25.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DEAcwl7l.js +1 -0
- package/build/client/_app/immutable/nodes/4.DEAcwl7l.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DEAcwl7l.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.C6bLGWQR.js +4 -0
- package/build/client/_app/immutable/nodes/5.C6bLGWQR.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.C6bLGWQR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.ByTzlA2D.js +2 -0
- package/build/client/_app/immutable/nodes/6.ByTzlA2D.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.ByTzlA2D.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BPMfwzd2.js +2 -0
- package/build/client/_app/immutable/nodes/7.BPMfwzd2.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BPMfwzd2.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/manifest.json +13 -0
- package/build/client/manifest.json.br +0 -0
- package/build/client/manifest.json.gz +0 -0
- package/build/server/chunks/0-Vk38tI2J.js +9 -0
- package/build/server/chunks/0-Vk38tI2J.js.map +1 -0
- package/build/server/chunks/1-BvYQX5MR.js +9 -0
- package/build/server/chunks/1-BvYQX5MR.js.map +1 -0
- package/build/server/chunks/2-Cl7R4Qk2.js +9 -0
- package/build/server/chunks/2-Cl7R4Qk2.js.map +1 -0
- package/build/server/chunks/3-Ck7ewhOX.js +9 -0
- package/build/server/chunks/3-Ck7ewhOX.js.map +1 -0
- package/build/server/chunks/4-CnDeRm2Z.js +9 -0
- package/build/server/chunks/4-CnDeRm2Z.js.map +1 -0
- package/build/server/chunks/5-IxitzEvN.js +9 -0
- package/build/server/chunks/{5-D0wB7nfE.js.map → 5-IxitzEvN.js.map} +1 -1
- package/build/server/chunks/6-CyZ3r1iS.js +9 -0
- package/build/server/chunks/6-CyZ3r1iS.js.map +1 -0
- package/build/server/chunks/7-BmI7du46.js +9 -0
- package/build/server/chunks/7-BmI7du46.js.map +1 -0
- package/build/server/chunks/{Button-C7D5W6wV.js → Button-Cs1aE6ka.js} +2 -2
- package/build/server/chunks/{Button-C7D5W6wV.js.map → Button-Cs1aE6ka.js.map} +1 -1
- package/build/server/chunks/{EmptyState-Ci4pSpmY.js → EmptyState-DDFH1K8g.js} +10 -4
- package/build/server/chunks/EmptyState-DDFH1K8g.js.map +1 -0
- package/build/server/chunks/{Icon-DyrkHVnV.js → Icon-CEUrotA6.js} +3 -3
- package/build/server/chunks/{Icon-DyrkHVnV.js.map → Icon-CEUrotA6.js.map} +1 -1
- package/build/server/chunks/{Shimmer-BITK6wrm.js → Shimmer-DB8W1zt6.js} +2 -2
- package/build/server/chunks/{Shimmer-BITK6wrm.js.map → Shimmer-DB8W1zt6.js.map} +1 -1
- package/build/server/chunks/_error.svelte-uCOJNxvr.js +39 -0
- package/build/server/chunks/_error.svelte-uCOJNxvr.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-CO4f8UD7.js → _layout.svelte-CtWmEJwe.js} +5 -25
- package/build/server/chunks/_layout.svelte-CtWmEJwe.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C6bns9aQ.js → _page.svelte-BcZaKdX9.js} +13 -9
- package/build/server/chunks/_page.svelte-BcZaKdX9.js.map +1 -0
- package/build/server/chunks/{_page.svelte-3Cc3NMAP.js → _page.svelte-BdYynOck.js} +18 -14
- package/build/server/chunks/_page.svelte-BdYynOck.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CFCONiDK.js → _page.svelte-BgevQjq1.js} +16 -12
- package/build/server/chunks/_page.svelte-BgevQjq1.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DskND_G9.js → _page.svelte-CVq6tRb3.js} +8 -8
- package/build/server/chunks/_page.svelte-CVq6tRb3.js.map +1 -0
- package/build/server/chunks/{_page.svelte-rTrWmhOp.js → _page.svelte-CxWcQ0Am.js} +8 -8
- package/build/server/chunks/_page.svelte-CxWcQ0Am.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C0p3HsIW.js → _page.svelte-DO4oa_LY.js} +11 -13
- package/build/server/chunks/_page.svelte-DO4oa_LY.js.map +1 -0
- package/build/server/chunks/{_server.ts-CS5H5klP.js → _server.ts-CAxsWKvS.js} +14 -10
- package/build/server/chunks/_server.ts-CAxsWKvS.js.map +1 -0
- package/build/server/chunks/{_server.ts-C8slOHB0.js → _server.ts-CTpcLUH8.js} +3 -2
- package/build/server/chunks/_server.ts-CTpcLUH8.js.map +1 -0
- package/build/server/chunks/_server.ts-CtH0dhUp.js +71 -0
- package/build/server/chunks/_server.ts-CtH0dhUp.js.map +1 -0
- package/build/server/chunks/{_server.ts-DhTrdlWH.js → _server.ts-DB_Kg97c.js} +14 -3
- package/build/server/chunks/_server.ts-DB_Kg97c.js.map +1 -0
- package/build/server/chunks/_server.ts-DYpJImqd.js +99 -0
- package/build/server/chunks/_server.ts-DYpJImqd.js.map +1 -0
- package/build/server/chunks/{_server.ts-DpEVfp8W.js → _server.ts-Deok2y88.js} +58 -40
- package/build/server/chunks/_server.ts-Deok2y88.js.map +1 -0
- package/build/server/chunks/{_server.ts-uHUi-4cd.js → _server.ts-vekTmWAx.js} +3 -2
- package/build/server/chunks/_server.ts-vekTmWAx.js.map +1 -0
- package/build/server/chunks/{client2-BjxIYuno.js → client-BdGHe_hY.js} +4 -4
- package/build/server/chunks/client-BdGHe_hY.js.map +1 -0
- package/build/server/chunks/client2-CCBGA-2V.js +7 -0
- package/build/server/chunks/client2-CCBGA-2V.js.map +1 -0
- package/build/server/chunks/{index-Cnl871UW.js → index-DwaY1cAm.js} +2 -2
- package/build/server/chunks/{index-Cnl871UW.js.map → index-DwaY1cAm.js.map} +1 -1
- package/build/server/chunks/{index-server-CUC9Jt7r.js → index-server-CrDaL06Y.js} +2 -2
- package/build/server/chunks/{index-server-CUC9Jt7r.js.map → index-server-CrDaL06Y.js.map} +1 -1
- package/build/server/chunks/{index2-HA3VTH7y.js → index2-CgclKpUj.js} +2 -2
- package/build/server/chunks/{index2-HA3VTH7y.js.map → index2-CgclKpUj.js.map} +1 -1
- package/build/server/chunks/opencode-db-path-DcfhJtJy.js +15 -0
- package/build/server/chunks/opencode-db-path-DcfhJtJy.js.map +1 -0
- package/build/server/chunks/{pty-manager-DR0Wt2Ac.js → pty-manager-BQVB7IVj.js} +17 -15
- package/build/server/chunks/pty-manager-BQVB7IVj.js.map +1 -0
- package/build/server/chunks/{root-DhswcH6o.js → root-DDSnEAZv.js} +2 -2
- package/build/server/chunks/{root-DhswcH6o.js.map → root-DDSnEAZv.js.map} +1 -1
- package/build/server/chunks/{state.svelte-2Lellg7t.js → state.svelte-hBbXlUak.js} +3 -3
- package/build/server/chunks/{state.svelte-2Lellg7t.js.map → state.svelte-hBbXlUak.js.map} +1 -1
- package/build/server/chunks/stores-DHNzYNpX.js +28 -0
- package/build/server/chunks/stores-DHNzYNpX.js.map +1 -0
- package/build/server/index.js +5 -5
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +30 -16
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/scripts/setup.cjs +87 -13
- package/server.ts +3 -0
- package/src/app.html +3 -0
- package/src/lib/modules/client/common/cache.ts +10 -2
- package/src/lib/modules/client/common/index.ts +1 -1
- package/src/lib/modules/client/common/markdown.ts +22 -1
- package/src/lib/modules/client/common/time.ts +13 -11
- package/src/lib/modules/client/terminal/ChatView.svelte +324 -67
- package/src/lib/modules/client/terminal/ConnectionStatus.svelte +1 -0
- package/src/lib/modules/client/terminal/xterm-wrapper.ts +4 -1
- package/src/lib/modules/server/sessions/jsonl-reader.ts +43 -28
- package/src/lib/modules/server/sessions/opencode-db-path.ts +26 -0
- package/src/lib/modules/server/sessions/opencode-reader.ts +13 -15
- package/src/lib/modules/server/sessions/process-detector.ts +103 -0
- package/src/lib/modules/server/terminal/opencode-watcher.ts +3 -14
- package/src/lib/modules/server/terminal/pty-manager.ts +20 -8
- package/src/lib/modules/server/ws/session-handler.ts +282 -104
- package/src/lib/theme.css +30 -0
- package/src/routes/+error.svelte +94 -0
- package/src/routes/+page.svelte +18 -8
- package/src/routes/api/health/+server.ts +14 -2
- package/src/routes/api/sessions/+server.ts +12 -4
- package/src/routes/api/sessions/connect/+server.ts +125 -0
- package/src/routes/api/sessions/detect/+server.ts +27 -0
- package/src/routes/api/terminals/+server.ts +12 -9
- package/src/routes/config/+page.svelte +22 -1
- package/src/routes/project/+page.svelte +159 -8
- package/src/routes/session/[id]/+page.svelte +477 -299
- package/src/routes/terminals/+page.svelte +14 -3
- package/src/routes/terminals/[id]/+page.svelte +25 -0
- package/build/client/_app/immutable/assets/0.DC5pAwP3.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DC5pAwP3.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.BoXp0JoS.css.br +0 -0
- package/build/client/_app/immutable/assets/3.BoXp0JoS.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.cJuCkJKZ.css +0 -1
- package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.br +0 -0
- package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.DRjApZQW.css +0 -1
- package/build/client/_app/immutable/assets/5.DRjApZQW.css.br +0 -0
- package/build/client/_app/immutable/assets/5.DRjApZQW.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.PyEFVv_s.css.br +0 -0
- package/build/client/_app/immutable/assets/7.PyEFVv_s.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css +0 -1
- package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.gz +0 -0
- package/build/client/_app/immutable/chunks/50RPd5u3.js.br +0 -0
- package/build/client/_app/immutable/chunks/50RPd5u3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDC7XD4o.js +0 -1
- package/build/client/_app/immutable/chunks/BDC7XD4o.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDC7XD4o.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BeONA6_G.js +0 -2
- package/build/client/_app/immutable/chunks/BeONA6_G.js.br +0 -0
- package/build/client/_app/immutable/chunks/BeONA6_G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BygiiMA0.js +0 -1
- package/build/client/_app/immutable/chunks/BygiiMA0.js.br +0 -0
- package/build/client/_app/immutable/chunks/BygiiMA0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGLrx-H5.js +0 -1
- package/build/client/_app/immutable/chunks/CGLrx-H5.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGLrx-H5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CHvUpVYv.js +0 -1
- package/build/client/_app/immutable/chunks/CHvUpVYv.js.br +0 -0
- package/build/client/_app/immutable/chunks/CHvUpVYv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CbqC9BW7.js +0 -1
- package/build/client/_app/immutable/chunks/CbqC9BW7.js.br +0 -2
- package/build/client/_app/immutable/chunks/CbqC9BW7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdL99jkG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdL99jkG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ClK4wZbC.js.br +0 -0
- package/build/client/_app/immutable/chunks/ClK4wZbC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CojFyTPp.js.br +0 -0
- package/build/client/_app/immutable/chunks/CojFyTPp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DREFAyhX.js +0 -60
- package/build/client/_app/immutable/chunks/DREFAyhX.js.br +0 -0
- package/build/client/_app/immutable/chunks/DREFAyhX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/K_aHH2KN.js +0 -1
- package/build/client/_app/immutable/chunks/K_aHH2KN.js.br +0 -0
- package/build/client/_app/immutable/chunks/K_aHH2KN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ona8oofC.js +0 -1
- package/build/client/_app/immutable/chunks/Ona8oofC.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ona8oofC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/tjbnEgXP.js.br +0 -0
- package/build/client/_app/immutable/chunks/tjbnEgXP.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.anqwe7ZL.js +0 -2
- package/build/client/_app/immutable/entry/app.anqwe7ZL.js.br +0 -0
- package/build/client/_app/immutable/entry/app.anqwe7ZL.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BV2VRv6h.js +0 -1
- package/build/client/_app/immutable/entry/start.BV2VRv6h.js.br +0 -2
- package/build/client/_app/immutable/entry/start.BV2VRv6h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.D0i5MqcI.js +0 -1
- package/build/client/_app/immutable/nodes/0.D0i5MqcI.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.D0i5MqcI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DN5n5c6F.js +0 -1
- package/build/client/_app/immutable/nodes/1.DN5n5c6F.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DN5n5c6F.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js +0 -1
- package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CEkigHDv.js +0 -3
- package/build/client/_app/immutable/nodes/3.CEkigHDv.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CEkigHDv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js +0 -1
- package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.shitbtHc.js +0 -1
- package/build/client/_app/immutable/nodes/5.shitbtHc.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.shitbtHc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js +0 -2
- package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.D0CrR6pl.js +0 -2
- package/build/client/_app/immutable/nodes/7.D0CrR6pl.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.D0CrR6pl.js.gz +0 -0
- package/build/server/chunks/0-Cs1dzfRz.js +0 -9
- package/build/server/chunks/0-Cs1dzfRz.js.map +0 -1
- package/build/server/chunks/1-BCSX7oED.js +0 -9
- package/build/server/chunks/1-BCSX7oED.js.map +0 -1
- package/build/server/chunks/2-6gkeO8b4.js +0 -9
- package/build/server/chunks/2-6gkeO8b4.js.map +0 -1
- package/build/server/chunks/3-DH9J9Vsc.js +0 -9
- package/build/server/chunks/3-DH9J9Vsc.js.map +0 -1
- package/build/server/chunks/4-Rzy5TYjl.js +0 -9
- package/build/server/chunks/4-Rzy5TYjl.js.map +0 -1
- package/build/server/chunks/5-D0wB7nfE.js +0 -9
- package/build/server/chunks/6-DR2ABDPq.js +0 -9
- package/build/server/chunks/6-DR2ABDPq.js.map +0 -1
- package/build/server/chunks/7-D-oQJsia.js +0 -9
- package/build/server/chunks/7-D-oQJsia.js.map +0 -1
- package/build/server/chunks/EmptyState-Ci4pSpmY.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CO4f8UD7.js.map +0 -1
- package/build/server/chunks/_page.svelte-3Cc3NMAP.js.map +0 -1
- package/build/server/chunks/_page.svelte-C0p3HsIW.js.map +0 -1
- package/build/server/chunks/_page.svelte-C6bns9aQ.js.map +0 -1
- package/build/server/chunks/_page.svelte-CFCONiDK.js.map +0 -1
- package/build/server/chunks/_page.svelte-DskND_G9.js.map +0 -1
- package/build/server/chunks/_page.svelte-rTrWmhOp.js.map +0 -1
- package/build/server/chunks/_server.ts-C8slOHB0.js.map +0 -1
- package/build/server/chunks/_server.ts-CS5H5klP.js.map +0 -1
- package/build/server/chunks/_server.ts-DhTrdlWH.js.map +0 -1
- package/build/server/chunks/_server.ts-DpEVfp8W.js.map +0 -1
- package/build/server/chunks/_server.ts-uHUi-4cd.js.map +0 -1
- package/build/server/chunks/client-BYT9c0ig.js +0 -7
- package/build/server/chunks/client-BYT9c0ig.js.map +0 -1
- package/build/server/chunks/client2-BjxIYuno.js.map +0 -1
- package/build/server/chunks/error.svelte-BG_yE-Wt.js +0 -27
- package/build/server/chunks/error.svelte-BG_yE-Wt.js.map +0 -1
- package/build/server/chunks/pty-manager-DR0Wt2Ac.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { an as ssr_context } from './index-DwaY1cAm.js';
|
|
2
2
|
|
|
3
3
|
function onDestroy(fn) {
|
|
4
4
|
/** @type {SSRContext} */
|
|
@@ -6,4 +6,4 @@ function onDestroy(fn) {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export { onDestroy as o };
|
|
9
|
-
//# sourceMappingURL=index-server-
|
|
9
|
+
//# sourceMappingURL=index-server-CrDaL06Y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-server-
|
|
1
|
+
{"version":3,"file":"index-server-CrDaL06Y.js","sources":["../../../.svelte-kit/adapter-node/chunks/index-server.js"],"sourcesContent":["import { n as ssr_context } from \"./index.js\";\nfunction onDestroy(fn) {\n /** @type {SSRContext} */\n ssr_context.r.on_destroy(fn);\n}\nexport {\n onDestroy as o\n};\n"],"names":[],"mappings":";;AACA,SAAS,SAAS,CAAC,EAAE,EAAE;AACvB;AACA,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9B;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { al as noop, am as safe_not_equal } from './index-DwaY1cAm.js';
|
|
2
2
|
|
|
3
3
|
const subscriber_queue = [];
|
|
4
4
|
function readable(value, start) {
|
|
@@ -55,4 +55,4 @@ function writable(value, start = noop) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export { readable as r, writable as w };
|
|
58
|
-
//# sourceMappingURL=index2-
|
|
58
|
+
//# sourceMappingURL=index2-CgclKpUj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2-
|
|
1
|
+
{"version":3,"file":"index2-CgclKpUj.js","sources":["../../../.svelte-kit/adapter-node/chunks/index2.js"],"sourcesContent":["import { o as noop, p as safe_not_equal } from \"./index.js\";\nconst subscriber_queue = [];\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop = null;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(\n /** @type {T} */\n value\n ));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set, update) || noop;\n }\n run(\n /** @type {T} */\n value\n );\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0 && stop) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nexport {\n readable as r,\n writable as w\n};\n"],"names":[],"mappings":";;AACA,MAAM,gBAAgB,GAAG,EAAE;AAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,GAAG;AACH;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,EAAE,MAAM,WAAW,mBAAmB,IAAI,GAAG,EAAE;AAC/C,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;AAC1B,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,SAAS;AACvB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM;AAClD,QAAQ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC9C,UAAU,UAAU,CAAC,CAAC,CAAC,EAAE;AACzB,UAAU,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;AAClD,QAAQ;AACR,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/D,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,UAAU;AACV,UAAU,gBAAgB,CAAC,MAAM,GAAG,CAAC;AACrC,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE;AACtB,IAAI,GAAG,CAAC,EAAE;AACV;AACA,MAAM;AACN,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;AACxC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/B,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI;AACvC,IAAI;AACJ,IAAI,GAAG;AACP;AACA,MAAM;AACN,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;AACpC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;AAC1C,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,GAAG,IAAI;AACnB,MAAM;AACN,IAAI,CAAC;AACL,EAAE;AACF,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;AACnC;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
|
|
3
|
+
function resolveOpenCodeDbPath() {
|
|
4
|
+
const home = process.env.HOME || "";
|
|
5
|
+
if (process.env.XDG_DATA_HOME) {
|
|
6
|
+
return path.join(process.env.XDG_DATA_HOME, "opencode", "opencode.db");
|
|
7
|
+
}
|
|
8
|
+
if (process.platform === "darwin") {
|
|
9
|
+
return path.join(home, "Library", "Application Support", "opencode", "opencode.db");
|
|
10
|
+
}
|
|
11
|
+
return path.join(home, ".local", "share", "opencode", "opencode.db");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { resolveOpenCodeDbPath as r };
|
|
15
|
+
//# sourceMappingURL=opencode-db-path-DcfhJtJy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-db-path-DcfhJtJy.js","sources":["../../../.svelte-kit/adapter-node/chunks/opencode-db-path.js"],"sourcesContent":["import * as path from \"path\";\nfunction resolveOpenCodeDbPath() {\n const home = process.env.HOME || \"\";\n if (process.env.XDG_DATA_HOME) {\n return path.join(process.env.XDG_DATA_HOME, \"opencode\", \"opencode.db\");\n }\n if (process.platform === \"darwin\") {\n return path.join(home, \"Library\", \"Application Support\", \"opencode\", \"opencode.db\");\n }\n return path.join(home, \".local\", \"share\", \"opencode\", \"opencode.db\");\n}\nexport {\n resolveOpenCodeDbPath as r\n};\n"],"names":[],"mappings":";;AACA,SAAS,qBAAqB,GAAG;AACjC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AACrC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;AACjC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC;AAC1E,EAAE;AACF,EAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,aAAa,CAAC;AACvF,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;AACtE;;;;"}
|
|
@@ -7,6 +7,7 @@ import path__default from 'path';
|
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
8
8
|
import * as net from 'net';
|
|
9
9
|
import Database from 'better-sqlite3';
|
|
10
|
+
import { r as resolveOpenCodeDbPath } from './opencode-db-path-DcfhJtJy.js';
|
|
10
11
|
|
|
11
12
|
class HolderClient {
|
|
12
13
|
connected = false;
|
|
@@ -210,19 +211,7 @@ class HolderClient {
|
|
|
210
211
|
`);
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
|
-
const OPENCODE_DB_PATH = (
|
|
214
|
-
if (process.platform === "darwin") {
|
|
215
|
-
return path.join(
|
|
216
|
-
process.env.HOME || "",
|
|
217
|
-
"Library",
|
|
218
|
-
"Application Support",
|
|
219
|
-
"opencode",
|
|
220
|
-
"opencode.db"
|
|
221
|
-
);
|
|
222
|
-
}
|
|
223
|
-
const xdgData = process.env.XDG_DATA_HOME || path.join(process.env.HOME || "", ".local", "share");
|
|
224
|
-
return path.join(xdgData, "opencode", "opencode.db");
|
|
225
|
-
})();
|
|
214
|
+
const OPENCODE_DB_PATH = resolveOpenCodeDbPath();
|
|
226
215
|
const POLL_INTERVAL_MS = 2e3;
|
|
227
216
|
const SQLITE_MAX_PARAMS = 500;
|
|
228
217
|
class OpenCodeWatcher {
|
|
@@ -1384,6 +1373,20 @@ class PtyManager {
|
|
|
1384
1373
|
"projects",
|
|
1385
1374
|
cwd.replace(/\//g, "-")
|
|
1386
1375
|
);
|
|
1376
|
+
const resumeIdx = terminal.args.indexOf("--resume");
|
|
1377
|
+
if (resumeIdx !== -1 && resumeIdx + 1 < terminal.args.length) {
|
|
1378
|
+
const resumeId = terminal.args[resumeIdx + 1];
|
|
1379
|
+
if (!/^[0-9a-f-]+$/i.test(resumeId)) {
|
|
1380
|
+
console.warn(`[pty-manager] Invalid resume ID: ${resumeId}`);
|
|
1381
|
+
} else {
|
|
1382
|
+
const resumeFile = path__default.join(projectDir, `${resumeId}.jsonl`);
|
|
1383
|
+
if (existsSync(resumeFile)) {
|
|
1384
|
+
terminal.sessionFile = resumeFile;
|
|
1385
|
+
terminalStore.update(id, { sessionFile: resumeFile });
|
|
1386
|
+
return;
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1387
1390
|
const launchTime = terminal.createdAt.getTime();
|
|
1388
1391
|
terminal.pollTimer = setInterval(() => {
|
|
1389
1392
|
if (terminal.status === "exited" || terminal.sessionFile) {
|
|
@@ -1391,7 +1394,6 @@ class PtyManager {
|
|
|
1391
1394
|
clearInterval(terminal.pollTimer);
|
|
1392
1395
|
terminal.pollTimer = null;
|
|
1393
1396
|
}
|
|
1394
|
-
if (terminal.sessionFile) ;
|
|
1395
1397
|
return;
|
|
1396
1398
|
}
|
|
1397
1399
|
try {
|
|
@@ -1521,4 +1523,4 @@ const ptyManager = globalThis[PTY_GLOBAL_KEY] || new PtyManager();
|
|
|
1521
1523
|
globalThis[PTY_GLOBAL_KEY] = ptyManager;
|
|
1522
1524
|
|
|
1523
1525
|
export { ptyManager as p };
|
|
1524
|
-
//# sourceMappingURL=pty-manager-
|
|
1526
|
+
//# sourceMappingURL=pty-manager-BQVB7IVj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-manager-BQVB7IVj.js","sources":["../../../.svelte-kit/adapter-node/chunks/pty-manager.js"],"sourcesContent":["import { fork } from \"child_process\";\nimport { randomBytes } from \"crypto\";\nimport * as fs from \"fs\";\nimport { existsSync, readFileSync, unlinkSync, readdirSync, statSync } from \"fs\";\nimport * as path from \"path\";\nimport path__default from \"path\";\nimport { fileURLToPath } from \"url\";\nimport * as net from \"net\";\nimport Database from \"better-sqlite3\";\nimport { r as resolveOpenCodeDbPath } from \"./opencode-db-path.js\";\nclass HolderClient {\n connected = false;\n pid = 0;\n activityCb = null;\n cwdCb = null;\n disconnectCb = null;\n exitCb = null;\n lineBuf = \"\";\n outputCb = null;\n socket = null;\n /**\n * Connect to a holder process via its Unix domain socket.\n * Resolves once the initial `info` and `scrollback` handshake messages\n * have been received.\n */\n connect(socketPath) {\n return new Promise((resolve, reject) => {\n let settled = false;\n let info = null;\n let scrollback = \"\";\n const pendingMessages = [];\n const HANDSHAKE_TIMEOUT_MS = 1e4;\n const handshakeTimer = setTimeout(() => {\n if (!settled) {\n settled = true;\n this.connected = false;\n if (this.socket) {\n this.socket.destroy();\n this.socket = null;\n }\n reject(\n new Error(`Handshake timeout: holder did not respond within ${HANDSHAKE_TIMEOUT_MS}ms`)\n );\n }\n }, HANDSHAKE_TIMEOUT_MS);\n const socket = net.createConnection(socketPath);\n this.socket = socket;\n socket.setEncoding(\"utf8\");\n socket.on(\"connect\", () => {\n this.connected = true;\n });\n socket.on(\"data\", (chunk) => {\n this.lineBuf += chunk;\n const lines = this.lineBuf.split(\"\\n\");\n this.lineBuf = lines.pop();\n for (const line of lines) {\n if (line.length === 0) {\n continue;\n }\n let msg;\n try {\n msg = JSON.parse(line);\n } catch {\n continue;\n }\n if (!settled) {\n if (msg.type === \"info\") {\n info = { exitCode: msg.exitCode, exited: msg.exited, pid: msg.pid };\n this.pid = msg.pid;\n } else if (msg.type === \"scrollback\") {\n scrollback = msg.data;\n } else {\n pendingMessages.push(msg);\n }\n if (info !== null) {\n const settle = () => {\n if (settled) {\n return;\n }\n settled = true;\n clearTimeout(handshakeTimer);\n resolve({\n exitCode: info.exitCode,\n exited: info.exited,\n pid: info.pid,\n scrollback\n });\n const queued = [...pendingMessages];\n pendingMessages.length = 0;\n setTimeout(() => {\n for (const pending of queued) {\n this.handleMessage(pending);\n }\n }, 0);\n };\n if (msg.type === \"scrollback\") {\n settle();\n } else if (msg.type === \"info\") {\n setTimeout(settle, 100);\n }\n }\n } else {\n this.handleMessage(msg);\n }\n }\n });\n socket.on(\"error\", (err) => {\n if (!settled) {\n settled = true;\n clearTimeout(handshakeTimer);\n this.connected = false;\n this.socket = null;\n reject(err);\n }\n });\n socket.on(\"close\", () => {\n const wasConnected = this.connected;\n this.connected = false;\n this.socket = null;\n this.lineBuf = \"\";\n if (!settled) {\n settled = true;\n clearTimeout(handshakeTimer);\n reject(new Error(\"Socket closed before handshake completed\"));\n return;\n }\n if (wasConnected && this.disconnectCb) {\n this.disconnectCb();\n }\n });\n });\n }\n /** Gracefully disconnect from the holder (does NOT kill the holder). */\n disconnect() {\n this.connected = false;\n if (this.socket) {\n this.socket.destroy();\n this.socket = null;\n }\n this.lineBuf = \"\";\n }\n /** Send a signal to the PTY process (default SIGTERM). */\n kill(signal) {\n const msg = { type: \"kill\" };\n if (signal) {\n msg.signal = signal;\n }\n this.send(msg);\n }\n /** Register callback for activity state changes. */\n onActivity(cb) {\n this.activityCb = cb;\n }\n /** Register callback for CWD changes. */\n onCwd(cb) {\n this.cwdCb = cb;\n }\n /** Register callback for unexpected disconnect from holder. */\n onDisconnect(cb) {\n this.disconnectCb = cb;\n }\n /** Register callback for PTY exit. */\n onExit(cb) {\n this.exitCb = cb;\n }\n /** Register callback for PTY output data. */\n onOutput(cb) {\n this.outputCb = cb;\n }\n /** Resize the PTY. */\n resize(cols, rows) {\n this.send({ cols, rows, type: \"resize\" });\n }\n /** Write data to the PTY stdin. */\n write(data) {\n this.send({ data, type: \"input\" });\n }\n // ── Private Helpers ────────────────────────────────────────────────\n /** Dispatch a post-handshake message from the holder. */\n handleMessage(msg) {\n switch (msg.type) {\n case \"activity\":\n if (this.activityCb) {\n this.activityCb(msg.active);\n }\n break;\n case \"cwd\":\n if (this.cwdCb) {\n this.cwdCb(msg.path);\n }\n break;\n case \"exit\":\n if (this.exitCb) {\n this.exitCb(msg.code);\n }\n break;\n case \"output\":\n if (this.outputCb) {\n this.outputCb(msg.data);\n }\n break;\n }\n }\n /** Send an ndjson message to the holder. */\n send(msg) {\n if (!this.socket || !this.connected) {\n return;\n }\n this.socket.write(`${JSON.stringify(msg)}\n`);\n }\n}\nconst OPENCODE_DB_PATH = resolveOpenCodeDbPath();\nconst POLL_INTERVAL_MS = 2e3;\nconst SQLITE_MAX_PARAMS = 500;\nclass OpenCodeWatcher {\n watchers = /* @__PURE__ */ new Map();\n /**\n * Find the most recent non-archived OpenCode session that matches\n * the given working directory. Checks session.directory equals or\n * starts with `cwd`.\n *\n * Returns the session ID or null if none found.\n */\n findSessionId(cwd, createdAfter) {\n const db = openDb();\n if (!db) {\n return null;\n }\n try {\n const millisFilter = createdAfter ?? 0;\n const secondsFilter = createdAfter ? Math.floor(createdAfter / 1e3) : 0;\n const cwdLikePattern = `${cwd.replace(/[%_\\\\]/g, \"\\\\$&\")}/%`;\n const row = db.prepare(\n `\n\t\t\t\tSELECT id\n\t\t\t\tFROM session\n\t\t\t\tWHERE (time_archived IS NULL OR time_archived = 0)\n\t\t\t\t AND (directory = ? OR directory LIKE ? ESCAPE '\\\\')\n\t\t\t\t AND (\n\t\t\t\t (time_updated >= 1e12 AND time_updated > ?)\n\t\t\t\t OR (time_updated < 1e12 AND time_updated > ?)\n\t\t\t\t )\n\t\t\t\tORDER BY time_updated DESC\n\t\t\t\tLIMIT 1\n\t\t\t`\n ).get(cwd, cwdLikePattern, millisFilter, secondsFilter);\n return row?.id ?? null;\n } catch (error) {\n console.error(\"[opencode-watcher] Failed to find session:\", error);\n return null;\n } finally {\n db.close();\n }\n }\n /**\n * Read all messages and parts for a session from SQLite, converting\n * them to ConversationMessage format.\n */\n getHistory(sessionId) {\n const db = openDb();\n if (!db) {\n return [];\n }\n try {\n const messages = db.prepare(\n `\n\t\t\t\tSELECT id, session_id, time_created, time_updated, data\n\t\t\t\tFROM message\n\t\t\t\tWHERE session_id = ?\n\t\t\t\tORDER BY time_created ASC\n\t\t\t`\n ).all(sessionId);\n if (messages.length === 0) {\n return [];\n }\n const messageIds = messages.map((m) => m.id);\n const parts = batchInQuery(\n db,\n `SELECT id, message_id, session_id, time_created, time_updated, data\n\t\t\t\tFROM part\n\t\t\t\tWHERE message_id IN (__PLACEHOLDERS__)\n\t\t\t\tORDER BY time_created ASC`,\n messageIds\n );\n const partsByMessage = /* @__PURE__ */ new Map();\n for (const part of parts) {\n if (!partsByMessage.has(part.message_id)) {\n partsByMessage.set(part.message_id, []);\n }\n partsByMessage.get(part.message_id).push(part);\n }\n return this.buildMessages(messages, partsByMessage);\n } catch (error) {\n console.error(\"[opencode-watcher] Failed to read history:\", error);\n return [];\n } finally {\n db.close();\n }\n }\n /**\n * Stop watching a specific session. If a callback is provided, only that\n * subscriber is removed — the interval keeps running while other subscribers\n * remain. If no callback is provided, all subscribers and the interval are\n * cleared (backward compat).\n */\n stop(sessionId, callback) {\n const state = this.watchers.get(sessionId);\n if (!state) {\n return;\n }\n if (callback) {\n state.callbacks.delete(callback);\n console.log(\n `[opencode-watcher] Removed subscriber from session: ${sessionId} (remaining=${state.callbacks.size})`\n );\n if (state.callbacks.size > 0) {\n return;\n }\n }\n clearInterval(state.intervalHandle);\n this.watchers.delete(sessionId);\n console.log(`[opencode-watcher] Stopped watching session: ${sessionId}`);\n }\n /**\n * Stop all active watchers.\n */\n stopAll() {\n for (const [sessionId] of this.watchers) {\n this.stop(sessionId);\n }\n }\n /**\n * Start polling the SQLite DB every 2 seconds for new messages/parts\n * in the given session. Converts new data to ConversationMessage\n * format and invokes the callback.\n */\n watch(sessionId, callback) {\n const existing = this.watchers.get(sessionId);\n if (existing) {\n existing.callbacks.add(callback);\n console.log(\n `[opencode-watcher] Added subscriber to session: ${sessionId} (total=${existing.callbacks.size})`\n );\n return;\n }\n const { emittedMessageIds, emittedPartUpdatedAt, lastMessageTime, lastPartTime } = this.getHighWaterMarks(sessionId);\n const intervalHandle = setInterval(() => {\n this.poll(sessionId);\n }, POLL_INTERVAL_MS);\n const state = {\n callbacks: /* @__PURE__ */ new Set([callback]),\n emittedMessageIds,\n emittedPartUpdatedAt,\n intervalHandle,\n lastMessageTime,\n lastPartTime,\n sessionId\n };\n this.watchers.set(sessionId, state);\n console.log(\n `[opencode-watcher] Watching session: ${sessionId} (lastMsg=${lastMessageTime}, lastPart=${lastPartTime})`\n );\n }\n // ── Private Helpers ────────────────────────────────────────────────\n /**\n * Convert OpenCode messages + their parts into ConversationMessage\n * objects for consumption by the session handler.\n */\n buildMessages(messages, partsByMessage) {\n const result = [];\n for (const msg of messages) {\n let msgData = {};\n try {\n msgData = JSON.parse(msg.data);\n } catch {\n continue;\n }\n const role = msgData.role === \"user\" ? \"user\" : \"assistant\";\n const msgParts = partsByMessage.get(msg.id) || [];\n const parts = [];\n for (const part of msgParts) {\n let partData;\n try {\n partData = JSON.parse(part.data);\n } catch {\n continue;\n }\n const converted = convertPartToMessagePart(partData);\n if (converted) {\n parts.push(converted);\n }\n }\n if (parts.length === 0) {\n console.debug(`[opencode-watcher] Skipping message ${msg.id} (no usable parts)`);\n continue;\n }\n result.push({\n id: msg.id,\n parts,\n role,\n timestamp: new Date(toMillis(msg.time_created)).toISOString()\n });\n }\n return result;\n }\n /**\n * Scan existing messages/parts to determine the starting high-water\n * marks for time-based polling. Also collects the set of already-seen\n * message IDs so we do not re-emit them.\n */\n getHighWaterMarks(sessionId) {\n const db = openDb();\n if (!db) {\n return {\n emittedMessageIds: /* @__PURE__ */ new Set(),\n emittedPartUpdatedAt: /* @__PURE__ */ new Map(),\n lastMessageTime: 0,\n lastPartTime: 0\n };\n }\n try {\n const msgRow = db.prepare(\n `\n\t\t\t\tSELECT MAX(time_created) as maxTime\n\t\t\t\tFROM message\n\t\t\t\tWHERE session_id = ?\n\t\t\t`\n ).get(sessionId);\n const partRow = db.prepare(\n `\n\t\t\t\tSELECT MAX(time_updated) as maxTime\n\t\t\t\tFROM part\n\t\t\t\tWHERE session_id = ?\n\t\t\t`\n ).get(sessionId);\n const existingIds = db.prepare(\n `\n\t\t\t\tSELECT id FROM message WHERE session_id = ?\n\t\t\t`\n ).all(sessionId);\n const emittedMessageIds = new Set(existingIds.map((r) => r.id));\n const existingParts = db.prepare(\n `\n\t\t\t\tSELECT id, time_updated FROM part WHERE session_id = ?\n\t\t\t`\n ).all(sessionId);\n const emittedPartUpdatedAt = /* @__PURE__ */ new Map();\n for (const p of existingParts) {\n emittedPartUpdatedAt.set(p.id, p.time_updated);\n }\n return {\n emittedMessageIds,\n emittedPartUpdatedAt,\n lastMessageTime: msgRow?.maxTime ?? 0,\n lastPartTime: partRow?.maxTime ?? 0\n };\n } catch (error) {\n console.error(\"[opencode-watcher] Failed to get high-water marks:\", error);\n return {\n emittedMessageIds: /* @__PURE__ */ new Set(),\n emittedPartUpdatedAt: /* @__PURE__ */ new Map(),\n lastMessageTime: 0,\n lastPartTime: 0\n };\n } finally {\n db.close();\n }\n }\n /**\n * Single poll iteration. Opens the DB, queries for new messages and\n * updated parts, converts them to ConversationMessage[], and invokes\n * the watcher callbacks.\n */\n poll(sessionId) {\n const state = this.watchers.get(sessionId);\n if (!state) {\n return;\n }\n const db = openDb();\n if (!db) {\n return;\n }\n try {\n const results = [];\n const newMessages = db.prepare(\n `\n\t\t\t\tSELECT id, session_id, time_created, time_updated, data\n\t\t\t\tFROM message\n\t\t\t\tWHERE session_id = ? AND time_created > ?\n\t\t\t\tORDER BY time_created ASC\n\t\t\t`\n ).all(sessionId, state.lastMessageTime);\n if (newMessages.length > 0) {\n const dedupedMessages = newMessages.filter((m) => !state.emittedMessageIds.has(m.id));\n if (dedupedMessages.length > 0) {\n const newMsgIds = dedupedMessages.map((m) => m.id);\n const newParts = batchInQuery(\n db,\n `SELECT id, message_id, session_id, time_created, time_updated, data\n\t\t\t\t\t\tFROM part\n\t\t\t\t\t\tWHERE message_id IN (__PLACEHOLDERS__)\n\t\t\t\t\t\tORDER BY time_created ASC`,\n newMsgIds\n );\n const partsByMessage = /* @__PURE__ */ new Map();\n for (const part of newParts) {\n if (!partsByMessage.has(part.message_id)) {\n partsByMessage.set(part.message_id, []);\n }\n partsByMessage.get(part.message_id).push(part);\n }\n const newEntries = this.buildMessages(dedupedMessages, partsByMessage);\n results.push(...newEntries);\n for (const part of newParts) {\n if (part.time_updated > state.lastPartTime) {\n state.lastPartTime = part.time_updated;\n }\n state.emittedPartUpdatedAt.set(part.id, part.time_updated);\n }\n }\n for (const msg of newMessages) {\n if (msg.time_created > state.lastMessageTime) {\n state.lastMessageTime = msg.time_created;\n }\n state.emittedMessageIds.add(msg.id);\n }\n }\n const updatedParts = db.prepare(\n `\n\t\t\t\tSELECT id, message_id, session_id, time_created, time_updated, data\n\t\t\t\tFROM part\n\t\t\t\tWHERE session_id = ? AND time_updated > ?\n\t\t\t\tORDER BY time_created ASC\n\t\t\t`\n ).all(sessionId, state.lastPartTime);\n if (updatedParts.length > 0) {\n const newMsgIdSet = new Set(newMessages.map((m) => m.id));\n const newParts = updatedParts.filter((p) => {\n if (newMsgIdSet.has(p.message_id)) {\n return false;\n }\n const lastSeen = state.emittedPartUpdatedAt.get(p.id);\n return lastSeen === void 0 || p.time_updated > lastSeen;\n });\n if (newParts.length > 0) {\n const partsByMessage = /* @__PURE__ */ new Map();\n for (const part of newParts) {\n if (!partsByMessage.has(part.message_id)) {\n partsByMessage.set(part.message_id, []);\n }\n partsByMessage.get(part.message_id).push(part);\n }\n const affectedMsgIds = [...partsByMessage.keys()];\n const affectedMessages = batchInQuery(\n db,\n `SELECT id, session_id, time_created, time_updated, data\n\t\t\t\t\t\tFROM message\n\t\t\t\t\t\tWHERE id IN (__PLACEHOLDERS__)\n\t\t\t\t\t\tORDER BY time_created ASC`,\n affectedMsgIds\n );\n const updatedEntries = this.buildMessages(affectedMessages, partsByMessage);\n results.push(...updatedEntries);\n for (const part of newParts) {\n state.emittedPartUpdatedAt.set(part.id, part.time_updated);\n }\n }\n for (const part of updatedParts) {\n if (part.time_updated > state.lastPartTime) {\n state.lastPartTime = part.time_updated;\n }\n }\n }\n if (results.length > 0) {\n for (const cb of state.callbacks) {\n try {\n cb(results);\n } catch (cbError) {\n console.error(\"[opencode-watcher] Callback error:\", cbError);\n }\n }\n }\n } catch (error) {\n console.error(\"[opencode-watcher] Poll error:\", error);\n } finally {\n db.close();\n }\n }\n}\nfunction batchInQuery(db, sql, ids) {\n if (ids.length === 0) {\n return [];\n }\n const results = [];\n for (let i = 0; i < ids.length; i += SQLITE_MAX_PARAMS) {\n const chunk = ids.slice(i, i + SQLITE_MAX_PARAMS);\n const placeholders = chunk.map(() => \"?\").join(\",\");\n const query = sql.replace(\"__PLACEHOLDERS__\", placeholders);\n const rows = db.prepare(query).all(...chunk);\n results.push(...rows);\n }\n return results;\n}\nfunction convertPartToMessagePart(data) {\n switch (data.type) {\n case \"reasoning\":\n return { content: data.text || \"\", type: \"thinking\" };\n case \"text\":\n return { content: data.text || \"\", type: \"text\" };\n case \"tool\":\n return {\n id: data.callID || data.id || \"\",\n input: data.state?.input || {},\n toolName: data.tool || \"Unknown\",\n type: \"tool_use\"\n };\n default:\n return null;\n }\n}\nfunction openDb() {\n if (!fs.existsSync(OPENCODE_DB_PATH)) {\n return null;\n }\n try {\n return new Database(OPENCODE_DB_PATH, { readonly: true });\n } catch {\n return null;\n }\n}\nfunction toMillis(timestamp) {\n return timestamp < 1e12 ? timestamp * 1e3 : timestamp;\n}\nconst OW_GLOBAL_KEY = \"__shooter_opencode_watcher\";\nconst openCodeWatcher = globalThis[OW_GLOBAL_KEY] || new OpenCodeWatcher();\nglobalThis[OW_GLOBAL_KEY] = openCodeWatcher;\nconst DB_DIR = path.join(process.env.HOME || \"\", \".shooter\");\nconst DB_PATH = path.join(DB_DIR, \"shooter.db\");\nconst COLUMNS = [\n \"id\",\n \"command\",\n \"args\",\n \"cwd\",\n \"cols\",\n \"rows\",\n \"pid\",\n \"holder_pid\",\n \"socket_path\",\n \"session_file\",\n \"opencode_session_id\",\n \"status\",\n \"exit_code\",\n \"created_at\",\n \"exited_at\"\n];\nfunction rowToRecord(row) {\n return {\n args: row.args,\n cols: row.cols,\n command: row.command,\n createdAt: row.created_at,\n cwd: row.cwd,\n exitCode: row.exit_code ?? null,\n exitedAt: row.exited_at ?? null,\n holderPid: row.holder_pid ?? null,\n id: row.id,\n opencodeSessionId: row.opencode_session_id ?? null,\n pid: row.pid ?? null,\n rows: row.rows,\n sessionFile: row.session_file ?? null,\n socketPath: row.socket_path ?? null,\n status: row.status\n };\n}\nconst CAMEL_TO_SNAKE = {\n createdAt: \"created_at\",\n exitCode: \"exit_code\",\n exitedAt: \"exited_at\",\n holderPid: \"holder_pid\",\n opencodeSessionId: \"opencode_session_id\",\n sessionFile: \"session_file\",\n socketPath: \"socket_path\"\n};\nclass TerminalStore {\n db;\n constructor() {\n fs.mkdirSync(DB_DIR, { recursive: true });\n this.db = new Database(DB_PATH);\n this.db.pragma(\"journal_mode = WAL\");\n this.db.exec(`\n\t\t\tCREATE TABLE IF NOT EXISTS terminals (\n\t\t\t\tid TEXT PRIMARY KEY,\n\t\t\t\tcommand TEXT NOT NULL,\n\t\t\t\targs TEXT NOT NULL DEFAULT '[]',\n\t\t\t\tcwd TEXT NOT NULL,\n\t\t\t\tcols INTEGER NOT NULL DEFAULT 80,\n\t\t\t\trows INTEGER NOT NULL DEFAULT 24,\n\t\t\t\tpid INTEGER,\n\t\t\t\tholder_pid INTEGER,\n\t\t\t\tsocket_path TEXT,\n\t\t\t\tsession_file TEXT,\n\t\t\t\topencode_session_id TEXT,\n\t\t\t\tstatus TEXT NOT NULL DEFAULT 'running',\n\t\t\t\texit_code INTEGER,\n\t\t\t\tcreated_at TEXT NOT NULL,\n\t\t\t\texited_at TEXT\n\t\t\t)\n\t\t`);\n }\n deleteOlderThan(ms) {\n const cutoff = new Date(Date.now() - ms).toISOString();\n const result = this.db.prepare(\n \"DELETE FROM terminals WHERE status IN ('exited', 'orphaned') AND COALESCE(exited_at, created_at) < ?\"\n ).run(cutoff);\n return result.changes;\n }\n get(id) {\n const row = this.db.prepare(\"SELECT * FROM terminals WHERE id = ?\").get(id);\n return row ? rowToRecord(row) : null;\n }\n insert(terminal) {\n const placeholders = COLUMNS.map(() => \"?\").join(\", \");\n const stmt = this.db.prepare(\n `INSERT INTO terminals (${COLUMNS.join(\", \")}) VALUES (${placeholders})`\n );\n stmt.run(\n terminal.id,\n terminal.command,\n terminal.args,\n terminal.cwd,\n terminal.cols,\n terminal.rows,\n terminal.pid,\n terminal.holderPid,\n terminal.socketPath,\n terminal.sessionFile,\n terminal.opencodeSessionId,\n terminal.status,\n terminal.exitCode,\n terminal.createdAt,\n terminal.exitedAt\n );\n }\n listAll() {\n const rows = this.db.prepare(\"SELECT * FROM terminals ORDER BY created_at DESC\").all();\n return rows.map(rowToRecord);\n }\n listRunning() {\n const rows = this.db.prepare(\"SELECT * FROM terminals WHERE status = 'running' ORDER BY created_at DESC\").all();\n return rows.map(rowToRecord);\n }\n markExited(id, exitCode) {\n this.db.prepare(\"UPDATE terminals SET status = 'exited', exit_code = ?, exited_at = ? WHERE id = ?\").run(exitCode, (/* @__PURE__ */ new Date()).toISOString(), id);\n }\n markOrphaned(id) {\n this.db.prepare(\n \"UPDATE terminals SET status = 'orphaned', exited_at = COALESCE(exited_at, ?) WHERE id = ?\"\n ).run((/* @__PURE__ */ new Date()).toISOString(), id);\n }\n update(id, fields) {\n const entries = Object.entries(fields).filter(\n ([key, val]) => key !== \"id\" && val !== void 0\n );\n if (entries.length === 0) {\n return;\n }\n const sets = entries.map(([key]) => `${toSnake(key)} = ?`).join(\", \");\n const values = entries.map(([, val]) => val ?? null);\n this.db.prepare(`UPDATE terminals SET ${sets} WHERE id = ?`).run(...values, id);\n }\n}\nfunction toSnake(key) {\n return CAMEL_TO_SNAKE[key] || key;\n}\nconst TS_GLOBAL_KEY = \"__shooter_terminal_store\";\nconst terminalStore = globalThis[TS_GLOBAL_KEY] || new TerminalStore();\nglobalThis[TS_GLOBAL_KEY] = terminalStore;\nconst MAX_SCROLLBACK_BYTES = 512 * 1024;\nconst MAX_OUTPUT_BUFFER_BYTES = 1024 * 1024;\nconst SCROLLBACK_CHUNK_SIZE = 50 * 1024;\nconst CLEANUP_INTERVAL_MS = 5 * 60 * 1e3;\nconst EXITED_TTL_MS = 60 * 60 * 1e3;\nconst MAX_EXITED_TERMINALS = 10;\nconst SIGKILL_DELAY_MS = 5e3;\nconst HOLDER_READY_TIMEOUT_MS = 5e3;\nconst DB_CLEANUP_TTL_MS = 24 * 60 * 60 * 1e3;\nconst __filename$1 = fileURLToPath(import.meta.url);\nconst __dirname$1 = path__default.dirname(__filename$1);\nclass PtyManager {\n cleanupTimer = null;\n terminals = /* @__PURE__ */ new Map();\n constructor() {\n this.cleanupTimer = setInterval(() => {\n this.cleanup();\n }, CLEANUP_INTERVAL_MS);\n }\n // -----------------------------------------------------------------------\n // create — now async: forks a holder process, connects via HolderClient,\n // persists to SQLite\n // -----------------------------------------------------------------------\n attach(id, ws) {\n const terminal = this.terminals.get(id);\n if (!terminal) {\n return false;\n }\n terminal.clients.add(ws);\n terminal.outputBuffers.set(ws, { data: [], size: 0 });\n void this.sendScrollback(terminal, ws);\n return true;\n }\n // -----------------------------------------------------------------------\n // reconnectAll — recover persisted terminals on server startup\n // -----------------------------------------------------------------------\n cleanup() {\n const now = Date.now();\n const exited = [];\n for (const [id, terminal] of this.terminals) {\n if (terminal.status !== \"exited\") {\n continue;\n }\n const exitTime = terminal.exitedAt?.getTime() ?? terminal.createdAt.getTime();\n if (now - exitTime > EXITED_TTL_MS) {\n this.evict(id);\n continue;\n }\n exited.push({ exitedAt: exitTime, id });\n }\n if (exited.length > MAX_EXITED_TERMINALS) {\n exited.sort((a, b) => a.exitedAt - b.exitedAt);\n const toEvict = exited.slice(0, exited.length - MAX_EXITED_TERMINALS);\n for (const { id } of toEvict) {\n this.evict(id);\n }\n }\n try {\n const deleted = terminalStore.deleteOlderThan(DB_CLEANUP_TTL_MS);\n if (deleted > 0) {\n console.log(`[pty-manager] Cleaned up ${deleted} old terminal record(s) from SQLite`);\n }\n } catch {\n }\n }\n // -----------------------------------------------------------------------\n // disconnectAll — graceful shutdown: disconnect clients, keep holders alive\n // -----------------------------------------------------------------------\n async create(command, args, cwd, cols, rows) {\n const id = randomBytes(4).toString(\"hex\");\n const socketPath = `/tmp/shooter-term-${id}.sock`;\n const holderScript = resolveHolderPath();\n const holderArgs = [id, socketPath, cwd, String(cols), String(rows), command, ...args];\n const holder = fork(holderScript, holderArgs, {\n detached: true,\n stdio: [\"ignore\", \"ignore\", \"ignore\", \"ipc\"]\n });\n holder.unref();\n await new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n holder.kill();\n reject(new Error(\"Holder ready timeout\"));\n }, HOLDER_READY_TIMEOUT_MS);\n holder.on(\"message\", (msg) => {\n if (msg.type === \"ready\") {\n clearTimeout(timeout);\n holder.disconnect();\n resolve();\n }\n });\n holder.on(\"error\", (err) => {\n clearTimeout(timeout);\n reject(new Error(`Holder process error: ${err.message}`));\n });\n holder.on(\"exit\", (code) => {\n clearTimeout(timeout);\n reject(new Error(`Holder process exited with code ${code} before ready`));\n });\n });\n const holderPid = holder.pid;\n const client = new HolderClient();\n const connectResult = await client.connect(socketPath);\n const now = /* @__PURE__ */ new Date();\n const terminal = {\n args,\n clients: /* @__PURE__ */ new Set(),\n cols,\n command,\n createdAt: now,\n currentCwd: null,\n cwd,\n exitCode: connectResult.exitCode,\n exitedAt: null,\n holderPid,\n id,\n isActive: false,\n openCodeNoopCb: null,\n openCodeSessionId: null,\n outputBuffers: /* @__PURE__ */ new Map(),\n pid: connectResult.pid,\n pollTimer: null,\n pty: client,\n rows,\n scrollback: connectResult.scrollback,\n sessionFile: null,\n socketPath,\n status: connectResult.exited ? \"exited\" : \"running\",\n watcherOffset: 0\n };\n this.wireHolderCallbacks(client, terminal);\n terminalStore.insert({\n args: JSON.stringify(args),\n cols,\n command,\n createdAt: now.toISOString(),\n cwd,\n exitCode: null,\n exitedAt: null,\n holderPid,\n id,\n opencodeSessionId: null,\n pid: connectResult.pid,\n rows,\n sessionFile: null,\n socketPath,\n status: \"running\"\n });\n this.startSessionDiscovery(terminal);\n this.terminals.set(id, terminal);\n return terminal;\n }\n // -----------------------------------------------------------------------\n // get\n // -----------------------------------------------------------------------\n destroy() {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n for (const [id, terminal] of this.terminals) {\n if (terminal.pollTimer) {\n clearInterval(terminal.pollTimer);\n terminal.pollTimer = null;\n }\n if (terminal.status === \"running\") {\n try {\n terminal.pty.kill(\"SIGTERM\");\n } catch {\n }\n try {\n process.kill(terminal.holderPid, \"SIGKILL\");\n } catch {\n }\n }\n terminal.pty.disconnect();\n for (const ws of terminal.clients) {\n try {\n ws.close();\n } catch {\n }\n }\n this.terminals.delete(id);\n }\n }\n // -----------------------------------------------------------------------\n // list — running first, then recently exited, each group sorted by\n // createdAt descending\n // -----------------------------------------------------------------------\n detach(id, ws) {\n const terminal = this.terminals.get(id);\n if (!terminal) {\n return false;\n }\n terminal.clients.delete(ws);\n terminal.outputBuffers.delete(ws);\n return true;\n }\n // -----------------------------------------------------------------------\n // kill — route through holder: SIGTERM, then SIGKILL after 5 s\n // -----------------------------------------------------------------------\n disconnectAll() {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n for (const [, terminal] of this.terminals) {\n if (terminal.pollTimer) {\n clearInterval(terminal.pollTimer);\n terminal.pollTimer = null;\n }\n terminal.pty.disconnect();\n for (const ws of terminal.clients) {\n try {\n ws.close();\n } catch {\n }\n }\n terminal.clients.clear();\n terminal.outputBuffers.clear();\n }\n this.terminals.clear();\n }\n // -----------------------------------------------------------------------\n // remove — remove an exited terminal from the map\n // -----------------------------------------------------------------------\n get(id) {\n return this.terminals.get(id) ?? null;\n }\n // -----------------------------------------------------------------------\n // resize\n // -----------------------------------------------------------------------\n getScrollback(id) {\n const terminal = this.terminals.get(id);\n if (!terminal) {\n return null;\n }\n return terminal.scrollback;\n }\n // -----------------------------------------------------------------------\n // attach — register a WebSocket client and replay scrollback\n // -----------------------------------------------------------------------\n kill(id) {\n const terminal = this.terminals.get(id);\n if (!terminal) {\n return false;\n }\n if (terminal.status === \"exited\") {\n return true;\n }\n try {\n terminal.pty.kill(\"SIGTERM\");\n } catch {\n terminal.status = \"exited\";\n terminal.exitedAt = /* @__PURE__ */ new Date();\n terminalStore.markExited(id, null);\n return true;\n }\n setTimeout(() => {\n if (terminal.status === \"running\") {\n try {\n terminal.pty.kill(\"SIGKILL\");\n } catch {\n }\n terminal.status = \"exited\";\n terminal.exitedAt = terminal.exitedAt ?? /* @__PURE__ */ new Date();\n terminalStore.markExited(id, null);\n }\n }, SIGKILL_DELAY_MS);\n return true;\n }\n // -----------------------------------------------------------------------\n // detach — remove a WebSocket client\n // -----------------------------------------------------------------------\n list() {\n const all = Array.from(this.terminals.values());\n const running = all.filter((t) => t.status === \"running\").sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\n const exited = all.filter((t) => t.status === \"exited\").sort((a, b) => {\n const aTime = a.exitedAt?.getTime() ?? a.createdAt.getTime();\n const bTime = b.exitedAt?.getTime() ?? b.createdAt.getTime();\n return bTime - aTime;\n });\n return [...running, ...exited];\n }\n // -----------------------------------------------------------------------\n // getScrollback — return raw scrollback data for replay\n // -----------------------------------------------------------------------\n async reconnectAll() {\n const running = terminalStore.listRunning();\n if (running.length === 0) {\n console.log(\"[pty-manager] No persisted terminals to reconnect\");\n return;\n }\n console.log(`[pty-manager] Reconnecting to ${running.length} persisted terminal(s)...`);\n for (const record of running) {\n try {\n await this.reconnectOne(record);\n } catch (err) {\n const errMsg = err instanceof Error ? err.message : String(err);\n console.warn(`[pty-manager] Failed to reconnect terminal ${record.id}: ${errMsg}`);\n this.handleReconnectFailure(record);\n }\n }\n }\n // -----------------------------------------------------------------------\n // cleanup — evict exited terminals older than 1 hour, cap at 10 exited;\n // also clean up old SQLite records\n // -----------------------------------------------------------------------\n remove(id) {\n const terminal = this.terminals.get(id);\n if (!terminal) {\n return false;\n }\n if (terminal.status === \"running\") {\n return false;\n }\n this.evict(id);\n return true;\n }\n // -----------------------------------------------------------------------\n // destroy — emergency forced kill (kills holder processes too)\n // -----------------------------------------------------------------------\n resize(id, cols, rows) {\n const terminal = this.terminals.get(id);\n if (!terminal || terminal.status === \"exited\") {\n return false;\n }\n try {\n terminal.pty.resize(cols, rows);\n terminal.cols = cols;\n terminal.rows = rows;\n return true;\n } catch {\n return false;\n }\n }\n // -----------------------------------------------------------------------\n // Private: reconnectOne — reconnect to a single persisted terminal\n // -----------------------------------------------------------------------\n appendScrollback(terminal, data) {\n terminal.scrollback += data;\n if (Buffer.byteLength(terminal.scrollback, \"utf8\") > MAX_SCROLLBACK_BYTES) {\n const mid = Math.floor(terminal.scrollback.length / 2);\n const newlineIdx = terminal.scrollback.indexOf(\"\\n\", mid);\n if (newlineIdx !== -1) {\n terminal.scrollback = terminal.scrollback.slice(newlineIdx + 1);\n } else {\n terminal.scrollback = terminal.scrollback.slice(mid);\n }\n }\n }\n // -----------------------------------------------------------------------\n // Private: handleReconnectFailure — handle failed reconnection\n // -----------------------------------------------------------------------\n broadcastOutput(terminal, data) {\n const msg = JSON.stringify({ data, type: \"output\" });\n for (const ws of terminal.clients) {\n if (ws.bufferedAmount > MAX_OUTPUT_BUFFER_BYTES) {\n this.safeSend(ws, JSON.stringify({ bytes: data.length, type: \"output-dropped\" }));\n continue;\n }\n const buffer = terminal.outputBuffers.get(ws);\n if (!buffer) {\n continue;\n }\n const msgSize = Buffer.byteLength(msg, \"utf8\");\n if (buffer.size + msgSize > MAX_OUTPUT_BUFFER_BYTES) {\n let droppedBytes = 0;\n while (buffer.size + msgSize > MAX_OUTPUT_BUFFER_BYTES && buffer.data.length > 0) {\n const dropped = buffer.data.shift();\n if (dropped) {\n const droppedSize = Buffer.byteLength(dropped, \"utf8\");\n buffer.size -= droppedSize;\n droppedBytes += droppedSize;\n }\n }\n if (droppedBytes > 0) {\n const dropMsg = JSON.stringify({\n bytes: droppedBytes,\n type: \"output-dropped\"\n });\n this.safeSend(ws, dropMsg);\n }\n }\n buffer.data.push(msg);\n buffer.size += msgSize;\n this.flushOutputBuffer(ws, buffer);\n }\n }\n // -----------------------------------------------------------------------\n // Private: startSessionDiscovery — polling for session files\n // -----------------------------------------------------------------------\n /** Evict a terminal, freeing all resources. */\n evict(id) {\n const terminal = this.terminals.get(id);\n if (!terminal) {\n return;\n }\n if (terminal.pollTimer) {\n clearInterval(terminal.pollTimer);\n terminal.pollTimer = null;\n }\n if (terminal.openCodeSessionId && terminal.openCodeNoopCb) {\n openCodeWatcher.stop(terminal.openCodeSessionId, terminal.openCodeNoopCb);\n terminal.openCodeNoopCb = null;\n }\n terminal.pty.disconnect();\n for (const ws of terminal.clients) {\n try {\n ws.close();\n } catch {\n }\n }\n terminal.clients.clear();\n terminal.outputBuffers.clear();\n terminal.scrollback = \"\";\n this.terminals.delete(id);\n }\n // -----------------------------------------------------------------------\n // Private: appendScrollback — append to cached scrollback string,\n // trim from midpoint when cap exceeded\n // -----------------------------------------------------------------------\n /** Attempt to flush buffered messages to a WebSocket client. */\n flushOutputBuffer(ws, buffer) {\n while (buffer.data.length > 0) {\n const msg = buffer.data[0];\n if (!this.safeSend(ws, msg)) {\n break;\n }\n buffer.data.shift();\n buffer.size -= Buffer.byteLength(msg, \"utf8\");\n }\n }\n // -----------------------------------------------------------------------\n // Private: broadcastOutput — send output to all connected WS clients\n // with backpressure management\n // -----------------------------------------------------------------------\n handleReconnectFailure(record) {\n if (record.holderPid) {\n try {\n process.kill(record.holderPid, 0);\n console.warn(\n `[pty-manager] Holder PID ${record.holderPid} alive but socket dead for ${record.id}`\n );\n } catch {\n }\n }\n if (record.socketPath) {\n const exitFilePath = `${record.socketPath}.exit`;\n if (existsSync(exitFilePath)) {\n try {\n const exitData = JSON.parse(readFileSync(exitFilePath, \"utf8\"));\n unlinkSync(exitFilePath);\n terminalStore.markExited(record.id, exitData.code);\n console.log(\n `[pty-manager] Terminal ${record.id} exited while disconnected (code=${exitData.code})`\n );\n return;\n } catch {\n }\n }\n }\n terminalStore.markOrphaned(record.id);\n console.log(`[pty-manager] Marked terminal ${record.id} as orphaned`);\n }\n async reconnectOne(record) {\n if (!record.socketPath) {\n throw new Error(\"No socket path stored\");\n }\n const exitFilePath = `${record.socketPath}.exit`;\n if (existsSync(exitFilePath)) {\n try {\n const exitData = JSON.parse(readFileSync(exitFilePath, \"utf8\"));\n unlinkSync(exitFilePath);\n terminalStore.markExited(record.id, exitData.code);\n console.log(\n `[pty-manager] Terminal ${record.id} exited while disconnected (code=${exitData.code})`\n );\n return;\n } catch {\n }\n }\n const client = new HolderClient();\n const connectResult = await client.connect(record.socketPath);\n let parsedArgs = [];\n try {\n parsedArgs = JSON.parse(record.args);\n } catch {\n }\n const terminal = {\n args: parsedArgs,\n clients: /* @__PURE__ */ new Set(),\n cols: record.cols,\n command: record.command,\n createdAt: new Date(record.createdAt),\n currentCwd: null,\n cwd: record.cwd,\n exitCode: connectResult.exitCode,\n exitedAt: record.exitedAt ? new Date(record.exitedAt) : null,\n holderPid: record.holderPid ?? 0,\n id: record.id,\n isActive: false,\n openCodeNoopCb: null,\n openCodeSessionId: record.opencodeSessionId ?? null,\n outputBuffers: /* @__PURE__ */ new Map(),\n pid: connectResult.pid,\n pollTimer: null,\n pty: client,\n rows: record.rows,\n scrollback: connectResult.scrollback,\n sessionFile: record.sessionFile ?? null,\n socketPath: record.socketPath,\n status: connectResult.exited ? \"exited\" : \"running\",\n watcherOffset: 0\n };\n if (connectResult.exited) {\n terminal.exitedAt = terminal.exitedAt ?? /* @__PURE__ */ new Date();\n terminalStore.markExited(record.id, connectResult.exitCode);\n }\n this.wireHolderCallbacks(client, terminal);\n if (terminal.sessionFile) ;\n if (terminal.openCodeSessionId) {\n const noopCb = (_messages) => {\n };\n terminal.openCodeNoopCb = noopCb;\n openCodeWatcher.watch(terminal.openCodeSessionId, noopCb);\n }\n if (!terminal.sessionFile && !terminal.openCodeSessionId && terminal.status === \"running\") {\n this.startSessionDiscovery(terminal);\n }\n if (record.pid !== connectResult.pid) {\n terminalStore.update(record.id, { pid: connectResult.pid });\n }\n this.terminals.set(record.id, terminal);\n console.log(\n `[pty-manager] Reconnected terminal ${record.id} (pid=${connectResult.pid}, holder=${record.holderPid}, status=${terminal.status})`\n );\n }\n /** Safely send a message to a WebSocket, returning false on failure. */\n safeSend(ws, msg) {\n try {\n if (ws.readyState !== 1) {\n return false;\n }\n ws.send(msg);\n return true;\n } catch {\n return false;\n }\n }\n /** Send cached scrollback data to a newly connected client in 50 KB chunks. */\n async sendScrollback(terminal, ws) {\n const fullData = terminal.scrollback;\n if (fullData.length === 0) {\n return;\n }\n const totalBytes = Buffer.byteLength(fullData, \"utf8\");\n const totalChunks = Math.ceil(totalBytes / SCROLLBACK_CHUNK_SIZE);\n if (totalChunks <= 1) {\n const msg = JSON.stringify({\n chunk: 1,\n data: fullData,\n total: 1,\n type: \"scrollback\"\n });\n this.safeSend(ws, msg);\n return;\n }\n const buf = Buffer.from(fullData, \"utf8\");\n let offset = 0;\n let chunkIndex = 1;\n while (offset < buf.length) {\n if (ws.bufferedAmount > SCROLLBACK_CHUNK_SIZE * 2) {\n await new Promise((resolve) => setTimeout(resolve, 50));\n }\n const end = Math.min(offset + SCROLLBACK_CHUNK_SIZE, buf.length);\n const chunkData = buf.subarray(offset, end).toString(\"utf8\");\n const msg = JSON.stringify({\n chunk: chunkIndex,\n data: chunkData,\n total: totalChunks,\n type: \"scrollback\"\n });\n this.safeSend(ws, msg);\n offset = end;\n chunkIndex++;\n }\n }\n startSessionDiscovery(terminal) {\n const { command, cwd, id } = terminal;\n if (command === \"claude\") {\n const projectDir = path__default.join(\n process.env.HOME || \"\",\n \".claude\",\n \"projects\",\n cwd.replace(/\\//g, \"-\")\n );\n const resumeIdx = terminal.args.indexOf(\"--resume\");\n if (resumeIdx !== -1 && resumeIdx + 1 < terminal.args.length) {\n const resumeId = terminal.args[resumeIdx + 1];\n if (!/^[0-9a-f-]+$/i.test(resumeId)) {\n console.warn(`[pty-manager] Invalid resume ID: ${resumeId}`);\n } else {\n const resumeFile = path__default.join(projectDir, `${resumeId}.jsonl`);\n if (existsSync(resumeFile)) {\n terminal.sessionFile = resumeFile;\n terminalStore.update(id, { sessionFile: resumeFile });\n return;\n }\n }\n }\n const launchTime = terminal.createdAt.getTime();\n terminal.pollTimer = setInterval(() => {\n if (terminal.status === \"exited\" || terminal.sessionFile) {\n if (terminal.pollTimer) {\n clearInterval(terminal.pollTimer);\n terminal.pollTimer = null;\n }\n return;\n }\n try {\n if (!existsSync(projectDir)) {\n return;\n }\n const files = readdirSync(projectDir).filter((f) => f.endsWith(\".jsonl\")).map((f) => {\n const stat = statSync(path__default.join(projectDir, f));\n return {\n birthtime: stat.birthtimeMs,\n fullPath: path__default.join(projectDir, f),\n mtime: stat.mtimeMs,\n name: f\n };\n }).filter((f) => f.birthtime > launchTime).sort((a, b) => b.birthtime - a.birthtime);\n if (files.length > 0) {\n terminal.sessionFile = files[0].fullPath;\n if (terminal.pollTimer) {\n clearInterval(terminal.pollTimer);\n terminal.pollTimer = null;\n }\n terminalStore.update(id, { sessionFile: terminal.sessionFile });\n }\n } catch {\n }\n }, 1500);\n setTimeout(\n () => {\n if (terminal.pollTimer) {\n clearInterval(terminal.pollTimer);\n terminal.pollTimer = null;\n }\n },\n 5 * 60 * 1e3\n );\n }\n if (command === \"opencode\") {\n const launchTime = terminal.createdAt.getTime();\n const pollInterval = setInterval(() => {\n if (terminal.status === \"exited\" || terminal.openCodeSessionId) {\n clearInterval(pollInterval);\n if (terminal.openCodeSessionId) {\n const noopCb = (_messages) => {\n };\n terminal.openCodeNoopCb = noopCb;\n openCodeWatcher.watch(terminal.openCodeSessionId, noopCb);\n }\n return;\n }\n const sessionId = openCodeWatcher.findSessionId(cwd, launchTime);\n if (sessionId) {\n terminal.openCodeSessionId = sessionId;\n clearInterval(pollInterval);\n const noopCb = (_messages) => {\n };\n terminal.openCodeNoopCb = noopCb;\n openCodeWatcher.watch(sessionId, noopCb);\n terminalStore.update(id, { opencodeSessionId: sessionId });\n }\n }, 2e3);\n terminal.pollTimer = pollInterval;\n setTimeout(\n () => {\n clearInterval(pollInterval);\n terminal.pollTimer = null;\n },\n 5 * 60 * 1e3\n );\n }\n }\n /** Wire up all HolderClient callbacks (activity, CWD, output, exit, disconnect). */\n wireHolderCallbacks(client, terminal) {\n client.onActivity((active) => {\n terminal.isActive = active;\n const msg = JSON.stringify({ active, type: \"activity\" });\n for (const ws of terminal.clients) {\n this.safeSend(ws, msg);\n }\n });\n client.onCwd((path2) => {\n terminal.currentCwd = path2;\n const msg = JSON.stringify({ path: path2, type: \"cwd\" });\n for (const ws of terminal.clients) {\n this.safeSend(ws, msg);\n }\n });\n client.onOutput((data) => {\n this.appendScrollback(terminal, data);\n this.broadcastOutput(terminal, data);\n });\n client.onExit((exitCode) => {\n terminal.status = \"exited\";\n terminal.exitCode = exitCode;\n terminal.exitedAt = /* @__PURE__ */ new Date();\n terminalStore.markExited(terminal.id, exitCode);\n const exitMsg = JSON.stringify({\n code: exitCode,\n signal: null,\n type: \"exit\"\n });\n for (const ws of terminal.clients) {\n this.safeSend(ws, exitMsg);\n }\n });\n client.onDisconnect(() => {\n if (terminal.status === \"running\") {\n console.warn(`[pty-manager] Holder disconnected unexpectedly for terminal ${terminal.id}`);\n terminal.status = \"exited\";\n terminal.exitedAt = /* @__PURE__ */ new Date();\n terminalStore.markOrphaned(terminal.id);\n }\n });\n }\n}\nfunction resolveHolderPath() {\n if (process.env.SHOOTER_HOLDER_PATH) {\n return process.env.SHOOTER_HOLDER_PATH;\n }\n const colocated = path__default.join(__dirname$1, \"pty-holder.cjs\");\n if (existsSync(colocated)) {\n return colocated;\n }\n return path__default.resolve(__dirname$1, \"..\", \"..\", \"pty-holder.cjs\");\n}\nconst PTY_GLOBAL_KEY = \"__shooter_pty_manager\";\nconst ptyManager = globalThis[PTY_GLOBAL_KEY] || new PtyManager();\nglobalThis[PTY_GLOBAL_KEY] = ptyManager;\nexport {\n ptyManager as p\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAUA,MAAM,YAAY,CAAC;AACnB,EAAE,SAAS,GAAG,KAAK;AACnB,EAAE,GAAG,GAAG,CAAC;AACT,EAAE,UAAU,GAAG,IAAI;AACnB,EAAE,KAAK,GAAG,IAAI;AACd,EAAE,YAAY,GAAG,IAAI;AACrB,EAAE,MAAM,GAAG,IAAI;AACf,EAAE,OAAO,GAAG,EAAE;AACd,EAAE,QAAQ,GAAG,IAAI;AACjB,EAAE,MAAM,GAAG,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,UAAU,EAAE;AACtB,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,MAAM,IAAI,OAAO,GAAG,KAAK;AACzB,MAAM,IAAI,IAAI,GAAG,IAAI;AACrB,MAAM,IAAI,UAAU,GAAG,EAAE;AACzB,MAAM,MAAM,eAAe,GAAG,EAAE;AAChC,MAAM,MAAM,oBAAoB,GAAG,GAAG;AACtC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM;AAC9C,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,OAAO,GAAG,IAAI;AACxB,UAAU,IAAI,CAAC,SAAS,GAAG,KAAK;AAChC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE;AAC3B,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACjC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI;AAC9B,UAAU;AACV,UAAU,MAAM;AAChB,YAAY,IAAI,KAAK,CAAC,CAAC,iDAAiD,EAAE,oBAAoB,CAAC,EAAE,CAAC;AAClG,WAAW;AACX,QAAQ;AACR,MAAM,CAAC,EAAE,oBAAoB,CAAC;AAC9B,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACrD,MAAM,IAAI,CAAC,MAAM,GAAG,MAAM;AAC1B,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AAChC,MAAM,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;AACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,MAAM,CAAC,CAAC;AACR,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACnC,QAAQ,IAAI,CAAC,OAAO,IAAI,KAAK;AAC7B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE;AAClC,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAY;AACZ,UAAU;AACV,UAAU,IAAI,GAAG;AACjB,UAAU,IAAI;AACd,YAAY,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,UAAU,CAAC,CAAC,MAAM;AAClB,YAAY;AACZ,UAAU;AACV,UAAU,IAAI,CAAC,OAAO,EAAE;AACxB,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;AACrC,cAAc,IAAI,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;AACjF,cAAc,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG;AAChC,YAAY,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,cAAc,UAAU,GAAG,GAAG,CAAC,IAAI;AACnC,YAAY,CAAC,MAAM;AACnB,cAAc,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,YAAY;AACZ,YAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,cAAc,MAAM,MAAM,GAAG,MAAM;AACnC,gBAAgB,IAAI,OAAO,EAAE;AAC7B,kBAAkB;AAClB,gBAAgB;AAChB,gBAAgB,OAAO,GAAG,IAAI;AAC9B,gBAAgB,YAAY,CAAC,cAAc,CAAC;AAC5C,gBAAgB,OAAO,CAAC;AACxB,kBAAkB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACzC,kBAAkB,MAAM,EAAE,IAAI,CAAC,MAAM;AACrC,kBAAkB,GAAG,EAAE,IAAI,CAAC,GAAG;AAC/B,kBAAkB;AAClB,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC;AACnD,gBAAgB,eAAe,CAAC,MAAM,GAAG,CAAC;AAC1C,gBAAgB,UAAU,CAAC,MAAM;AACjC,kBAAkB,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;AAChD,oBAAoB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC/C,kBAAkB;AAClB,gBAAgB,CAAC,EAAE,CAAC,CAAC;AACrB,cAAc,CAAC;AACf,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;AAC7C,gBAAgB,MAAM,EAAE;AACxB,cAAc,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9C,gBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;AACvC,cAAc;AACd,YAAY;AACZ,UAAU,CAAC,MAAM;AACjB,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACnC,UAAU;AACV,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,OAAO,GAAG,IAAI;AACxB,UAAU,YAAY,CAAC,cAAc,CAAC;AACtC,UAAU,IAAI,CAAC,SAAS,GAAG,KAAK;AAChC,UAAU,IAAI,CAAC,MAAM,GAAG,IAAI;AAC5B,UAAU,MAAM,CAAC,GAAG,CAAC;AACrB,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM;AAC/B,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS;AAC3C,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,OAAO,GAAG,IAAI;AACxB,UAAU,YAAY,CAAC,cAAc,CAAC;AACtC,UAAU,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACvE,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/C,UAAU,IAAI,CAAC,YAAY,EAAE;AAC7B,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,IAAI,CAAC,CAAC;AACN,EAAE;AACF;AACA,EAAE,UAAU,GAAG;AACf,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK;AAC1B,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC3B,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI;AACxB,IAAI;AACJ,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE;AACrB,EAAE;AACF;AACA,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AAChC,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM;AACzB,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClB,EAAE;AACF;AACA,EAAE,UAAU,CAAC,EAAE,EAAE;AACjB,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE;AACxB,EAAE;AACF;AACA,EAAE,KAAK,CAAC,EAAE,EAAE;AACZ,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE;AACnB,EAAE;AACF;AACA,EAAE,YAAY,CAAC,EAAE,EAAE;AACnB,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE;AAC1B,EAAE;AACF;AACA,EAAE,MAAM,CAAC,EAAE,EAAE;AACb,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;AACpB,EAAE;AACF;AACA,EAAE,QAAQ,CAAC,EAAE,EAAE;AACf,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE;AACtB,EAAE;AACF;AACA,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AACrB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC7C,EAAE;AACF;AACA,EAAE,KAAK,CAAC,IAAI,EAAE;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtC,EAAE;AACF;AACA;AACA,EAAE,aAAa,CAAC,GAAG,EAAE;AACrB,IAAI,QAAQ,GAAG,CAAC,IAAI;AACpB,MAAM,KAAK,UAAU;AACrB,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,QAAQ;AACR,QAAQ;AACR,MAAM,KAAK,KAAK;AAChB,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,UAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAQ;AACR,QAAQ;AACR,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,UAAU,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAQ;AACR,QAAQ;AACR,MAAM,KAAK,QAAQ;AACnB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAQ;AACR,QAAQ;AACR;AACA,EAAE;AACF;AACA,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACzC,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAC5C,CAAC,CAAC;AACF,EAAE;AACF;AACA,MAAM,gBAAgB,GAAG,qBAAqB,EAAE;AAChD,MAAM,gBAAgB,GAAG,GAAG;AAC5B,MAAM,iBAAiB,GAAG,GAAG;AAC7B,MAAM,eAAe,CAAC;AACtB,EAAE,QAAQ,mBAAmB,IAAI,GAAG,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE;AACnC,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,MAAM,YAAY,GAAG,YAAY,IAAI,CAAC;AAC5C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AAClE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO;AAC5B,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,CAAC;AAC7D,MAAM,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI;AAC5B,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AACxE,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,SAAS;AACd,MAAM,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,UAAU,CAAC,SAAS,EAAE;AACxB,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO;AACjC,QAAQ;AACR;AACA;AACA;AACA;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,QAAQ,OAAO,EAAE;AACjB,MAAM;AACN,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAClD,MAAM,MAAM,KAAK,GAAG,YAAY;AAChC,QAAQ,EAAE;AACV,QAAQ,CAAC;AACT;AACA;AACA,6BAA6B,CAAC;AAC9B,QAAQ;AACR,OAAO;AACP,MAAM,MAAM,cAAc,mBAAmB,IAAI,GAAG,EAAE;AACtD,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAChC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAClD,UAAU,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AACjD,QAAQ;AACR,QAAQ,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD,MAAM;AACN,MAAM,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC;AACzD,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AACxE,MAAM,OAAO,EAAE;AACf,IAAI,CAAC,SAAS;AACd,MAAM,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC5B,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AACtC,MAAM,OAAO,CAAC,GAAG;AACjB,QAAQ,CAAC,oDAAoD,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7G,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE;AACpC,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,IAAI,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;AACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AACnC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,6CAA6C,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E,EAAE;AACF;AACA;AACA;AACA,EAAE,OAAO,GAAG;AACZ,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC7B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;AACjD,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,MAAM,OAAO,CAAC,GAAG;AACjB,QAAQ,CAAC,gDAAgD,EAAE,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxG,OAAO;AACP,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;AACxH,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM;AAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;AACxB,IAAI,MAAM,KAAK,GAAG;AAClB,MAAM,SAAS,kBAAkB,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpD,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,cAAc;AACpB,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM;AACN,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;AACvC,IAAI,OAAO,CAAC,GAAG;AACf,MAAM,CAAC,qCAAqC,EAAE,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC/G,KAAK;AACL,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE;AAC1C,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAChC,MAAM,IAAI,OAAO,GAAG,EAAE;AACtB,MAAM,IAAI;AACV,QAAQ,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,MAAM,CAAC,CAAC,MAAM;AACd,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW;AACjE,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;AACvD,MAAM,MAAM,KAAK,GAAG,EAAE;AACtB,MAAM,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACnC,QAAQ,IAAI,QAAQ;AACpB,QAAQ,IAAI;AACZ,UAAU,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,CAAC,CAAC,MAAM;AAChB,UAAU;AACV,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC;AAC5D,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,oCAAoC,EAAE,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;AACxF,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE;AAClB,QAAQ,KAAK;AACb,QAAQ,IAAI;AACZ,QAAQ,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW;AACnE,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE,iBAAiB,CAAC,SAAS,EAAE;AAC/B,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,OAAO;AACb,QAAQ,iBAAiB,kBAAkB,IAAI,GAAG,EAAE;AACpD,QAAQ,oBAAoB,kBAAkB,IAAI,GAAG,EAAE;AACvD,QAAQ,eAAe,EAAE,CAAC;AAC1B,QAAQ,YAAY,EAAE;AACtB,OAAO;AACP,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO;AAC/B,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,MAAM,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO;AAChC,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO;AACpC,QAAQ;AACR;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO;AACtC,QAAQ;AACR;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,MAAM,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,EAAE;AAC5D,MAAM,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;AACrC,QAAQ,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC;AACtD,MAAM;AACN,MAAM,OAAO;AACb,QAAQ,iBAAiB;AACzB,QAAQ,oBAAoB;AAC5B,QAAQ,eAAe,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC;AAC7C,QAAQ,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI;AAC1C,OAAO;AACP,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC;AAChF,MAAM,OAAO;AACb,QAAQ,iBAAiB,kBAAkB,IAAI,GAAG,EAAE;AACpD,QAAQ,oBAAoB,kBAAkB,IAAI,GAAG,EAAE;AACvD,QAAQ,eAAe,EAAE,CAAC;AAC1B,QAAQ,YAAY,EAAE;AACtB,OAAO;AACP,IAAI,CAAC,SAAS;AACd,MAAM,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM;AACN,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,MAAM,OAAO,GAAG,EAAE;AACxB,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO;AACpC,QAAQ;AACR;AACA;AACA;AACA;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC;AAC7C,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,QAAQ,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACxC,UAAU,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,UAAU,MAAM,QAAQ,GAAG,YAAY;AACvC,YAAY,EAAE;AACd,YAAY,CAAC;AACb;AACA;AACA,+BAA+B,CAAC;AAChC,YAAY;AACZ,WAAW;AACX,UAAU,MAAM,cAAc,mBAAmB,IAAI,GAAG,EAAE;AAC1D,UAAU,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtD,cAAc,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AACrD,YAAY;AACZ,YAAY,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1D,UAAU;AACV,UAAU,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,cAAc,CAAC;AAChF,UAAU,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AACrC,UAAU,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACvC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE;AACxD,cAAc,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACpD,YAAY;AACZ,YAAY,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC;AACtE,UAAU;AACV,QAAQ;AACR,QAAQ,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;AACvC,UAAU,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE;AACxD,YAAY,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,YAAY;AACpD,UAAU;AACV,UAAU,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7C,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO;AACrC,QAAQ;AACR;AACA;AACA;AACA;AACA,GAAG;AACH,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;AAC1C,MAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,QAAQ,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,QAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AACpD,UAAU,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;AAC7C,YAAY,OAAO,KAAK;AACxB,UAAU;AACV,UAAU,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,UAAU,OAAO,QAAQ,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,QAAQ;AACjE,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,UAAU,MAAM,cAAc,mBAAmB,IAAI,GAAG,EAAE;AAC1D,UAAU,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtD,cAAc,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AACrD,YAAY;AACZ,YAAY,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1D,UAAU;AACV,UAAU,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;AAC3D,UAAU,MAAM,gBAAgB,GAAG,YAAY;AAC/C,YAAY,EAAE;AACd,YAAY,CAAC;AACb;AACA;AACA,+BAA+B,CAAC;AAChC,YAAY;AACZ,WAAW;AACX,UAAU,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,cAAc,CAAC;AACrF,UAAU,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;AACzC,UAAU,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACvC,YAAY,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC;AACtE,UAAU;AACV,QAAQ;AACR,QAAQ,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AACzC,UAAU,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE;AACtD,YAAY,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AAClD,UAAU;AACV,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,QAAQ,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE;AAC1C,UAAU,IAAI;AACd,YAAY,EAAE,CAAC,OAAO,CAAC;AACvB,UAAU,CAAC,CAAC,OAAO,OAAO,EAAE;AAC5B,YAAY,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,OAAO,CAAC;AACxE,UAAU;AACV,QAAQ;AACR,MAAM;AACN,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC;AAC5D,IAAI,CAAC,SAAS;AACd,MAAM,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI;AACJ,EAAE;AACF;AACA,SAAS,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AACpC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,iBAAiB,EAAE;AAC1D,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC;AACrD,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACvD,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC/D,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACzB,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE;AACxC,EAAE,QAAQ,IAAI,CAAC,IAAI;AACnB,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;AAC3D,IAAI,KAAK,MAAM;AACf,MAAM,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACvD,IAAI,KAAK,MAAM;AACf,MAAM,OAAO;AACb,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE;AACxC,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;AACtC,QAAQ,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;AACxC,QAAQ,IAAI,EAAE;AACd,OAAO;AACP,IAAI;AACJ,MAAM,OAAO,IAAI;AACjB;AACA;AACA,SAAS,MAAM,GAAG;AAClB,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;AACxC,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI;AACN,IAAI,OAAO,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,EAAE,OAAO,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS;AACvD;AACA,MAAM,aAAa,GAAG,4BAA4B;AAClD,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,eAAe,EAAE;AAC1E,UAAU,CAAC,aAAa,CAAC,GAAG,eAAe;AAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC;AAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/C,MAAM,OAAO,GAAG;AAChB,EAAE,IAAI;AACN,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,qBAAqB;AACvB,EAAE,QAAQ;AACV,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE;AACF,CAAC;AACD,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI;AAClB,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI;AAClB,IAAI,OAAO,EAAE,GAAG,CAAC,OAAO;AACxB,IAAI,SAAS,EAAE,GAAG,CAAC,UAAU;AAC7B,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG;AAChB,IAAI,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;AACnC,IAAI,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;AACnC,IAAI,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;AACrC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI;AACtD,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI;AAClB,IAAI,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;AACzC,IAAI,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;AACvC,IAAI,MAAM,EAAE,GAAG,CAAC;AAChB,GAAG;AACH;AACA,MAAM,cAAc,GAAG;AACvB,EAAE,SAAS,EAAE,YAAY;AACzB,EAAE,QAAQ,EAAE,WAAW;AACvB,EAAE,QAAQ,EAAE,WAAW;AACvB,EAAE,SAAS,EAAE,YAAY;AACzB,EAAE,iBAAiB,EAAE,qBAAqB;AAC1C,EAAE,WAAW,EAAE,cAAc;AAC7B,EAAE,UAAU,EAAE;AACd,CAAC;AACD,MAAM,aAAa,CAAC;AACpB,EAAE,EAAE;AACJ,EAAE,WAAW,GAAG;AAChB,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7C,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC;AACnC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC;AACxC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE;AACF,EAAE,eAAe,CAAC,EAAE,EAAE;AACtB,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;AAC1D,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO;AAClC,MAAM;AACN,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AACjB,IAAI,OAAO,MAAM,CAAC,OAAO;AACzB,EAAE;AACF,EAAE,GAAG,CAAC,EAAE,EAAE;AACV,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAC/E,IAAI,OAAO,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;AACxC,EAAE;AACF,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1D,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO;AAChC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,IAAI,CAAC,GAAG;AACZ,MAAM,QAAQ,CAAC,EAAE;AACjB,MAAM,QAAQ,CAAC,OAAO;AACtB,MAAM,QAAQ,CAAC,IAAI;AACnB,MAAM,QAAQ,CAAC,GAAG;AAClB,MAAM,QAAQ,CAAC,IAAI;AACnB,MAAM,QAAQ,CAAC,IAAI;AACnB,MAAM,QAAQ,CAAC,GAAG;AAClB,MAAM,QAAQ,CAAC,SAAS;AACxB,MAAM,QAAQ,CAAC,UAAU;AACzB,MAAM,QAAQ,CAAC,WAAW;AAC1B,MAAM,QAAQ,CAAC,iBAAiB;AAChC,MAAM,QAAQ,CAAC,MAAM;AACrB,MAAM,QAAQ,CAAC,QAAQ;AACvB,MAAM,QAAQ,CAAC,SAAS;AACxB,MAAM,QAAQ,CAAC;AACf,KAAK;AACL,EAAE;AACF,EAAE,OAAO,GAAG;AACZ,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EAAE;AAC1F,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AAChC,EAAE;AACF,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2EAA2E,CAAC,CAAC,GAAG,EAAE;AACnH,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AAChC,EAAE;AACF,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mFAAmF,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACtK,EAAE;AACF,EAAE,YAAY,CAAC,EAAE,EAAE;AACnB,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO;AACnB,MAAM;AACN,KAAK,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACzD,EAAE;AACF,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE;AACrB,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM;AACjD,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK;AAC9C,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzE,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC;AACxD,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC;AACnF,EAAE;AACF;AACA,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG;AACnC;AACA,MAAM,aAAa,GAAG,0BAA0B;AAChD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,aAAa,EAAE;AACtE,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa;AACzC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI;AACvC,MAAM,uBAAuB,GAAG,IAAI,GAAG,IAAI;AAC3C,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI;AACvC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;AACxC,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AACnC,MAAM,oBAAoB,GAAG,EAAE;AAC/B,MAAM,gBAAgB,GAAG,GAAG;AAC5B,MAAM,uBAAuB,GAAG,GAAG;AACnC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;AACvD,MAAM,UAAU,CAAC;AACjB,EAAE,YAAY,GAAG,IAAI;AACrB,EAAE,SAAS,mBAAmB,IAAI,GAAG,EAAE;AACvC,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,MAAM;AAC1C,MAAM,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,CAAC,EAAE,mBAAmB,CAAC;AAC3B,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACjB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzD,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC1C,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA;AACA;AACA,EAAE,OAAO,GAAG;AACZ,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AACjD,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;AACxC,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;AACnF,MAAM,IAAI,GAAG,GAAG,QAAQ,GAAG,aAAa,EAAE;AAC1C,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACtB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC7C,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE;AAC9C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AACpD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC;AAC3E,MAAM,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACtB,MAAM;AACN,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC;AACtE,MAAM,IAAI,OAAO,GAAG,CAAC,EAAE;AACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,yBAAyB,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7F,MAAM;AACN,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/C,IAAI,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,KAAK,CAAC;AACrD,IAAI,MAAM,YAAY,GAAG,iBAAiB,EAAE;AAC5C,IAAI,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AAC1F,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE;AAClD,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK;AACjD,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,IAAI,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC3C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AACvC,QAAQ,MAAM,CAAC,IAAI,EAAE;AACrB,QAAQ,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACjD,MAAM,CAAC,EAAE,uBAAuB,CAAC;AACjC,MAAM,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK;AACpC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;AAClC,UAAU,YAAY,CAAC,OAAO,CAAC;AAC/B,UAAU,MAAM,CAAC,UAAU,EAAE;AAC7B,UAAU,OAAO,EAAE;AACnB,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,QAAQ,YAAY,CAAC,OAAO,CAAC;AAC7B,QAAQ,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,CAAC;AACR,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AAClC,QAAQ,YAAY,CAAC,OAAO,CAAC;AAC7B,QAAQ,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACjF,MAAM,CAAC,CAAC;AACR,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG;AAChC,IAAI,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AAC1D,IAAI,MAAM,GAAG,mBAAmB,IAAI,IAAI,EAAE;AAC1C,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,IAAI;AACV,MAAM,OAAO,kBAAkB,IAAI,GAAG,EAAE;AACxC,MAAM,IAAI;AACV,MAAM,OAAO;AACb,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,GAAG;AACT,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACtC,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,SAAS;AACf,MAAM,EAAE;AACR,MAAM,QAAQ,EAAE,KAAK;AACrB,MAAM,cAAc,EAAE,IAAI;AAC1B,MAAM,iBAAiB,EAAE,IAAI;AAC7B,MAAM,aAAa,kBAAkB,IAAI,GAAG,EAAE;AAC9C,MAAM,GAAG,EAAE,aAAa,CAAC,GAAG;AAC5B,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,GAAG,EAAE,MAAM;AACjB,MAAM,IAAI;AACV,MAAM,UAAU,EAAE,aAAa,CAAC,UAAU;AAC1C,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,UAAU;AAChB,MAAM,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS;AACzD,MAAM,aAAa,EAAE;AACrB,KAAK;AACL,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC9C,IAAI,aAAa,CAAC,MAAM,CAAC;AACzB,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChC,MAAM,IAAI;AACV,MAAM,OAAO;AACb,MAAM,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;AAClC,MAAM,GAAG;AACT,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,SAAS;AACf,MAAM,EAAE;AACR,MAAM,iBAAiB,EAAE,IAAI;AAC7B,MAAM,GAAG,EAAE,aAAa,CAAC,GAAG;AAC5B,MAAM,IAAI;AACV,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,UAAU;AAChB,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AACxC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;AACpC,IAAI,OAAO,QAAQ;AACnB,EAAE;AACF;AACA;AACA;AACA,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI;AAC9B,IAAI;AACJ,IAAI,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AACjD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC9B,QAAQ,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AACzC,QAAQ,QAAQ,CAAC,SAAS,GAAG,IAAI;AACjC,MAAM;AACN,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AACzC,QAAQ,IAAI;AACZ,UAAU,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACtC,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,QAAQ,IAAI;AACZ,UAAU,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;AACrD,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,MAAM;AACN,MAAM,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE;AAC/B,MAAM,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACzC,QAAQ,IAAI;AACZ,UAAU,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/B,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACjB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/B,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AACrC,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA;AACA;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI;AAC9B,IAAI;AACJ,IAAI,KAAK,MAAM,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC9B,QAAQ,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AACzC,QAAQ,QAAQ,CAAC,SAAS,GAAG,IAAI;AACjC,MAAM;AACN,MAAM,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE;AAC/B,MAAM,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACzC,QAAQ,IAAI;AACZ,UAAU,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,MAAM;AACN,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC9B,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;AACpC,IAAI;AACJ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC1B,EAAE;AACF;AACA;AACA;AACA,EAAE,GAAG,CAAC,EAAE,EAAE;AACV,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;AACzC,EAAE;AACF;AACA;AACA;AACA,EAAE,aAAa,CAAC,EAAE,EAAE;AACpB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,UAAU;AAC9B,EAAE;AACF;AACA;AACA;AACA,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;AACtC,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,QAAQ,CAAC,MAAM,GAAG,QAAQ;AAChC,MAAM,QAAQ,CAAC,QAAQ,mBAAmB,IAAI,IAAI,EAAE;AACpD,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;AACxC,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,UAAU,CAAC,MAAM;AACrB,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AACzC,QAAQ,IAAI;AACZ,UAAU,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACtC,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,QAAQ,QAAQ,CAAC,MAAM,GAAG,QAAQ;AAClC,QAAQ,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,oBAAoB,IAAI,IAAI,EAAE;AAC3E,QAAQ,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;AAC1C,MAAM;AACN,IAAI,CAAC,EAAE,gBAAgB,CAAC;AACxB,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA;AACA;AACA,EAAE,IAAI,GAAG;AACT,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;AACnD,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC3H,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAC3E,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;AAClE,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;AAClE,MAAM,OAAO,KAAK,GAAG,KAAK;AAC1B,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;AAClC,EAAE;AACF;AACA;AACA;AACA,EAAE,MAAM,YAAY,GAAG;AACvB,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE;AAC/C,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC;AACtE,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,8BAA8B,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC3F,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,MAAM,IAAI;AACV,QAAQ,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACvC,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AACvE,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,2CAA2C,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1F,QAAQ,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;AAC3C,MAAM;AACN,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,EAAE,EAAE;AACb,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AACvC,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAClB,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA;AACA;AACA,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACzB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;AACnD,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AACrC,MAAM,QAAQ,CAAC,IAAI,GAAG,IAAI;AAC1B,MAAM,QAAQ,CAAC,IAAI,GAAG,IAAI;AAC1B,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE;AACnC,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI;AAC/B,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,oBAAoB,EAAE;AAC/E,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/D,MAAM,IAAI,UAAU,KAAK,EAAE,EAAE;AAC7B,QAAQ,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM;AACb,QAAQ,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5D,MAAM;AACN,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,EAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE;AAClC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACxD,IAAI,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACvC,MAAM,IAAI,EAAE,CAAC,cAAc,GAAG,uBAAuB,EAAE;AACvD,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACzF,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AACnD,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;AACpD,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,uBAAuB,EAAE;AAC3D,QAAQ,IAAI,YAAY,GAAG,CAAC;AAC5B,QAAQ,OAAO,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,uBAAuB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1F,UAAU,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7C,UAAU,IAAI,OAAO,EAAE;AACvB,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;AAClE,YAAY,MAAM,CAAC,IAAI,IAAI,WAAW;AACtC,YAAY,YAAY,IAAI,WAAW;AACvC,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE;AAC9B,UAAU,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,YAAY,KAAK,EAAE,YAAY;AAC/B,YAAY,IAAI,EAAE;AAClB,WAAW,CAAC;AACZ,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;AACpC,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B,MAAM,MAAM,CAAC,IAAI,IAAI,OAAO;AAC5B,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC;AACxC,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,EAAE,EAAE;AACZ,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC5B,MAAM,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvC,MAAM,QAAQ,CAAC,SAAS,GAAG,IAAI;AAC/B,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,cAAc,EAAE;AAC/D,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC;AAC/E,MAAM,QAAQ,CAAC,cAAc,GAAG,IAAI;AACpC,IAAI;AACJ,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE;AAC7B,IAAI,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACvC,MAAM,IAAI;AACV,QAAQ,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,CAAC,CAAC,MAAM;AACd,MAAM;AACN,IAAI;AACJ,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;AAClC,IAAI,QAAQ,CAAC,UAAU,GAAG,EAAE;AAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7B,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE;AACnC,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;AACzB,MAAM,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;AACnD,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,sBAAsB,CAAC,MAAM,EAAE;AACjC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,MAAM,IAAI;AACV,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AACzC,QAAQ,OAAO,CAAC,IAAI;AACpB,UAAU,CAAC,yBAAyB,EAAE,MAAM,CAAC,SAAS,CAAC,2BAA2B,EAAE,MAAM,CAAC,EAAE,CAAC;AAC9F,SAAS;AACT,MAAM,CAAC,CAAC,MAAM;AACd,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE;AAC3B,MAAM,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;AACpC,QAAQ,IAAI;AACZ,UAAU,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACzE,UAAU,UAAU,CAAC,YAAY,CAAC;AAClC,UAAU,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC5D,UAAU,OAAO,CAAC,GAAG;AACrB,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClG,WAAW;AACX,UAAU;AACV,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,IAAI,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;AACzC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,8BAA8B,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACzE,EAAE;AACF,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC5B,MAAM,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AAC9C,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACpD,IAAI,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;AAClC,MAAM,IAAI;AACV,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACvE,QAAQ,UAAU,CAAC,YAAY,CAAC;AAChC,QAAQ,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC1D,QAAQ,OAAO,CAAC,GAAG;AACnB,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChG,SAAS;AACT,QAAQ;AACR,MAAM,CAAC,CAAC,MAAM;AACd,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;AACjE,IAAI,IAAI,UAAU,GAAG,EAAE;AACvB,IAAI,IAAI;AACR,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,IAAI,EAAE,UAAU;AACtB,MAAM,OAAO,kBAAkB,IAAI,GAAG,EAAE;AACxC,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI;AACvB,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO;AAC7B,MAAM,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3C,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,GAAG,EAAE,MAAM,CAAC,GAAG;AACrB,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACtC,MAAM,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;AAClE,MAAM,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC;AACtC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE;AACnB,MAAM,QAAQ,EAAE,KAAK;AACrB,MAAM,cAAc,EAAE,IAAI;AAC1B,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;AACzD,MAAM,aAAa,kBAAkB,IAAI,GAAG,EAAE;AAC9C,MAAM,GAAG,EAAE,aAAa,CAAC,GAAG;AAC5B,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,GAAG,EAAE,MAAM;AACjB,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI;AACvB,MAAM,UAAU,EAAE,aAAa,CAAC,UAAU;AAC1C,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;AAC7C,MAAM,UAAU,EAAE,MAAM,CAAC,UAAU;AACnC,MAAM,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS;AACzD,MAAM,aAAa,EAAE;AACrB,KAAK;AACL,IAAI,IAAI,aAAa,CAAC,MAAM,EAAE;AAC9B,MAAM,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,oBAAoB,IAAI,IAAI,EAAE;AACzE,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC;AACjE,IAAI;AACJ,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC9C,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC9B,IAAI,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AACpC,MAAM,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK;AACpC,MAAM,CAAC;AACP,MAAM,QAAQ,CAAC,cAAc,GAAG,MAAM;AACtC,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AAC/F,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AAC1C,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE;AAC1C,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;AACjE,IAAI;AACJ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC;AAC3C,IAAI,OAAO,CAAC,GAAG;AACf,MAAM,CAAC,mCAAmC,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxI,KAAK;AACL,EAAE;AACF;AACA,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;AACpB,IAAI,IAAI;AACR,MAAM,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE;AAC/B,QAAQ,OAAO,KAAK;AACpB,MAAM;AACN,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AAClB,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,EAAE;AACF;AACA,EAAE,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE;AACrC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU;AACxC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC1D,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC;AACrE,IAAI,IAAI,WAAW,IAAI,CAAC,EAAE;AAC1B,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,EAAE;AACd,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC5B,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC7C,IAAI,IAAI,MAAM,GAAG,CAAC;AAClB,IAAI,IAAI,UAAU,GAAG,CAAC;AACtB,IAAI,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;AAChC,MAAM,IAAI,EAAE,CAAC,cAAc,GAAG,qBAAqB,GAAG,CAAC,EAAE;AACzD,QAAQ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/D,MAAM;AACN,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClE,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,KAAK,EAAE,WAAW;AAC1B,QAAQ,IAAI,EAAE;AACd,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC5B,MAAM,MAAM,GAAG,GAAG;AAClB,MAAM,UAAU,EAAE;AAClB,IAAI;AACJ,EAAE;AACF,EAAE,qBAAqB,CAAC,QAAQ,EAAE;AAClC,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,QAAQ;AACzC,IAAI,IAAI,OAAO,KAAK,QAAQ,EAAE;AAC9B,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI;AAC3C,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AAC9B,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;AAC9B,OAAO;AACP,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACzD,MAAM,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;AACpE,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACrD,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7C,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtE,QAAQ,CAAC,MAAM;AACf,UAAU,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChF,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AACtC,YAAY,QAAQ,CAAC,WAAW,GAAG,UAAU;AAC7C,YAAY,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACjE,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;AACrD,MAAM,QAAQ,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM;AAC7C,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;AAClE,UAAU,IAAI,QAAQ,CAAC,SAAS,EAAE;AAClC,YAAY,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7C,YAAY,QAAQ,CAAC,SAAS,GAAG,IAAI;AACrC,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI;AACZ,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AACvC,YAAY;AACZ,UAAU;AACV,UAAU,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC/F,YAAY,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACpE,YAAY,OAAO;AACnB,cAAc,SAAS,EAAE,IAAI,CAAC,WAAW;AACzC,cAAc,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACzD,cAAc,KAAK,EAAE,IAAI,CAAC,OAAO;AACjC,cAAc,IAAI,EAAE;AACpB,aAAa;AACb,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;AAC9F,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAY,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AACpD,YAAY,IAAI,QAAQ,CAAC,SAAS,EAAE;AACpC,cAAc,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC/C,cAAc,QAAQ,CAAC,SAAS,GAAG,IAAI;AACvC,YAAY;AACZ,YAAY,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC3E,UAAU;AACV,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ;AACR,MAAM,CAAC,EAAE,IAAI,CAAC;AACd,MAAM,UAAU;AAChB,QAAQ,MAAM;AACd,UAAU,IAAI,QAAQ,CAAC,SAAS,EAAE;AAClC,YAAY,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7C,YAAY,QAAQ,CAAC,SAAS,GAAG,IAAI;AACrC,UAAU;AACV,QAAQ,CAAC;AACT,QAAQ,CAAC,GAAG,EAAE,GAAG;AACjB,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,OAAO,KAAK,UAAU,EAAE;AAChC,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;AACrD,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM;AAC7C,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AACxE,UAAU,aAAa,CAAC,YAAY,CAAC;AACrC,UAAU,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AAC1C,YAAY,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK;AAC1C,YAAY,CAAC;AACb,YAAY,QAAQ,CAAC,cAAc,GAAG,MAAM;AAC5C,YAAY,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;AACrE,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC;AACxE,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,QAAQ,CAAC,iBAAiB,GAAG,SAAS;AAChD,UAAU,aAAa,CAAC,YAAY,CAAC;AACrC,UAAU,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK;AACxC,UAAU,CAAC;AACX,UAAU,QAAQ,CAAC,cAAc,GAAG,MAAM;AAC1C,UAAU,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;AAClD,UAAU,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;AACpE,QAAQ;AACR,MAAM,CAAC,EAAE,GAAG,CAAC;AACb,MAAM,QAAQ,CAAC,SAAS,GAAG,YAAY;AACvC,MAAM,UAAU;AAChB,QAAQ,MAAM;AACd,UAAU,aAAa,CAAC,YAAY,CAAC;AACrC,UAAU,QAAQ,CAAC,SAAS,GAAG,IAAI;AACnC,QAAQ,CAAC;AACT,QAAQ,CAAC,GAAG,EAAE,GAAG;AACjB,OAAO;AACP,IAAI;AACJ,EAAE;AACF;AACA,EAAE,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACxC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK;AAClC,MAAM,QAAQ,CAAC,QAAQ,GAAG,MAAM;AAChC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9D,MAAM,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACzC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9B,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;AAC5B,MAAM,QAAQ,CAAC,UAAU,GAAG,KAAK;AACjC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC9D,MAAM,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACzC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9B,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK;AAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC3C,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC1C,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK;AAChC,MAAM,QAAQ,CAAC,MAAM,GAAG,QAAQ;AAChC,MAAM,QAAQ,CAAC,QAAQ,GAAG,QAAQ;AAClC,MAAM,QAAQ,CAAC,QAAQ,mBAAmB,IAAI,IAAI,EAAE;AACpD,MAAM,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;AACrD,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AACrC,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,IAAI,EAAE;AACd,OAAO,CAAC;AACR,MAAM,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AACzC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;AAClC,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM;AAC9B,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;AACzC,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,4DAA4D,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,QAAQ,QAAQ,CAAC,MAAM,GAAG,QAAQ;AAClC,QAAQ,QAAQ,CAAC,QAAQ,mBAAmB,IAAI,IAAI,EAAE;AACtD,QAAQ,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/C,MAAM;AACN,IAAI,CAAC,CAAC;AACN,EAAE;AACF;AACA,SAAS,iBAAiB,GAAG;AAC7B,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE;AACvC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB;AAC1C,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACrE,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE;AAC7B,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,OAAO,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACzE;AACA,MAAM,cAAc,GAAG,uBAAuB;AACzC,MAAC,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,UAAU;AAC/D,UAAU,CAAC,cAAc,CAAC,GAAG,UAAU;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { w as render, x as set, L as LEGACY_PROPS, y as get, z as flushSync, A as define_property, B as mutable_source, C as init_operations, E as get_first_child, F as COMMENT_NODE, H as HYDRATION_START, G as get_next_sibling, I as HYDRATION_ERROR, J as hydration_failed, K as clear_text_content, M as component_root, N as create_text, O as array_from, P as is_passive_event, Q as set_active_reaction, R as set_active_effect, S as active_reaction, T as active_effect, U as setContext, V as BOUNDARY_EFFECT, W as block, X as branch, Y as queue_micro_task, Z as pause_effect, _ as current_batch, $ as move_effect, a0 as defer_effect, a1 as set_component_context, a2 as Batch, a3 as handle_error, a4 as component_context, a5 as internal_set, a6 as destroy_effect, a7 as invoke_error_boundary, t as derived, a8 as effect_tracking, a9 as render_effect, aa as HYDRATION_END, ab as HYDRATION_START_ELSE, ac as svelte_boundary_reset_onerror, ad as source, ae as untrack, af as increment, ag as HYDRATION_START_FAILED, ah as push$1, ai as pop$1, aj as EFFECT_TRANSPARENT, ak as EFFECT_PRESERVED } from './index-DwaY1cAm.js';
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line n/prefer-global/process
|
|
4
4
|
const IN_WEBCONTAINER = !!globalThis.process?.versions?.webcontainer;
|
|
@@ -1168,4 +1168,4 @@ function Root($$renderer, $$props) {
|
|
|
1168
1168
|
const root = asClassComponent(Root);
|
|
1169
1169
|
|
|
1170
1170
|
export { disable_search as a, base64_decode as b, decode_params as c, decode_pathname as d, validate_layout_exports as e, validate_page_server_exports as f, validate_page_exports as g, text_encoder as h, resolve as i, get_relative_path as j, base64_encode as k, make_trackable as m, normalize_path as n, root as r, text_decoder as t, validate_layout_server_exports as v, with_request_store as w };
|
|
1171
|
-
//# sourceMappingURL=root-
|
|
1171
|
+
//# sourceMappingURL=root-DDSnEAZv.js.map
|