@kodax-ai/kodax 0.7.90 → 0.7.92

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.
Files changed (82) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +43 -0
  3. package/README_CN.md +28 -0
  4. package/dist/chunks/{agent-W35WYLTH.js → agent-YHHFIH7N.js} +1 -1
  5. package/dist/chunks/argument-completer-6ZTRBNZM.js +2 -0
  6. package/dist/chunks/{chunk-DBFWNUGB.js → chunk-5CIKWSCA.js} +2 -2
  7. package/dist/chunks/{chunk-R3BXINQ2.js → chunk-7XSZVOG7.js} +135 -135
  8. package/dist/chunks/chunk-A6GNPNGB.js +383 -0
  9. package/dist/chunks/{chunk-NCK7ASJL.js → chunk-AGZNXFHZ.js} +206 -205
  10. package/dist/chunks/chunk-BV3SVH36.js +519 -0
  11. package/dist/chunks/chunk-FBL7IVMK.js +123 -0
  12. package/dist/chunks/{chunk-6FLHNFYV.js → chunk-GH3KBC2H.js} +1 -1
  13. package/dist/chunks/{chunk-4KJQ7QGO.js → chunk-GRWUC6H7.js} +1 -1
  14. package/dist/chunks/chunk-OSQIYUGD.js +408 -0
  15. package/dist/chunks/{chunk-KG3QIIDU.js → chunk-PKPBII4F.js} +2 -2
  16. package/dist/chunks/{chunk-5247AKGN.js → chunk-QFV6YCIH.js} +2 -2
  17. package/dist/chunks/chunk-QKLS4BYA.js +320 -0
  18. package/dist/chunks/{chunk-7KPBUO2F.js → chunk-QPBN3J4E.js} +2 -2
  19. package/dist/chunks/chunk-RJIYXB62.js +415 -0
  20. package/dist/chunks/{chunk-JNBAIFJR.js → chunk-THZVJ6R7.js} +1 -1
  21. package/dist/chunks/{chunk-O2ZV775M.js → chunk-X75UGXP3.js} +1 -1
  22. package/dist/chunks/{chunk-ZVICRZVA.js → chunk-YVG6OKN7.js} +1 -1
  23. package/dist/chunks/{client-RWXK22GN.js → client-OVYKC3ND.js} +1 -1
  24. package/dist/chunks/compaction-config-2TVSYSB4.js +2 -0
  25. package/dist/chunks/{construction-bootstrap-KB6GB6IY.js → construction-bootstrap-QVLJPFTL.js} +1 -1
  26. package/dist/chunks/{dist-WILA35IA.js → dist-WNMK42WE.js} +1 -1
  27. package/dist/chunks/dist-XC5M7UYX.js +2 -0
  28. package/dist/chunks/host-B3TK2U43.js +2 -0
  29. package/dist/chunks/run-manager-5AV3MR4W.js +2 -0
  30. package/dist/chunks/{utils-SDMYKIZG.js → utils-HPVZCR2J.js} +1 -1
  31. package/dist/index.d.ts +15 -15
  32. package/dist/index.js +5 -5
  33. package/dist/kodax_bootstrap.js +1 -1
  34. package/dist/kodax_cli.js +1550 -1552
  35. package/dist/runtime-worker.js +1421 -1423
  36. package/dist/sandbox-workspace-session.js +269 -268
  37. package/dist/sdk-a2a.d.ts +11 -11
  38. package/dist/sdk-a2a.js +1 -1
  39. package/dist/sdk-agent.d.ts +15 -8
  40. package/dist/sdk-agent.js +1 -1
  41. package/dist/sdk-coding.d.ts +12 -12
  42. package/dist/sdk-coding.js +1 -1
  43. package/dist/sdk-experimental-memory.js +1 -1
  44. package/dist/sdk-llm.d.ts +1 -1
  45. package/dist/sdk-llm.js +1 -1
  46. package/dist/sdk-mcp.js +1 -1
  47. package/dist/sdk-media.js +1 -1
  48. package/dist/sdk-repl.d.ts +8 -8
  49. package/dist/sdk-repl.js +2 -2
  50. package/dist/sdk-runtime.d.ts +112 -11
  51. package/dist/sdk-runtime.js +1 -1
  52. package/dist/sdk-sandbox.d.ts +1 -1
  53. package/dist/sdk-sandbox.js +1 -1
  54. package/dist/sdk-session.d.ts +4 -4
  55. package/dist/sdk-session.js +1 -1
  56. package/dist/sdk-skills.js +1 -1
  57. package/dist/semantic-worker.js +77 -76
  58. package/dist/types-chunks/{bash-prefix-extractor.d-DBxWweqC.d.ts → bash-prefix-extractor.d-BMi_TJIY.d.ts} +53 -6
  59. package/dist/types-chunks/{capsule.d-Bc1-UYaj.d.ts → capsule.d-nYbM4MNL.d.ts} +1 -1
  60. package/dist/types-chunks/{controller.d-CnQqfSI5.d.ts → controller.d-Bm1i9RVj.d.ts} +13 -5
  61. package/dist/types-chunks/{guardrail.d-DqP4s46f.d.ts → guardrail.d-CKkoea7y.d.ts} +2 -2
  62. package/dist/types-chunks/{public-api.d-CrBB7m8F.d.ts → public-api.d-BsZWOq3P.d.ts} +4 -2
  63. package/dist/types-chunks/{repl.d-qijzfmA1.d.ts → repl.d-DxD0Olm0.d.ts} +10 -5
  64. package/dist/types-chunks/{resolver.d-bKttRr1V.d.ts → resolver.d-DparsV6Y.d.ts} +6 -4
  65. package/dist/types-chunks/{run-manager.d-PEct-5KE.d.ts → run-manager.d-BeSEc2OL.d.ts} +1 -1
  66. package/dist/types-chunks/{sdk-session-BIeiLU8G.d.ts → sdk-session-BTzblJTQ.d.ts} +1 -1
  67. package/dist/types-chunks/{shell-command-sets.d-RvEIrqHQ.d.ts → shell-command-sets.d-C2cc9Hwi.d.ts} +1 -1
  68. package/dist/types-chunks/{types.d-B9Fhknxd.d.ts → types.d-Dc3kwcjC.d.ts} +1 -1
  69. package/dist/types-chunks/{types.d-Do_AsIIs.d.ts → types.d-DrtP1ceI.d.ts} +1 -1
  70. package/dist/types-chunks/{utils.d-BvayexqQ.d.ts → utils.d-50Q24Few.d.ts} +4 -4
  71. package/package.json +5 -2
  72. package/dist/chunks/argument-completer-SRCHPEMA.js +0 -2
  73. package/dist/chunks/chunk-KINDGE7G.js +0 -382
  74. package/dist/chunks/chunk-T256QEDN.js +0 -412
  75. package/dist/chunks/chunk-TDSTNXNR.js +0 -519
  76. package/dist/chunks/chunk-UNEC2WXJ.js +0 -123
  77. package/dist/chunks/chunk-ZACJCRHT.js +0 -415
  78. package/dist/chunks/chunk-ZDOLJSTE.js +0 -320
  79. package/dist/chunks/compaction-config-MD2PQSAM.js +0 -2
  80. package/dist/chunks/dist-2NRXEHLI.js +0 -2
  81. package/dist/chunks/host-JAXBBRCV.js +0 -2
  82. package/dist/chunks/run-manager-EI264JTO.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- var Ac=Object.defineProperty;var s=(e,t)=>Ac(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Xc=(e,t)=>{for(var n in t)Ac(e,n,{get:t[n],enumerable:!0})};import Bh from"path";function Mc(e){return Bh.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var jc=p(()=>{"use strict";s(Mc,"resolveExecutionCwd")});var Wc=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var un=p(()=>{"use strict"});import{AsyncLocalStorage as Zh}from"node:async_hooks";function yr(e){let t=Hh.getStore()?.credential;return t?fn(e,t,new WeakMap):e}function fn(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error){let o=new Error(fn(e.message,t,n));return n.set(e,o),o.name=e.name,e.stack!==void 0&&(o.stack=fn(e.stack,t,n)),o}if(Array.isArray(e)){let o=[];n.set(e,o);for(let a of e)o.push(fn(a,t,n));return o}let i={};n.set(e,i);for(let[o,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=o.split(t).join("[REDACTED_CREDENTIAL]");i[c]=fn(a.value,t,n)}return i}var Hh,wr=p(()=>{"use strict";Hh=new Zh;s(yr,"redactScopedProviderCredential");s(fn,"redactCredentialValue")});var Wt=p(()=>{"use strict"});var Oo=p(()=>{"use strict"});var Fc=p(()=>{"use strict"});var go=p(()=>{"use strict"});var gt=p(()=>{"use strict"});var Dc=p(()=>{"use strict"});var yo=p(()=>{"use strict"});import{AsyncLocalStorage as Jh}from"node:async_hooks";var k_,pn=p(()=>{"use strict";k_=new Jh});var mn,Nc,Sr,Lc,yt=p(()=>{"use strict";mn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Nc={...mn,multimodalSupport:"image-input"},Sr={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Lc={...Sr,multimodalSupport:"image-input"}});var hn=p(()=>{"use strict";Wt();Dc();wr();yo();Oo();pn();yt();gt()});import{parse as L_}from"partial-json";var vr=p(()=>{"use strict"});var On=p(()=>{"use strict"});var kr=p(()=>{"use strict"});var gn=p(()=>{"use strict"});var wo=p(()=>{"use strict"});import{createRequire as OO}from"node:module";var uQ,Tr=p(()=>{"use strict";hn();vr();On();Wt();kr();gt();gn();wo();pn();uQ=OO(import.meta.url)});import{createRequire as wO}from"node:module";var RQ,Rr=p(()=>{"use strict";hn();Wt();vr();On();kr();gt();gn();wo();pn();RQ=wO(import.meta.url)});var EQ,IQ,$Q,CQ,bo=p(()=>{"use strict";EQ=Object.freeze({status:"terminated"}),IQ=Object.freeze({status:"already-exited"}),$Q=Object.freeze({status:"unknown"}),CQ=String.raw`
2
+ var Dc=Object.defineProperty;var s=(e,t)=>Dc(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Nc=(e,t)=>{for(var n in t)Dc(e,n,{get:t[n],enumerable:!0})};import nO from"path";function Lc(e){return nO.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var qc=p(()=>{"use strict";s(Lc,"resolveExecutionCwd")});var zc=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var fn=p(()=>{"use strict"});import{AsyncLocalStorage as rO}from"node:async_hooks";function Sr(e){let t=iO.getStore()?.credential;return t?pn(e,t,new WeakMap):e}function pn(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error){let o=new Error(pn(e.message,t,n));return n.set(e,o),o.name=e.name,e.stack!==void 0&&(o.stack=pn(e.stack,t,n)),o}if(Array.isArray(e)){let o=[];n.set(e,o);for(let a of e)o.push(pn(a,t,n));return o}let i={};n.set(e,i);for(let[o,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=o.split(t).join("[REDACTED_CREDENTIAL]");i[c]=pn(a.value,t,n)}return i}var iO,br=p(()=>{"use strict";iO=new rO;s(Sr,"redactScopedProviderCredential");s(pn,"redactCredentialValue")});var Wt=p(()=>{"use strict"});var wo=p(()=>{"use strict"});var Uc=p(()=>{"use strict"});var So=p(()=>{"use strict"});var wt=p(()=>{"use strict"});var Vc=p(()=>{"use strict"});var bo=p(()=>{"use strict"});import{AsyncLocalStorage as oO}from"node:async_hooks";var I_,mn=p(()=>{"use strict";I_=new oO});var hn,Kc,Pr,Yc,St=p(()=>{"use strict";hn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Kc={...hn,multimodalSupport:"image-input"},Pr={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Yc={...Pr,multimodalSupport:"image-input"}});var On=p(()=>{"use strict";Wt();Vc();br();bo();wo();mn();St();wt()});import{parse as G_}from"partial-json";var xr=p(()=>{"use strict"});var gn=p(()=>{"use strict"});var Tr=p(()=>{"use strict"});var yn=p(()=>{"use strict"});var Po=p(()=>{"use strict"});var _r=p(()=>{"use strict";On();xr();gn();Wt();Tr();wt();yn();Po();mn()});var Qr=p(()=>{"use strict";On();Wt();xr();gn();Tr();wt();yn();Po();mn()});var CQ,AQ,XQ,MQ,ko=p(()=>{"use strict";CQ=Object.freeze({status:"terminated"}),AQ=Object.freeze({status:"already-exited"}),XQ=Object.freeze({status:"unknown"}),MQ=String.raw`
3
3
  using System;
4
4
  using System.Runtime.InteropServices;
5
5
  using System.Text;
@@ -86,11 +86,11 @@ public static class KodaXNativeProcessSnapshot {
86
86
  CloseHandle(snapshot);
87
87
  }
88
88
  }
89
- }`});var Gc=p(()=>{"use strict";bo()});var _r=p(()=>{"use strict";hn();Gc();yt();gn()});var Po=p(()=>{"use strict";bo()});var vo=p(()=>{"use strict"});var Bc=p(()=>{"use strict";Po();vo()});var ko=p(()=>{"use strict"});import Zc from"node:fs";import Hc from"node:os";import Jc from"node:path";function ed(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let o=i.toLowerCase();t.has(o)||(t.add(o),n.push(i))}return n}function _O(){let e=Jc.join(Hc.homedir(),".codex","config.toml");try{return Zc.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function QO(){let e=Jc.join(Hc.homedir(),".gemini","settings.json");try{let t=JSON.parse(Zc.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}function Ft(){return _O()||kO}function Dt(){return QO()||xO}function yn(){return ed([Ft(),...TO])}function wn(){return ed([Dt(),...RO])}var kO,xO,TO,RO,Sn=p(()=>{"use strict";kO="gpt-5.4",xO="auto-gemini-3",TO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],RO=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(ed,"dedupePreserveOrder");s(_O,"readCodexConfiguredModel");s(QO,"readGeminiConfiguredModel");s(Ft,"getCodexCliDefaultModel");s(Dt,"getGeminiCliDefaultModel");s(yn,"getCodexCliKnownModels");s(wn,"getGeminiCliKnownModels")});var hE,OE,td=p(()=>{"use strict";_r();Bc();ko();Sn();yt();hE=Dt(),OE=wn()});var nd=p(()=>{"use strict";Po();vo()});var _E,QE,rd=p(()=>{"use strict";_r();nd();ko();Sn();_E=Ft(),QE=yn()});function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wt(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}function Nt(e,t){if(e!==void 0)return wt(e,t)}function pd(e,t){if(e!==void 0){if(typeof e!="string"||!cd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${cd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Ze(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}function K(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function ud(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>wt(n,`${t}[${r}]`))}}function IO(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=wt(i,`${t}.${r}`);return n}function $O(e,t){if(e!==void 0){if(typeof e!="string"||!ad.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ad.join(", ")}, got ${JSON.stringify(e)}`);return e}}function To(e,t){if(typeof e!="string"||!id.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${id.join(", ")}, got ${JSON.stringify(e)}`);return e}function CO(e,t){if(typeof e!="string"||!od.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${od.join(", ")}, got ${JSON.stringify(e)}`);return e}function AO(e,t){if(e!==void 0){if(typeof e!="string"||!sd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${sd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function fd(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=CO(e.effortStrategy,`${t}.effortStrategy`),r=$O(e.reasoningPreset,`${t}.reasoningPreset`),i=AO(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Nt(e.defaultEffort,`${t}.defaultEffort`),a=IO(e.effortAliases,`${t}.effortAliases`),c=ud(e.disabledEfforts,`${t}.disabledEfforts`),d=ud(e.localRejectEfforts,`${t}.localRejectEfforts`),l=K(e.allowCustomEffort,`${t}.allowCustomEffort`),f=K(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=K(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=K(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=K(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),w=K(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),x=K(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),h=K(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),o!==void 0&&(y.defaultEffort=o),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((b,S)=>{if(!Ce(b))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${S}] must be an object`);return{value:wt(b.value,`${t}.supportedEfforts[${S}].value`),...Nt(b.description,`${t}.supportedEfforts[${S}].description`)!==void 0?{description:Nt(b.description,`${t}.supportedEfforts[${S}].description`)}:{},...K(b.isDefault,`${t}.supportedEfforts[${S}].isDefault`)!==void 0?{isDefault:K(b.isDefault,`${t}.supportedEfforts[${S}].isDefault`)}:{},...K(b.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)!==void 0?{isUserVisible:K(b.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Ce(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let b={};for(let[S,Q]of Object.entries(e.budgetByEffort))b[S]=Ze(Q,`${t}.budgetByEffort.${S}`)??0;y.budgetByEffort=b}return l!==void 0&&(y.allowCustomEffort=l),f!==void 0&&(y.supportsReasoningEffort=f),u!==void 0&&(y.supportsReasoningSummary=u),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),w!==void 0&&(y.supportsManualThinkingBudget=w),x!==void 0&&(y.supportsDisabledThinking=x),h!==void 0&&(y.requiresEffortBetaHeader=h),y}function md(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?fd(n,`${t}.reasoningProfile`):fd(r,`${t}.reasoningCapabilityV2`)}function XO(e,t){if(typeof e!="string"||!dd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${dd.join(", ")}, got ${JSON.stringify(e)}`);return e}function MO(e,t){if(typeof e!="string"||!ld.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ld.join(", ")}, got ${JSON.stringify(e)}`);return e}function jO(e,t){if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=wt(e.id,`${t}.id`),r=Nt(e.wireModel,`${t}.wireModel`),i=Nt(e.displayName,`${t}.displayName`),o=Ze(e.contextWindow,`${t}.contextWindow`),a=Ze(e.maxOutputTokens,`${t}.maxOutputTokens`),c=pd(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=Ze(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=K(e.replayReasoningContent,`${t}.replayReasoningContent`),f=K(e.strictThinkingSignature,`${t}.strictThinkingSignature`),u=Ze(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:To(e.reasoningCapability,`${t}.reasoningCapability`),g=md(e,t),w={id:n};return r!==void 0&&(w.wireModel=r),i!==void 0&&(w.displayName=i),o!==void 0&&(w.contextWindow=o),a!==void 0&&(w.maxOutputTokens=a),c!==void 0&&(w.maxOutputTokensField=c),d!==void 0&&(w.thinkingBudgetCap=d),m!==void 0&&(w.reasoningCapability=m),g!==void 0&&(w.reasoningProfile=g),l!==void 0&&(w.replayReasoningContent=l),f!==void 0&&(w.strictThinkingSignature=f),u!==void 0&&(w.streamMaxDurationMs=u),w}function WO(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=To(i,`${t}.${r}`);return n}function FO(e,t){if(!Ce(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=K(e.cliBridge,`providers.${t}.cliBridge`),r=wt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=To(e.reasoningCapability,`providers.${t}.reasoningCapability`),o=md(e,`providers.${t}`),a=XO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=MO(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=Ze(e.contextWindow,`providers.${t}.contextWindow`),l=Ze(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=pd(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Ze(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=K(e.supportsThinking,`providers.${t}.supportsThinking`),g=WO(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),w=Nt(e.model,`providers.${t}.model`);if(n&&(w!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&w===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let x;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);x=e.models.map((b,S)=>jO(b,`providers.${t}.models[${S}]`));let y=new Set([...w===void 0?[]:[w],...x.map(b=>b.id)]);for(let[b,S]of x.entries())if(S.wireModel!==void 0&&!y.has(S.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${b}].wireModel must reference a declared model, got ${JSON.stringify(S.wireModel)}`)}let h={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return o!==void 0&&(h.reasoningProfile=o),w!==void 0&&(h.model=w),x!==void 0&&(h.models=x),d!==void 0&&(h.contextWindow=d),l!==void 0&&(h.maxOutputTokens=l),f!==void 0&&(h.maxOutputTokensField=f),u!==void 0&&(h.thinkingBudgetCap=u),m!==void 0&&(h.supportsThinking=m),g!==void 0&&(h.modelReasoningCapabilities=g),n&&(h.cliBridge=!0),h}function hd(e){if(!Ce(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=wt(e.updatedAt,"updatedAt");if(!Ce(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=FO(i,r);return{version:1,updatedAt:t,providers:n}}var id,od,sd,ad,cd,dd,ld,Od=p(()=>{"use strict";id=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],od=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],sd=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],ad=["zai-glm-5.3","zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],cd=["max_tokens","max_completion_tokens"],dd=["native","image-input-native","cli-bridge","image-input-cli-bridge"],ld=["count-tokens","models-list","minimal-message","unsupported"];s(Ce,"isPlainObject");s(wt,"requireString");s(Nt,"optionalString");s(pd,"optionalMaxOutputTokensField");s(Ze,"optionalNumber");s(K,"optionalBoolean");s(ud,"optionalStringArray");s(IO,"optionalStringMap");s($O,"optionalReasoningPreset");s(To,"requireReasoningCapability");s(CO,"requireEffortStrategy");s(AO,"optionalThinkingStrategy");s(fd,"validateReasoningProfile");s(md,"validateReasoningProfileField");s(XO,"requireProfileName");s(MO,"requireVerifyStrategy");s(jO,"validateModelDescriptor");s(WO,"validateModelReasoningCapabilities");s(FO,"validateProviderEntry");s(hd,"validateProviderCapabilitiesJson")});import{existsSync as DO,readFileSync as NO}from"node:fs";import Lt from"node:path";import{fileURLToPath as LO}from"node:url";function zO(){if(process.env.KODAX_BUNDLED==="true")return Lt.join(Lt.dirname(process.execPath),"provider-capabilities.json");let e=Lt.dirname(LO(import.meta.url)),t=[Lt.join(e,"provider-capabilities.json"),Lt.join(Lt.dirname(e),"provider-capabilities.json")];for(let n of t)if(DO(n))return n;return t[0]}function UO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&gd(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&gd(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function gd(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}function VO(e){if(e==="gemini-cli"){let t=Dt();return{model:t,models:wn().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Ft();return{model:t,models:yn().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function KO(e,t){let n=qO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=VO(e),o={model:i.model,models:i.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(o.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(o.supportsThinking=t.supportsThinking),o}let r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.maxOutputTokensField!==void 0&&(r.maxOutputTokensField=t.maxOutputTokensField),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}function yd(){if(Qr)return Qr;let e=zO(),t;try{let i=NO(e,"utf8");t=JSON.parse(i)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${o}`)}let n=hd(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=UO(KO(i,o));return Qr=Object.freeze(r),Qr}var qO,Qr,wd=p(()=>{"use strict";yt();Sn();Od();qO=Object.freeze({native:mn,"image-input-native":Nc,"cli-bridge":Sr,"image-input-cli-bridge":Lc}),Qr=null;s(zO,"resolveJsonPath");s(UO,"deepFreezeSnapshot");s(gd,"freezeReasoningProfile");s(VO,"resolveCliBridgeModels");s(KO,"buildSnapshot");s(yd,"getProviderSnapshots")});var Er,Sd,bn=p(()=>{"use strict";Tr();Rr();td();rd();Wt();wr();yt();wd();Er=yd(),Sd=process.env.KODAX_PROVIDER??"zhipu-coding"});var Eo=p(()=>{"use strict";Tr();Rr();gt()});var Ir=p(()=>{"use strict";Eo();bn();yt()});var Ao=p(()=>{"use strict";bn();Ir()});var Xd=p(()=>{"use strict";bn();Ir();Ao()});var Xo=p(()=>{"use strict";hn();Tr();Rr();_r();bn();Eo();Ir();Ao();Xd();kr()});var Wd=p(()=>{"use strict";Xo();gt();go()});var Mo=p(()=>{"use strict"});var jo=p(()=>{"use strict";Mo()});var Fd=p(()=>{"use strict";jo();On()});var Pn=p(()=>{"use strict";wr();Wt();Oo();Fc();go();gt();Wd();Xo();Sn();vr();On();pn();Mo();jo();Fd();yo();gn()});function q(e){let t=yr(e),n=xg.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Dd(t)}
90
- `)}catch{}}function Dd(e){let t=yr(e),n=Tg(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function Tg(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}var xg,pe=p(()=>{"use strict";Pn();xg=[];s(q,"emitKodaXDiagnostic");s(Dd,"formatKodaXDiagnostic");s(Tg,"formatDiagnosticDetail")});var Nd=p(()=>{"use strict"});var Ld=p(()=>{"use strict"});var qd=p(()=>{"use strict"});function Rg(){zd+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${zd}-${e}`}var vn,zd,Wo=p(()=>{"use strict";vn=class e{static{s(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??Rg,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},zd=0;s(Rg,"defaultNextSpanId")});function _g(){Ud+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Ud}-${e}`}function Fo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??_g)(),r=t(),i=e.name??"trace",o=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new vn({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(f);let u={id:n,startedAt:r,rootSpan:f,metadata:o,get endedAt(){return d},get error(){return l??f.error},end(){c||(c=!0,d=t(),f.end(),e.onTraceEnd&&e.onTraceEnd(u))}};return u}var Ud,Do=p(()=>{"use strict";Wo();Ud=0;s(_g,"defaultNextTraceId");s(Fo,"createTrace")});function Lo(e){for(let t of No)try{t.onSpanStart(e)}catch{}}function qo(e){for(let t of No)try{t.onSpanEnd(e)}catch{}}function zo(e){for(let t of No)try{t.onTraceEnd(e)}catch{}}var No,Uo=p(()=>{"use strict";No=[];s(Lo,"_emitSpanStart");s(qo,"_emitSpanEnd");s(zo,"_emitTraceEnd")});var $r,Vd,Kd=p(()=>{"use strict";Do();Uo();$r=class{static{s(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Fo({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:Lo,onSpanEnd:qo,onTraceEnd:zo})}},Vd=new $r});var Yd=p(()=>{"use strict"});var Gd=p(()=>{"use strict"});var Vo=p(()=>{"use strict";Wo();Do();Kd();Uo();Yd();Gd()});var kn=p(()=>{"use strict"});var Cr=p(()=>{"use strict"});var Ag,F0,Ko=p(()=>{"use strict";pe();kn();Cr();Ag=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],F0=new Set(Ag)});var Yo=p(()=>{"use strict";kn();Cr()});var Go=p(()=>{"use strict"});var Bo=p(()=>{"use strict"});var Zo=p(()=>{"use strict"});var Ho=p(()=>{"use strict";Vo();Ko();Yo();Go();Bo();Zo();un()});var Hd=p(()=>{"use strict"});var Jd=p(()=>{"use strict"});var el=p(()=>{"use strict"});var tl=p(()=>{"use strict";kn();Hd();Jd();el()});import{homedir as ty}from"node:os";import{isAbsolute as kC,normalize as ny,resolve as ry,sep as nl}from"node:path";import{join as il}from"node:path";function St(){if(rl)return rl;let e=process.env[oy];return e&&e.length>0?e:il(ty(),iy)}function Y(...e){return il(St(),...e)}function xn(e,t){let n=s(a=>{let c=ny(ry(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(nl)?i:`${i}${nl}`;return r===i||r.startsWith(o)}var iy,oy,rl,G=p(()=>{"use strict";iy=".kodax",oy="KODAX_HOME";s(St,"getAgentConfigHome");s(Y,"getAgentConfigPath");s(xn,"isPathInsideDirectory")});var ol=p(()=>{"use strict";Pn();G()});var Jo=p(()=>{"use strict"});import{spawnSync as Tn}from"node:child_process";import{readFileSync as sy}from"node:fs";function cl(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}function es(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function ts(e){return es(-e)||es(e)}async function dl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!ts(e))return!0;await new Promise(r=>setTimeout(r,50))}return!ts(e)}function ay(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).flatMap(i=>{if(typeof i!="object"||i===null)return[];let o=i,a=Number(o.pid),c=Number(o.parentPid),d=typeof o.creationTime=="string"?o.creationTime:String(o.creationTime??"0");return!Number.isFinite(a)||a<=0||!Number.isFinite(c)?[]:[{pid:a,parentPid:c,creationTime:/^\d+$/.test(d)?d:"0"}]})}catch{return[]}}function cy(e){let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{6})([+-])(\d{3})$/.exec(e);if(!t)return;let[,n,r,i,o,a,c,d,l,f]=t,u=Date.UTC(Number(n),Number(r)-1,Number(i),Number(o),Number(a),Number(c),Number(d.slice(0,3))),m=Number(f)*6e4*(l==="+"?1:-1),g=u-m;if(Number.isFinite(g))return{identity:(BigInt(g)+11644473600000n).toString(),unixMs:g}}function dy(){let e=["$cutoff = [DateTime]::UtcNow","$items = try { @(Get-CimInstance Win32_Process -ErrorAction Stop) } catch { @(Get-WmiObject Win32_Process -ErrorAction Stop) }","$rows = @($items | ForEach-Object {"," $creationTime = '0'"," try {"," $created = $_.CreationDate"," if ($created -isnot [DateTime]) { $created = [System.Management.ManagementDateTimeConverter]::ToDateTime([string]$created) }"," $created = $created.ToUniversalTime()"," if ($created -le $cutoff) { $creationTime = ([long][Math]::Floor($created.ToFileTimeUtc() / 10000)).ToString() }"," } catch {}"," [PSCustomObject]@{ pid = [int]$_.ProcessId; parentPid = [int]$_.ParentProcessId; creationTime = $creationTime }","})","$rows | ConvertTo-Json -Compress"].join(`
91
- `),t=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,windowsHide:!0});if(!t.error&&t.status===0){let o=ay(t.stdout);if(o.length>0)return o}let n=Date.now(),r=Tn("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:Rn,windowsHide:!0});if(r.error||r.status!==0)return;let i=r.stdout.split(/\r?\n\s*\r?\n/).flatMap(o=>{let a=new Map(o.split(/\r?\n/).flatMap(u=>{let m=u.indexOf("=");return m<0?[]:[[u.slice(0,m),u.slice(m+1)]]})),c=Number(a.get("ProcessId")),d=Number(a.get("ParentProcessId")),l=a.get("CreationDate"),f=l===void 0?void 0:cy(l);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)||f===void 0||f.unixMs>n?[]:[{pid:c,parentPid:d,creationTime:f.identity}]});return i.length>0?i:void 0}function ly(){let e=["$source = @'",pl,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
- `),t=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,windowsHide:!0});if(t.error||t.status!==0)return;let n=t.stdout.split(/\r?\n/).flatMap(r=>{let[i,o,a="0"]=r.split(",",3),c=Number(i),d=Number(o);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)?[]:[{pid:c,parentPid:d,creationTime:a}]});return n.length>0?n:void 0}function Xr(){return ly()??dy()}function Ae(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=Xr()?.find(i=>i.pid===e);return r?.creationTime==="0"?void 0:r?.creationTime}if(process.platform==="linux")try{let r=sy(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=Tn("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Rn,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function uy(e,t,n){let r=new Map;for(let c of e)r.set(c.parentPid,[...r.get(c.parentPid)??[],c]);let i=[],o=[{pid:t,...n===void 0?{}:{creationTime:n},ancestryVerified:n!==void 0&&n!=="0"}],a=new Set([t]);for(;o.length>0;){let c=o.shift();if(c===void 0)break;for(let d of r.get(c.pid)??[]){if(a.has(d.pid)||!fy(d.creationTime,c.creationTime))continue;a.add(d.pid);let l=c.ancestryVerified&&d.creationTime!=="0";i.push(l?d:{...d,creationTime:"0"}),o.push({pid:d.pid,creationTime:d.creationTime,ancestryVerified:l})}}return i}function fy(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function py(e,t=Xr()){if(t===void 0)return;let n=new Set(t.filter(i=>i.creationTime==="0").map(i=>i.pid));if(e.some(i=>n.has(i.pid)))return;let r=new Set(t.filter(i=>i.creationTime!=="0").map(i=>`${i.pid}:${i.creationTime}`));return new Set(e.filter(i=>i.creationTime!=="0").filter(i=>r.has(`${i.pid}:${i.creationTime}`)).map(i=>i.pid))}function ll(e){let t=Xr();if(t===void 0)return;let n=py([e.root,...e.descendants],t);if(n!==void 0){if(n.size>0)return!1;if(e.completeTree)return e.uncertainDescendantPids.every(r=>!t.some(i=>i.pid===r))?!0:void 0}}function my(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(es)}async function ul(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!my(e))return ll(e)===!0;await new Promise(r=>setTimeout(r,50))}return ll(e)===!0}function fl(e,t){let n=[...e].reverse().flatMap(o=>/^\d+$/.test(o.creationTime)?[`[KodaXNativeProcessSnapshot]::TerminateExact(${o.pid}, [UInt64]${o.creationTime}) | Out-Null`]:[]);if(n.length===0)return!1;let r=["$source = @'",pl,"'@","Add-Type -TypeDefinition $source",...n].join(`
93
- `),i=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function hy(e,t){let n=Xr();if(n===void 0)return;let r=n.find(o=>o.pid===e);if(r===void 0||r.creationTime==="0"||r.creationTime!==t)return null;let i=uy(n,e,r.creationTime);return{root:r,descendants:i.filter(o=>o.creationTime!=="0"),uncertainDescendantPids:i.filter(o=>o.creationTime==="0").map(o=>o.pid),completeTree:!0}}async function Oy(e,t,n){let r=[e.root,...e.descendants],i=fl(r,t);return e.completeTree?await ul(e,n)?Ar:i?(fl(r,t),await ul(e,n)?Ar:He):He:He}function gy(e,t,n,r){let i=n?.find(o=>o.pid===e);if(!(i?.creationTime!==t||n===void 0))return{root:{...i,parentPid:0},descendants:n.filter(o=>o.pid!==e&&o.creationTime!=="0").map(o=>({...o,parentPid:0})),uncertainDescendantPids:n.filter(o=>o.pid!==e&&o.creationTime==="0").map(o=>o.pid),completeTree:r}}async function Mr(e,t={}){if(process.platform==="win32"){let r=t.taskkillMs??Rn,i=t.forceMs??sl,o=t.expectedProcessStartIdentity;if(o===void 0)return He;let a=gy(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=hy(e,o)??a;return d===void 0||d===null?He:Oy(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return ts(e)?He:al;let n=t.forceMs??sl;return cl(e,"SIGTERM")?await dl(e,n)?Ar:(cl(e,"SIGKILL"),await dl(e,n)?Ar:He):al}var sl,Rn,MC,jC,pl,Ar,al,He,_n=p(()=>{"use strict";sl=2e3,Rn=5e3,MC=String.raw`
89
+ }`});var td=p(()=>{"use strict";ko()});var Er=p(()=>{"use strict";On();td();St();yn()});var xo=p(()=>{"use strict";ko()});var To=p(()=>{"use strict"});var nd=p(()=>{"use strict";xo();To()});var Ro=p(()=>{"use strict"});import rd from"node:fs";import id from"node:os";import od from"node:path";function sd(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let o=i.toLowerCase();t.has(o)||(t.add(o),n.push(i))}return n}function $O(){let e=od.join(id.homedir(),".codex","config.toml");try{return rd.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function CO(){let e=od.join(id.homedir(),".gemini","settings.json");try{let t=JSON.parse(rd.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}function Ft(){return $O()||_O}function Dt(){return CO()||QO}function wn(){return sd([Ft(),...EO])}function Sn(){return sd([Dt(),...IO])}var _O,QO,EO,IO,bn=p(()=>{"use strict";_O="gpt-5.4",QO="auto-gemini-3",EO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],IO=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(sd,"dedupePreserveOrder");s($O,"readCodexConfiguredModel");s(CO,"readGeminiConfiguredModel");s(Ft,"getCodexCliDefaultModel");s(Dt,"getGeminiCliDefaultModel");s(wn,"getCodexCliKnownModels");s(Sn,"getGeminiCliKnownModels")});var yE,wE,ad=p(()=>{"use strict";Er();nd();Ro();bn();St();yE=Dt(),wE=Sn()});var cd=p(()=>{"use strict";xo();To()});var IE,$E,dd=p(()=>{"use strict";Er();cd();Ro();bn();IE=Ft(),$E=wn()});function Me(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bt(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}function Nt(e,t){if(e!==void 0)return bt(e,t)}function wd(e,t){if(e!==void 0){if(typeof e!="string"||!md.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${md.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Je(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}function B(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function gd(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>bt(n,`${t}[${r}]`))}}function XO(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=bt(i,`${t}.${r}`);return n}function MO(e,t){if(e!==void 0){if(typeof e!="string"||!pd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${pd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Qo(e,t){if(typeof e!="string"||!ld.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ld.join(", ")}, got ${JSON.stringify(e)}`);return e}function jO(e,t){if(typeof e!="string"||!ud.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ud.join(", ")}, got ${JSON.stringify(e)}`);return e}function WO(e,t){if(e!==void 0){if(typeof e!="string"||!fd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${fd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function yd(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=jO(e.effortStrategy,`${t}.effortStrategy`),r=MO(e.reasoningPreset,`${t}.reasoningPreset`),i=WO(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Nt(e.defaultEffort,`${t}.defaultEffort`),a=XO(e.effortAliases,`${t}.effortAliases`),c=gd(e.disabledEfforts,`${t}.disabledEfforts`),d=gd(e.localRejectEfforts,`${t}.localRejectEfforts`),l=B(e.allowCustomEffort,`${t}.allowCustomEffort`),f=B(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=B(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=B(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=B(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),w=B(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),k=B(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),h=B(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),o!==void 0&&(y.defaultEffort=o),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((P,S)=>{if(!Me(P))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${S}] must be an object`);return{value:bt(P.value,`${t}.supportedEfforts[${S}].value`),...Nt(P.description,`${t}.supportedEfforts[${S}].description`)!==void 0?{description:Nt(P.description,`${t}.supportedEfforts[${S}].description`)}:{},...B(P.isDefault,`${t}.supportedEfforts[${S}].isDefault`)!==void 0?{isDefault:B(P.isDefault,`${t}.supportedEfforts[${S}].isDefault`)}:{},...B(P.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)!==void 0?{isUserVisible:B(P.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Me(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let P={};for(let[S,Q]of Object.entries(e.budgetByEffort))P[S]=Je(Q,`${t}.budgetByEffort.${S}`)??0;y.budgetByEffort=P}return l!==void 0&&(y.allowCustomEffort=l),f!==void 0&&(y.supportsReasoningEffort=f),u!==void 0&&(y.supportsReasoningSummary=u),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),w!==void 0&&(y.supportsManualThinkingBudget=w),k!==void 0&&(y.supportsDisabledThinking=k),h!==void 0&&(y.requiresEffortBetaHeader=h),y}function Sd(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?yd(n,`${t}.reasoningProfile`):yd(r,`${t}.reasoningCapabilityV2`)}function FO(e,t){if(typeof e!="string"||!hd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${hd.join(", ")}, got ${JSON.stringify(e)}`);return e}function DO(e,t){if(typeof e!="string"||!Od.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Od.join(", ")}, got ${JSON.stringify(e)}`);return e}function NO(e,t){if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=bt(e.id,`${t}.id`),r=Nt(e.wireModel,`${t}.wireModel`),i=Nt(e.displayName,`${t}.displayName`),o=Je(e.contextWindow,`${t}.contextWindow`),a=Je(e.maxOutputTokens,`${t}.maxOutputTokens`),c=wd(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=Je(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=B(e.replayReasoningContent,`${t}.replayReasoningContent`),f=B(e.strictThinkingSignature,`${t}.strictThinkingSignature`),u=Je(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:Qo(e.reasoningCapability,`${t}.reasoningCapability`),g=Sd(e,t),w={id:n};return r!==void 0&&(w.wireModel=r),i!==void 0&&(w.displayName=i),o!==void 0&&(w.contextWindow=o),a!==void 0&&(w.maxOutputTokens=a),c!==void 0&&(w.maxOutputTokensField=c),d!==void 0&&(w.thinkingBudgetCap=d),m!==void 0&&(w.reasoningCapability=m),g!==void 0&&(w.reasoningProfile=g),l!==void 0&&(w.replayReasoningContent=l),f!==void 0&&(w.strictThinkingSignature=f),u!==void 0&&(w.streamMaxDurationMs=u),w}function LO(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=Qo(i,`${t}.${r}`);return n}function qO(e,t){if(!Me(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=B(e.cliBridge,`providers.${t}.cliBridge`),r=bt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=Qo(e.reasoningCapability,`providers.${t}.reasoningCapability`),o=Sd(e,`providers.${t}`),a=FO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=DO(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=Je(e.contextWindow,`providers.${t}.contextWindow`),l=Je(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=wd(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Je(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=B(e.supportsThinking,`providers.${t}.supportsThinking`),g=LO(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),w=Nt(e.model,`providers.${t}.model`);if(n&&(w!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&w===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let k;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);k=e.models.map((P,S)=>NO(P,`providers.${t}.models[${S}]`));let y=new Set([...w===void 0?[]:[w],...k.map(P=>P.id)]);for(let[P,S]of k.entries())if(S.wireModel!==void 0&&!y.has(S.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${P}].wireModel must reference a declared model, got ${JSON.stringify(S.wireModel)}`)}let h={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return o!==void 0&&(h.reasoningProfile=o),w!==void 0&&(h.model=w),k!==void 0&&(h.models=k),d!==void 0&&(h.contextWindow=d),l!==void 0&&(h.maxOutputTokens=l),f!==void 0&&(h.maxOutputTokensField=f),u!==void 0&&(h.thinkingBudgetCap=u),m!==void 0&&(h.supportsThinking=m),g!==void 0&&(h.modelReasoningCapabilities=g),n&&(h.cliBridge=!0),h}function bd(e){if(!Me(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=bt(e.updatedAt,"updatedAt");if(!Me(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=qO(i,r);return{version:1,updatedAt:t,providers:n}}var ld,ud,fd,pd,md,hd,Od,Pd=p(()=>{"use strict";ld=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],ud=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],fd=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],pd=["zai-glm-5.3","zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],md=["max_tokens","max_completion_tokens"],hd=["native","image-input-native","cli-bridge","image-input-cli-bridge"],Od=["count-tokens","models-list","minimal-message","unsupported"];s(Me,"isPlainObject");s(bt,"requireString");s(Nt,"optionalString");s(wd,"optionalMaxOutputTokensField");s(Je,"optionalNumber");s(B,"optionalBoolean");s(gd,"optionalStringArray");s(XO,"optionalStringMap");s(MO,"optionalReasoningPreset");s(Qo,"requireReasoningCapability");s(jO,"requireEffortStrategy");s(WO,"optionalThinkingStrategy");s(yd,"validateReasoningProfile");s(Sd,"validateReasoningProfileField");s(FO,"requireProfileName");s(DO,"requireVerifyStrategy");s(NO,"validateModelDescriptor");s(LO,"validateModelReasoningCapabilities");s(qO,"validateProviderEntry");s(bd,"validateProviderCapabilitiesJson")});import{existsSync as zO,readFileSync as UO}from"node:fs";import Lt from"node:path";import{fileURLToPath as VO}from"node:url";function YO(){if(process.env.KODAX_BUNDLED==="true")return Lt.join(Lt.dirname(process.execPath),"provider-capabilities.json");let e=Lt.dirname(VO(import.meta.url)),t=[Lt.join(e,"provider-capabilities.json"),Lt.join(Lt.dirname(e),"provider-capabilities.json")];for(let n of t)if(zO(n))return n;return t[0]}function GO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&vd(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&vd(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function vd(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}function BO(e){if(e==="gemini-cli"){let t=Dt();return{model:t,models:Sn().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Ft();return{model:t,models:wn().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function ZO(e,t){let n=KO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=BO(e),o={model:i.model,models:i.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(o.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(o.supportsThinking=t.supportsThinking),o}let r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.maxOutputTokensField!==void 0&&(r.maxOutputTokensField=t.maxOutputTokensField),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}function kd(){if(Ir)return Ir;let e=YO(),t;try{let i=UO(e,"utf8");t=JSON.parse(i)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${o}`)}let n=bd(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=GO(ZO(i,o));return Ir=Object.freeze(r),Ir}var KO,Ir,xd=p(()=>{"use strict";St();bn();Pd();KO=Object.freeze({native:hn,"image-input-native":Kc,"cli-bridge":Pr,"image-input-cli-bridge":Yc}),Ir=null;s(YO,"resolveJsonPath");s(GO,"deepFreezeSnapshot");s(vd,"freezeReasoningProfile");s(BO,"resolveCliBridgeModels");s(ZO,"buildSnapshot");s(kd,"getProviderSnapshots")});var $r,Td,Pn=p(()=>{"use strict";_r();Qr();ad();dd();Wt();br();St();xd();$r=kd(),Td=process.env.KODAX_PROVIDER??"zhipu-coding"});var Co=p(()=>{"use strict";_r();Qr();wt()});var Cr=p(()=>{"use strict";Co();Pn();St()});var jo=p(()=>{"use strict";Pn();Cr()});var Nd=p(()=>{"use strict";Pn();Cr();jo()});var Wo=p(()=>{"use strict";On();_r();Qr();Er();Pn();Co();Cr();jo();Nd();Tr()});var zd=p(()=>{"use strict";Wo();wt();So()});var Fo=p(()=>{"use strict"});var Do=p(()=>{"use strict";Fo()});var Ud=p(()=>{"use strict";Do();gn()});var vn=p(()=>{"use strict";br();Wt();wo();Uc();So();wt();zd();Wo();bn();xr();gn();mn();Fo();Do();Ud();bo();yn()});function L(e){let t=Sr(e),n=Qg.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Vd(t)}
90
+ `)}catch{}}function Vd(e){let t=Sr(e),n=Eg(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function Eg(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}var Qg,ge=p(()=>{"use strict";vn();Qg=[];s(L,"emitKodaXDiagnostic");s(Vd,"formatKodaXDiagnostic");s(Eg,"formatDiagnosticDetail")});var Kd=p(()=>{"use strict"});var Yd=p(()=>{"use strict"});var Gd=p(()=>{"use strict"});function Ig(){Bd+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${Bd}-${e}`}var kn,Bd,No=p(()=>{"use strict";kn=class e{static{s(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??Ig,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},Bd=0;s(Ig,"defaultNextSpanId")});function $g(){Zd+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Zd}-${e}`}function Lo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??$g)(),r=t(),i=e.name??"trace",o=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new kn({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(f);let u={id:n,startedAt:r,rootSpan:f,metadata:o,get endedAt(){return d},get error(){return l??f.error},end(){c||(c=!0,d=t(),f.end(),e.onTraceEnd&&e.onTraceEnd(u))}};return u}var Zd,qo=p(()=>{"use strict";No();Zd=0;s($g,"defaultNextTraceId");s(Lo,"createTrace")});function Uo(e){for(let t of zo)try{t.onSpanStart(e)}catch{}}function Vo(e){for(let t of zo)try{t.onSpanEnd(e)}catch{}}function Ko(e){for(let t of zo)try{t.onTraceEnd(e)}catch{}}var zo,Yo=p(()=>{"use strict";zo=[];s(Uo,"_emitSpanStart");s(Vo,"_emitSpanEnd");s(Ko,"_emitTraceEnd")});var Ar,Hd,Jd=p(()=>{"use strict";qo();Yo();Ar=class{static{s(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Lo({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:Uo,onSpanEnd:Vo,onTraceEnd:Ko})}},Hd=new Ar});var el=p(()=>{"use strict"});var tl=p(()=>{"use strict"});var Go=p(()=>{"use strict";No();qo();Jd();Yo();el();tl()});var xn=p(()=>{"use strict"});var Xr=p(()=>{"use strict"});var Wg,L0,Bo=p(()=>{"use strict";ge();xn();Xr();Wg=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],L0=new Set(Wg)});var Zo=p(()=>{"use strict";xn();Xr()});var Ho=p(()=>{"use strict"});var Jo=p(()=>{"use strict"});var es=p(()=>{"use strict"});var ts=p(()=>{"use strict";Go();Bo();Zo();Ho();Jo();es();fn()});var il=p(()=>{"use strict"});var ol=p(()=>{"use strict"});var sl=p(()=>{"use strict"});var al=p(()=>{"use strict";xn();il();ol();sl()});import{homedir as oy}from"node:os";import{isAbsolute as RC,normalize as sy,resolve as ay,sep as cl}from"node:path";import{join as ll}from"node:path";function Pt(){if(dl)return dl;let e=process.env[dy];return e&&e.length>0?e:ll(oy(),cy)}function Z(...e){return ll(Pt(),...e)}function Tn(e,t){let n=s(a=>{let c=sy(ay(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(cl)?i:`${i}${cl}`;return r===i||r.startsWith(o)}var cy,dy,dl,H=p(()=>{"use strict";cy=".kodax",dy="KODAX_HOME";s(Pt,"getAgentConfigHome");s(Z,"getAgentConfigPath");s(Tn,"isPathInsideDirectory")});var ul=p(()=>{"use strict";vn();H()});var ns=p(()=>{"use strict"});import{spawnSync as Rn}from"node:child_process";import{readFileSync as ly}from"node:fs";function ml(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}function rs(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function is(e){return rs(-e)||rs(e)}async function hl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!is(e))return!0;await new Promise(r=>setTimeout(r,50))}return!is(e)}function uy(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).flatMap(i=>{if(typeof i!="object"||i===null)return[];let o=i,a=Number(o.pid),c=Number(o.parentPid),d=typeof o.creationTime=="string"?o.creationTime:String(o.creationTime??"0");return!Number.isFinite(a)||a<=0||!Number.isFinite(c)?[]:[{pid:a,parentPid:c,creationTime:/^\d+$/.test(d)?d:"0"}]})}catch{return[]}}function fy(e){let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{6})([+-])(\d{3})$/.exec(e);if(!t)return;let[,n,r,i,o,a,c,d,l,f]=t,u=Date.UTC(Number(n),Number(r)-1,Number(i),Number(o),Number(a),Number(c),Number(d.slice(0,3))),m=Number(f)*6e4*(l==="+"?1:-1),g=u-m;if(Number.isFinite(g))return{identity:(BigInt(g)+11644473600000n).toString(),unixMs:g}}function py(){let e=["$cutoff = [DateTime]::UtcNow","$items = try { @(Get-CimInstance Win32_Process -ErrorAction Stop) } catch { @(Get-WmiObject Win32_Process -ErrorAction Stop) }","$rows = @($items | ForEach-Object {"," $creationTime = '0'"," try {"," $created = $_.CreationDate"," if ($created -isnot [DateTime]) { $created = [System.Management.ManagementDateTimeConverter]::ToDateTime([string]$created) }"," $created = $created.ToUniversalTime()"," if ($created -le $cutoff) { $creationTime = ([long][Math]::Floor($created.ToFileTimeUtc() / 10000)).ToString() }"," } catch {}"," [PSCustomObject]@{ pid = [int]$_.ProcessId; parentPid = [int]$_.ParentProcessId; creationTime = $creationTime }","})","$rows | ConvertTo-Json -Compress"].join(`
91
+ `),t=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:_n,windowsHide:!0});if(!t.error&&t.status===0){let o=uy(t.stdout);if(o.length>0)return o}let n=Date.now(),r=Rn("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:_n,windowsHide:!0});if(r.error||r.status!==0)return;let i=r.stdout.split(/\r?\n\s*\r?\n/).flatMap(o=>{let a=new Map(o.split(/\r?\n/).flatMap(u=>{let m=u.indexOf("=");return m<0?[]:[[u.slice(0,m),u.slice(m+1)]]})),c=Number(a.get("ProcessId")),d=Number(a.get("ParentProcessId")),l=a.get("CreationDate"),f=l===void 0?void 0:fy(l);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)||f===void 0||f.unixMs>n?[]:[{pid:c,parentPid:d,creationTime:f.identity}]});return i.length>0?i:void 0}function my(){let e=["$source = @'",wl,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
+ `),t=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:_n,windowsHide:!0});if(t.error||t.status!==0)return;let n=t.stdout.split(/\r?\n/).flatMap(r=>{let[i,o,a="0"]=r.split(",",3),c=Number(i),d=Number(o);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)?[]:[{pid:c,parentPid:d,creationTime:a}]});return n.length>0?n:void 0}function jr(){return my()??py()}function je(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=jr()?.find(i=>i.pid===e);return r?.creationTime==="0"?void 0:r?.creationTime}if(process.platform==="linux")try{let r=ly(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=Rn("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:_n,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function hy(e,t,n){let r=new Map;for(let c of e)r.set(c.parentPid,[...r.get(c.parentPid)??[],c]);let i=[],o=[{pid:t,...n===void 0?{}:{creationTime:n},ancestryVerified:n!==void 0&&n!=="0"}],a=new Set([t]);for(;o.length>0;){let c=o.shift();if(c===void 0)break;for(let d of r.get(c.pid)??[]){if(a.has(d.pid)||!Oy(d.creationTime,c.creationTime))continue;a.add(d.pid);let l=c.ancestryVerified&&d.creationTime!=="0";i.push(l?d:{...d,creationTime:"0"}),o.push({pid:d.pid,creationTime:d.creationTime,ancestryVerified:l})}}return i}function Oy(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function gy(e,t=jr()){if(t===void 0)return;let n=new Set(t.filter(i=>i.creationTime==="0").map(i=>i.pid));if(e.some(i=>n.has(i.pid)))return;let r=new Set(t.filter(i=>i.creationTime!=="0").map(i=>`${i.pid}:${i.creationTime}`));return new Set(e.filter(i=>i.creationTime!=="0").filter(i=>r.has(`${i.pid}:${i.creationTime}`)).map(i=>i.pid))}function Ol(e){let t=jr();if(t===void 0)return;let n=gy([e.root,...e.descendants],t);if(n!==void 0){if(n.size>0)return!1;if(e.completeTree)return e.uncertainDescendantPids.every(r=>!t.some(i=>i.pid===r))?!0:void 0}}function yy(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(rs)}async function gl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!yy(e))return Ol(e)===!0;await new Promise(r=>setTimeout(r,50))}return Ol(e)===!0}function yl(e,t){let n=[...e].reverse().flatMap(o=>/^\d+$/.test(o.creationTime)?[`[KodaXNativeProcessSnapshot]::TerminateExact(${o.pid}, [UInt64]${o.creationTime}) | Out-Null`]:[]);if(n.length===0)return!1;let r=["$source = @'",wl,"'@","Add-Type -TypeDefinition $source",...n].join(`
93
+ `),i=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function wy(e,t){let n=jr();if(n===void 0)return;let r=n.find(o=>o.pid===e);if(r===void 0||r.creationTime==="0"||r.creationTime!==t)return null;let i=hy(n,e,r.creationTime);return{root:r,descendants:i.filter(o=>o.creationTime!=="0"),uncertainDescendantPids:i.filter(o=>o.creationTime==="0").map(o=>o.pid),completeTree:!0}}async function Sy(e,t,n){let r=[e.root,...e.descendants],i=yl(r,t);return e.completeTree?await gl(e,n)?Mr:i?(yl(r,t),await gl(e,n)?Mr:et):et:et}function by(e,t,n,r){let i=n?.find(o=>o.pid===e);if(!(i?.creationTime!==t||n===void 0))return{root:{...i,parentPid:0},descendants:n.filter(o=>o.pid!==e&&o.creationTime!=="0").map(o=>({...o,parentPid:0})),uncertainDescendantPids:n.filter(o=>o.pid!==e&&o.creationTime==="0").map(o=>o.pid),completeTree:r}}async function Wr(e,t={}){if(process.platform==="win32"){let r=t.taskkillMs??_n,i=t.forceMs??fl,o=t.expectedProcessStartIdentity;if(o===void 0)return et;let a=by(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=wy(e,o)??a;return d===void 0||d===null?et:Sy(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return is(e)?et:pl;let n=t.forceMs??fl;return ml(e,"SIGTERM")?await hl(e,n)?Mr:(ml(e,"SIGKILL"),await hl(e,n)?Mr:et):pl}var fl,_n,FC,DC,wl,Mr,pl,et,Qn=p(()=>{"use strict";fl=2e3,_n=5e3,FC=String.raw`
94
94
  using System;
95
95
  using System.Runtime.InteropServices;
96
96
  public static class KodaXWindowsJobMembership {
@@ -157,7 +157,7 @@ public static class KodaXWindowsJobMembership {
157
157
  CloseHandle(job);
158
158
  }
159
159
  }
160
- }`,jC=String.raw`
160
+ }`,DC=String.raw`
161
161
  $ErrorActionPreference = 'Stop'
162
162
  $source = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($env:KODAX_INTERNAL_JOB_QUERY_SOURCE))
163
163
  Add-Type -TypeDefinition $source
@@ -165,7 +165,7 @@ if ([KodaXWindowsJobMembership]::IsCurrentProcessContained($env:KODAX_DAEMON_JOB
165
165
  [Console]::Out.Write('1')
166
166
  } else {
167
167
  [Console]::Out.Write('0')
168
- }`,pl=String.raw`
168
+ }`,wl=String.raw`
169
169
  using System;
170
170
  using System.Runtime.InteropServices;
171
171
  using System.Text;
@@ -252,7 +252,7 @@ public static class KodaXNativeProcessSnapshot {
252
252
  CloseHandle(snapshot);
253
253
  }
254
254
  }
255
- }`,Ar=Object.freeze({status:"terminated"}),al=Object.freeze({status:"already-exited"}),He=Object.freeze({status:"unknown"});s(cl,"signalPosixPidTree");s(es,"signalTargetExists");s(ts,"isPosixPidTreeAlive");s(dl,"waitForPosixPidTreeExit");s(ay,"parseWindowsProcessSnapshotJson");s(cy,"parseWmicCreationTime");s(dy,"readWindowsProcessSnapshotFallback");s(ly,"readWindowsProcessSnapshotNative");s(Xr,"readWindowsProcessSnapshot");s(Ae,"readProcessStartIdentity");s(uy,"collectDescendantIdentities");s(fy,"windowsCreationAtLeast");s(py,"currentCapturedWindowsPids");s(ll,"capturedWindowsProcessesGone");s(my,"capturedWindowsPidMayBeAlive");s(ul,"waitForCapturedWindowsProcessesExit");s(fl,"terminateCapturedWindowsProcesses");s(hy,"captureWindowsProcessTree");s(Oy,"killCapturedWindowsTree");s(gy,"retainedWindowsProcessTree");s(Mr,"killPidTree")});import{spawnSync as In}from"node:child_process";import{lstatSync as yy,mkdirSync as wy,realpathSync as ml,renameSync as Sy,readdirSync as by,readFileSync as Pl,rmSync as Fr,writeFileSync as zC}from"node:fs";import Z from"node:path";function Nr(){return Y("runtime","processes","children")}function vy(){return Y("processes","children")}function ky(){let e=vy(),t=Z.dirname(Z.dirname(e));try{let n=ml.native(t),r=t;for(let i of["processes","children"]){r=Z.join(r,i);let o=yy(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=ml.native(r),c=Z.relative(n,a);if(c===".."||c.startsWith(`..${Z.sep}`)||Z.isAbsolute(c))throw new Error(`Legacy managed-child path escapes Agent Home: ${r}`)}return e}catch(n){if(n.code==="ENOENT")return;q({source:"agent.managed-child-processes",level:"warn",message:"Ignored an unsafe legacy managed-child registry path.",detail:{directory:e,error:n}});return}}function vl(e,t){return Z.join(Nr(),`${e}.${t}.json`)}function Qn(e){let t=Z.join(Nr(),".unresolved"),n=Z.join(t,Z.basename(e));try{return wy(t,{recursive:!0}),Sy(e,n),!0}catch(r){return r.code==="ENOENT"?!0:(q({source:"agent.managed-child-processes",level:"warn",message:"Failed to isolate unresolved managed child recovery evidence.",detail:{filePath:e,target:n,error:r}}),!1)}}function hl(e,t){let n=Dr.get(e),r=vl(e,t),i=xl(r);return i.status==="unsupported"||i.status==="current"&&i.record.registrationId!==t?!1:(Fr(r,{force:!0}),n?.record.registrationId===t&&Dr.delete(e),!0)}function En(e){try{return Fr(e,{force:!0}),!0}catch(t){return q({source:"agent.managed-child-processes",level:"warn",message:"Failed to retire a persisted managed child record.",detail:{filePath:e,error:t}}),!1}}function jr(e){try{return process.kill(e,0),!0}catch{return!1}}function xy(e){return Z.basename(e).toLowerCase()}function Ol(e,t){let n=t.toLowerCase(),r=e.toLowerCase();if(n.includes(r))return!0;let i=Z.basename(r);return i.length>3&&n.includes(i)}function Ty(e){return e.length>3&&!e.startsWith("-")}function gl(e,t){let n=t.toLowerCase();if(!Ol(e.command,n)&&!n.includes(xy(e.command)))return!1;let r=e.args?.filter(Ty)??[];return r.length===0||r.some(i=>Ol(i,n))}function Ry(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function _y(e){if(e.ownerPid!==process.pid)return!1;let t=Dr.get(e.pid);return!t||t.child.exitCode!==null||t.child.signalCode!==null?!1:t.record.registeredAtMs===e.registeredAtMs&&t.record.registrationId===e.registrationId&&t.record.processStartIdentity===e.processStartIdentity&&t.record.kind===e.kind&&t.record.command===e.command&&Ry(t.record.args,e.args)&&t.record.cwd===e.cwd}function Qy(e){if(process.platform==="win32"){let r=kl(e);if(r.status!=="found")return;let i=ns(r.info.CreationDate);return i===void 0?void 0:`windows:${(BigInt(i)+11644473600000n).toString()}`}if(process.platform==="linux")try{let r=Pl(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=In("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:$n}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function yl(e,t){if(!jr(e.ownerPid))return"gone";if(e.ownerProcessStartIdentity===void 0)return"unknown";let n=t(e.ownerPid);return n===void 0?"unknown":n===e.ownerProcessStartIdentity?"alive":"gone"}function ns(e){if(!e)return;let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{1,6})([+-]\d{3})/.exec(e);if(t){let[,i,o,a,c,d,l,f,u]=t;return Date.UTC(Number(i),Number(o)-1,Number(a),Number(c),Number(d),Number(l),Number(f.slice(0,3).padEnd(3,"0")))-Number(u)*6e4}let n=/\/Date\((\d+)\)\//.exec(e);if(n?.[1])return Number(n[1]);let r=Date.parse(e);return Number.isFinite(r)?r:void 0}function Ey(e){return e.replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function Iy(e){let t={};for(let n of e.split(/\r?\n/)){let r=n.trim(),i=r.indexOf("=");if(i<=0)continue;let o=r.slice(0,i),a=Ey(r.slice(i+1).trim());if(o==="ProcessId"){let c=Number(a);Number.isFinite(c)&&(t.ProcessId=c)}else o==="CreationDate"?t.CreationDate=a:o==="CommandLine"&&(t.CommandLine=a)}return t.ProcessId===void 0?void 0:t}function Wr(e){let t=In("wmic",["process","where",`ProcessId=${e}`,"get","ProcessId,CreationDate,CommandLine","/format:list"],{encoding:"utf8",timeout:$n,windowsHide:!0});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"unknown"};let n=Iy(t.stdout);return n?{status:"found",info:n}:{status:"missing"}}function kl(e){let t=[`$p = Get-CimInstance Win32_Process -Filter "ProcessId = ${e}"`,"if ($null -eq $p) { exit 0 }","$p | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),n=In("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:$n,windowsHide:!0});if(n.error||n.status!==0)return Wr(e);if(!n.stdout.trim())return{status:"missing"};try{return{status:"found",info:JSON.parse(n.stdout)}}catch{return Wr(e)}}function $y(e){let t=In("ps",["-p",String(e),"-o","command="],{encoding:"utf8",timeout:$n});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"missing"};let n=t.stdout.trim();return n?{status:"found",commandLine:n}:{status:"missing"}}function Cy(e){if(process.platform==="win32"){let n=kl(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!gl(e,r.CommandLine))return!1;let i=ns(r.CreationDate);return i===void 0||e.processStartIdentity===void 0?void 0:(BigInt(i)+11644473600000n).toString()===e.processStartIdentity}let t=$y(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:gl(e,t.commandLine)}function xl(e){try{let t=JSON.parse(Pl(e,"utf8"));return jy(t)?t.version!==Py?Number.isSafeInteger(t.version)&&typeof t.version=="number"&&t.version>0?{status:"unsupported",record:{pid:t.pid,ownerPid:t.ownerPid,...typeof t.ownerProcessStartIdentity=="string"?{ownerProcessStartIdentity:t.ownerProcessStartIdentity}:{}}}:{status:"invalid"}:typeof t.registrationId!="string"||t.args!==void 0&&(!Array.isArray(t.args)||t.args.some(n=>typeof n!="string"))||t.cwd!==void 0&&typeof t.cwd!="string"||t.processStartIdentity!==void 0&&typeof t.processStartIdentity!="string"||t.ownerProcessStartIdentity!==void 0&&typeof t.ownerProcessStartIdentity!="string"||t.processTreeComplete!==void 0&&typeof t.processTreeComplete!="boolean"||t.processTreeIdentities!==void 0&&(!Array.isArray(t.processTreeIdentities)||t.processTreeIdentities.some(n=>typeof n!="object"||n===null||typeof n.pid!="number"||typeof n.creationTime!="string"))?{status:"invalid"}:{status:"current",record:t}:{status:"invalid"}}catch{return{status:"invalid"}}}function Ay(e){try{let t=JSON.parse(e);return(Array.isArray(t)?t:[t]).flatMap(r=>{if(typeof r!="object"||r===null)return[];let i=r;return typeof i.ProcessId!="number"?[]:[{ProcessId:i.ProcessId,...typeof i.CreationDate=="string"?{CreationDate:i.CreationDate}:{},...typeof i.CommandLine=="string"?{CommandLine:i.CommandLine}:{}}]})}catch{return}}function Xy(e){let t=[...new Set(e)];if(t.length===0)return new Map;let n=[`$ids = @(${t.join(",")})`,"$rows = @(Get-CimInstance Win32_Process | Where-Object { $ids -contains $_.ProcessId })","$rows | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),r=In("powershell.exe",["-NoProfile","-NonInteractive","-Command",n],{encoding:"utf8",timeout:$n,windowsHide:!0}),i=r.error||r.status!==0||!r.stdout.trim()?void 0:Ay(r.stdout);if(i===void 0)return new Map(t.map(a=>[a,Wr(a)]));let o=new Map(i.map(a=>[a.ProcessId,a]));return new Map(t.map(a=>[a,o.has(a)?{status:"found",info:o.get(a)}:{status:"missing"}]))}function My(e){return process.platform!=="win32"?new Map(e.map(t=>[t,Qy(t)])):new Map([...Xy(e)].map(([t,n])=>{if(n.status!=="found")return[t,void 0];let r=ns(n.info.CreationDate);return[t,r===void 0?void 0:`windows:${(BigInt(r)+11644473600000n).toString()}`]}))}function jy(e){return typeof e=="object"&&e!==null&&typeof e.pid=="number"&&typeof e.ownerPid=="number"&&typeof e.registeredAtMs=="number"&&typeof e.kind=="string"&&typeof e.command=="string"}async function rs(e={}){let t=0,n=0,r=0,i=0,o=0,a=[],c=[],d=s(h=>{r+=1,h===process.pid&&(i+=1)},"skip"),l=await Wy(e);t+=l.killed,n+=l.pruned,r+=l.skipped,i+=l.unresolved;let f=ky(),u=[{directory:Nr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...by(h.directory).filter(y=>y.endsWith(".json")).map(y=>({file:y,filePath:Z.join(h.directory,y),current:h.current})))}catch(y){y.code!=="ENOENT"&&c.push(new Error(`Managed child registry is unreadable: ${h.directory}`,{cause:y}))}let m=a.filter(({current:h,file:y})=>!h||!l.processedFiles.has(y)).map(({filePath:h,current:y})=>({filePath:h,current:y,persisted:xl(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&jr(h.record.ownerPid)?[h.record.ownerPid]:[]),w=My(g),x=s(h=>w.get(h),"readOwnerStartIdentity");for(let{filePath:h,current:y,persisted:b}of m){if(!y){if(b.status==="invalid"){En(h)?n+=1:d();continue}Qn(h)&&(o+=1),d(b.record.ownerPid);continue}if(b.status==="unsupported"){if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&b.record.ownerPid===process.pid){Fr(h,{force:!0}),n+=1;continue}yl(b.record,x)==="gone"&&!jr(b.record.pid)&&Qn(h)&&(o+=1),d(b.record.ownerPid);continue}if(b.status==="invalid"){Fr(h,{force:!0}),n+=1;continue}let S=b.record;if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&S.ownerPid===process.pid){En(h)?n+=1:d(S.ownerPid);continue}if(!e.includeCurrentOwner&&S.ownerPid===process.pid){let P=x(process.pid);if(S.ownerProcessStartIdentity===void 0||P===void 0||S.ownerProcessStartIdentity===P){d(S.ownerPid);continue}}if(S.ownerPid!==process.pid&&yl(S,x)!=="gone"){d(S.ownerPid);continue}let Q=jr(S.pid);if(!Q){if(process.platform!=="win32"){En(h)?n+=1:d(S.ownerPid);continue}let P=S.processTreeIdentities?.find(k=>k.pid===S.pid);if(S.processStartIdentity===void 0||P?.creationTime!==S.processStartIdentity){Qn(h)&&(o+=1),d(S.ownerPid);continue}}let T=Q?_y(S)?!0:Cy(S):!0;if(T===void 0){d(S.ownerPid);continue}if(!T){if(process.platform!=="win32"){En(h)?n+=1:d(S.ownerPid);continue}let P=S.processTreeIdentities?.find(k=>k.pid===S.pid);if(S.processStartIdentity===void 0||P?.creationTime!==S.processStartIdentity){Qn(h)&&(o+=1),d(S.ownerPid);continue}}(await Mr(S.pid,{...S.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:S.processStartIdentity},...S.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:S.processTreeIdentities},expectedProcessTreeComplete:S.processTreeComplete===!0})).status!=="unknown"?En(h)?t+=1:d(S.ownerPid):(process.platform==="win32"&&(!Q||T===!1)&&Qn(h)&&(o+=1),d(S.ownerPid))}if(o>0&&q({source:"agent.managed-child-processes",level:"warn",message:`Isolated ${o} unresolved managed child record(s) from startup cleanup.`,detail:{quarantined:o,directory:Z.join(Nr(),".unresolved")}}),e.requireCurrentOwnerCleanup===!0){let h=[];if(h.push(...c),i>0&&h.push(new Error(`Managed child cleanup could not verify ${i} current-owner process tree(s).`)),h.length===1)throw h[0];if(h.length>1)throw new AggregateError(h,"Managed child final cleanup failed because registry evidence is unreadable or unresolved.")}return{killed:t,pruned:n,skipped:r}}async function Wy(e){if(e.includeCurrentOwner!==!0)return{killed:0,pruned:0,skipped:0,unresolved:0,processedFiles:new Set};let t=0,n=0,r=0,i=0,o=new Set,a=[...Dr.values()].filter(({record:c})=>c.ownerPid===process.pid);for(let{record:c}of a){if(o.add(Z.basename(vl(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){hl(c.pid,c.registrationId)?n+=1:(r+=1,i+=1);continue}try{(await Mr(c.pid,{...c.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:c.processStartIdentity},...c.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:c.processTreeIdentities},expectedProcessTreeComplete:c.processTreeComplete===!0})).status==="unknown"||!hl(c.pid,c.registrationId)?(r+=1,i+=1):t+=1}catch(d){q({source:"agent.managed-child-processes",level:"warn",message:"Failed to reclaim an active current-owner managed child.",detail:{pid:c.pid,error:d}}),r+=1,i+=1}}return{killed:t,pruned:n,skipped:r,unresolved:i,processedFiles:o}}var Py,$n,Dr,is=p(()=>{"use strict";pe();G();_n();Py=4,$n=5e3,Dr=new Map;s(Nr,"registryDir");s(vy,"legacyRegistryDir");s(ky,"verifiedLegacyRegistryDir");s(vl,"registryPath");s(Qn,"quarantineRecord");s(hl,"removeRecord");s(En,"removePersistedRecord");s(jr,"isPidAlive");s(xy,"commandNeedle");s(Ol,"tokenMatches");s(Ty,"significantArg");s(gl,"commandMatches");s(Ry,"argsMatch");s(_y,"activeChildMatchesRecord");s(Qy,"processStartIdentity");s(yl,"managedOwnerState");s(ns,"parseWindowsDate");s(Ey,"decodeWmicValue");s(Iy,"parseWmicListOutput");s(Wr,"getWindowsProcessInfoViaWmic");s(kl,"getWindowsProcessInfo");s($y,"getPosixCommandLine");s(Cy,"isConfirmedRecord");s(xl,"readRecord");s(Ay,"parseWindowsProcessInfoRows");s(Xy,"getWindowsProcessInfos");s(My,"processStartIdentities");s(jy,"isManagedChildRecordBase");s(rs,"cleanupRegisteredManagedChildren");s(Wy,"cleanupActiveCurrentOwnerChildren")});var Tl,Fy,Dy,ZC,Rl=p(()=>{"use strict";Tl="KODAX_EFFECT_JOB_PAYLOAD",Fy=String.raw`
255
+ }`,Mr=Object.freeze({status:"terminated"}),pl=Object.freeze({status:"already-exited"}),et=Object.freeze({status:"unknown"});s(ml,"signalPosixPidTree");s(rs,"signalTargetExists");s(is,"isPosixPidTreeAlive");s(hl,"waitForPosixPidTreeExit");s(uy,"parseWindowsProcessSnapshotJson");s(fy,"parseWmicCreationTime");s(py,"readWindowsProcessSnapshotFallback");s(my,"readWindowsProcessSnapshotNative");s(jr,"readWindowsProcessSnapshot");s(je,"readProcessStartIdentity");s(hy,"collectDescendantIdentities");s(Oy,"windowsCreationAtLeast");s(gy,"currentCapturedWindowsPids");s(Ol,"capturedWindowsProcessesGone");s(yy,"capturedWindowsPidMayBeAlive");s(gl,"waitForCapturedWindowsProcessesExit");s(yl,"terminateCapturedWindowsProcesses");s(wy,"captureWindowsProcessTree");s(Sy,"killCapturedWindowsTree");s(by,"retainedWindowsProcessTree");s(Wr,"killPidTree")});import{spawnSync as $n}from"node:child_process";import{lstatSync as Py,mkdirSync as vy,realpathSync as Sl,renameSync as ky,readdirSync as xy,readFileSync as _l,rmSync as Nr,writeFileSync as KC}from"node:fs";import ee from"node:path";function qr(){return Z("runtime","processes","children")}function Ry(){return Z("processes","children")}function _y(){let e=Ry(),t=ee.dirname(ee.dirname(e));try{let n=Sl.native(t),r=t;for(let i of["processes","children"]){r=ee.join(r,i);let o=Py(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=Sl.native(r),c=ee.relative(n,a);if(c===".."||c.startsWith(`..${ee.sep}`)||ee.isAbsolute(c))throw new Error(`Legacy managed-child path escapes Agent Home: ${r}`)}return e}catch(n){if(n.code==="ENOENT")return;L({source:"agent.managed-child-processes",level:"warn",message:"Ignored an unsafe legacy managed-child registry path.",detail:{directory:e,error:n}});return}}function Ql(e,t){return ee.join(qr(),`${e}.${t}.json`)}function En(e){let t=ee.join(qr(),".unresolved"),n=ee.join(t,ee.basename(e));try{return vy(t,{recursive:!0}),ky(e,n),!0}catch(r){return r.code==="ENOENT"?!0:(L({source:"agent.managed-child-processes",level:"warn",message:"Failed to isolate unresolved managed child recovery evidence.",detail:{filePath:e,target:n,error:r}}),!1)}}function bl(e,t){let n=Lr.get(e),r=Ql(e,t),i=Il(r);return i.status==="unsupported"||i.status==="current"&&i.record.registrationId!==t?!1:(Nr(r,{force:!0}),n?.record.registrationId===t&&Lr.delete(e),!0)}function In(e){try{return Nr(e,{force:!0}),!0}catch(t){return L({source:"agent.managed-child-processes",level:"warn",message:"Failed to retire a persisted managed child record.",detail:{filePath:e,error:t}}),!1}}function Fr(e){try{return process.kill(e,0),!0}catch{return!1}}function Qy(e){return ee.basename(e).toLowerCase()}function Pl(e,t){let n=t.toLowerCase(),r=e.toLowerCase();if(n.includes(r))return!0;let i=ee.basename(r);return i.length>3&&n.includes(i)}function Ey(e){return e.length>3&&!e.startsWith("-")}function vl(e,t){let n=t.toLowerCase();if(!Pl(e.command,n)&&!n.includes(Qy(e.command)))return!1;let r=e.args?.filter(Ey)??[];return r.length===0||r.some(i=>Pl(i,n))}function Iy(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function $y(e){if(e.ownerPid!==process.pid)return!1;let t=Lr.get(e.pid);return!t||t.child.exitCode!==null||t.child.signalCode!==null?!1:t.record.registeredAtMs===e.registeredAtMs&&t.record.registrationId===e.registrationId&&t.record.processStartIdentity===e.processStartIdentity&&t.record.kind===e.kind&&t.record.command===e.command&&Iy(t.record.args,e.args)&&t.record.cwd===e.cwd}function Cy(e){if(process.platform==="win32"){let r=El(e);if(r.status!=="found")return;let i=os(r.info.CreationDate);return i===void 0?void 0:`windows:${(BigInt(i)+11644473600000n).toString()}`}if(process.platform==="linux")try{let r=_l(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=$n("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Cn}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function kl(e,t){if(!Fr(e.ownerPid))return"gone";if(e.ownerProcessStartIdentity===void 0)return"unknown";let n=t(e.ownerPid);return n===void 0?"unknown":n===e.ownerProcessStartIdentity?"alive":"gone"}function os(e){if(!e)return;let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{1,6})([+-]\d{3})/.exec(e);if(t){let[,i,o,a,c,d,l,f,u]=t;return Date.UTC(Number(i),Number(o)-1,Number(a),Number(c),Number(d),Number(l),Number(f.slice(0,3).padEnd(3,"0")))-Number(u)*6e4}let n=/\/Date\((\d+)\)\//.exec(e);if(n?.[1])return Number(n[1]);let r=Date.parse(e);return Number.isFinite(r)?r:void 0}function Ay(e){return e.replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function Xy(e){let t={};for(let n of e.split(/\r?\n/)){let r=n.trim(),i=r.indexOf("=");if(i<=0)continue;let o=r.slice(0,i),a=Ay(r.slice(i+1).trim());if(o==="ProcessId"){let c=Number(a);Number.isFinite(c)&&(t.ProcessId=c)}else o==="CreationDate"?t.CreationDate=a:o==="CommandLine"&&(t.CommandLine=a)}return t.ProcessId===void 0?void 0:t}function Dr(e){let t=$n("wmic",["process","where",`ProcessId=${e}`,"get","ProcessId,CreationDate,CommandLine","/format:list"],{encoding:"utf8",timeout:Cn,windowsHide:!0});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"unknown"};let n=Xy(t.stdout);return n?{status:"found",info:n}:{status:"missing"}}function El(e){let t=[`$p = Get-CimInstance Win32_Process -Filter "ProcessId = ${e}"`,"if ($null -eq $p) { exit 0 }","$p | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),n=$n("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:Cn,windowsHide:!0});if(n.error||n.status!==0)return Dr(e);if(!n.stdout.trim())return{status:"missing"};try{return{status:"found",info:JSON.parse(n.stdout)}}catch{return Dr(e)}}function My(e){let t=$n("ps",["-p",String(e),"-o","command="],{encoding:"utf8",timeout:Cn});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"missing"};let n=t.stdout.trim();return n?{status:"found",commandLine:n}:{status:"missing"}}function jy(e){if(process.platform==="win32"){let n=El(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!vl(e,r.CommandLine))return!1;let i=os(r.CreationDate);return i===void 0||e.processStartIdentity===void 0?void 0:(BigInt(i)+11644473600000n).toString()===e.processStartIdentity}let t=My(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:vl(e,t.commandLine)}function Il(e){try{let t=JSON.parse(_l(e,"utf8"));return Ny(t)?t.version!==Ty?Number.isSafeInteger(t.version)&&typeof t.version=="number"&&t.version>0?{status:"unsupported",record:{pid:t.pid,ownerPid:t.ownerPid,...typeof t.ownerProcessStartIdentity=="string"?{ownerProcessStartIdentity:t.ownerProcessStartIdentity}:{}}}:{status:"invalid"}:typeof t.registrationId!="string"||t.args!==void 0&&(!Array.isArray(t.args)||t.args.some(n=>typeof n!="string"))||t.cwd!==void 0&&typeof t.cwd!="string"||t.processStartIdentity!==void 0&&typeof t.processStartIdentity!="string"||t.ownerProcessStartIdentity!==void 0&&typeof t.ownerProcessStartIdentity!="string"||t.processTreeComplete!==void 0&&typeof t.processTreeComplete!="boolean"||t.processTreeIdentities!==void 0&&(!Array.isArray(t.processTreeIdentities)||t.processTreeIdentities.some(n=>typeof n!="object"||n===null||typeof n.pid!="number"||typeof n.creationTime!="string"))?{status:"invalid"}:{status:"current",record:t}:{status:"invalid"}}catch{return{status:"invalid"}}}function Wy(e){try{let t=JSON.parse(e);return(Array.isArray(t)?t:[t]).flatMap(r=>{if(typeof r!="object"||r===null)return[];let i=r;return typeof i.ProcessId!="number"?[]:[{ProcessId:i.ProcessId,...typeof i.CreationDate=="string"?{CreationDate:i.CreationDate}:{},...typeof i.CommandLine=="string"?{CommandLine:i.CommandLine}:{}}]})}catch{return}}function Fy(e){let t=[...new Set(e)];if(t.length===0)return new Map;let n=[`$ids = @(${t.join(",")})`,"$rows = @(Get-CimInstance Win32_Process | Where-Object { $ids -contains $_.ProcessId })","$rows | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),r=$n("powershell.exe",["-NoProfile","-NonInteractive","-Command",n],{encoding:"utf8",timeout:Cn,windowsHide:!0}),i=r.error||r.status!==0||!r.stdout.trim()?void 0:Wy(r.stdout);if(i===void 0)return new Map(t.map(a=>[a,Dr(a)]));let o=new Map(i.map(a=>[a.ProcessId,a]));return new Map(t.map(a=>[a,o.has(a)?{status:"found",info:o.get(a)}:{status:"missing"}]))}function Dy(e){return process.platform!=="win32"?new Map(e.map(t=>[t,Cy(t)])):new Map([...Fy(e)].map(([t,n])=>{if(n.status!=="found")return[t,void 0];let r=os(n.info.CreationDate);return[t,r===void 0?void 0:`windows:${(BigInt(r)+11644473600000n).toString()}`]}))}function Ny(e){return typeof e=="object"&&e!==null&&typeof e.pid=="number"&&typeof e.ownerPid=="number"&&typeof e.registeredAtMs=="number"&&typeof e.kind=="string"&&typeof e.command=="string"}async function ss(e={}){let t=0,n=0,r=0,i=0,o=0,a=[],c=[],d=s(h=>{r+=1,h===process.pid&&(i+=1)},"skip"),l=await Ly(e);t+=l.killed,n+=l.pruned,r+=l.skipped,i+=l.unresolved;let f=_y(),u=[{directory:qr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...xy(h.directory).filter(y=>y.endsWith(".json")).map(y=>({file:y,filePath:ee.join(h.directory,y),current:h.current})))}catch(y){y.code!=="ENOENT"&&c.push(new Error(`Managed child registry is unreadable: ${h.directory}`,{cause:y}))}let m=a.filter(({current:h,file:y})=>!h||!l.processedFiles.has(y)).map(({filePath:h,current:y})=>({filePath:h,current:y,persisted:Il(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&Fr(h.record.ownerPid)?[h.record.ownerPid]:[]),w=Dy(g),k=s(h=>w.get(h),"readOwnerStartIdentity");for(let{filePath:h,current:y,persisted:P}of m){if(!y){if(P.status==="invalid"){In(h)?n+=1:d();continue}En(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="unsupported"){if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&P.record.ownerPid===process.pid){Nr(h,{force:!0}),n+=1;continue}kl(P.record,k)==="gone"&&!Fr(P.record.pid)&&En(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="invalid"){Nr(h,{force:!0}),n+=1;continue}let S=P.record;if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&S.ownerPid===process.pid){In(h)?n+=1:d(S.ownerPid);continue}if(!e.includeCurrentOwner&&S.ownerPid===process.pid){let b=k(process.pid);if(S.ownerProcessStartIdentity===void 0||b===void 0||S.ownerProcessStartIdentity===b){d(S.ownerPid);continue}}if(S.ownerPid!==process.pid&&kl(S,k)!=="gone"){d(S.ownerPid);continue}let Q=Fr(S.pid);if(!Q){if(process.platform!=="win32"){In(h)?n+=1:d(S.ownerPid);continue}let b=S.processTreeIdentities?.find(I=>I.pid===S.pid);if(S.processStartIdentity===void 0||b?.creationTime!==S.processStartIdentity){En(h)&&(o+=1),d(S.ownerPid);continue}}let x=Q?$y(S)?!0:jy(S):!0;if(x===void 0){d(S.ownerPid);continue}if(!x){if(process.platform!=="win32"){In(h)?n+=1:d(S.ownerPid);continue}let b=S.processTreeIdentities?.find(I=>I.pid===S.pid);if(S.processStartIdentity===void 0||b?.creationTime!==S.processStartIdentity){En(h)&&(o+=1),d(S.ownerPid);continue}}(await Wr(S.pid,{...S.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:S.processStartIdentity},...S.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:S.processTreeIdentities},expectedProcessTreeComplete:S.processTreeComplete===!0})).status!=="unknown"?In(h)?t+=1:d(S.ownerPid):(process.platform==="win32"&&(!Q||x===!1)&&En(h)&&(o+=1),d(S.ownerPid))}if(o>0&&L({source:"agent.managed-child-processes",level:"warn",message:`Isolated ${o} unresolved managed child record(s) from startup cleanup.`,detail:{quarantined:o,directory:ee.join(qr(),".unresolved")}}),e.requireCurrentOwnerCleanup===!0){let h=[];if(h.push(...c),i>0&&h.push(new Error(`Managed child cleanup could not verify ${i} current-owner process tree(s).`)),h.length===1)throw h[0];if(h.length>1)throw new AggregateError(h,"Managed child final cleanup failed because registry evidence is unreadable or unresolved.")}return{killed:t,pruned:n,skipped:r}}async function Ly(e){if(e.includeCurrentOwner!==!0)return{killed:0,pruned:0,skipped:0,unresolved:0,processedFiles:new Set};let t=0,n=0,r=0,i=0,o=new Set,a=[...Lr.values()].filter(({record:c})=>c.ownerPid===process.pid);for(let{record:c}of a){if(o.add(ee.basename(Ql(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){bl(c.pid,c.registrationId)?n+=1:(r+=1,i+=1);continue}try{(await Wr(c.pid,{...c.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:c.processStartIdentity},...c.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:c.processTreeIdentities},expectedProcessTreeComplete:c.processTreeComplete===!0})).status==="unknown"||!bl(c.pid,c.registrationId)?(r+=1,i+=1):t+=1}catch(d){L({source:"agent.managed-child-processes",level:"warn",message:"Failed to reclaim an active current-owner managed child.",detail:{pid:c.pid,error:d}}),r+=1,i+=1}}return{killed:t,pruned:n,skipped:r,unresolved:i,processedFiles:o}}var Ty,Cn,Lr,as=p(()=>{"use strict";ge();H();Qn();Ty=4,Cn=5e3,Lr=new Map;s(qr,"registryDir");s(Ry,"legacyRegistryDir");s(_y,"verifiedLegacyRegistryDir");s(Ql,"registryPath");s(En,"quarantineRecord");s(bl,"removeRecord");s(In,"removePersistedRecord");s(Fr,"isPidAlive");s(Qy,"commandNeedle");s(Pl,"tokenMatches");s(Ey,"significantArg");s(vl,"commandMatches");s(Iy,"argsMatch");s($y,"activeChildMatchesRecord");s(Cy,"processStartIdentity");s(kl,"managedOwnerState");s(os,"parseWindowsDate");s(Ay,"decodeWmicValue");s(Xy,"parseWmicListOutput");s(Dr,"getWindowsProcessInfoViaWmic");s(El,"getWindowsProcessInfo");s(My,"getPosixCommandLine");s(jy,"isConfirmedRecord");s(Il,"readRecord");s(Wy,"parseWindowsProcessInfoRows");s(Fy,"getWindowsProcessInfos");s(Dy,"processStartIdentities");s(Ny,"isManagedChildRecordBase");s(ss,"cleanupRegisteredManagedChildren");s(Ly,"cleanupActiveCurrentOwnerChildren")});var $l,qy,zy,eA,Cl=p(()=>{"use strict";$l="KODAX_EFFECT_JOB_PAYLOAD",qy=String.raw`
256
256
  using System;
257
257
  using System.IO;
258
258
  using System.Runtime.InteropServices;
@@ -412,14 +412,14 @@ public static class KodaXEffectJob {
412
412
  CloseHandle(job);
413
413
  }
414
414
  }
415
- }`,Dy=String.raw`
415
+ }`,zy=String.raw`
416
416
  $ErrorActionPreference = 'Stop'
417
417
  try {
418
418
  $payload = [Text.Encoding]::UTF8.GetString(
419
- [Convert]::FromBase64String($env:${Tl})) | ConvertFrom-Json
420
- Remove-Item Env:${Tl} -ErrorAction SilentlyContinue
419
+ [Convert]::FromBase64String($env:${$l})) | ConvertFrom-Json
420
+ Remove-Item Env:${$l} -ErrorAction SilentlyContinue
421
421
  $source = @'
422
- ${Fy}
422
+ ${qy}
423
423
  '@
424
424
  Add-Type -TypeDefinition $source
425
425
  [KodaXEffectJob]::Run(
@@ -431,29 +431,29 @@ ${Fy}
431
431
  [Console]::Out.WriteLine('ERROR:' + $_.Exception.Message)
432
432
  [Console]::Out.Flush()
433
433
  exit 1
434
- }`,ZC=Buffer.from(Dy,"utf16le").toString("base64")});var _l=p(()=>{"use strict"});var os=p(()=>{"use strict"});var Ql=p(()=>{"use strict"});var El=p(()=>{"use strict";os()});var as=p(()=>{"use strict";os();Ql();El()});var qt=p(()=>{"use strict"});var Cl=p(()=>{"use strict";qt()});var Gy,ds=p(()=>{"use strict";qt();Gy=Math.floor(3.75*1024*1024)});var Al=p(()=>{"use strict";qt();ds()});var Zy,Xl=p(()=>{"use strict";Zy=1440*60*1e3});var ls=p(()=>{"use strict";Pn()});var us=p(()=>{"use strict";qt();ls()});var Ml=p(()=>{"use strict";as();us()});var jl=p(()=>{"use strict";qt();Cl();ds();Al();Xl();ls();us();Ml()});var Cn=p(()=>{"use strict"});var Nl=p(()=>{"use strict";Ho();Cn();Cn();Cn()});var Ll=p(()=>{"use strict"});var ql=p(()=>{"use strict";Cn();Nl();Ll()});var fs=p(()=>{"use strict";G()});var ps=p(()=>{"use strict";G()});var zl=p(()=>{"use strict"});var ms=p(()=>{"use strict"});var Ul=p(()=>{"use strict";ms();ps();fs()});var Vl=p(()=>{"use strict";pe()});var Kl=p(()=>{"use strict"});var hs=p(()=>{"use strict";Vl();Kl()});var Lr=p(()=>{"use strict"});var Yl=p(()=>{"use strict"});var qr=p(()=>{"use strict";G();Lr();Lr()});var Bl=p(()=>{"use strict"});var Zl=p(()=>{"use strict"});var zr=p(()=>{"use strict";Lr();Yl();qr();Bl();Zl()});var tu=p(()=>{"use strict"});var gs=p(()=>{"use strict"});import{fileURLToPath as kw}from"url";import{dirname as xw}from"path";var Tw,PM,ys=p(()=>{"use strict";gs();Tw=kw(import.meta.url),PM=xw(Tw)});import nu from"yaml";function _w(e){let t=e.split(`
434
+ }`,eA=Buffer.from(zy,"utf16le").toString("base64")});var Al=p(()=>{"use strict"});var cs=p(()=>{"use strict"});var Xl=p(()=>{"use strict"});var Ml=p(()=>{"use strict";cs()});var ls=p(()=>{"use strict";cs();Xl();Ml()});var qt=p(()=>{"use strict"});var Fl=p(()=>{"use strict";qt()});var Jy,fs=p(()=>{"use strict";qt();Jy=Math.floor(3.75*1024*1024)});var Dl=p(()=>{"use strict";qt();fs()});var tw,Nl=p(()=>{"use strict";tw=1440*60*1e3});var ps=p(()=>{"use strict";vn()});var ms=p(()=>{"use strict";qt();ps()});var Ll=p(()=>{"use strict";ls();ms()});var ql=p(()=>{"use strict";qt();Fl();fs();Dl();Nl();ps();ms();Ll()});var An=p(()=>{"use strict"});var Kl=p(()=>{"use strict";ts();An();An();An()});var Yl=p(()=>{"use strict"});var Gl=p(()=>{"use strict";An();Kl();Yl()});var hs=p(()=>{"use strict";H()});var Os=p(()=>{"use strict";H()});var Bl=p(()=>{"use strict"});var gs=p(()=>{"use strict"});var Zl=p(()=>{"use strict";gs();Os();hs()});var Hl=p(()=>{"use strict";ge()});var Jl=p(()=>{"use strict"});var ys=p(()=>{"use strict";Hl();Jl()});var zr=p(()=>{"use strict"});var eu=p(()=>{"use strict"});var Ur=p(()=>{"use strict";H();zr();zr()});var nu=p(()=>{"use strict"});var ru=p(()=>{"use strict"});var Vr=p(()=>{"use strict";zr();eu();Ur();nu();ru()});var au=p(()=>{"use strict"});var Ss=p(()=>{"use strict"});import{fileURLToPath as _w}from"url";import{dirname as Qw}from"path";var Ew,xM,bs=p(()=>{"use strict";Ss();Ew=_w(import.meta.url),xM=Qw(Ew)});import cu from"yaml";function $w(e){let t=e.split(`
435
435
  `),n=[];for(let r of t){let i=r.indexOf(":");if(i>0){let o=r.slice(0,i).trim(),a=r.slice(i+1).trim();if(a.includes(":")&&!a.startsWith('"')&&!a.startsWith("'")&&!a.startsWith("[")&&!a.startsWith("|")&&!a.startsWith(">")){n.push(`${o}: |-`),n.push(` ${a}`);continue}}n.push(r)}return n.join(`
436
- `)}function ru(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
436
+ `)}function du(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
437
437
  `).replace(/\r/g,`
438
438
  `).trimStart();if(!n.startsWith(`---
439
439
  `)){if(t.throwOnMissing)throw new Error("Invalid markdown: missing YAML frontmatter");return[null,e]}let r=n.indexOf(`
440
440
  ---
441
441
  `,4);if(r===-1){let c=n.indexOf(`
442
- ---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),o=n.slice(r+5).trim(),a;try{a=nu.parse(i)??{}}catch{a=nu.parse(_w(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,o]}return[a,o]}function iu(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}function Qw(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}function Ew(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>Qw(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function ou(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of Rw){let i=Ew(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var Rw,su=p(()=>{"use strict";Rw=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s(_w,"sanitizeYaml");s(ru,"parseYamlFrontmatter");s(iu,"normalizeAllowedToolsString");s(Qw,"normalizeYamlHookEntry");s(Ew,"normalizeYamlHookEntryList");s(ou,"normalizeYamlHookMap")});import{readFile as Iw,readdir as $w}from"fs/promises";import{join as bt,relative as Cw}from"path";function au(e){let[t,n]=ru(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:iu(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:ou(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}async function Ur(e,t){let n=bt(e,"SKILL.md");try{let r=await Iw(n,"utf-8"),{frontmatter:i,body:o}=au(r),[a,c,d,l,f]=await Promise.all([zt(bt(e,"scripts")),zt(bt(e,"references")),zt(bt(e,"assets")),zt(bt(e,"templates")),zt(bt(e,"resources"))]);return{...i,path:e,skillFilePath:n,content:o,rawContent:o,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...l.length>0&&{templates:l},...f.length>0&&{resources:f}}}catch(r){return q({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}async function zt(e,t=e){let n=[];try{let r=await $w(e,{withFileTypes:!0});r.sort((i,o)=>i.name.localeCompare(o.name));for(let i of r){let o=bt(e,i.name);if(i.isDirectory()){n.push(...await zt(o,t));continue}i.isFile()&&n.push({name:i.name,path:o,relativePath:Cw(t,o).replace(/\\/g,"/")})}}catch{}return n}var An=p(()=>{"use strict";pe();su();s(au,"parseSkillMarkdown");s(Ur,"loadFullSkill");s(zt,"loadSkillFiles")});var ws=p(()=>{"use strict"});var Ss=p(()=>{"use strict"});var cu,du,Vr=p(()=>{"use strict";cu=64*1024,du=256*1024});import{randomUUID as mu}from"node:crypto";import{mkdir as hu,open as Ou,readFile as vt,readdir as Ps,rm as Aw,stat as Br,writeFile as gu}from"node:fs/promises";import{dirname as Xw,join as bs}from"node:path";function Ww(){return fu||(uu=Ae(process.pid),fu=!0),uu}async function vs(e,t=Mw){await hu(Xw(e),{recursive:!0});let n=await Fw(e,t),r=!1;return async()=>{if(!r){r=!0;try{await n.handle.close()}finally{await bu(e,n.token)}}}}async function Fw(e,t){let n=Date.now()+t,r=await Dw(e),i,o=!1;try{for(await Nw(r,n,e);;){await wu(r);try{return i=await Vw(e),i}catch(a){let c=await Gw(a,e);if(c==="retry_missing"){if(o)throw a;o=!0,await Gr(Yr);continue}if(c==="not_contended")throw a;o=!1;let d=await Kw(e);if(d!==void 0&&await Yw(e,d))continue;if(Date.now()>=n)throw xu(e);await Gr(Yr)}}}finally{try{await Pu(r.path,r.raw)}catch(a){if(i===void 0)throw a;let c=[a];try{await i.handle.close()}catch(d){c.push(d)}try{await bu(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Dw(e){let t=`${e}.queue`,n=mu(),r=vu(n),i=bs(t,`choosing-${n}.lock`);await hu(t,{recursive:!0}),await pu(i,r);try{await Su(t);let o=await Lw(t),a=Math.max(0,...o.map(l=>l.number))+1;if(!Number.isSafeInteger(a))throw new Error("learning lock ticket overflow");let c=`ticket-${String(a).padStart(jw,"0")}-${n}.lock`,d=bs(t,c);return await pu(d,r),{queuePath:t,path:d,name:c,raw:r}}finally{await Pu(i,r)}}async function Nw(e,t,n){for(;;){await Su(e.queuePath),await wu(e);let r=await Ps(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(ks).filter(a=>a!==void 0).sort(qw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw xu(n);await Gr(Yr)}}async function pu(e,t){let n=await Ou(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await Pt(e),r}}async function wu(e){try{if(await vt(e.path,"utf8")!==e.raw)throw new Error(`learning store lock ticket lost: ${e.path}`)}catch(t){throw H(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function Lw(e){return(await Ps(e)).map(ks).filter(t=>t!==void 0)}function ks(e){let t=/^ticket-(\d{16})-[0-9a-f-]+\.lock$/i.exec(e);if(t===null)return;let n=Number(t[1]);return Number.isSafeInteger(n)?{name:e,number:n}:void 0}function qw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function Su(e){let t=await Ps(e);await Promise.all(t.filter(zw).map(async n=>{let r=bs(e,n);await Uw(r)&&await Pt(r)}))}function zw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||ks(e)!==void 0}async function Uw(e){try{let t=await Br(e),n=xs(await vt(e,"utf8"));return n?.released===!0?!0:Date.now()-t.mtimeMs<=yu?!1:n===void 0||!ku(n)}catch(t){if(H(t,"ENOENT")||["EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return!1;throw t}}async function Vw(e){let t=await Ou(e,"wx"),n=mu();try{return await t.writeFile(vu(n),"utf8"),{handle:t,token:n}}catch(r){throw await t.close(),await Pt(e),r}}async function Kw(e){try{let t=await Br(e),n=await vt(e,"utf8"),r=xs(n),i=r?.token!==void 0&&await Bw(e,r.token);return!i&&Date.now()-t.mtimeMs<=yu?void 0:i||r!==void 0&&!ku(r)?{raw:n,mtimeMs:t.mtimeMs,size:t.size}:void 0}catch(t){if(["ENOENT","EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return;throw t}}async function Yw(e,t){try{let n=await Br(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await vt(e,"utf8")!==t.raw?!1:(await Pt(e),!0)}catch(n){if(H(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>H(n,r)))return!1;throw n}}async function Gw(e,t){if(H(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>H(e,n)))return"not_contended";try{return(await Br(t)).isFile()?"contended":"not_contended"}catch(n){if(H(n,"ENOENT"))return"retry_missing";throw e}}async function bu(e,t){try{if(xs(await vt(e,"utf8"))?.token!==t)return;let r;try{await gu(Kr(e,t),`${t}
443
- `,"utf8")}catch(i){r=i}try{await Pt(e)}catch(i){if(r===void 0&&Ts(i))return;throw r===void 0?i:new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}try{await Pt(Kr(e,t))}catch(i){q({source:"learning.store-lock",level:"warn",message:"Released learning lock left a harmless cleanup marker.",detail:{filePath:Kr(e,t),error:i instanceof Error?i.message:String(i)}})}}catch(n){if(!H(n,"ENOENT"))throw n}}async function Pu(e,t){let n;try{if(await vt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await gu(e,`${t.trimEnd()} released
444
- `,"utf8")}catch(r){if(H(r,"ENOENT"))return;n=r}try{await Pt(e)}catch(r){if(n===void 0&&Ts(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function Bw(e,t){try{return(await vt(Kr(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>H(n,r)))return!1;throw n}}function Kr(e,t){return`${e}.${t}.released`}function vu(e){let t=Ww(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
445
- `}function xs(e){let t=e.trim().split(/\s+/),n=Number(t.shift());if(!Number.isSafeInteger(n)||n<=0)return;let r,i,o=!1;for(let a of t){if(/^[0-9a-f-]+$/i.test(a)&&r===void 0){r=a;continue}if(a.startsWith("identity=")&&i===void 0){let c=a.slice(9);if(!/^[A-Za-z0-9_-]+$/.test(c))return;i=Buffer.from(c,"base64url").toString("utf8");continue}if(a==="released"&&!o){o=!0;continue}return}return{pid:n,...r===void 0?{}:{token:r},...i===void 0?{}:{processStartIdentity:i},released:o}}function Zw(e){try{return process.kill(e,0),!0}catch(t){return!H(t,"ESRCH")}}function H(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ku(e){if(!Zw(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=Ae(e.pid);return t===void 0||t===e.processStartIdentity}function Ts(e){return["EPERM","EACCES","EBUSY"].some(t=>H(e,t))}async function Pt(e){for(let t=1;t<=lu;t+=1)try{await Aw(e,{force:!0});return}catch(n){if(H(n,"ENOENT"))return;if(!Ts(n)||t===lu)throw n;await Gr(Yr)}}function xu(e){return new Error(`learning store lock timed out: ${e}`)}async function Gr(e){await new Promise(t=>setTimeout(t,e))}var Mw,Yr,yu,jw,lu,uu,fu,kt=p(()=>{"use strict";pe();_n();Mw=5e3,Yr=10,yu=3e4,jw=16,lu=8,fu=!1;s(Ww,"getCurrentProcessStartIdentity");s(vs,"acquireLearningFileLock");s(Fw,"acquireLock");s(Dw,"createLockTicket");s(Nw,"waitForTicketTurn");s(pu,"createOwnerFile");s(wu,"assertTicketOwned");s(Lw,"listQueueTickets");s(ks,"parseQueueTicket");s(qw,"compareQueueTickets");s(Su,"cleanupAbandonedQueueEntries");s(zw,"isQueueEntryName");s(Uw,"isAbandonedQueueEntry");s(Vw,"createLock");s(Kw,"observeStaleLock");s(Yw,"removeObservedStaleLock");s(Gw,"classifyExistingLockContention");s(bu,"releaseLock");s(Pu,"releaseQueueEntry");s(Bw,"hasReleaseMarker");s(Kr,"releaseMarkerPath");s(vu,"lockOwnerRecord");s(xs,"parseOwner");s(Zw,"isProcessAlive");s(H,"isFileError");s(ku,"isRecordedOwnerAlive");s(Ts,"isTransientFileContention");s(Pt,"removeFileWithTransientRetry");s(xu,"lockTimeout");s(Gr,"delay")});var xt=p(()=>{"use strict";G();qr();kt()});var Rs=p(()=>{"use strict";Vr();Ss()});var _s=p(()=>{"use strict";Rs();Vr();xt()});var Es=p(()=>{"use strict";ws();xt()});var Eu=p(()=>{"use strict";G();qr()});var O1,Iu=p(()=>{"use strict";O1=1024*1024});var Cu=p(()=>{"use strict";Es()});var ve=p(()=>{"use strict"});var Hr=p(()=>{"use strict";ve();kt();G()});var Is=p(()=>{"use strict";xt();ve()});var Wu=p(()=>{"use strict";G();ve();Hr();Is();_s();xt()});var Fu=p(()=>{"use strict";ve()});var K1,Wn=p(()=>{"use strict";ve();K1=16*1024});var Du=p(()=>{"use strict";ve();Wn()});var nj,Nu=p(()=>{"use strict";ve();Hr();nj=16*1024});var Uu=p(()=>{"use strict";ve();pe();Wn()});var ti=p(()=>{"use strict";ws();Ss();Vr();xt();Rs();_s();Es();Eu();Iu();Cu();ve();Wu();Hr();Is();Fu();Du();Nu();Uu();Wn()});var Cs=p(()=>{"use strict";ti();ys();An()});import{execSync as CS}from"child_process";import AS from"path";function Yu(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of XS)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(o=>o.startsWith("-i")||o==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(o=>/^(-v|--version|-h|--help)$/.test(o)))return!1}return!0}return!1}function MS(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&AS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Yu(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!Yu(o))return!1}return!0}function Gu(e){let t=[],n="",r=!1,i="";for(let o=0;o<e.length;o++){let a=e[o];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}async function Fn(e,t,n){return new ni(n).resolve(e,t)}var XS,ni,Dn=p(()=>{"use strict";XS=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);s(Yu,"isSingleSafeDynamicContextCommand");s(MS,"isSafeDynamicContextCommand");s(Gu,"parseArguments");ni=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Gu(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let o=parseInt(i,10);return n[o]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let o=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);o=o.replace(a,d)}catch(d){let l=d instanceof Error?d.message:String(d);o=o.replace(a,`[Error: ${l}]`)}return o}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!MS(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return CS(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};s(Fn,"resolveSkillContent")});var As=p(()=>{"use strict";pe();Cs();An();Dn()});var Bu=p(()=>{"use strict";As();Dn()});function Zu(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function ri(e){return e.replace(/\\/g,"/")}function FS(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}function DS(e){let t=FS(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,o]of n)o?.length&&r.push(`- ${i}/: ${ri(`${e.path}/${i}`)} (${o.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:o}of t.slice(0,Xs))r.push(`- ${i}/${o.relativePath}: ${ri(o.path)}`);return t.length>Xs&&r.push(`- ... ${t.length-Xs} more files under ${ri(e.path)}`),r}function NS(e,t,n){let r=[];r.push(`<skill name="${Zu(e.name)}" location="${Zu(e.path)}">`),r.push(""),r.push(`Skill root: ${ri(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=DS(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
446
- `)}async function Ms(e,t,n){let r=await Fn(e.content,t,n);return{content:NS(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var Xs,js=p(()=>{"use strict";Dn();s(Zu,"escapeXml");Xs=120;s(ri,"formatDisplayPath");s(FS,"collectSupportFiles");s(DS,"buildSupportFileContext");s(NS,"buildSkillBlock");s(Ms,"expandSkillForLLM")});import{existsSync as LS}from"node:fs";import{mkdir as qS,readFile as Ws,readdir as zS,stat as Ju,writeFile as eW}from"node:fs/promises";import US from"node:os";import Xe from"node:path";import{fileURLToPath as ef,pathToFileURL as VS}from"node:url";import KS from"yaml";async function Je(){if(Ut)return Ut;let e=Xe.dirname(ef(import.meta.url)),t=[],n=Xe.resolve(e,"../../../index.js");if(LS(n))return Ut=await import(VS(n).href),Ut;t.push(`relative SDK path not found: ${n}`);try{return Ut=await import(["@kodax-ai","kodax"].join("/")),Ut}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
442
+ ---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),o=n.slice(r+5).trim(),a;try{a=cu.parse(i)??{}}catch{a=cu.parse($w(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,o]}return[a,o]}function lu(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}function Cw(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}function Aw(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>Cw(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function uu(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of Iw){let i=Aw(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var Iw,fu=p(()=>{"use strict";Iw=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s($w,"sanitizeYaml");s(du,"parseYamlFrontmatter");s(lu,"normalizeAllowedToolsString");s(Cw,"normalizeYamlHookEntry");s(Aw,"normalizeYamlHookEntryList");s(uu,"normalizeYamlHookMap")});import{readFile as Xw,readdir as Mw}from"fs/promises";import{join as vt,relative as jw}from"path";function pu(e){let[t,n]=du(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:lu(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:uu(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}async function Kr(e,t){let n=vt(e,"SKILL.md");try{let r=await Xw(n,"utf-8"),{frontmatter:i,body:o}=pu(r),[a,c,d,l,f]=await Promise.all([zt(vt(e,"scripts")),zt(vt(e,"references")),zt(vt(e,"assets")),zt(vt(e,"templates")),zt(vt(e,"resources"))]);return{...i,path:e,skillFilePath:n,content:o,rawContent:o,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...l.length>0&&{templates:l},...f.length>0&&{resources:f}}}catch(r){return L({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}async function zt(e,t=e){let n=[];try{let r=await Mw(e,{withFileTypes:!0});r.sort((i,o)=>i.name.localeCompare(o.name));for(let i of r){let o=vt(e,i.name);if(i.isDirectory()){n.push(...await zt(o,t));continue}i.isFile()&&n.push({name:i.name,path:o,relativePath:jw(t,o).replace(/\\/g,"/")})}}catch{}return n}var Xn=p(()=>{"use strict";ge();fu();s(pu,"parseSkillMarkdown");s(Kr,"loadFullSkill");s(zt,"loadSkillFiles")});var Ps=p(()=>{"use strict"});var vs=p(()=>{"use strict"});var mu,hu,Yr=p(()=>{"use strict";mu=64*1024,hu=256*1024});import{randomUUID as Ww}from"node:crypto";import{mkdir as wu,open as Su,readFile as tt,readdir as Ts,rm as Fw,stat as Zr,utimes as Dw,writeFile as bu}from"node:fs/promises";import{dirname as Nw,join as ks}from"node:path";function zw(){return gu||(Ou=je(process.pid),gu=!0),Ou}async function Rs(e,t=Lw){await wu(Nw(e),{recursive:!0});let n=await Uw(e,t),r=!1,i=!1,o;return async()=>{if(!i){if(o!==void 0)return o;o=(async()=>{r||(await n.handle.close(),r=!0),await xs(e,n.token),i=!0})();try{await o}finally{i||(o=void 0)}}}}async function Uw(e,t){let n=Date.now()+t,r=await Vw(e),i,o=!1;try{for(await Kw(r,n,e);;){await vu(r);try{let a=await Jw(e,r.token);try{await _s(r)}catch(c){let d=[c];try{await a.handle.close()}catch(l){d.push(l)}try{await xs(e,a.token)}catch(l){d.push(l)}throw d.length===1?c:new AggregateError(d,"learning lock ticket loss cleanup failed")}return i=a,i}catch(a){let c=await nS(a,e);if(c==="retry_missing"){if(o)throw a;o=!0,await jn(Mn);continue}if(c==="not_contended")throw a;o=!1;let d=await eS(e);if(d!==void 0&&await tS(e,d))continue;if(Date.now()>=n)throw Eu(e);await jn(Mn)}}}finally{try{await Tu(r.path,r.raw)}catch(a){if(i===void 0)throw a;let c=[a];try{await i.handle.close()}catch(d){c.push(d)}try{await xs(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Vw(e){let t=`${e}.queue`,n=Ww(),r=_u(n),i=ks(t,`choosing-${n}.lock`);await wu(t,{recursive:!0}),await yu(i,r);try{await xu(t,e,i),await ku(i,r,"choosing entry");let o=await Yw(t),a=Math.max(0,...o.map(l=>l.number))+1;if(!Number.isSafeInteger(a))throw new Error("learning lock ticket overflow");let c=`ticket-${String(a).padStart(qw,"0")}-${n}.lock`,d=ks(t,c);return await yu(d,r),{queuePath:t,path:d,name:c,raw:r,token:n}}finally{await Tu(i,r)}}async function Kw(e,t,n){for(;;){await vu(e),await xu(e.queuePath,n,e.path),await _s(e);let r=await Ts(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(Hr).filter(a=>a!==void 0).sort(Gw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw Eu(n);await jn(Mn)}}async function yu(e,t){let n=await Su(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await Ut(e),r}}async function _s(e){await ku(e.path,e.raw,"ticket")}async function vu(e){await _s(e);try{let t=new Date;await Dw(e.path,t,t)}catch(t){throw Y(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function ku(e,t,n){try{if(await tt(e,"utf8")!==t)throw new Error(`learning store lock ${n} lost: ${e}`)}catch(r){throw Y(r,"ENOENT")?new Error(`learning store lock ${n} lost: ${e}`):r}}async function Yw(e){return(await Ts(e)).map(Hr).filter(t=>t!==void 0)}function Hr(e){let t=/^ticket-(\d{16})-[0-9a-f-]+\.lock$/i.exec(e);if(t===null)return;let n=Number(t[1]);return Number.isSafeInteger(n)?{name:e,number:n}:void 0}function Gw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function xu(e,t,n){let r=await Ts(e);await Promise.all(r.filter(Bw).map(async i=>{let o=ks(e,i);o!==n&&await Zw(o,i,t)&&await Ut(o)}))}function Bw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||Hr(e)!==void 0}async function Zw(e,t,n){try{let r=await Zr(e),i=Jr(await tt(e,"utf8"));return i?.released===!0?!0:Date.now()-r.mtimeMs<=Pu?!1:i===void 0||!Qu(i)?!0:i.token===void 0?!1:Hr(t)===void 0?!0:!await Hw(n,i.token)}catch(r){if(Y(r,"ENOENT")||["EPERM","EACCES","EBUSY"].some(i=>Y(r,i)))return!1;throw r}}async function Hw(e,t){try{return Jr(await tt(e,"utf8"))?.token===t}catch(n){if(Y(n,"ENOENT"))return!1;if(["EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!0;throw n}}async function Jw(e,t){let n=await Su(e,"wx");try{return await n.writeFile(_u(t),"utf8"),{handle:n,token:t}}catch(r){throw await n.close(),await Ut(e),r}}async function eS(e){try{let t=await Zr(e),n=await tt(e,"utf8"),r=Jr(n),i=r?.token!==void 0&&await iS(e,r.token);return!i&&Date.now()-t.mtimeMs<=Pu?void 0:i||r!==void 0&&!Qu(r)?{raw:n,mtimeMs:t.mtimeMs,size:t.size}:void 0}catch(t){if(["ENOENT","EPERM","EACCES","EBUSY"].some(n=>Y(t,n)))return;throw t}}async function tS(e,t){try{let n=await Zr(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await tt(e,"utf8")!==t.raw?!1:(await Ut(e),!0)}catch(n){if(Y(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!1;throw n}}async function nS(e,t){if(Y(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>Y(e,n)))return"not_contended";try{return(await Zr(t)).isFile()?"contended":"not_contended"}catch(n){if(Y(n,"ENOENT"))return"retry_missing";throw e}}async function xs(e,t){try{if(Jr(await tt(e,"utf8"))?.token!==t)return;try{await Ut(e);return}catch(r){try{await rS(e,t);return}catch(i){throw new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}}}catch(n){if(!Y(n,"ENOENT"))throw n}}async function rS(e,t){for(let n=1;n<=Gr;n+=1)try{await bu(Ru(e,t),`${t}
443
+ `,"utf8");return}catch(r){if(!Qs(r)||n===Gr)throw r;await jn(Mn)}}async function Tu(e,t){let n;try{if(await tt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await bu(e,`${t.trimEnd()} released
444
+ `,"utf8")}catch(r){if(Y(r,"ENOENT"))return;n=r}try{await Ut(e)}catch(r){if(n===void 0&&Qs(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function iS(e,t){try{return(await tt(Ru(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!1;throw n}}function Ru(e,t){return`${e}.${t}.released`}function _u(e){let t=zw(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
445
+ `}function Jr(e){let t=e.trim().split(/\s+/),n=Number(t.shift());if(!Number.isSafeInteger(n)||n<=0)return;let r,i,o=!1;for(let a of t){if(/^[0-9a-f-]+$/i.test(a)&&r===void 0){r=a;continue}if(a.startsWith("identity=")&&i===void 0){let c=a.slice(9);if(!/^[A-Za-z0-9_-]+$/.test(c))return;i=Buffer.from(c,"base64url").toString("utf8");continue}if(a==="released"&&!o){o=!0;continue}return}return{pid:n,...r===void 0?{}:{token:r},...i===void 0?{}:{processStartIdentity:i},released:o}}function oS(e){try{return process.kill(e,0),!0}catch(t){return!Y(t,"ESRCH")}}function Y(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Qu(e){if(!oS(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=je(e.pid);return t===void 0||t===e.processStartIdentity}function Qs(e){return["EPERM","EACCES","EBUSY"].some(t=>Y(e,t))}async function Ut(e){for(let t=1;t<=Gr;t+=1)try{await Fw(e,{force:!0});return}catch(n){if(Y(n,"ENOENT"))return;if(!Qs(n)||t===Gr)throw n;await jn(Mn)}}function Eu(e){return new Br(e)}async function jn(e){await new Promise(t=>setTimeout(t,e))}var Lw,Mn,Pu,qw,Gr,Ou,gu,Br,kt=p(()=>{"use strict";Qn();Lw=5e3,Mn=10,Pu=3e4,qw=16,Gr=8,gu=!1;s(zw,"getCurrentProcessStartIdentity");Br=class extends Error{static{s(this,"KodaXFileLockTimeoutError")}lockPath;code="kodax_file_lock_timeout";constructor(t){super(`KodaX file lock timed out: ${t}`),this.lockPath=t,this.name="KodaXFileLockTimeoutError"}};s(Rs,"acquireLearningFileLock");s(Uw,"acquireLock");s(Vw,"createLockTicket");s(Kw,"waitForTicketTurn");s(yu,"createOwnerFile");s(_s,"assertTicketOwned");s(vu,"heartbeatLockTicket");s(ku,"assertQueueEntryOwned");s(Yw,"listQueueTickets");s(Hr,"parseQueueTicket");s(Gw,"compareQueueTickets");s(xu,"cleanupAbandonedQueueEntries");s(Bw,"isQueueEntryName");s(Zw,"isAbandonedQueueEntry");s(Hw,"queueTicketOwnsCoordinatorLock");s(Jw,"createLock");s(eS,"observeStaleLock");s(tS,"removeObservedStaleLock");s(nS,"classifyExistingLockContention");s(xs,"releaseLock");s(rS,"writeReleaseMarkerWithTransientRetry");s(Tu,"releaseQueueEntry");s(iS,"hasReleaseMarker");s(Ru,"releaseMarkerPath");s(_u,"lockOwnerRecord");s(Jr,"parseOwner");s(oS,"isProcessAlive");s(Y,"isFileError");s(Qu,"isRecordedOwnerAlive");s(Qs,"isTransientFileContention");s(Ut,"removeFileWithTransientRetry");s(Eu,"lockTimeout");s(jn,"delay")});var xt=p(()=>{"use strict";H();Ur();kt()});var Es=p(()=>{"use strict";Yr();vs()});var Is=p(()=>{"use strict";Es();Yr();xt()});var Cs=p(()=>{"use strict";Ps();xt()});var Xu=p(()=>{"use strict";H();Ur()});var y1,Mu=p(()=>{"use strict";y1=1024*1024});var Wu=p(()=>{"use strict";Cs()});var Te=p(()=>{"use strict"});var ti=p(()=>{"use strict";Te();kt();H()});var As=p(()=>{"use strict";xt();Te()});var qu=p(()=>{"use strict";H();Te();ti();As();Is();xt()});var zu=p(()=>{"use strict";Te()});var G1,Nn=p(()=>{"use strict";Te();G1=16*1024});var Uu=p(()=>{"use strict";Te();Nn()});var ij,Vu=p(()=>{"use strict";Te();ti();ij=16*1024});var Bu=p(()=>{"use strict";Te();ge();Nn()});var ii=p(()=>{"use strict";Ps();vs();Yr();xt();Es();Is();Cs();Xu();Mu();Wu();Te();qu();ti();As();zu();Uu();Vu();Bu();Nn()});var Ms=p(()=>{"use strict";ii();bs();Xn()});import{execSync as NS}from"child_process";import LS from"path";function Ju(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of qS)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(o=>o.startsWith("-i")||o==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(o=>/^(-v|--version|-h|--help)$/.test(o)))return!1}return!0}return!1}function zS(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&LS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Ju(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!Ju(o))return!1}return!0}function ef(e){let t=[],n="",r=!1,i="";for(let o=0;o<e.length;o++){let a=e[o];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}async function Ln(e,t,n){return new oi(n).resolve(e,t)}var qS,oi,qn=p(()=>{"use strict";qS=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);s(Ju,"isSingleSafeDynamicContextCommand");s(zS,"isSafeDynamicContextCommand");s(ef,"parseArguments");oi=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=ef(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let o=parseInt(i,10);return n[o]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let o=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);o=o.replace(a,d)}catch(d){let l=d instanceof Error?d.message:String(d);o=o.replace(a,`[Error: ${l}]`)}return o}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!zS(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return NS(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};s(Ln,"resolveSkillContent")});var js=p(()=>{"use strict";ge();Ms();Xn();qn()});var tf=p(()=>{"use strict";js();qn()});function nf(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function si(e){return e.replace(/\\/g,"/")}function KS(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}function YS(e){let t=KS(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,o]of n)o?.length&&r.push(`- ${i}/: ${si(`${e.path}/${i}`)} (${o.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:o}of t.slice(0,Ws))r.push(`- ${i}/${o.relativePath}: ${si(o.path)}`);return t.length>Ws&&r.push(`- ... ${t.length-Ws} more files under ${si(e.path)}`),r}function GS(e,t,n){let r=[];r.push(`<skill name="${nf(e.name)}" location="${nf(e.path)}">`),r.push(""),r.push(`Skill root: ${si(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=YS(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
446
+ `)}async function Fs(e,t,n){let r=await Ln(e.content,t,n);return{content:GS(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var Ws,Ds=p(()=>{"use strict";qn();s(nf,"escapeXml");Ws=120;s(si,"formatDisplayPath");s(KS,"collectSupportFiles");s(YS,"buildSupportFileContext");s(GS,"buildSkillBlock");s(Fs,"expandSkillForLLM")});import{existsSync as BS}from"node:fs";import{mkdir as ZS,readFile as Ns,readdir as HS,stat as of,writeFile as nW}from"node:fs/promises";import JS from"node:os";import We from"node:path";import{fileURLToPath as sf,pathToFileURL as eb}from"node:url";import tb from"yaml";async function nt(){if(Vt)return Vt;let e=We.dirname(sf(import.meta.url)),t=[],n=We.resolve(e,"../../../index.js");if(BS(n))return Vt=await import(eb(n).href),Vt;t.push(`relative SDK path not found: ${n}`);try{return Vt=await import(["@kodax-ai","kodax"].join("/")),Vt}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
447
447
  Attempted:
448
448
  - ${t.join(`
449
- - `)}`)}function YS(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
449
+ - `)}`)}function nb(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
450
450
  `).replace(/\r/g,`
451
451
  `).trimStart();if(!t.startsWith(`---
452
452
  `))throw new Error("SKILL.md missing YAML frontmatter");let n=t.indexOf(`
453
453
  ---
454
- `,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}function ii(e){let{yamlText:t,body:n}=YS(e),r=KS.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}async function Ln(e){let t=Xe.join(e,"SKILL.md");if(!(await Ju(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Ws(t,"utf8"),{frontmatter:i,body:o}=ii(r);return{skillDir:Xe.resolve(e),skillMdPath:t,rawContent:r,body:o,frontmatter:i}}async function qn(e){try{return await Ju(e),!0}catch{return!1}}function oi(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:Nn(t),stddev:Nn(Math.sqrt(n)),min:Nn(Math.min(...e)),max:Nn(Math.max(...e))}}function Nn(e,t=4){return Number(e.toFixed(t))}function si(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function Hu(e){try{return JSON.parse(e)}catch{return null}}function Vt(e){let t=Hu(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:Hu(e.slice(n,r+1))}async function ke(e,t=null){try{return JSON.parse(await Ws(e,"utf8"))}catch{return t}}async function Kt(e,t){let n=Xe.dirname(ef(e));return Ws(Xe.resolve(n,t),"utf8")}function ne(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
454
+ `,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}function ai(e){let{yamlText:t,body:n}=nb(e),r=tb.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}async function Un(e){let t=We.join(e,"SKILL.md");if(!(await of(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Ns(t,"utf8"),{frontmatter:i,body:o}=ai(r);return{skillDir:We.resolve(e),skillMdPath:t,rawContent:r,body:o,frontmatter:i}}async function Vn(e){try{return await of(e),!0}catch{return!1}}function ci(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:zn(t),stddev:zn(Math.sqrt(n)),min:zn(Math.min(...e)),max:zn(Math.max(...e))}}function zn(e,t=4){return Number(e.toFixed(t))}function di(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function rf(e){try{return JSON.parse(e)}catch{return null}}function Kt(e){let t=rf(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:rf(e.slice(n,r+1))}async function Re(e,t=null){try{return JSON.parse(await Ns(e,"utf8"))}catch{return t}}async function Yt(e,t){let n=We.dirname(sf(e));return Ns(We.resolve(n,t),"utf8")}function ie(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
455
455
 
456
- [truncated ${r} chars]`}function tf(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?Nn(n/t):0}}async function Fs(e,t=e,n=[]){let r=await zS(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((o,a)=>o.name.localeCompare(a.name))){let o=Xe.join(t,i.name);if(i.isDirectory()){await Fs(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:Xe.relative(e,o).replace(/\\/g,"/")})}return n}function zn(){return Xe.join(US.homedir(),".kodax","skills")}async function re(e){return await qS(e,{recursive:!0}),e}var Ut,he=p(()=>{"use strict";Ut=null;s(Je,"loadKodaXSDK");s(YS,"extractFrontmatter");s(ii,"parseSkillMarkdown");s(Ln,"loadSkill");s(qn,"pathExists");s(oi,"calculateStats");s(Nn,"roundNumber");s(si,"formatDelta");s(Hu,"safeJsonParse");s(Vt,"extractJsonObject");s(ke,"readJsonFile");s(Kt,"loadRelativeText");s(ne,"truncateText");s(tf,"computePassSummary");s(Fs,"collectFiles");s(zn,"getDefaultSkillsDir");s(re,"ensureDirectory")});import{writeFile as nf}from"node:fs/promises";import et from"node:path";function GS(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function BS(e,t){let n=GS(e);return`---
456
+ [truncated ${r} chars]`}function af(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?zn(n/t):0}}async function Ls(e,t=e,n=[]){let r=await HS(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((o,a)=>o.name.localeCompare(a.name))){let o=We.join(t,i.name);if(i.isDirectory()){await Ls(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:We.relative(e,o).replace(/\\/g,"/")})}return n}function Kn(){return We.join(JS.homedir(),".kodax","skills")}async function oe(e){return await ZS(e,{recursive:!0}),e}var Vt,ye=p(()=>{"use strict";Vt=null;s(nt,"loadKodaXSDK");s(nb,"extractFrontmatter");s(ai,"parseSkillMarkdown");s(Un,"loadSkill");s(Vn,"pathExists");s(ci,"calculateStats");s(zn,"roundNumber");s(di,"formatDelta");s(rf,"safeJsonParse");s(Kt,"extractJsonObject");s(Re,"readJsonFile");s(Yt,"loadRelativeText");s(ie,"truncateText");s(af,"computePassSummary");s(Ls,"collectFiles");s(Kn,"getDefaultSkillsDir");s(oe,"ensureDirectory")});import{writeFile as cf}from"node:fs/promises";import rt from"node:path";function rb(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function ib(e,t){let n=rb(e);return`---
457
457
  name: ${e}
458
458
  description: ${t}
459
459
  user-invocable: true
@@ -482,10 +482,10 @@ Describe the task this skill handles, the trigger boundary, and the expected out
482
482
  - Put deeper guidance in \`references/\`.
483
483
  - Put reusable templates or static files in \`assets/\`.
484
484
  - Put repeatable helper scripts in \`scripts/\`.
485
- `}function ZS(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}async function HS(e){let t=et.resolve(e.baseDir??zn()),n=et.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await qn(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await re(n),await re(et.join(n,"references")),await re(et.join(n,"assets")),await re(et.join(n,"scripts")),await nf(et.join(n,"SKILL.md"),BS(e.name,r),"utf8"),e.includeEvals!==!1&&(await re(et.join(n,"evals")),await nf(et.join(n,"evals","evals.json"),`${ZS(e.name)}
486
- `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function JS(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}async function rf(e=process.argv){let t=JS(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await HS(t);console.log(`Initialized ${n.skillDir}`)}var eb,of=p(()=>{"use strict";he();s(GS,"titleFromSlug");s(BS,"renderSkillTemplate");s(ZS,"renderEvalTemplate");s(HS,"initSkill");s(JS,"parseArgs");s(rf,"main");eb=!1;eb&&rf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import sf from"node:path";async function Un(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Ln(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let o=Object.keys(r).filter(d=>!tb.has(d));o.length>0&&t.errors.push(`Unexpected frontmatter keys: ${o.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=sf.basename(sf.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(f=>typeof f=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}async function af(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Un(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}var tb,nb,ai=p(()=>{"use strict";he();tb=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(Un,"validateSkillDirectory");s(af,"main");nb=!1;nb&&af().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Ds,writeFile as Me}from"node:fs/promises";import W from"node:path";function rb(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function ib(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function ob(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}function sb(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
485
+ `}function ob(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}async function sb(e){let t=rt.resolve(e.baseDir??Kn()),n=rt.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await Vn(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await oe(n),await oe(rt.join(n,"references")),await oe(rt.join(n,"assets")),await oe(rt.join(n,"scripts")),await cf(rt.join(n,"SKILL.md"),ib(e.name,r),"utf8"),e.includeEvals!==!1&&(await oe(rt.join(n,"evals")),await cf(rt.join(n,"evals","evals.json"),`${ob(e.name)}
486
+ `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function ab(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}async function df(e=process.argv){let t=ab(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await sb(t);console.log(`Initialized ${n.skillDir}`)}var cb,lf=p(()=>{"use strict";ye();s(rb,"titleFromSlug");s(ib,"renderSkillTemplate");s(ob,"renderEvalTemplate");s(sb,"initSkill");s(ab,"parseArgs");s(df,"main");cb=!1;cb&&df().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import uf from"node:path";async function Yn(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Un(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let o=Object.keys(r).filter(d=>!db.has(d));o.length>0&&t.errors.push(`Unexpected frontmatter keys: ${o.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=uf.basename(uf.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(f=>typeof f=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}async function ff(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Yn(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}var db,lb,li=p(()=>{"use strict";ye();db=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(Yn,"validateSkillDirectory");s(ff,"main");lb=!1;lb&&ff().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as qs,writeFile as Fe}from"node:fs/promises";import W from"node:path";function ub(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function fb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function pb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}function mb(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
487
487
  `)}
488
- `}async function ab(e,t){let n=W.dirname(W.resolve(t.evalsPath)),r=W.resolve(t.cwd??process.cwd()),i=[];for(let o of e??[]){let a=W.isAbsolute(o)?o:W.resolve(n,o),c=W.resolve(r,o),d=null,l=a;try{d=await Ds(a,"utf8")}catch{d=await Ds(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${o}`);i.push(`### ${o}
488
+ `}async function hb(e,t){let n=W.dirname(W.resolve(t.evalsPath)),r=W.resolve(t.cwd??process.cwd()),i=[];for(let o of e??[]){let a=W.isAbsolute(o)?o:W.resolve(n,o),c=W.resolve(r,o),d=null,l=a;try{d=await qs(a,"utf8")}catch{d=await qs(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${o}`);i.push(`### ${o}
489
489
  \`\`\`
490
490
  ${d}
491
491
  \`\`\`
@@ -495,15 +495,15 @@ ${i.join(`
495
495
 
496
496
  `)}
497
497
 
498
- `}async function cb(e,t){let n=String(e.prompt??e.query??"").trim();return`${await ab(e.files,t)}${n}`.trim()}async function db(e,t){let{runKodaX:n,estimateTokens:r}=await Je(),i=Date.now(),o=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:W.resolve(t.cwd??process.cwd())}},e);return{result:o,totalTokens:r(o.messages),durationMs:Date.now()-i}}async function lb(e,t,n,r){return e==="with_skill"?(await Ms(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function ub(e,t,n,r,i){let o=W.join(e,"outputs");await re(o);let a={total_tool_calls:ib(i.result.messages),errors_encountered:ob(i.result.messages),output_chars:i.result.lastText.length};await Me(W.join(o,"result.md"),`${i.result.lastText}
499
- `,"utf8"),await Me(W.join(o,"prompt.txt"),`${r}
500
- `,"utf8"),await Me(W.join(e,"transcript.md"),sb(r,i.result),"utf8"),await Me(W.join(o,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
501
- `,"utf8"),await Me(W.join(o,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
502
- `,"utf8"),await Me(W.join(e,"timing.json"),`${JSON.stringify({total_tokens:i.totalTokens,duration_ms:i.durationMs,total_duration_seconds:Number((i.durationMs/1e3).toFixed(4))},null,2)}
503
- `,"utf8"),await Me(W.join(e,"result.json"),`${JSON.stringify({success:i.result.success,signal:i.result.signal??null,signal_reason:i.result.signalReason??null,interrupted:i.result.interrupted===!0,limit_reached:i.result.limitReached===!0,session_id:i.result.sessionId,execution_metrics:a},null,2)}
504
- `,"utf8")}async function fb(e,t=db){let n=await Ur(W.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=W.resolve(e.workspaceDir);await re(r);let i=JSON.parse(await Ds(e.evalsPath,"utf8")),o=Array.isArray(i.evals)?i.evals:[],a=e.configs?.length?e.configs:["with_skill","without_skill"],c=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,d=[];for(let l=0;l<o.length;l+=1){let f=o[l],u=W.join(r,`eval-${l}`);await re(u),await Me(W.join(u,"eval_metadata.json"),`${JSON.stringify({eval_id:f.id??l,eval_name:f.name??`eval-${l}`,prompt:f.prompt??f.query??"",expected_output:f.expected_output??"",assertions:(Array.isArray(f.assertions)?f.assertions:[]).map(rb).filter(Boolean)},null,2)}
505
- `,"utf8");let m=await cb(f,e),g={};for(let w of a){let x=W.join(u,w);await re(x),g[w]=[];for(let h=1;h<=c;h+=1){let y=W.join(x,`run-${h}`);await re(y);let b=await lb(w,n,m,e),S=await t(b,{...e,configName:w,evalItem:f,runIndex:h});await ub(y,w,f,b,S),g[w].push({run_id:`run-${h}`,session_id:S.result.sessionId,success:S.result.success,total_tokens:S.totalTokens,duration_ms:S.durationMs,output_chars:S.result.lastText.length})}}d.push({eval_id:f.id??l,prompt:f.prompt??f.query??"",configs:g})}return{workspace:r,skill_name:n.name,eval_count:o.length,configs:a,runs_per_config:c,reports:d}}function pb(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}async function cf(e=process.argv){let t=pb(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await fb(t),r=`${JSON.stringify(n,null,2)}
506
- `;t.output?(await Me(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var mb,df=p(()=>{"use strict";js();An();he();s(rb,"normalizeAssertion");s(ib,"countToolCalls");s(ob,"countToolErrors");s(sb,"renderTranscript");s(ab,"readInputFiles");s(cb,"buildEvalPrompt");s(db,"defaultRunAgent");s(lb,"prepareConfigPrompt");s(ub,"writeRunArtifacts");s(fb,"runEvalWorkspace");s(pb,"parseArgs");s(cf,"main");mb=!1;mb&&cf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as hb,readFile as Ns,writeFile as uf}from"node:fs/promises";import F from"node:path";function Rt(e){return String(e??"").trim()}function ff(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Rt(i):i&&typeof i=="object"&&typeof i.text=="string"?Rt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Rt(e?.expected_output);return r?[r]:[]}function Ls(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function lf(e,t){return{text:Rt(e?.text??t),passed:e?.passed===!0,evidence:Rt(e?.evidence)}}function Ob(e,t){let n=Vt(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],o=new Set;for(let a of t){let c=r.findIndex((d,l)=>o.has(l)?!1:Rt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}o.add(c),i.push(lf(r[c],a))}if(t.length===0)for(let a of r){let c=lf(a,"");c.text&&i.push(c)}return{overall_summary:Rt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Ls(n.user_notes_summary?.uncertainties),needs_review:Ls(n.user_notes_summary?.needs_review),workarounds:Ls(n.user_notes_summary?.workarounds)}}}async function qs(e){return(await hb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>F.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function gb(e){let t=F.dirname(e),n=F.dirname(t),r=F.basename(t),i=F.basename(e),o=F.join(e,"outputs"),a=await ke(F.join(n,"eval_metadata.json"),{}),c=await Ns(F.join(o,"result.md"),"utf8").catch(()=>""),d=await Ns(F.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await Ns(F.join(e,"transcript.md"),"utf8").catch(()=>""),f=await ke(F.join(o,"metrics.json"),{}),u=await ke(F.join(e,"result.json"),{}),m=await ke(F.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:o,resultText:c,promptText:d,transcript:l,metrics:f,result:u,timing:m}}function yb(e){let t=ff(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
498
+ `}async function Ob(e,t){let n=String(e.prompt??e.query??"").trim();return`${await hb(e.files,t)}${n}`.trim()}async function gb(e,t){let{runKodaX:n,estimateTokens:r}=await nt(),i=Date.now(),o=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:W.resolve(t.cwd??process.cwd())}},e);return{result:o,totalTokens:r(o.messages),durationMs:Date.now()-i}}async function yb(e,t,n,r){return e==="with_skill"?(await Fs(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function wb(e,t,n,r,i){let o=W.join(e,"outputs");await oe(o);let a={total_tool_calls:fb(i.result.messages),errors_encountered:pb(i.result.messages),output_chars:i.result.lastText.length};await Fe(W.join(o,"result.md"),`${i.result.lastText}
499
+ `,"utf8"),await Fe(W.join(o,"prompt.txt"),`${r}
500
+ `,"utf8"),await Fe(W.join(e,"transcript.md"),mb(r,i.result),"utf8"),await Fe(W.join(o,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
501
+ `,"utf8"),await Fe(W.join(o,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
502
+ `,"utf8"),await Fe(W.join(e,"timing.json"),`${JSON.stringify({total_tokens:i.totalTokens,duration_ms:i.durationMs,total_duration_seconds:Number((i.durationMs/1e3).toFixed(4))},null,2)}
503
+ `,"utf8"),await Fe(W.join(e,"result.json"),`${JSON.stringify({success:i.result.success,signal:i.result.signal??null,signal_reason:i.result.signalReason??null,interrupted:i.result.interrupted===!0,limit_reached:i.result.limitReached===!0,session_id:i.result.sessionId,execution_metrics:a},null,2)}
504
+ `,"utf8")}async function Sb(e,t=gb){let n=await Kr(W.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=W.resolve(e.workspaceDir);await oe(r);let i=JSON.parse(await qs(e.evalsPath,"utf8")),o=Array.isArray(i.evals)?i.evals:[],a=e.configs?.length?e.configs:["with_skill","without_skill"],c=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,d=[];for(let l=0;l<o.length;l+=1){let f=o[l],u=W.join(r,`eval-${l}`);await oe(u),await Fe(W.join(u,"eval_metadata.json"),`${JSON.stringify({eval_id:f.id??l,eval_name:f.name??`eval-${l}`,prompt:f.prompt??f.query??"",expected_output:f.expected_output??"",assertions:(Array.isArray(f.assertions)?f.assertions:[]).map(ub).filter(Boolean)},null,2)}
505
+ `,"utf8");let m=await Ob(f,e),g={};for(let w of a){let k=W.join(u,w);await oe(k),g[w]=[];for(let h=1;h<=c;h+=1){let y=W.join(k,`run-${h}`);await oe(y);let P=await yb(w,n,m,e),S=await t(P,{...e,configName:w,evalItem:f,runIndex:h});await wb(y,w,f,P,S),g[w].push({run_id:`run-${h}`,session_id:S.result.sessionId,success:S.result.success,total_tokens:S.totalTokens,duration_ms:S.durationMs,output_chars:S.result.lastText.length})}}d.push({eval_id:f.id??l,prompt:f.prompt??f.query??"",configs:g})}return{workspace:r,skill_name:n.name,eval_count:o.length,configs:a,runs_per_config:c,reports:d}}function bb(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}async function pf(e=process.argv){let t=bb(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await Sb(t),r=`${JSON.stringify(n,null,2)}
506
+ `;t.output?(await Fe(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var Pb,mf=p(()=>{"use strict";Ds();Xn();ye();s(ub,"normalizeAssertion");s(fb,"countToolCalls");s(pb,"countToolErrors");s(mb,"renderTranscript");s(hb,"readInputFiles");s(Ob,"buildEvalPrompt");s(gb,"defaultRunAgent");s(yb,"prepareConfigPrompt");s(wb,"writeRunArtifacts");s(Sb,"runEvalWorkspace");s(bb,"parseArgs");s(pf,"main");Pb=!1;Pb&&pf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as vb,readFile as zs,writeFile as Of}from"node:fs/promises";import F from"node:path";function Rt(e){return String(e??"").trim()}function gf(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Rt(i):i&&typeof i=="object"&&typeof i.text=="string"?Rt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Rt(e?.expected_output);return r?[r]:[]}function Us(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function hf(e,t){return{text:Rt(e?.text??t),passed:e?.passed===!0,evidence:Rt(e?.evidence)}}function kb(e,t){let n=Kt(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],o=new Set;for(let a of t){let c=r.findIndex((d,l)=>o.has(l)?!1:Rt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}o.add(c),i.push(hf(r[c],a))}if(t.length===0)for(let a of r){let c=hf(a,"");c.text&&i.push(c)}return{overall_summary:Rt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Us(n.user_notes_summary?.uncertainties),needs_review:Us(n.user_notes_summary?.needs_review),workarounds:Us(n.user_notes_summary?.workarounds)}}}async function Vs(e){return(await vb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>F.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function xb(e){let t=F.dirname(e),n=F.dirname(t),r=F.basename(t),i=F.basename(e),o=F.join(e,"outputs"),a=await Re(F.join(n,"eval_metadata.json"),{}),c=await zs(F.join(o,"result.md"),"utf8").catch(()=>""),d=await zs(F.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await zs(F.join(e,"transcript.md"),"utf8").catch(()=>""),f=await Re(F.join(o,"metrics.json"),{}),u=await Re(F.join(e,"result.json"),{}),m=await Re(F.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:o,resultText:c,promptText:d,transcript:l,metrics:f,result:u,timing:m}}function Tb(e){let t=gf(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
507
507
  `):"(No explicit assertions; infer one expectation from expected_output if present.)";return`${e.agentInstructions.trim()}
508
508
 
509
509
  Return JSON with this shape:
@@ -530,16 +530,16 @@ Return JSON with this shape:
530
530
  - run_id: ${e.runId}
531
531
 
532
532
  ## Eval Prompt
533
- ${ne(e.evalMetadata.prompt??e.promptText,4e3)}
533
+ ${ie(e.evalMetadata.prompt??e.promptText,4e3)}
534
534
 
535
535
  ## Expected Outcome
536
- ${ne(e.evalMetadata.expected_output??"",2e3)}
536
+ ${ie(e.evalMetadata.expected_output??"",2e3)}
537
537
 
538
538
  ## Assertions
539
539
  ${n}
540
540
 
541
541
  ## Final Output
542
- ${ne(e.resultText,12e3)}
542
+ ${ie(e.resultText,12e3)}
543
543
 
544
544
  ## Result Flags
545
545
  ${JSON.stringify({success:e.result.success??null,signal:e.result.signal??null,interrupted:e.result.interrupted??!1,limit_reached:e.result.limit_reached??e.result.limitReached??!1},null,2)}
@@ -548,13 +548,13 @@ ${JSON.stringify({success:e.result.success??null,signal:e.result.signal??null,in
548
548
  ${JSON.stringify({total_tool_calls:e.metrics.total_tool_calls??e.result.execution_metrics?.total_tool_calls??0,errors_encountered:e.metrics.errors_encountered??e.result.execution_metrics?.errors_encountered??0,output_chars:e.metrics.output_chars??e.result.execution_metrics?.output_chars??e.resultText.length,total_tokens:e.timing.total_tokens??0,total_duration_seconds:e.timing.total_duration_seconds??0},null,2)}
549
549
 
550
550
  ## Transcript Excerpt
551
- ${ne(e.transcript,5e3)}
552
- `}async function pf(e,t){let{runKodaX:n}=await Je();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:F.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function wb(e,t,n=pf){let r=await gb(F.resolve(e)),i=ff(r.evalMetadata),o=await Kt(import.meta.url,"../agents/grader.md"),a=yb({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=Ob(c,i),l={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},f={summary:tf(d.expectations),expectations:d.expectations,execution_metrics:l,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await uf(F.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
553
- `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function Sb(e,t=pf){let n=F.resolve(e.workspaceDir);await re(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],o=[];for(let c of await qs(n))if(F.basename(c).startsWith("eval-"))for(let d of await qs(c)){let l=F.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await qs(d)){if(!F.basename(f).startsWith("run-"))continue;let u=F.join(f,"grading.json");if(await ke(u,null)&&e.overwrite!==!0){o.push(F.relative(n,f).replace(/\\/g,"/"));continue}let g=await wb(f,e,t);i.push({run:F.relative(n,f).replace(/\\/g,"/"),summary:g.grading.summary,config:g.grading.meta.config,eval_id:g.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:o.length,processed_runs:i,skipped_runs:o};return await uf(F.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
554
- `,"utf8"),a}function bb(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}async function mf(e=process.argv){let t=bb(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await Sb(t);process.stdout.write(`${JSON.stringify(n,null,2)}
555
- `)}var Pb,hf=p(()=>{"use strict";he();s(Rt,"normalizeExpectationText");s(ff,"normalizeExpectedRubric");s(Ls,"normalizeStringArray");s(lf,"normalizeExpectationEntry");s(Ob,"normalizeParsedGrading");s(qs,"listDirectories");s(gb,"loadRunContext");s(yb,"buildGradingPrompt");s(pf,"defaultRunJudge");s(wb,"gradeRun");s(Sb,"gradeWorkspace");s(bb,"parseArgs");s(mf,"main");Pb=!1;Pb&&mf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as vb,readdir as kb,stat as xb,writeFile as Of}from"node:fs/promises";import ie from"node:path";async function zs(e){return JSON.parse(await vb(e,"utf8"))}async function Tb(e){try{return await xb(e),!0}catch{return!1}}async function Us(e){return(await kb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>ie.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function ci(e){let t=await Tb(ie.join(e,"runs"))?ie.join(e,"runs"):e,n=(await Us(t)).filter(i=>ie.basename(i).startsWith("eval-")),r={};for(let i of n){let o=ie.join(i,"eval_metadata.json"),c=(await zs(o).catch(()=>({}))).eval_id??ie.basename(i);for(let d of await Us(i)){let l=ie.basename(d),f=(await Us(d)).filter(u=>ie.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await zs(ie.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await zs(ie.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:ie.basename(u),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:g.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:g.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}function Rb(e){let t={};for(let[o,a]of Object.entries(e))t[o]={pass_rate:oi(a.map(c=>Number(c.pass_rate??0))),time_seconds:oi(a.map(c=>Number(c.time_seconds??0))),tokens:oi(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:si(r.pass_rate.mean-i.pass_rate.mean),time_seconds:si(r.time_seconds.mean-i.time_seconds.mean),tokens:si(r.tokens.mean-i.tokens.mean)}}}function Vs(e,t,n){let r=Rb(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:ie.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function _b(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
556
- `)}function Qb(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}async function Eb(){let{iterationDir:e,skillName:t}=Qb(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await ci(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Vs(e,t,n),i=ie.join(e,"benchmark.json"),o=ie.join(e,"benchmark.md");await Of(i,JSON.stringify(r,null,2)),await Of(o,`${_b(r)}
557
- `),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var Ib,gf=p(()=>{"use strict";he();s(zs,"readJson");s(Tb,"pathExists");s(Us,"listDirectories");s(ci,"loadRunResults");s(Rb,"summarizeConfigs");s(Vs,"buildBenchmarkDocument");s(_b,"renderBenchmarkMarkdown");s(Qb,"parseArgs");s(Eb,"main");Ib=!1;Ib&&Eb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Ks}from"node:fs/promises";import je from"node:path";function di(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function $b(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,o=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&o.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:o.slice(0,10)}}return t}function Cb(e,t,n){let r=Vt(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:di(r.key_findings),variance_hotspots:di(r.variance_hotspots),suggested_actions:di(r.suggested_actions),watchouts:di(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}function Ab(e){return`${e.agentInstructions.trim()}
551
+ ${ie(e.transcript,5e3)}
552
+ `}async function yf(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:F.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function Rb(e,t,n=yf){let r=await xb(F.resolve(e)),i=gf(r.evalMetadata),o=await Yt(import.meta.url,"../agents/grader.md"),a=Tb({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=kb(c,i),l={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},f={summary:af(d.expectations),expectations:d.expectations,execution_metrics:l,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await Of(F.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
553
+ `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function _b(e,t=yf){let n=F.resolve(e.workspaceDir);await oe(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],o=[];for(let c of await Vs(n))if(F.basename(c).startsWith("eval-"))for(let d of await Vs(c)){let l=F.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await Vs(d)){if(!F.basename(f).startsWith("run-"))continue;let u=F.join(f,"grading.json");if(await Re(u,null)&&e.overwrite!==!0){o.push(F.relative(n,f).replace(/\\/g,"/"));continue}let g=await Rb(f,e,t);i.push({run:F.relative(n,f).replace(/\\/g,"/"),summary:g.grading.summary,config:g.grading.meta.config,eval_id:g.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:o.length,processed_runs:i,skipped_runs:o};return await Of(F.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
554
+ `,"utf8"),a}function Qb(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}async function wf(e=process.argv){let t=Qb(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await _b(t);process.stdout.write(`${JSON.stringify(n,null,2)}
555
+ `)}var Eb,Sf=p(()=>{"use strict";ye();s(Rt,"normalizeExpectationText");s(gf,"normalizeExpectedRubric");s(Us,"normalizeStringArray");s(hf,"normalizeExpectationEntry");s(kb,"normalizeParsedGrading");s(Vs,"listDirectories");s(xb,"loadRunContext");s(Tb,"buildGradingPrompt");s(yf,"defaultRunJudge");s(Rb,"gradeRun");s(_b,"gradeWorkspace");s(Qb,"parseArgs");s(wf,"main");Eb=!1;Eb&&wf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Ib,readdir as $b,stat as Cb,writeFile as bf}from"node:fs/promises";import se from"node:path";async function Ks(e){return JSON.parse(await Ib(e,"utf8"))}async function Ab(e){try{return await Cb(e),!0}catch{return!1}}async function Ys(e){return(await $b(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>se.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function ui(e){let t=await Ab(se.join(e,"runs"))?se.join(e,"runs"):e,n=(await Ys(t)).filter(i=>se.basename(i).startsWith("eval-")),r={};for(let i of n){let o=se.join(i,"eval_metadata.json"),c=(await Ks(o).catch(()=>({}))).eval_id??se.basename(i);for(let d of await Ys(i)){let l=se.basename(d),f=(await Ys(d)).filter(u=>se.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await Ks(se.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await Ks(se.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:se.basename(u),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:g.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:g.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}function Xb(e){let t={};for(let[o,a]of Object.entries(e))t[o]={pass_rate:ci(a.map(c=>Number(c.pass_rate??0))),time_seconds:ci(a.map(c=>Number(c.time_seconds??0))),tokens:ci(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:di(r.pass_rate.mean-i.pass_rate.mean),time_seconds:di(r.time_seconds.mean-i.time_seconds.mean),tokens:di(r.tokens.mean-i.tokens.mean)}}}function Gs(e,t,n){let r=Xb(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:se.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function Mb(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
556
+ `)}function jb(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}async function Wb(){let{iterationDir:e,skillName:t}=jb(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await ui(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Gs(e,t,n),i=se.join(e,"benchmark.json"),o=se.join(e,"benchmark.md");await bf(i,JSON.stringify(r,null,2)),await bf(o,`${Mb(r)}
557
+ `),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var Fb,Pf=p(()=>{"use strict";ye();s(Ks,"readJson");s(Ab,"pathExists");s(Ys,"listDirectories");s(ui,"loadRunResults");s(Xb,"summarizeConfigs");s(Gs,"buildBenchmarkDocument");s(Mb,"renderBenchmarkMarkdown");s(jb,"parseArgs");s(Wb,"main");Fb=!1;Fb&&Wb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Bs}from"node:fs/promises";import De from"node:path";function fi(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Db(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,o=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&o.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:o.slice(0,10)}}return t}function Nb(e,t,n){let r=Kt(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:fi(r.key_findings),variance_hotspots:fi(r.variance_hotspots),suggested_actions:fi(r.suggested_actions),watchouts:fi(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}function Lb(e){return`${e.agentInstructions.trim()}
558
558
 
559
559
  Return JSON with this shape:
560
560
  {
@@ -568,16 +568,16 @@ Return JSON with this shape:
568
568
  }
569
569
 
570
570
  ## Benchmark Summary
571
- ${ne(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.configs,delta:e.benchmark.delta},null,2),12e3)}
571
+ ${ie(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.configs,delta:e.benchmark.delta},null,2),12e3)}
572
572
 
573
573
  ## Failure Clusters
574
- ${ne(JSON.stringify(e.failureClusters,null,2),8e3)}
575
- `}async function Xb(e,t){let{runKodaX:n}=await Je();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:je.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Mb(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let o=Array.isArray(e[r])?e[r]:[];if(o.length===0)t.push("- None");else for(let a of o)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
574
+ ${ie(JSON.stringify(e.failureClusters,null,2),8e3)}
575
+ `}async function qb(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:De.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function zb(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let o=Array.isArray(e[r])?e[r]:[];if(o.length===0)t.push("- None");else for(let a of o)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
576
576
  `)}
577
- `}async function jb(e,t=Xb){let n=je.resolve(e.workspaceDir),r=je.resolve(e.benchmarkPath??je.join(n,"benchmark.json")),i=await ke(r,null);if(!i){let g=await ci(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Vs(n,e.skillName??je.basename(n),g),await Ks(r,`${JSON.stringify(i,null,2)}
578
- `,"utf8")}let o=await ci(n),a=$b(o),c=await Kt(import.meta.url,"../agents/analyzer.md"),d=Ab({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Cb(l,i,a),u=je.resolve(e.outputPath??je.join(n,"analysis.json")),m=je.resolve(e.markdownPath??je.join(n,"analysis.md"));return await Ks(u,`${JSON.stringify(f,null,2)}
579
- `,"utf8"),await Ks(m,Mb(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function Wb(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function yf(e=process.argv){let t=Wb(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await jb(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
580
- `)}var Fb,wf=p(()=>{"use strict";gf();he();s(di,"normalizeStringArray");s($b,"summarizeFailureClusters");s(Cb,"normalizeAnalysisResult");s(Ab,"buildAnalysisPrompt");s(Xb,"defaultRunAnalyst");s(Mb,"renderAnalysisMarkdown");s(jb,"analyzeBenchmark");s(Wb,"parseArgs");s(yf,"main");Fb=!1;Fb&&yf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Db,readFile as Sf,writeFile as bf}from"node:fs/promises";import z from"node:path";async function Gs(e){return(await Db(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>z.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Ys(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Nb(e){let t=Vt(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:Ys(t.strengths_a),strengths_b:Ys(t.strengths_b),risks:Ys(t.risks)}}async function Lb(e,t,n,r){let i=(await Gs(z.join(e,t))).filter(u=>z.basename(u).startsWith("run-")),o=(await Gs(z.join(e,n))).filter(u=>z.basename(u).startsWith("run-")),a=i[r],c=o[r];if(!a||!c)return null;let d=await ke(z.join(e,"eval_metadata.json"),{}),l=await Sf(z.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await Sf(z.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:z.basename(a),configName:t,output:l},runB:{runDir:c,runId:z.basename(c),configName:n,output:f}}}function qb(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
577
+ `}async function Ub(e,t=qb){let n=De.resolve(e.workspaceDir),r=De.resolve(e.benchmarkPath??De.join(n,"benchmark.json")),i=await Re(r,null);if(!i){let g=await ui(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Gs(n,e.skillName??De.basename(n),g),await Bs(r,`${JSON.stringify(i,null,2)}
578
+ `,"utf8")}let o=await ui(n),a=Db(o),c=await Yt(import.meta.url,"../agents/analyzer.md"),d=Lb({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Nb(l,i,a),u=De.resolve(e.outputPath??De.join(n,"analysis.json")),m=De.resolve(e.markdownPath??De.join(n,"analysis.md"));return await Bs(u,`${JSON.stringify(f,null,2)}
579
+ `,"utf8"),await Bs(m,zb(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function Vb(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function vf(e=process.argv){let t=Vb(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await Ub(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
580
+ `)}var Kb,kf=p(()=>{"use strict";Pf();ye();s(fi,"normalizeStringArray");s(Db,"summarizeFailureClusters");s(Nb,"normalizeAnalysisResult");s(Lb,"buildAnalysisPrompt");s(qb,"defaultRunAnalyst");s(zb,"renderAnalysisMarkdown");s(Ub,"analyzeBenchmark");s(Vb,"parseArgs");s(vf,"main");Kb=!1;Kb&&vf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Yb,readFile as xf,writeFile as Tf}from"node:fs/promises";import V from"node:path";async function Hs(e){return(await Yb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>V.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Zs(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Gb(e){let t=Kt(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:Zs(t.strengths_a),strengths_b:Zs(t.strengths_b),risks:Zs(t.risks)}}async function Bb(e,t,n,r){let i=(await Hs(V.join(e,t))).filter(u=>V.basename(u).startsWith("run-")),o=(await Hs(V.join(e,n))).filter(u=>V.basename(u).startsWith("run-")),a=i[r],c=o[r];if(!a||!c)return null;let d=await Re(V.join(e,"eval_metadata.json"),{}),l=await xf(V.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await xf(V.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:V.basename(a),configName:t,output:l},runB:{runDir:c,runId:V.basename(c),configName:n,output:f}}}function Zb(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
581
581
 
582
582
  Return JSON with this shape:
583
583
  {
@@ -592,28 +592,28 @@ Return JSON with this shape:
592
592
  Judge only the visible outputs. Do not mention hidden config names in the rationale.
593
593
 
594
594
  ## Eval Prompt
595
- ${ne(e.evalMetadata.prompt??"",4e3)}
595
+ ${ie(e.evalMetadata.prompt??"",4e3)}
596
596
 
597
597
  ## Expected Outcome
598
- ${ne(e.evalMetadata.expected_output??"",2e3)}
598
+ ${ie(e.evalMetadata.expected_output??"",2e3)}
599
599
 
600
600
  ## Assertions
601
- ${ne(JSON.stringify(e.evalMetadata.assertions??[],null,2),4e3)}
601
+ ${ie(JSON.stringify(e.evalMetadata.assertions??[],null,2),4e3)}
602
602
 
603
603
  ## Candidate A
604
- ${ne(t.A.output,12e3)}
604
+ ${ie(t.A.output,12e3)}
605
605
 
606
606
  ## Candidate B
607
- ${ne(t.B.output,12e3)}
608
- `}async function zb(e,t){let{runKodaX:n}=await Je();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:z.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Ub(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function Vb(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
607
+ ${ie(t.B.output,12e3)}
608
+ `}async function Hb(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:V.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Jb(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function eP(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
609
609
  `)}
610
- `}async function Kb(e,t=zb){let n=z.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",o=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await Kt(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Gs(n))if(z.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Lb(u,r,i,m);if(!g)break;let w=c.length%2===0,x=qb({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:w}),h=await t(x,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Nb(h),b=Ub(y.winner,w,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:z.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:z.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:w?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:b,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(u=>u.winner_config===r).length,config_b_wins:c.filter(u=>u.winner_config===i).length,ties:c.filter(u=>u.winner_config==="tie").length,inconclusive:c.filter(u=>u.winner_config==="inconclusive").length},comparisons:c},l=z.resolve(e.outputPath??z.join(n,"comparison.json")),f=z.resolve(e.markdownPath??z.join(n,"comparison.md"));return await bf(l,`${JSON.stringify(d,null,2)}
611
- `,"utf8"),await bf(f,Vb(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function Yb(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function Pf(e=process.argv){let t=Yb(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await Kb(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
612
- `)}var Gb,vf=p(()=>{"use strict";he();s(Gs,"listDirectories");s(Ys,"normalizeStringArray");s(Nb,"normalizeComparisonResult");s(Lb,"loadComparisonPair");s(qb,"buildComparisonPrompt");s(zb,"defaultRunComparator");s(Ub,"mapWinnerToConfig");s(Vb,"renderComparisonMarkdown");s(Kb,"compareWorkspace");s(Yb,"parseArgs");s(Pf,"main");Gb=!1;Gb&&Pf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Bb,writeFile as Zb}from"node:fs/promises";import{createHash as Hb}from"node:crypto";import Bs from"node:path";import{zipSync as Jb,strToU8 as eP}from"fflate";function nP(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function rP(e){return Hb("sha256").update(e).digest("hex")}function iP(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}async function oP(e,t={}){let n=await Un(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
610
+ `}async function tP(e,t=Hb){let n=V.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",o=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await Yt(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Hs(n))if(V.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Bb(u,r,i,m);if(!g)break;let w=c.length%2===0,k=Zb({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:w}),h=await t(k,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Gb(h),P=Jb(y.winner,w,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:V.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:V.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:w?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:P,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(u=>u.winner_config===r).length,config_b_wins:c.filter(u=>u.winner_config===i).length,ties:c.filter(u=>u.winner_config==="tie").length,inconclusive:c.filter(u=>u.winner_config==="inconclusive").length},comparisons:c},l=V.resolve(e.outputPath??V.join(n,"comparison.json")),f=V.resolve(e.markdownPath??V.join(n,"comparison.md"));return await Tf(l,`${JSON.stringify(d,null,2)}
611
+ `,"utf8"),await Tf(f,eP(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function nP(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function Rf(e=process.argv){let t=nP(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await tP(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
612
+ `)}var rP,_f=p(()=>{"use strict";ye();s(Hs,"listDirectories");s(Zs,"normalizeStringArray");s(Gb,"normalizeComparisonResult");s(Bb,"loadComparisonPair");s(Zb,"buildComparisonPrompt");s(Hb,"defaultRunComparator");s(Jb,"mapWinnerToConfig");s(eP,"renderComparisonMarkdown");s(tP,"compareWorkspace");s(nP,"parseArgs");s(Rf,"main");rP=!1;rP&&Rf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as iP,writeFile as oP}from"node:fs/promises";import{createHash as sP}from"node:crypto";import Js from"node:path";import{zipSync as aP,strToU8 as cP}from"fflate";function lP(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function uP(e){return sP("sha256").update(e).digest("hex")}function fP(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}async function pP(e,t={}){let n=await Yn(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
613
613
  - ${n.errors.join(`
614
- - `)}`);let r=await Ln(e),i=await Fs(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=nP(await Bb(d.absolutePath));o.push({...d,bytes:l,sha256:rP(l)})}let a=iP(r,o,t),c={[tP]:eP(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:Jb(c,{level:6})}}async function sP(e,t,n={}){let r=await oP(e,n);return await Zb(t,r.bytes),{...r,outputPath:Bs.resolve(t)}}function aP(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}async function kf(e=process.argv){let t=aP(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Ln(t.skillDir),r=t.output??Bs.join(Bs.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await sP(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var tP,cP,xf=p(()=>{"use strict";ai();he();tP=".kodax-package.json";s(nP,"toUint8Array");s(rP,"sha256");s(iP,"createPackageManifest");s(oP,"buildSkillPackage");s(sP,"writeSkillPackage");s(aP,"parseArgs");s(kf,"main");cP=!1;cP&&kf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as dP,mkdir as Zs,readFile as _f,rm as Qf,stat as lP,writeFile as uP}from"node:fs/promises";import xe from"node:path";import{strFromU8 as Tf,unzipSync as fP}from"fflate";function pP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function mP(e){let t=pP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function hP(e){return/\.(skill|zip)$/i.test(e)}function OP(e){let t=fP(e),n=Object.entries(t).map(([l,f])=>({relativePath:mP(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ii(Tf(r.bytes)),o=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!o||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(l=>l.relativePath===Rf),d=c?JSON.parse(Tf(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==Rf)}}async function gP(e,t){if(await qn(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Qf(e,{recursive:!0,force:!0})}await Zs(e,{recursive:!0})}async function yP(e,t={}){let n=xe.resolve(t.skillsDir??zn()),r=OP(await _f(e)),i=xe.join(n,r.skillName);await gP(i,t.force===!0);for(let o of r.entries){let a=xe.join(i,o.relativePath);await Zs(xe.dirname(a),{recursive:!0}),await uP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:xe.resolve(e),manifest:r.manifest}}async function wP(e,t={}){let n=await Un(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
614
+ - `)}`);let r=await Un(e),i=await Ls(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=lP(await iP(d.absolutePath));o.push({...d,bytes:l,sha256:uP(l)})}let a=fP(r,o,t),c={[dP]:cP(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:aP(c,{level:6})}}async function mP(e,t,n={}){let r=await pP(e,n);return await oP(t,r.bytes),{...r,outputPath:Js.resolve(t)}}function hP(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}async function Qf(e=process.argv){let t=hP(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Un(t.skillDir),r=t.output??Js.join(Js.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await mP(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var dP,OP,Ef=p(()=>{"use strict";li();ye();dP=".kodax-package.json";s(lP,"toUint8Array");s(uP,"sha256");s(fP,"createPackageManifest");s(pP,"buildSkillPackage");s(mP,"writeSkillPackage");s(hP,"parseArgs");s(Qf,"main");OP=!1;OP&&Qf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as gP,mkdir as ea,readFile as Cf,rm as Af,stat as yP,writeFile as wP}from"node:fs/promises";import _e from"node:path";import{strFromU8 as If,unzipSync as SP}from"fflate";function bP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function PP(e){let t=bP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function vP(e){return/\.(skill|zip)$/i.test(e)}function kP(e){let t=SP(e),n=Object.entries(t).map(([l,f])=>({relativePath:PP(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ai(If(r.bytes)),o=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!o||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(l=>l.relativePath===$f),d=c?JSON.parse(If(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==$f)}}async function xP(e,t){if(await Vn(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Af(e,{recursive:!0,force:!0})}await ea(e,{recursive:!0})}async function TP(e,t={}){let n=_e.resolve(t.skillsDir??Kn()),r=kP(await Cf(e)),i=_e.join(n,r.skillName);await xP(i,t.force===!0);for(let o of r.entries){let a=_e.join(i,o.relativePath);await ea(_e.dirname(a),{recursive:!0}),await wP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:_e.resolve(e),manifest:r.manifest}}async function RP(e,t={}){let n=await Yn(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
615
615
  - ${n.errors.join(`
616
- - `)}`);let r=xe.join(e,"SKILL.md"),i=ii(await _f(r,"utf8")),o=xe.resolve(t.skillsDir??zn()),a=xe.join(o,i.frontmatter.name);if(await qn(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Qf(a,{recursive:!0,force:!0})}return await Zs(o,{recursive:!0}),await dP(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:xe.resolve(e),manifest:null}}async function SP(e,t={}){let n=xe.resolve(e),r=await lP(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return wP(n,t);if(r.isFile()&&hP(n))return yP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function bP(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}async function Ef(e=process.argv){let t=bP(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await SP(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var Rf,PP,If=p(()=>{"use strict";ai();he();Rf=".kodax-package.json";s(pP,"normalizeArchivePath");s(mP,"assertSafeArchivePath");s(hP,"isZipLike");s(OP,"readSkillPackageBuffer");s(gP,"ensureInstallTarget");s(yP,"installSkillArchive");s(wP,"installSkillDirectory");s(SP,"installSkill");s(bP,"parseArgs");s(Ef,"main");PP=!1;PP&&Ef().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var $f=p(()=>{"use strict";of();ai();df();hf();wf();vf();xf();If();he()});var Hs=p(()=>{"use strict";ys();gs();An();Cs();Dn();As();Bu();js();$f()});var Js=p(()=>{"use strict"});var ea=p(()=>{"use strict"});var li=p(()=>{"use strict"});var Cf=p(()=>{"use strict";kt()});var lD,Xf=p(()=>{"use strict";Hs();zr();xt();kt();Js();ea();li();Cf();lD=1440*60*1e3});var gD,Vn=p(()=>{"use strict";zr();pe();kt();G();gD=5*6e4});var Mf=p(()=>{"use strict";Wn();li();Vn()});var jf=p(()=>{"use strict";tu();Xf();li();Js();ea();Vn();Vn();Vn();Mf()});var cN,Kn=p(()=>{"use strict";G();cN=new Intl.Segmenter("zh-CN",{granularity:"word"})});var ta=p(()=>{"use strict";Jo();_n();is()});var na=p(()=>{"use strict";pe();G()});var ui=p(()=>{"use strict"});var ra=p(()=>{"use strict";G();na();ui()});var ia=p(()=>{"use strict"});var oa=p(()=>{"use strict";Kn();ta();na();ra();pe();ui();ia()});var sa=p(()=>{"use strict";jt();Kn();oa()});var Df=p(()=>{"use strict";sa()});var uL,Nf=p(()=>{"use strict";Kn();uL=String.raw`const TOOL_NAME = 'echo_tool';
616
+ - `)}`);let r=_e.join(e,"SKILL.md"),i=ai(await Cf(r,"utf8")),o=_e.resolve(t.skillsDir??Kn()),a=_e.join(o,i.frontmatter.name);if(await Vn(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Af(a,{recursive:!0,force:!0})}return await ea(o,{recursive:!0}),await gP(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:_e.resolve(e),manifest:null}}async function _P(e,t={}){let n=_e.resolve(e),r=await yP(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return RP(n,t);if(r.isFile()&&vP(n))return TP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function QP(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}async function Xf(e=process.argv){let t=QP(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await _P(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var $f,EP,Mf=p(()=>{"use strict";li();ye();$f=".kodax-package.json";s(bP,"normalizeArchivePath");s(PP,"assertSafeArchivePath");s(vP,"isZipLike");s(kP,"readSkillPackageBuffer");s(xP,"ensureInstallTarget");s(TP,"installSkillArchive");s(RP,"installSkillDirectory");s(_P,"installSkill");s(QP,"parseArgs");s(Xf,"main");EP=!1;EP&&Xf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var jf=p(()=>{"use strict";lf();li();mf();Sf();kf();_f();Ef();Mf();ye()});var ta=p(()=>{"use strict";bs();Ss();Xn();Ms();qn();js();tf();Ds();jf()});var na=p(()=>{"use strict"});var ra=p(()=>{"use strict"});var pi=p(()=>{"use strict"});var Wf=p(()=>{"use strict";kt()});var fD,Df=p(()=>{"use strict";ta();Vr();xt();kt();na();ra();pi();Wf();fD=1440*60*1e3});var wD,Gn=p(()=>{"use strict";Vr();ge();kt();H();wD=5*6e4});var Nf=p(()=>{"use strict";Nn();pi();Gn()});var Lf=p(()=>{"use strict";au();Df();pi();na();ra();Gn();Gn();Gn();Nf()});var lN,Bn=p(()=>{"use strict";H();lN=new Intl.Segmenter("zh-CN",{granularity:"word"})});var ia=p(()=>{"use strict";ns();Qn();as()});var oa=p(()=>{"use strict";ge();H()});var mi=p(()=>{"use strict"});var sa=p(()=>{"use strict";H();oa();mi()});var aa=p(()=>{"use strict"});var ca=p(()=>{"use strict";Bn();ia();oa();sa();ge();mi();aa()});var da=p(()=>{"use strict";jt();Bn();ca()});var Uf=p(()=>{"use strict";da()});var pL,Vf=p(()=>{"use strict";Bn();pL=String.raw`const TOOL_NAME = 'echo_tool';
617
617
  const RESOURCE_URI = 'memory://guide';
618
618
  const PROMPT_NAME = 'draft_prompt';
619
619
  let buffer = '';
@@ -793,16 +793,17 @@ process.stdin.on('data', (chunk) => {
793
793
 
794
794
  process.on('SIGTERM', () => process.exit(0));
795
795
  process.on('SIGINT', () => process.exit(0));
796
- `});var Lf=p(()=>{"use strict";Kn();oa();sa();ia();ta();ui();ra();Df();Nf()});async function VP(e,t,n){let r=zf("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function KP(e,t,n){let r=zf("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function YP(e){let t=[],n=new Map,r=[],i=null;for(let o of e){if(o.type==="label"){let c=o.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:o,children:[]};if(o.type==="message"){t.push(a),n.set(o.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:o,label:a}of r){let c=n.get(o);c&&a!==void 0&&(c.label=a)}return t}var qf,zP,UP,zf,GP,Uf=p(()=>{"use strict";qf=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),zP=0,UP=0,zf=s(e=>{let t=e==="label"?++zP:++UP,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(VP,"appendLabel");s(KP,"appendArtifact");s(YP,"buildLineageTree");GP=Object.freeze({name:"lineage",entryTypes:qf,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return VP(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return KP(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>YP(e),"buildLineageTree")})})});var Vf=p(()=>{"use strict"});var fi=p(()=>{"use strict"});var pi=p(()=>{"use strict";fi()});var aa=p(()=>{"use strict"});var ca=p(()=>{"use strict";aa()});var Kf=p(()=>{"use strict"});var mi=p(()=>{"use strict"});var hi=p(()=>{"use strict"});var iv,la,Oi,Yt=p(()=>{"use strict";jt();pi();ca();Kf();fi();un();mi();hi();iv=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),la=iv,Oi=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
797
-
798
- `});var ua=p(()=>{"use strict";jt()});var Gt=p(()=>{"use strict";Yt();ua()});var Jf=p(()=>{"use strict";Gt()});var ep=p(()=>{"use strict"});var Qq,Eq,tp=p(()=>{"use strict";Yt();Gt();Qq=Oi.trimEnd(),Eq=16*1024});var np=p(()=>{"use strict";pi();Gt()});var rp=p(()=>{"use strict";Gt()});var dv,ip=p(()=>{"use strict";Yt();fi();dv={enabled:!1,maxAge:20,protectedTools:Array.from(la)}});var op=p(()=>{"use strict"});var sp=p(()=>{"use strict";G()});var ap=p(()=>{"use strict";Yt()});var cp=p(()=>{"use strict";jt();un();mi();hi()});var dp=p(()=>{"use strict"});var lp=p(()=>{"use strict";ap();cp();dp()});var up=p(()=>{"use strict";Uf();Vf();Jf();ep();Gt();tp();np();rp();mi();hi();pi();aa();ca();Yt();ip();ua();op();sp();lp()});var fp=p(()=>{"use strict"});var pa=p(()=>{"use strict"});var ma=p(()=>{"use strict"});var gi=p(()=>{"use strict"});import{createRequire as hv}from"node:module";var Ov,pp,WU,ha=p(()=>{"use strict";Ov=hv(import.meta.url),WU=new Proxy({},{get(e,t){return pp??=Ov("typescript"),Reflect.get(pp,t)}})});var Oa=p(()=>{"use strict";gi();ha()});var hp=p(()=>{"use strict";gi();Oa()});var ga=p(()=>{"use strict";Pn();pa()});var Op=p(()=>{"use strict";ma();ga()});var gp=p(()=>{"use strict";fp();pa();ma();gi();Oa();ha();hp();ga();Op()});var yp=p(()=>{"use strict"});var ya=p(()=>{"use strict"});var wp=p(()=>{"use strict";ya();ya()});var Sp=p(()=>{"use strict"});var bp=p(()=>{"use strict";yp();wp();Sp()});var yi=p(()=>{"use strict"});var wa=p(()=>{"use strict";yi()});var eV,Pp=p(()=>{"use strict";yi();wa();eV=new Intl.Segmenter("en",{granularity:"grapheme"})});var vp=p(()=>{"use strict";Pp();yi();wa()});var wi=p(()=>{"use strict";Wc();jt();un();pe();Nd();Ld();qd();Ho();Go();Zo();Bo();kn();Ko();Yo();Cr();tl();G();ol();Jo();_n();is();Rl();_l();as();jl();ql();fs();ps();zl();Ul();ms();hs();hs();zr();jf();ti();ti();kt();Lf();Hs();Vo();up();gp();bp();vp()});import kp from"node:fs";import Sa from"node:os";import We from"node:path";function Rp(e){return(e==="~"?Sa.homedir():/^~[\\/]/.test(e)?We.join(Sa.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,Sa.homedir())}function ba(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=Rp(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=We.resolve(t,n);for(;;){try{kp.lstatSync(i)}catch(o){if(o.code!=="ENOENT")return;let a=We.dirname(i);if(a===i)return;r.unshift(We.basename(i)),i=a;continue}try{return We.join(kp.realpathSync.native(i),...r)}catch{return}}}function xp(e,t){let n=We.relative(t,e);if(!(!n||n.startsWith("..")||We.isAbsolute(n)))return n.split(/[\\/]+/).map(r=>{let i=r.toLowerCase();if(process.platform!=="win32")return i;let o=i.indexOf(":");return(o>=0?i.slice(0,o):i).replace(/[ .]+$/g,"")}).join("/")}function _p(e,t=process.cwd()){let n;try{n=St()}catch{return!1}let r=We.resolve(n),i=We.resolve(t,Rp(e));if(xn(i,r)){let d=xp(i,r);if(Tp(d))return!0}let o=ba(n)??r,a=ba(e,t);if(a===void 0)return xn(i,r);if(!xn(a,o))return!1;let c=xp(a,o);return Tp(c)}function Tp(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Qp=p(()=>{"use strict";wi();s(Rp,"expandHome");s(ba,"canonicalizeAgentHomePolicyPath");s(xp,"normalizedRelative");s(_p,"isAgentHomeHardMutationTarget");s(Tp,"isHardAgentHomeRelativePath")});import{randomUUID as Xp}from"node:crypto";import{mkdir as Cv,readFile as Av,rename as Xv,rm as Ep,writeFile as Mv}from"node:fs/promises";import vi from"node:path";function Mp(){return $p||(Ip=Ae(process.pid),$p=!0),Ip}function Ap(e,t){return vi.join(e,"runtime",...Cp===void 0?[]:[`test-filesystem-effects-${Cp}`],t)}function Lv(){let e=process.platform==="win32"?vi.join(vi.resolve(process.env.PROGRAMDATA??"C:\\ProgramData"),"KodaX","sandbox-runtime"):St();return{coordinatorPath:Ap(e,Nv),statePath:Ap(e,Dv)}}function Pa(e){if(typeof e!="object"||e===null)return!1;let t=e;return Number.isInteger(t.pid)&&typeof t.token=="string"&&(t.effectPid===void 0||Number.isInteger(t.effectPid))&&(t.effectProcessStartIdentity===void 0||typeof t.effectProcessStartIdentity=="string")&&(t.effectFinished===void 0||typeof t.effectFinished=="boolean")&&(t.processStartIdentity===void 0||typeof t.processStartIdentity=="string")&&(t.sandboxPolicyKey===void 0||typeof t.sandboxPolicyKey=="string")&&(t.posixProcessGroup===void 0||typeof t.posixProcessGroup=="boolean")&&(t.windowsJobContained===void 0||typeof t.windowsJobContained=="boolean")}async function Yn(e){let t;try{t=await Av(e.statePath,"utf8")}catch(o){if(o.code==="ENOENT")return{direct:[],namespaces:[],shells:[]};throw o}let n=JSON.parse(t);if(typeof n!="object"||n===null)throw new Error("Invalid filesystem effect lease state.");let r=n;if(!Array.isArray(r.direct)||!r.direct.every(Pa))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(Pa))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(Pa))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function qv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function jp(e){if(!qv(e.pid))return!1;let t=e.pid===process.pid?Mp():Ae(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function zv(e,t){if(e.effectFinished===!0)return"absent";if(e.effectPid===void 0)return t?"unknown":"absent";if(e.posixProcessGroup===!0)try{return process.kill(-e.effectPid,0),"alive"}catch(r){return r.code==="ESRCH"?"absent":"unknown"}let n=Ae(e.effectPid);return n!==void 0&&(e.effectProcessStartIdentity===void 0||n===e.effectProcessStartIdentity)?"alive":process.platform!=="win32"||e.windowsJobContained===!0||!t?"absent":"unknown"}function Uv(e,t){let n=new Map;for(let i of[...e.direct,...e.namespaces,...e.shells])n.set(i,jp(i));let r=s(i=>n.get(i)===!0||zv(i,t)!=="absent","keepExternalEffect");return{direct:e.direct.filter(i=>n.get(i)===!0),namespaces:e.namespaces.filter(r),shells:e.shells.filter(r)}}async function Vv(e){return await Gn(e,async()=>{let r=await Yn(e);return[...r.namespaces,...r.shells].some(i=>!jp(i))})?(await rs()).skipped>0:!0}async function Pi(e,t){let{statePath:n}=e;if(t.direct.length===0&&t.namespaces.length===0&&t.shells.length===0){await Ep(n,{force:!0});return}await Cv(vi.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${Xp()}.tmp`;await Mv(r,`${JSON.stringify(t)}
799
- `,"utf8");try{await Xv(r,n)}catch(i){try{await Ep(r,{force:!0})}catch(o){throw new AggregateError([i,o],"Filesystem effect state update and cleanup both failed.")}throw i}}async function Gn(e,t){let n=await vs(e.coordinatorPath,jv);try{return await t()}finally{await n()}}function Kv(e,t){return e.sandboxPolicyKey===void 0||t===void 0?!0:e.sandboxPolicyKey!==t}function va(e,t){return t===void 0||e.sandboxPolicyKey===void 0?!0:e.sandboxPolicyKey!==t}async function Yv(e,t){let n=Lv(),r=Xp(),i=Mp(),o={pid:process.pid,token:r,...i===void 0?{}:{processStartIdentity:i},...t===void 0?{}:{sandboxPolicyKey:t}},a=Date.now()+Wv,c=Date.now()+Fv,d=await Vv(n);for(;;){let k=await Gn(n,async()=>{let R=Uv(await Yn(n),d);return(e==="shell"?R.direct.length>0||R.namespaces.some($=>Kv($,t)):e==="direct"?R.shells.length>0||R.namespaces.length>0:R.direct.length>0||R.namespaces.length>0||R.shells.some($=>va($,t)))?t!==void 0&&(e==="namespace"?R.namespaces.some(A=>A.sandboxPolicyKey!==t)||R.shells.some(A=>va(A,t)):e==="shell"&&R.namespaces.some(A=>A.sandboxPolicyKey!==void 0&&A.sandboxPolicyKey!==t))?"sandbox-policy-conflict":R.direct.length===0&&(e==="namespace"?t!==void 0&&R.shells.every(A=>!va(A,t))&&R.namespaces.length>0&&R.namespaces.every(A=>A.sandboxPolicyKey===t):e==="shell"&&t===void 0&&R.namespaces.length>0&&R.namespaces.every(A=>A.sandboxPolicyKey!==void 0))?"sandbox-acl-transition":!1:(await Pi(n,e==="shell"?{direct:R.direct,namespaces:R.namespaces,shells:[...R.shells,o]}:e==="direct"?{direct:[...R.direct,o],namespaces:R.namespaces,shells:R.shells}:{direct:R.direct,namespaces:[...R.namespaces,o],shells:R.shells}),!0)});if(k===!0)break;if(k==="sandbox-policy-conflict")throw new Error("A different sandbox policy is already active.");let E=k==="sandbox-acl-transition"?c:a;if(Date.now()>=E)throw new Error("A model filesystem effect is already active; retry after it finishes.");await new Promise(R=>setTimeout(R,20))}let l=!1,f,u=!1,m=!1,g=s(()=>Gn(n,async()=>{let k=await Yn(n),E=(e==="shell"?k.shells:e==="direct"?k.direct:k.namespaces).find(R=>R.token===r);if(E===void 0){if(m)return;throw new Error("Filesystem effect lease ownership was lost.")}if(E.effectPid!==void 0&&E.effectFinished!==!0)throw new Error("Filesystem effect process tree has not been proven drained.");m=!0,await Pi(n,e==="shell"?{direct:k.direct,namespaces:k.namespaces,shells:k.shells.filter(R=>R.token!==r)}:e==="direct"?{direct:k.direct.filter(R=>R.token!==r),namespaces:k.namespaces,shells:k.shells}:{direct:k.direct,namespaces:k.namespaces.filter(R=>R.token!==r),shells:k.shells})}),"releaseOnce"),w=s(()=>{if(l||u)return;u=!0;let k=s(()=>{setTimeout(()=>{g().then(()=>{l=!0,u=!1}).catch(()=>{k()})},250).unref?.()},"retry");k()},"scheduleBackgroundRelease"),x=s(async()=>{let k;for(let E=1;E<=bi;E+=1)try{await g();return}catch(R){k=R,E<bi&&await new Promise(C=>setTimeout(C,20))}throw w(),k},"releaseReliably"),h=s(async()=>{l||(f??=x().then(()=>{l=!0}).finally(()=>{f=void 0}),await f)},"release"),y=s(async(k,E)=>{if(!Number.isInteger(k)||k<=0)throw new Error(`Invalid filesystem effect process id: ${k}`);await Gn(n,async()=>{let R=await Yn(n);if(!(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).some(D=>D.token===r))throw new Error("Filesystem effect lease ownership was lost before process binding.");let $=Ae(k),j={...o,effectPid:k,effectFinished:!1,...$===void 0?{}:{effectProcessStartIdentity:$},posixProcessGroup:process.platform!=="win32",windowsJobContained:E},A=s(D=>D.token===r?j:D,"replaceOwner");await Pi(n,{direct:e==="direct"?R.direct.map(A):R.direct,namespaces:e==="namespace"?R.namespaces.map(A):R.namespaces,shells:e==="shell"?R.shells.map(A):R.shells})}),b=!1},"bindEffectProcess"),b=!1,S,Q=!1,T=s(()=>Gn(n,async()=>{let k=await Yn(n),E=s(C=>C.token===r?{...C,effectFinished:!0}:C,"replaceOwner");if(!(e==="shell"?k.shells:e==="direct"?k.direct:k.namespaces).some(C=>C.token===r))throw new Error("Filesystem effect lease ownership was lost before tree completion.");await Pi(n,{direct:e==="direct"?k.direct.map(E):k.direct,namespaces:e==="namespace"?k.namespaces.map(E):k.namespaces,shells:e==="shell"?k.shells.map(E):k.shells})}),"finishEffectProcessOnce"),v=s(()=>{if(b||Q)return;Q=!0;let k=s(()=>{setTimeout(()=>{T().then(()=>{b=!0,Q=!1}).catch(()=>{k()})},250).unref?.()},"retry");k()},"scheduleBackgroundFinish");return Object.assign(h,{bindEffectProcess:y,finishEffectProcess:s(async()=>{b||(S??=(async()=>{let k;for(let E=1;E<=bi;E+=1)try{await T(),b=!0;return}catch(R){k=R,E<bi&&await new Promise(C=>setTimeout(C,20))}throw v(),k})().finally(()=>{S=void 0}),await S)},"finishEffectProcess")})}function Gv(){return Yv("direct")}async function Bv(e){let t=await Gv();try{return await e()}finally{await t()}}function Zv(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function Hv(e){if(typeof e!="string"||e.length===0)return"";let t=e.replace(/\\/g,"/");return t.startsWith("//")?t="//"+t.slice(2).replace(/\/+/g,"/"):t=t.replace(/\/+/g,"/"),Zv()?t=t.toLowerCase():t.length>=2&&/^[A-Za-z]:/.test(t)&&(t=t[0].toLowerCase()+t.slice(1)),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/g,"")),t}async function ka(e,t){let n=Hv(e),i=(Si.get(n)??Promise.resolve()).catch(()=>{}).then(async()=>Bv(async()=>{if(_p(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return await t()})),o=i.catch(()=>{}).finally(()=>{Si.get(n)===o&&Si.delete(n)});return Si.set(n,o),i}var Si,jv,Wv,Fv,bi,Dv,Nv,Ip,$p,Cp,Wp=p(()=>{"use strict";wi();Qp();Si=new Map,jv=3e4,Wv=1e3,Fv=3e4,bi=3,Dv="model-filesystem-effects.json",Nv="model-filesystem-effects.lock",$p=!1;s(Mp,"getEffectOwnerStartIdentity");Cp=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Ap,"effectRuntimePath");s(Lv,"captureEffectLeaseStorage");s(Pa,"isEffectLeaseOwner");s(Yn,"readEffectLeaseState");s(qv,"isProcessAlive");s(jp,"isEffectLeaseOwnerAlive");s(zv,"modelEffectTreeState");s(Uv,"removeStaleEffectLeases");s(Vv,"reconcileAbandonedManagedEffects");s(Pi,"writeEffectLeaseState");s(Gn,"withEffectLeaseCoordinator");s(Kv,"namespaceConflictsWithShell");s(va,"shellConflictsWithNamespace");s(Yv,"acquireEffectLease");s(Gv,"acquireDirectFileMutationLease");s(Bv,"withHostFileSystemMutation");s(Zv,"isWindowsPathPlatform");s(Hv,"normalizePathForKey");s(ka,"withFileMutation")});import{AsyncLocalStorage as Jv}from"node:async_hooks";import Fe from"fs/promises";import Ta from"path";async function oe(e,t){try{let n=await Fe.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function Oe(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&q({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function Bn(e){return ek.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function rk(e){return xa=(xa+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${xa}.tmp`}async function ok(e,t){for(let r=1;;r+=1)try{await Fe.rename(e,t);return}catch(i){let o=i?.code;if(r>=5||!o||!ik.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function De(e,t){await ka(e,async()=>{let n=Ta.dirname(e);await Fe.mkdir(n,{recursive:!0});let r=rk(e);try{await Fe.writeFile(r,`${JSON.stringify(t,null,2)}
800
- `,"utf8"),await ok(r,e)}catch(i){throw await Fe.rm(r,{force:!0}).catch(()=>{}),i}await sk(n,Ta.basename(e)).catch(()=>{})})}async function ki(e){await ka(e,async()=>{await Fe.mkdir(e,{recursive:!0})})}async function sk(e,t){let n=`${t}.`,r=Date.now(),i=await Fe.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&nk.test(o.slice(n.length))).map(async o=>{let a=Ta.join(e,o);try{let c=await Fe.stat(a);r-c.mtimeMs>=tk&&await Fe.rm(a,{force:!0})}catch{}}))}var ek,tk,nk,xa,ik,xi=p(()=>{"use strict";wi();Wp();ek=new Jv;s(oe,"safeReadJson");s(Oe,"debugLogRepoIntelligence");s(Bn,"resolveRepoIntelligenceStorageDir");tk=3600*1e3,nk=/^\d+\.\d+(?:\.\d+)?\.tmp$/,xa=0;s(rk,"nextAtomicTempPath");ik=new Set(["EPERM","EBUSY","EACCES"]);s(ok,"renameWithRetry");s(De,"writeJsonFileAtomic");s(ki,"ensureRepoIntelligenceStorageDir");s(sk,"sweepStaleTempFiles")});import _t from"fs/promises";import X from"path";import{createHash as _a}from"node:crypto";import{execFile as ak}from"child_process";import{promisify as ck}from"util";function Qt(e){return typeof e=="object"&&e!==null}function bk(e){return Qt(e)&&typeof e.id=="string"&&typeof e.label=="string"&&typeof e.kind=="string"&&typeof e.root=="string"&&typeof e.fileCount=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.sampleFiles)}function Pk(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&Qt(e.fileStats)&&typeof e.fileStats.totalFiles=="number"&&typeof e.fileStats.sourceFiles=="number"&&typeof e.fileStats.docFiles=="number"&&typeof e.fileStats.testFiles=="number"&&typeof e.fileStats.configFiles=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.keyDocs)&&Array.isArray(e.entryHints)&&Array.isArray(e.areas)&&e.areas.every(t=>bk(t))}function vk(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.overviewGeneratedAt=="string"&&(e.source==="git"||e.source==="filesystem")&&Array.isArray(e.allFiles)&&e.allFiles.every(t=>typeof t=="string")&&Array.isArray(e.sourceFiles)&&e.sourceFiles.every(t=>typeof t=="string")}function kk(e){return Qt(e)&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function xk(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||kk(e.git))&&(e.snapshotKind==="clean"||e.snapshotKind==="dirty")&&(e.head===void 0||typeof e.head=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.dirtyPathsFingerprint===void 0||typeof e.dirtyPathsFingerprint=="string")&&(e.dirtySemanticFingerprint===void 0||typeof e.dirtySemanticFingerprint=="string")}async function se(e,t){return(await dk("git",e,{cwd:t,timeout:fk,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function Zn(e){try{return await _t.access(e),!0}catch{return!1}}async function Ia(e){let t=_i(e);return await ki(t),t}function N(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Hp(e){let t=_a("sha256");for(let n of Array.from(e,r=>N(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Tk(e){return yk.has(X.posix.basename(N(e)))}function Rk(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(N(e[n]??"")!==N(t[n]??""))return!1;return!0}function Et(e){let t=N(e);return t===".agent"||t===".kodax"||pk.some(n=>t.startsWith(n))}async function _k(e){try{let t=(await se(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:X.resolve(t),source:"git"}}catch{}return{workspaceRoot:X.resolve(e),source:"filesystem"}}async function Qk(e){try{return(await _t.stat(e)).isDirectory()?e:X.dirname(e)}catch{return e}}async function Ek(e){let t=(await se(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await se(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(N).filter(i=>!Et(i))));return{files:r.slice(0,tt),truncated:r.length>tt}}async function Fp(e){let t=[],n=!1;async function r(i){if(t.length>=tt){n=!0;return}let o=await _t.readdir(i,{withFileTypes:!0});for(let a of o){if(t.length>=tt){n=!0;return}if(a.isDirectory()){if(Sk.has(a.name))continue;await r(X.join(i,a.name));continue}if(!a.isFile())continue;let c=N(X.relative(e,X.join(i,a.name)));Et(c)||t.push(c)}}return s(r,"walk"),await r(e),{files:t,truncated:n}}function Ik(e){let t=N(e).toLowerCase();return t.split("/").some(r=>hk.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Bt(e){let t=N(e),n=X.extname(t).toLowerCase(),r=X.posix.basename(t);return Ea.has(r)?"config":t.startsWith("docs/")||Zp.has(t)||Bp.has(n)?"docs":Ik(t)?"tests":mk.has(n)?"source":"other"}async function Jp(e,t){if(t===".")return"Workspace Root";let n=X.join(e,t,"package.json"),r=X.join(e,t,"pyproject.toml"),i=X.join(e,t,"Cargo.toml");if(await Zn(n))try{let o=JSON.parse(await _t.readFile(n,"utf8"));if(o.name?.trim())return o.name.trim()}catch{}for(let o of[r,i])if(await Zn(o))try{let c=(await _t.readFile(o,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return X.posix.basename(t)}async function $k(e,t){let n=new Map;for(let i of t){let a=N(i).split("/");if(a.length===1){n.set(".","root");continue}if(gk.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=Ok.get(a[0]??"");c&&n.set(a[0],c)}n.size===0&&n.set(".","root");let r=[];for(let[i,o]of Array.from(n.entries()).sort((a,c)=>a[0].localeCompare(c[0]))){let a=i==="."?"":`${i}/`,c=t.filter(l=>i==="."?!l.includes("/"):l===i||l.startsWith(a)).sort((l,f)=>l.localeCompare(f)),d=c.filter(l=>!(i==="."?l:l.slice(a.length)).includes("/")&&Ea.has(X.posix.basename(l)));r.push({id:i,label:await Jp(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,Qa),sampleFiles:c.slice(0,Qa)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Dp(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([se(["branch","--show-current"],e),se(["rev-parse","HEAD"],e),se(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function Hn(e,t){if(t==="git")try{return await Ek(e)}catch{return Fp(e)}return Fp(e)}async function Ti(e,t){let n=await tm(e,Kp);return!n||n.schemaVersion!==ce||t&&n.overviewGeneratedAt!==t?null:n}async function Np(e){let n=(await se(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),r=new Set;for(let i=0;i<n.length;i+=1){let o=n[i];if(!o||o.length<4)continue;let a=o.slice(0,2),c=N(o.slice(3));if(c&&!Et(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=N(n[i+1]??"");d&&!Et(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function em(e,t){return oe(_i(e,t),Pk)}async function tm(e,t){return oe(_i(e,t),vk)}async function Ck(e){return oe(_i(e,Up),xk)}async function Ak(e,t){let n=_a("sha256");n.update(Hp(t));for(let r of t){let i=X.join(e,r);n.update(r),n.update(":");try{if(await _t.stat(i),n.update("present:"),Tk(r)){let o=await _t.readFile(i,"utf8");n.update(_a("sha256").update(o).digest("hex"))}}catch(o){let a=Qt(o)&&typeof o.code=="string"?o.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Lp(e,t){let n=t.map(r=>N(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:Hp(n),dirtySemanticFingerprint:await Ak(e,n)}}async function Xk(e,t,n){let r=new Set(t.map(i=>N(i)));for(let i of n){let o=X.join(e,i);await Zn(o)?r.add(i):r.delete(i)}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function nm(e,t,n,r,i){let o=n.map(c=>N(c)),a={schemaVersion:ce,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:o.length,sourceFiles:o.filter(c=>Bt(c)==="source").length,docFiles:o.filter(c=>Bt(c)==="docs").length,testFiles:o.filter(c=>Bt(c)==="tests").length,configFiles:o.filter(c=>Bt(c)==="config").length},manifests:o.filter(c=>Ea.has(X.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>Zp.has(c)||/^README/i.test(X.posix.basename(c))&&Bp.has(X.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>wk.includes(X.posix.basename(c))).slice(0,8),areas:await $k(e,o)};return{overview:a,inventory:{schemaVersion:ce,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...o].sort((c,d)=>c.localeCompare(d)),sourceFiles:o.filter(c=>Bt(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function rm(e,t,n,r={}){let i={schemaVersion:ce,generatedAt:t.generatedAt,workspaceRoot:t.workspaceRoot,git:t.git??null,snapshotKind:t.source==="git"&&t.git?.hasUncommittedChanges===!0?"dirty":"clean",head:t.git?.head,branch:t.git?.branch,dirtyPathsFingerprint:r.dirtyIdentity?.dirtyPathsFingerprint,dirtySemanticFingerprint:r.dirtyIdentity?.dirtySemanticFingerprint};await De(X.join(e,Up),i),await De(X.join(e,Vp),t),await De(X.join(e,Kp),n),r.writeBaseline===!0&&(await De(X.join(e,Yp),t),await De(X.join(e,Gp),n))}function Mk(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===ce&&t.schemaVersion===ce&&e.source==="git"&&t.source==="git"&&e.git?.hasUncommittedChanges!==!0&&e.git?.head&&e.git?.head===n.head&&e.git?.branch===n.branch&&t.workspaceRoot===e.workspaceRoot&&t.overviewGeneratedAt===e.generatedAt)}function jk(e,t,n,r){return!!(e&&t&&e.schemaVersion===ce&&t.schemaVersion===ce&&e.source==="git"&&e.generatedAt===t.generatedAt&&e.workspaceRoot===t.workspaceRoot&&t.snapshotKind==="dirty"&&n?.hasUncommittedChanges===!0&&t.head===n.head&&t.branch===n.branch&&t.dirtyPathsFingerprint===r.dirtyPathsFingerprint&&t.dirtySemanticFingerprint===r.dirtySemanticFingerprint)}async function Wk(e,t,n){let r=await em(e,Yp),i=await tm(e,Gp);if(!Mk(r,i,t))return null;let o=i,{dirtyPaths:a}=n,c=new Set(o.allFiles);if(r.truncated)for(let x of a){let h=X.join(e,x);if(!c.has(x)||await Zn(h)===!1)return null}let d=new Set(c);for(let x of a){let h=X.join(e,x);await Zn(h)?d.add(x):d.delete(x)}let l=Array.from(d).sort((x,h)=>x.localeCompare(h)),f=r.truncated||l.length>tt,u=f?l.slice(0,tt):l,{overview:m,inventory:g}=await nm(e,"git",u,f,t),w=await Ia(e);return await rm(w,m,g,{dirtyIdentity:n}),m}async function Fk(e,t,n,r,i){if(!t||!n||t.schemaVersion!==ce||t.source!=="filesystem"||n.schemaVersion!==ce||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let o=r.map(a=>N(a)).sort((a,c)=>a.localeCompare(c));if(!Rk(n.allFiles,o))return!1;for(let a of t.areas)if(await Jp(e,a.root)!==a.label)return!1;return!0}async function Ra(e,t,n,r,i){let{files:o,truncated:a}=i??await Hn(e,t),c=t==="git"&&r?.dirtyPaths.length?await Xk(e,o,r.dirtyPaths):o.map(g=>N(g)),d=a||c.length>tt,l=d?c.slice(0,tt):c,f=await Ia(e),{overview:u,inventory:m}=await nm(e,t,l,d,n);return await rm(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function It(e,t={}){let n=Mc(e),r=await Qk(t.targetPath?X.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await _k(r),a=await em(i,Vp),c=await Ck(i),d,l;if(!t.refresh){if(d=await Dp(i,o),o!=="git"){let u=a?.schemaVersion===ce?await Ti(i,a.generatedAt):null,m=await Hn(i,o);return await Fk(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:Ra(i,o,d,void 0,m)}if(o==="git"&&a?.schemaVersion===ce&&d?.hasUncommittedChanges!==!0&&a.git?.head===d?.head&&a.git?.branch===d?.branch&&a.git?.hasUncommittedChanges===d?.hasUncommittedChanges&&a)return{workspaceRoot:i,source:o,overview:a,inventory:await Ti(i,a.generatedAt)};if(o==="git"&&d?.hasUncommittedChanges===!0){let u=await Np(i).catch(m=>(Oe("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Lp(i,u),jk(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await Ti(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await Wk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await Ti(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Ra(i,o,d,l)}if(d=await Dp(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await Np(i).catch(u=>(Oe("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Lp(i,f))}return Ra(i,o,d,l)}function qp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function Dk(e){if(!e.trim())return null;let t=e.slice(0,2),n=e.slice(3).trim(),r=N(n.includes(" -> ")?n.split(" -> ").pop()??n:n),i=t[0]!==" "&&t[0]!=="?",o=t[1]!==" "&&t[1]!=="?";return{status:t,path:r,staged:i,unstaged:o||t==="??"}}function Nk(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function zp(e,t){let n=N(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function Lk(e,t){let n=[];t.length>1&&n.push(`Cross-area change touches ${t.length} areas.`);let r=e.filter(o=>o.category==="config").map(o=>o.path);return r.length>0&&n.push(`Config or manifest changes detected: ${r.slice(0,4).join(" | ")}.`),e.length>0&&e.every(o=>o.category==="docs"||o.category==="tests")&&n.push("Changes are currently limited to docs/tests; implementation files are untouched."),e.some(o=>o.areaId===".")&&n.push("Workspace-root files changed; validate repo-wide implications."),n}async function qk(e,t,n){if(t==="compare"){let a=n?.trim()||"HEAD~1";if(!a||a.startsWith("-")||/[\u0000-\u001f\s]/.test(a))throw new Error(`Invalid base ref "${a}".`);try{await se(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(d){throw Oe(`Rejected compare base ref "${a}".`,d),new Error(`Could not resolve base ref "${a}".`)}return(await se(["diff","--name-status",`${a}...HEAD`],e)).split(/\r?\n/).map(d=>d.trim()).filter(Boolean).map(d=>{let[l,...f]=d.split(/\s+/),u=f.join(" ").split(" -> ").pop()??f.join(" ");return{path:N(u),status:qp(l??"M")}}).filter(d=>!Et(d.path))}let i=(await se(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(Dk).filter(a=>a!==null).filter(a=>Nk(a,t)),o=new Map;for(let a of i)Et(a.path)||o.set(a.path,{path:a.path,status:qp(a.status)});return Array.from(o.values())}async function zk(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await se(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await se(["diff","--cached","--numstat"],e):t==="unstaged"?r=await se(["diff","--numstat"],e):r=await se(["diff","--numstat","HEAD"],e);let i=0,o=0;for(let a of r.split(/\r?\n/)){let c=a.trim();if(!c)continue;let d=c.match(/^(\d+|-)\s+(\d+|-)\s+(.+)$/);if(!d)continue;let[,l,f,u]=d,m=N(u.split(" -> ").pop()??u);if(Et(m))continue;let g=l==="-"?0:Number.parseInt(l,10),w=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(w)&&(o+=w)}return{changedLineCount:i+o,addedLineCount:i,deletedLineCount:o}}async function Ri(e,t={}){let n=t.scope??"all",r=e.overview;if(r.source!=="git")throw new Error("changed_scope requires a git-backed workspace.");let i=await qk(r.workspaceRoot,n,t.baseRef),o=await zk(r.workspaceRoot,n,t.baseRef).catch(u=>(Oe("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=zp(u.path,r.areas);return{path:u.path,status:u.status,category:Bt(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=zp(u.path,r.areas),g=c.get(m.id)??{areaId:m.id,label:m.label,root:m.root,kind:m.kind,fileCount:0,files:[]};c.set(m.id,{...g,fileCount:g.fileCount+1,files:g.files.length<Qa?[...g.files,u.path]:g.files})}let d={source:0,docs:0,tests:0,config:0,other:0};for(let u of a)d[u.category]+=1;let l={schemaVersion:ce,workspaceRoot:r.workspaceRoot,analyzedAt:new Date().toISOString(),scope:n,baseRef:n==="compare"?t.baseRef?.trim()||"HEAD~1":void 0,overviewGeneratedAt:r.generatedAt,totalChangedFiles:a.length,changedLineCount:o.changedLineCount,addedLineCount:o.addedLineCount,deletedLineCount:o.deletedLineCount,categories:d,areasTouched:Array.from(c.values()).sort((u,m)=>m.fileCount!==u.fileCount?m.fileCount-u.fileCount:u.root.localeCompare(m.root)),files:a,riskHints:Lk(a,Array.from(c.values()))},f=await Ia(r.workspaceRoot);return await De(X.join(f,uk),l),l}function Uk(){return Bn(lk)}function _i(e,...t){let n=Uk(),r=X.isAbsolute(n)?n:X.join(e,n);return X.join(r,...t)}var dk,lk,Up,Vp,Kp,Yp,Gp,uk,ce,tt,Qa,fk,pk,mk,Bp,hk,Ok,gk,Ea,yk,Zp,wk,Sk,im=p(()=>{"use strict";jc();xi();dk=ck(ak),lk=X.join(".agent","repo-intelligence"),Up="manifest.json",Vp="repo-overview.json",Kp="repo-overview-inventory.json",Yp="repo-overview-baseline.json",Gp="repo-overview-inventory-baseline.json",uk="changed-scope.json",ce=3,tt=12e3,Qa=3,fk=5e3,pk=[".agent/",".kodax/"],mk=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h",".cs",".rb",".php",".swift",".kt",".kts",".scala",".sh"]),Bp=new Set([".md",".mdx",".rst",".txt"]),hk=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),Ok=new Map([["docs","docs"],["test","tests"],["tests","tests"],["scripts","scripts"],["bin","scripts"],["tools","scripts"],["src","directory"],["server","directory"],["client","directory"],["web","directory"],["api","directory"],["cmd","directory"],["examples","directory"],["example","directory"]]),gk=new Set(["packages","apps","libs","services"]),Ea=new Set(["package.json","package-lock.json","pnpm-lock.yaml","pnpm-workspace.yaml","yarn.lock","tsconfig.json","tsconfig.build.json","vitest.config.ts","vitest.config.js","vite.config.ts","vite.config.js","pyproject.toml","requirements.txt","Cargo.toml","Cargo.lock","go.mod","go.sum","pom.xml","build.gradle","build.gradle.kts","Makefile","Dockerfile"]),yk=new Set(["package.json","pyproject.toml","Cargo.toml"]),Zp=new Set(["README.md","README_CN.md","AGENTS.md","CLAUDE.md","docs/HLD.md","docs/PRD.md","docs/ADR.md","docs/DD.md","docs/FEATURE_LIST.md"]),wk=["index.ts","index.js","main.ts","main.js","app.ts","app.js","server.ts","server.js","cli.ts","cli.js","kodax_cli.ts","main.py"],Sk=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(Qt,"isRecord");s(bk,"isRepoAreaOverview");s(Pk,"isRepoOverviewPayload");s(vk,"isRepoOverviewInventoryPayload");s(kk,"isGitSummaryPayload");s(xk,"isRepoOverviewManifestPayload");s(se,"runGit");s(Zn,"exists");s(Ia,"ensureStorageDir");s(N,"normalizeRelativePath");s(Hp,"computePathFingerprint");s(Tk,"isAreaLabelSensitiveManifestPath");s(Rk,"sameNormalizedPathList");s(Et,"isManagedMetadataPath");s(_k,"resolveWorkspaceRoot");s(Qk,"resolveTargetDirectory");s(Ek,"listGitFiles");s(Fp,"walkFilesystemFiles");s(Ik,"isTestFile");s(Bt,"classifyFileCategory");s(Jp,"readAreaLabel");s($k,"buildAreas");s(Dp,"getGitSummary");s(Hn,"collectWorkspaceFilesForSource");s(Ti,"readRepoOverviewInventory");s(Np,"collectWorkspaceDirtyPaths");s(em,"readStoredRepoOverview");s(tm,"readStoredRepoOverviewInventory");s(Ck,"readStoredRepoOverviewManifest");s(Ak,"computeDirtySemanticFingerprint");s(Lp,"buildDirtyOverviewIdentity");s(Xk,"applyDirtyPathPatchToFiles");s(nm,"buildRepoOverviewArtifacts");s(rm,"writeRepoOverviewArtifacts");s(Mk,"canUseOverviewBaseline");s(jk,"canDirectReuseDirtyOverview");s(Wk,"tryBuildDirtyRepoOverviewFromBaseline");s(Fk,"canDirectReuseFilesystemOverview");s(Ra,"buildRepoOverviewSnapshotForWorkspace");s(It,"resolveRepoOverviewSnapshot");s(qp,"resolveChangedStatus");s(Dk,"parsePorcelainLine");s(Nk,"includesCandidate");s(zp,"findAreaForFile");s(Lk,"buildRiskHints");s(qk,"collectChangedFiles");s(zk,"collectChangedLineStats");s(Ri,"analyzeChangedScopeFromSnapshot");s(Uk,"getRepoIntelligenceDir");s(_i,"resolveRepoIntelligencePath")});var Qi=p(()=>{"use strict";im();xi()});import Vk from"fs/promises";import Jn from"path";import{createHash as Ei}from"node:crypto";function Te(e){return typeof e=="object"&&e!==null}function Jt(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languages)&&Array.isArray(e.modules)&&Array.isArray(e.symbols)&&Array.isArray(e.processes)}function dm(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function Yk(e){return e==="high"||e==="medium"||e==="low"}function Gk(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function Bk(e){return Te(e)&&dm(e.language)&&Yk(e.capabilityTier)&&typeof e.fileCount=="number"}function Zk(e){return Te(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&dm(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function Hk(e){return Te(e)&&(e.source==="git"||e.source==="filesystem")&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function lm(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&Hk(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>Bk(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>Zk(t))}function Jk(e){return Te(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&Gk(e.kind)&&typeof e.line=="number"&&typeof e.signature=="string"&&typeof e.exported=="boolean"&&Array.isArray(e.calls)&&e.calls.every(t=>typeof t=="string")&&typeof e.confidence=="number"}function ex(e){return Te(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>Jk(t))}function um(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Te(e.analyses)&&Object.values(e.analyses).every(t=>t===null||ex(t))}function fm(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&typeof e.queryGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&typeof e.sourceFingerprint=="string"&&typeof e.sourceFileCount=="number"&&typeof e.dirtyPathsFingerprint=="string"&&typeof e.dirtySourceFingerprint=="string"&&Array.isArray(e.dirtySourcePaths)&&e.dirtySourcePaths.every(t=>typeof t=="string")}function U(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function J(e){switch(Jn.extname(e).toLowerCase()){case".ts":case".tsx":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":return"python";case".java":return"java";case".go":return"go";case".rs":return"rust";case".cpp":case".cc":case".cxx":case".c":case".hpp":case".h":return"cpp";default:return"unknown"}}function ae(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function pm(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function Ne(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function mm(e,t){if(e.length>0){let r=e.reduce((i,o)=>i+o.confidence,0);return Math.min(.95,Math.max(.32,r/e.length))}let n=t[0];return n?Ne(n.capabilityTier):.4}async function Ai(e){try{return await Vk.access(e),!0}catch{return!1}}async function Xi(e,t="full"){let n=tx(),r=Jn.isAbsolute(n)?n:Jn.join(e,n),i=t==="light"?Jn.join(r,"light"):r;return await ki(i),i}function hm(e,t,n){return Ei("sha256").update(U(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function en(e){let t=Ei("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Mi(e,t){let n=Ei("sha256");n.update(e.workspaceRoot),n.update("|"),n.update(e.source),n.update("|");for(let r of e.areas)n.update(r.id),n.update(":"),n.update(r.label),n.update(":"),n.update(r.kind),n.update(":"),n.update(r.root),n.update(":"),n.update(String(r.fileCount)),n.update(":"),n.update(r.manifests.join(",")),n.update(":"),n.update(r.sampleFiles.join(",")),n.update("|");for(let r of t)n.update(r),n.update("|");return n.digest("hex")}function er(e){let t=Ei("sha256");for(let n of Array.from(e,r=>U(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function ji(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Wi(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function $a(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function Om(e){return e.workspaceSnapshot.source!=="git"||Wi(e.workspaceSnapshot)}function gm(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function it(e,t){return De(e,t)}function ym(e){let t=U(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function wm(e){let t=U(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function ye(e,t){let n=U(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function de(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function tr(e,t){let n=[],r=e.split(/\r?\n/);for(let i of r){let o=null;if(t==="typescript"||t==="javascript"){o=/from\s+['"]([^'"]+)['"]/.exec(i)??/require\(\s*['"]([^'"]+)['"]\s*\)/.exec(i)??/^\s*import\s+['"]([^'"]+)['"]/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="python"){if(o=/^\s*from\s+([A-Za-z0-9_\.]+)\s+import/.exec(i),o?.[1]){n.push(o[1]);continue}o=/^\s*import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+/)[0]??"").filter(Boolean));continue}if(t==="go"){o=/^\s*import\s+"([^"]+)"/.exec(i)??/^\s*"([^"]+)"/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="rust"){o=/^\s*use\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}if(t==="java"){o=/^\s*import\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}t==="cpp"&&(o=/^\s*#include\s+[<"]([^">]+)[">]/.exec(i),o?.[1]&&n.push(o[1].trim()))}return de(n,12)}function tx(){return Bn(Kk)}var Kk,nt,Ii,$i,Ci,om,sm,am,B,Zt,rt,cm,ge,Ht,Re,ot=p(()=>{"use strict";xi();Kk=Jn.join(".agent","repo-intelligence"),nt="repo-intelligence-index.json",Ii="repo-intelligence-manifest.json",$i="file-analysis-index.json",Ci="repo-intelligence-dirty-source-hint.json",om="module-index.json",sm="symbol-index.json",am="process-index.json",B=9,Zt=512*1024,rt=40,cm=8,ge=8,Ht=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Re=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);s(Te,"isRecord");s(Jt,"isRepoIntelligenceIndexPayload");s(dm,"isRepoLanguageId");s(Yk,"isLanguageCapabilityTier");s(Gk,"isRepoSymbolKind");s(Bk,"isRepoLanguageSupportPayload");s(Zk,"isRepoSourceFileStatePayload");s(Hk,"isRepoWorkspaceSnapshotPayload");s(lm,"isRepoIntelligenceManifestPayload");s(Jk,"isCachedRepoSymbolRecordPayload");s(ex,"isCachedFileAnalysisEntryPayload");s(um,"isFileAnalysisIndexPayload");s(fm,"isDirtySourceHintPayload");s(U,"normalizeRelativePath");s(J,"languageFromFile");s(ae,"capabilityTierForLanguage");s(pm,"analyzerVersionForLanguage");s(Ne,"baseConfidenceForTier");s(mm,"computeModuleConfidence");s(Ai,"exists");s(Xi,"ensureStorageDir");s(hm,"computeFileFingerprint");s(en,"computeSourceFingerprint");s(Mi,"computeOverviewFingerprint");s(er,"computePathFingerprint");s(ji,"workspaceSnapshotFromOverview");s(Wi,"isCleanGitSnapshot");s($a,"sameWorkspaceSnapshot");s(Om,"shouldPersistRepoIntelligenceBaseline");s(gm,"getDirtySourcePathsForInputs");s(it,"writeJsonFileAtomic");s(ym,"isTestFile");s(wm,"isDocFile");s(ye,"findAreaForFile");s(de,"dedupeStrings");s(tr,"extractImports");s(tx,"getRepoIntelligenceDir")});import Ca from"path";import nx from"fs/promises";function Sm(e,t){let n=new Map,r=new Map,i=new Map,o=new Map;for(let a of e){let c=ye(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),ym(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(wm(a)){let l=o.get(c.id)??[];l.push(a),o.set(c.id,l)}}return{areaByFile:n,filesByAreaId:r,testFilesByAreaId:i,docFilesByAreaId:o}}async function bm(e,t="full"){let n=e.workspaceRoot,r=await Xi(n,t),i=ji(e.overview),o=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>U(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=o?er(o):void 0,c=(o??[]).filter(f=>Ht.has(Ca.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await Ai(Ca.join(n,f))&&d.push(f);let l=d.length>0?await tn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Mi(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:o,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:o?en(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Aa(e,t,n,r,i="full"){let o=[];for(let a of t){let c=U(a),d=await nx.stat(Ca.join(e,c)),l=J(c);o.push({filePath:c,fileFingerprint:hm(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??ye(c,r).id,analyzerVersion:pm(l,i)})}return o.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function tn(e,t,n,r,i="full"){let o=Array.from(new Set(Array.from(t,c=>U(c)))).sort((c,d)=>c.localeCompare(d)),a=await Aa(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function Pm(e){return e?{importPaths:e.importPaths,symbols:e.symbols.map(t=>({id:t.id,name:t.name,qualifiedName:t.qualifiedName,kind:t.kind,line:t.line,signature:t.signature,exported:t.exported,calls:t.calls,confidence:t.confidence}))}:null}function vm(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:ae(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:ae(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function Xa(e){return{typeScriptFiles:e.filter(t=>$t(J(t))),pythonFiles:e.filter(t=>J(t)==="python"),goFiles:e.filter(t=>J(t)==="go"),rustFiles:e.filter(t=>J(t)==="rust"),fallbackFiles:e.filter(t=>{let n=J(t);return!$t(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function $t(e){return e==="typescript"||e==="javascript"}var nr=p(()=>{"use strict";ot();s(Sm,"buildAreaFileLookups");s(bm,"buildRepoIntelligencePreflight");s(Aa,"collectSourceFileStates");s(tn,"collectSourceFileStateMap");s(Pm,"serializeCachedFileAnalysisEntry");s(vm,"hydrateCachedFileAnalysis");s(Xa,"bucketSourceFiles");s($t,"isTypeScriptLikeLanguage")});function Rm(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function ir(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let a=!r&&e instanceof _e&&e.index<0?null:e.parent;if(!a)return e;e=a}let o=r?0:L.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof _e&&a.index<0&&((i=c.enter(t,n,o))===null||i===void 0?void 0:i.from)!=a.from&&(e=c);for(;;){let a=e.enter(t,n,o);if(!a)return e;e=a}}function xm(e,t,n,r){let i=e.cursor(),o=[];if(!i.firstChild())return o;if(n!=null){for(let a=!1;!a;)if(a=i.type.is(n),!i.nextSibling())return o}for(;;){if(r!=null&&i.type.is(r))return o;if(i.type.is(t)&&o.push(i.node),!i.nextSibling())return r==null?o:[]}}function ja(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function _m(e){if(!e.length)return null;let t=0,n=e[0];for(let o=1;o<e.length;o++){let a=e[o];(a.from>n.from||a.to<n.to)&&(n=a,t=o)}let r=n instanceof _e&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Fa(i,n)}function ox(e,t,n){let r=e.resolveInner(t,n),i=null;for(let o=r instanceof _e?r:r.context.parent;o;o=o.parent)if(o.index<0){let a=o.parent;(i||(i=[r])).push(a.resolve(t,n)),o=a}else{let a=Ct.get(o.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new _e(a.tree,a.overlay[0].from+o.from,-1,o);(i||(i=[r])).push(ir(c,t,n,!1))}}return i?_m(i):r}function Na(e){return e.children.some(t=>t instanceof st||!t.type.isAnonymous||Na(t))}function sx(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new Ma(n,n.length):n,d=r.types,l=0,f=0;function u(T,v,P,k,E,R){let{id:C,start:$,end:j,size:A}=c,D=f,Be=l;if(A<0)if(c.next(),A==-1){let $e=o[C];P.push($e),k.push($-T);return}else if(A==-3){l=C;return}else if(A==-4){f=C;return}else throw new RangeError(`Unrecognized record size: ${A}`);let ln=d[C],Or,ht,$c=$-T;if(j-$<=i&&(ht=h(c.pos-v,E))){let $e=new Uint16Array(ht.size-ht.skip),fe=c.pos-ht.size,Pe=$e.length;for(;c.pos>fe;)Pe=y(ht.start,$e,Pe);Or=new st($e,j-ht.start,r),$c=ht.start-T}else{let $e=c.pos-A;c.next();let fe=[],Pe=[],Ot=C>=a?C:-1,Mt=0,gr=j;for(;c.pos>$e;)Ot>=0&&c.id==Ot&&c.size>=0?(c.end<=gr-i&&(w(fe,Pe,$,Mt,c.end,gr,Ot,D,Be),Mt=fe.length,gr=c.end),c.next()):R>2500?m($,$e,fe,Pe):u($,$e,fe,Pe,Ot,R+1);if(Ot>=0&&Mt>0&&Mt<fe.length&&w(fe,Pe,$,Mt,$,gr,Ot,D,Be),fe.reverse(),Pe.reverse(),Ot>-1&&Mt>0){let Cc=g(ln,Be);Or=La(ln,fe,Pe,0,fe.length,0,j-$,Cc,Cc)}else Or=x(ln,fe,Pe,j-$,D-j,Be)}P.push(Or),k.push($c)}s(u,"takeNode");function m(T,v,P,k){let E=[],R=0,C=-1;for(;c.pos>v;){let{id:$,start:j,end:A,size:D}=c;if(D>4)c.next();else{if(C>-1&&j<C)break;C<0&&(C=A-i),E.push($,j,A),R++,c.next()}}if(R){let $=new Uint16Array(R*4),j=E[E.length-2];for(let A=E.length-3,D=0;A>=0;A-=3)$[D++]=E[A],$[D++]=E[A+1]-j,$[D++]=E[A+2]-j,$[D++]=D;P.push(new st($,E[2]-j,r)),k.push(j-T)}}s(m,"takeFlatNode");function g(T,v){return(P,k,E)=>{let R=0,C=P.length-1,$,j;if(C>=0&&($=P[C])instanceof ee){if(!C&&$.type==T&&$.length==E)return $;(j=$.prop(M.lookAhead))&&(R=k[C]+$.length+j)}return x(T,P,k,E,R,v)}}s(g,"makeBalanced");function w(T,v,P,k,E,R,C,$,j){let A=[],D=[];for(;T.length>k;)A.push(T.pop()),D.push(v.pop()+P-E);T.push(x(r.types[C],A,D,R-E,$-R,j)),v.push(E-P)}s(w,"makeRepeatLeaf");function x(T,v,P,k,E,R,C){if(R){let $=[M.contextHash,R];C=C?[$].concat(C):[$]}if(E>25){let $=[M.lookAhead,E];C=C?[$].concat(C):[$]}return new ee(T,v,P,k,C)}s(x,"makeTree");function h(T,v){let P=c.fork(),k=0,E=0,R=0,C=P.end-i,$={size:0,start:0,skip:0};e:for(let j=P.pos-T;P.pos>j;){let A=P.size;if(P.id==v&&A>=0){$.size=k,$.start=E,$.skip=R,R+=4,k+=4,P.next();continue}let D=P.pos-A;if(A<0||D<j||P.start<C)break;let Be=P.id>=a?4:0,ln=P.start;for(P.next();P.pos>D;){if(P.size<0)if(P.size==-3||P.size==-4)Be+=4;else break e;else P.id>=a&&(Be+=4);P.next()}E=ln,k+=A,R+=Be}return(v<0||k==T)&&($.size=k,$.start=E,$.skip=R),$.size>4?$:void 0}s(h,"findBufferSize");function y(T,v,P){let{id:k,start:E,end:R,size:C}=c;if(c.next(),C>=0&&k<a){let $=P;if(C>4){let j=c.pos-(C-4);for(;c.pos>j;)P=y(T,v,P)}v[--P]=$,v[--P]=R-T,v[--P]=E-T,v[--P]=k}else C==-3?l=k:C==-4&&(f=k);return P}s(y,"copyToBuffer");let b=[],S=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,b,S,-1,0);let Q=(t=e.length)!==null&&t!==void 0?t:b.length?S[0]+b[0].length:0;return new ee(d[e.topID],b.reverse(),S.reverse(),Q)}function Di(e,t){if(!e.isAnonymous||t instanceof st||t.type!=e)return 1;let n=Tm.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof ee)){n=1;break}n+=Di(e,r)}Tm.set(t,n)}return n}function La(e,t,n,r,i,o,a,c,d){let l=0;for(let w=r;w<i;w++)l+=Di(e,t[w]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(w,x,h,y,b){for(let S=h;S<y;){let Q=S,T=x[S],v=Di(e,w[S]);for(S++;S<y;S++){let P=Di(e,w[S]);if(v+P>=f)break;v+=P}if(S==Q+1){if(v>f){let P=w[Q];g(P.children,P.positions,0,P.children.length,x[Q]+b);continue}u.push(w[Q])}else{let P=x[S-1]+w[S-1].length-T;u.push(La(e,w,x,Q,S,T,P,null,d))}m.push(T+b-o)}}return s(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var rx,rr,M,Ct,ix,me,Ni,Fi,km,L,ee,Ma,st,Li,_e,Wa,or,Fa,sr,Tm,qi,Da,uY,qa=p(()=>{rx=0,rr=class{static{s(this,"Range")}constructor(t,n){this.from=t,this.to=n}},M=class{static{s(this,"NodeProp")}constructor(t={}){this.id=rx++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=me.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};M.closedBy=new M({deserialize:s(e=>e.split(" "),"deserialize")});M.openedBy=new M({deserialize:s(e=>e.split(" "),"deserialize")});M.group=new M({deserialize:s(e=>e.split(" "),"deserialize")});M.isolate=new M({deserialize:s(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});Ct=class{static{s(this,"MountedTree")}constructor(t,n,r,i=!1){this.tree=t,this.overlay=n,this.parser=r,this.bracketed=i}static get(t){return t&&t.props&&t.props[M.mounted.id]}},ix=Object.create(null),me=class e{static{s(this,"NodeType")}constructor(t,n,r,i=0){this.name=t,this.props=n,this.id=r,this.flags=i}static define(t){let n=t.props&&t.props.length?Object.create(null):ix,r=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||"",n,t.id,r);if(t.props){for(let o of t.props)if(Array.isArray(o)||(o=o(i)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[o[0].id]=o[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let n=this.prop(M.group);return n?n.indexOf(t)>-1:!1}return this.id==t}static match(t){let n=Object.create(null);for(let r in t)for(let i of r.split(" "))n[i]=t[r];return r=>{for(let i=r.prop(M.group),o=-1;o<(i?i.length:0);o++){let a=n[o<0?r.name:i[o]];if(a)return a}}}};me.none=new me("",Object.create(null),0,8);Ni=class e{static{s(this,"NodeSet")}constructor(t){this.types=t;for(let n=0;n<t.length;n++)if(t[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let n=[];for(let r of this.types){let i=null;for(let o of t){let a=o(r);if(a){i||(i=Object.assign({},r.props));let c=a[1],d=a[0];d.combine&&d.id in i&&(c=d.combine(i[d.id],c)),i[d.id]=c}}n.push(i?new me(r.name,i,r.id,r.flags):r)}return new e(n)}},Fi=new WeakMap,km=new WeakMap;(function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"})(L||(L={}));ee=class e{static{s(this,"Tree")}constructor(t,n,r,i,o){if(this.type=t,this.children=n,this.positions=r,this.length=i,this.props=null,o&&o.length){this.props=Object.create(null);for(let[a,c]of o)this.props[typeof a=="number"?a:a.id]=c}}toString(){let t=Ct.get(this);if(t&&!t.overlay)return t.tree.toString();let n="";for(let r of this.children){let i=r.toString();i&&(n&&(n+=","),n+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(t=0){return new sr(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Fi.get(this)||this.topNode,o=new sr(i);return o.moveTo(t,n),Fi.set(this,o._tree),o}get topNode(){return new _e(this,0,0,null)}resolve(t,n=0){let r=ir(Fi.get(this)||this.topNode,t,n,!1);return Fi.set(this,r),r}resolveInner(t,n=0){let r=ir(km.get(this)||this.topNode,t,n,!0);return km.set(this,r),r}resolveStack(t,n=0){return ox(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:o=this.length}=t,a=t.mode||0,c=(a&L.IncludeAnonymous)>0;for(let d=this.cursor(a|L.IncludeAnonymous);;){let l=!1;if(d.from<=o&&d.to>=i&&(!c&&d.type.isAnonymous||n(d)!==!1)){if(d.firstChild())continue;l=!0}for(;l&&r&&(c||!d.type.isAnonymous)&&r(d),!d.nextSibling();){if(!d.parent())return;l=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let n in this.props)t.push([+n,this.props[n]]);return t}balance(t={}){return this.children.length<=8?this:La(me.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,i)=>new e(this.type,n,r,i,this.propValues),t.makeTree||((n,r,i)=>new e(me.none,n,r,i)))}static build(t){return sx(t)}};ee.empty=new ee(me.none,[],[],0);Ma=class e{static{s(this,"FlatBufferCursor")}constructor(t,n){this.buffer=t,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},st=class e{static{s(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return me.none}toString(){let t=[];for(let n=0;n<this.buffer.length;)t.push(this.childString(n)),n=this.buffer[n+3];return t.join(",")}childString(t){let n=this.buffer[t],r=this.buffer[t+3],i=this.set.types[n],o=i.name;if(/\W/.test(o)&&!i.isError&&(o=JSON.stringify(o)),t+=4,r==t)return o;let a=[];for(;t<r;)a.push(this.childString(t)),t=this.buffer[t+3];return o+"("+a.join(",")+")"}findChild(t,n,r,i,o){let{buffer:a}=this,c=-1;for(let d=t;d!=n&&!(Rm(o,i,a[d+1],a[d+2])&&(c=d,r>0));d=a[d+3]);return c}slice(t,n,r){let i=this.buffer,o=new Uint16Array(n-t),a=0;for(let c=t,d=0;c<n;){o[d++]=i[c++],o[d++]=i[c++]-r;let l=o[d++]=i[c++]-r;o[d++]=i[c++]-t,a=Math.max(a,l)}return new e(o,a,this.set)}};s(Rm,"checkSide");s(ir,"resolveNode");Li=class{static{s(this,"BaseNode")}cursor(t=0){return new sr(this,t)}getChild(t,n=null,r=null){let i=xm(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return xm(this,t,n,r)}resolve(t,n=0){return ir(this,t,n,!1)}resolveInner(t,n=0){return ir(this,t,n,!0)}matchContext(t){return ja(this.parent,t)}enterUnfinishedNodesBefore(t){let n=this.childBefore(t),r=this;for(;n;){let i=n.lastChild;if(!i||i.to!=n.to)break;i.type.isError&&i.from==i.to?(r=n,n=i.prevSibling):n=i}return r}get node(){return this}get next(){return this.parent}},_e=class e extends Li{static{s(this,"TreeNode")}constructor(t,n,r,i){super(),this._tree=t,this.from=n,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,o=0){for(let a=this;;){for(let{children:c,positions:d}=a._tree,l=n>0?c.length:-1;t!=l;t+=n){let f=c[t],u=d[t]+a.from,m;if(!(!(o&L.EnterBracketed&&f instanceof ee&&(m=Ct.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!Rm(i,r,u,u+f.length))){if(f instanceof st){if(o&L.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new or(new Wa(a,f,t,u),null,g)}else if(o&L.IncludeAnonymous||!f.type.isAnonymous||Na(f)){let g;if(!(o&L.IgnoreMounts)&&(g=Ct.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let w=new e(f,u,t,a);return o&L.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(n<0?f.children.length-1:0,n,r,i,o)}}}if(o&L.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?t=a.index+n:t=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,n,r=0){let i;if(!(r&L.IgnoreOverlays)&&(i=Ct.get(this._tree))&&i.overlay){let o=t-this.from,a=r&L.EnterBracketed&&i.bracketed;for(let{from:c,to:d}of i.overlay)if((n>0||a?c<=o:c<o)&&(n<0||a?d>=o:d>o))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};s(xm,"getChildren");s(ja,"matchNodeContext");Wa=class{static{s(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},or=class e extends Li{static{s(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,n,r){super(),this.context=t,this._parent=n,this.index=r,this.type=t.buffer.set.types[t.buffer.buffer[r]]}child(t,n,r){let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return o<0?null:new e(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,n,r=0){if(r&L.ExcludeBuffers)return null;let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return o<0?null:new e(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],n=[],{buffer:r}=this.context,i=this.index+4,o=r.buffer[this.index+3];if(o>i){let a=r.buffer[this.index+1];t.push(r.slice(i,o,a)),n.push(0)}return new ee(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};s(_m,"iterStack");Fa=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return _m(this.heads)}};s(ox,"stackIterator");sr=class{static{s(this,"TreeCursor")}get name(){return this.type.name}constructor(t,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~L.EnterBracketed,t instanceof _e)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let r=t._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,n){this.index=t;let{start:r,buffer:i}=this.buffer;return this.type=n||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}yield(t){return t?t instanceof _e?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,n,r,this.mode));let{buffer:i}=this.buffer,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.buffer.start,r);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,n,r=this.mode){return this.buffer?r&L.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&L.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&L.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(t<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(n.findChild(i,this.index,-1,0,4))}else{let i=n.buffer[this.index+3];if(i<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let n,r,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let o=0;o<this.index;o++)if(i.buffer.buffer[o+3]<this.index)return!1;({index:n,parent:r}=i)}else({index:n,_parent:r}=this._tree);for(;r;{index:n,_parent:r}=r)if(n>-1)for(let o=n+t,a=t<0?-1:r._tree.children.length;o!=a;o+=t){let c=r._tree.children[o];if(this.mode&L.IncludeAnonymous||c instanceof st||!c.type.isAnonymous||Na(c))return!1}return!0}move(t,n){if(n&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,n=0){for(;(this.from==this.to||(n<1?this.from>=t:this.from>t)||(n>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,n););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,n=null,r=0;if(t&&t.context==this.buffer)e:for(let i=this.index,o=this.stack.length;o>=0;){for(let a=t;a;a=a._parent)if(a.index==i){if(i==this.index)return a;n=a,r=o+1;break e}i=this.stack[--o]}for(let i=r;i<this.stack.length;i++)n=new or(this.buffer,n,this.stack[i]);return this.bufferNode=new or(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,n){for(let r=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&n&&n(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(t){if(!this.buffer)return ja(this.node.parent,t);let{buffer:n}=this.buffer,{types:r}=n.set;for(let i=t.length-1,o=this.stack.length-1;i>=0;o--){if(o<0)return ja(this._tree,t,i);let a=r[n.buffer[this.stack[o]]];if(!a.isAnonymous){if(t[i]&&t[i]!=a.name)return!1;i--}}return!0}};s(Na,"hasChild");s(sx,"buildTree");Tm=new WeakMap;s(Di,"nodeSize");s(La,"balanceRange");qi=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Da(t)),r=r?r.length?r.map(i=>new rr(i.from,i.to)):[new rr(0,0)]:[new rr(0,t.length)],this.createParse(t,n||[],r)}parse(t,n,r){let i=this.startParse(t,n,r);for(;;){let o=i.advance();if(o)return o}}},Da=class{static{s(this,"StringInput")}constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,n){return this.string.slice(t,n)}},uY=new M({perNode:!0})});function ar(e,t=Uint16Array){if(typeof e!="string")return e;let n=null;for(let r=0,i=0;r<e.length;){let o=0;for(;;){let a=e.charCodeAt(r++),c=!1;if(a==126){o=65535;break}a>=92&&a--,a>=34&&a--;let d=a-32;if(d>=46&&(d-=46,c=!0),o+=d,c)break;o*=46}n?n[i++]=o:n=new t(o)}return n}function Am(e,t,n,r,i,o){let a=0,c=1<<r,{dialect:d}=n.p.parser;e:for(;(c&e[a])!=0;){let l=e[a+1];for(let g=a+3;g<l;g+=2)if((e[g+1]&c)>0){let w=e[g];if(d.allows(w)&&(t.token.value==-1||t.token.value==w||cx(w,t.token.value,i,o))){t.acceptToken(w);break}}let f=t.next,u=0,m=e[a+2];if(t.next<0&&m>u&&e[l+m*3-3]==65535){a=e[l+m*3-1];continue e}for(;u<m;){let g=u+m>>1,w=l+g+(g<<1),x=e[w],h=e[w+1]||65536;if(f<x)m=g;else if(f>=h)u=g+1;else{a=e[w+2],t.advance();continue e}}break}}function Em(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function cx(e,t,n,r){let i=Em(n,r,t);return i<0||Em(n,r,e)<i}function Im(e,t,n){let r=e.cursor(L.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function $m(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function Le(e,t){return e[t]|e[t+1]<<16}function dx(e){let t=null;for(let n of e){let r=n.p.stoppedAt;(n.pos==n.p.stream.end||r!=null&&n.pos>r)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function Cm(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Va,zi,Ka,Ya,nn,Qm,Ga,at,cr,ue,le,za,Ba,Za,Ha,Ja,Ua,rn,ct,Ui=p(()=>{qa();Va=class e{static{s(this,"Stack")}constructor(t,n,r,i,o,a,c,d,l,f=0,u){this.p=t,this.stack=n,this.state=r,this.reducePos=i,this.pos=o,this.score=a,this.buffer=c,this.bufferBase=d,this.curContext=l,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((t,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new zi(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var n;let r=t>>19,i=t&65535,{parser:o}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),c=o.dynamicPrecedence(i);if(c&&(this.score+=c),r==0){i<o.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(o.getGoto(this.state,i,!0),this.reducePos),i<o.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(i,this.reducePos);return}let d=this.stack.length-(r-1)*3-(t&262144?6:0),l=d?this.stack[d-2]:this.p.ranges[0].from;i<o.minRepeatTerm&&l==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let f=this.reducePos-l;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[i])===null||n===void 0)&&n.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=f));let u=d?this.stack[d-1]:0,m=this.bufferBase+this.buffer.length-u;if(i<o.minRepeatTerm||t&131072){let g=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,g,m+4,!0)}if(t&262144)this.state=this.stack[d];else{let g=this.stack[d-3];this.state=o.getGoto(g,i,!0)}for(;this.stack.length>d;)this.stack.pop();this.reduceContext(i,l)}storeNode(t,n,r,i=4,o=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this.buffer.length;if(a>0&&this.buffer[a-4]==0&&this.buffer[a-1]>-1){if(n==r)return;if(this.buffer[a-2]>=n){this.buffer[a-2]=r;return}}}if(!o||this.pos==r)this.buffer.push(t,n,r,i);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let c=!1;for(let d=a;d>0&&this.buffer[d-2]>r;d-=4)if(this.buffer[d-1]>=0){c=!0;break}if(c)for(;a>0&&this.buffer[a-2]>r;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,i>4&&(i-=4)}this.buffer[a]=t,this.buffer[a+1]=n,this.buffer[a+2]=r,this.buffer[a+3]=i}}shift(t,n,r,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let o=t,{parser:a}=this.p;this.pos=i;let c=a.stateFlag(o,1);!c&&(i>r||n<=a.maxNode)&&(this.reducePos=i),this.pushState(o,c?r:Math.min(r,this.reducePos)),this.shiftContext(n,r),n<=a.maxNode&&this.buffer.push(n,r,i,4)}else this.pos=i,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,i,4)}apply(t,n,r,i){t&65536?this.reduce(t):this.shift(t,n,r,i)}useNode(t,n){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=t)&&(this.p.reused.push(t),r++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(n,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,n){let r=t<=this.p.parser.maxNode;r&&this.storeNode(t,this.pos,n,4),this.storeNode(0,this.pos,n,r?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(t){for(let n=new Ka(this);;){let r=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,t);if(r==0)return!1;if((r&65536)==0)return!0;n.reduce(r)}}recoverByInsert(t){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let i=[];for(let o=0,a;o<n.length;o+=2)(a=n[o+1])!=this.state&&this.p.parser.hasAction(a,t)&&i.push(n[o],a);if(this.stack.length<120)for(let o=0;i.length<8&&o<n.length;o+=2){let a=n[o+1];i.some((c,d)=>d&1&&c==a)||i.push(n[o],a)}n=i}let r=[];for(let i=0;i<n.length&&r.length<4;i+=2){let o=n[i+1];if(o==this.state)continue;let a=this.split();a.pushState(o,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[i],this.pos),a.reducePos=this.pos,a.score-=200,r.push(a)}return r}forceReduce(){let{parser:t}=this.p,n=t.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!t.validAction(this.state,n)){let r=n>>19,i=n&65535,o=this.stack.length-r*3;if(o<0||t.getGoto(this.stack[o],i,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:t}=this.p,n=[],r=s((i,o)=>{if(!n.includes(i))return n.push(i),t.allActions(i,a=>{if(!(a&393216))if(a&65536){let c=(a>>19)-o;if(c>1){let d=a&65535,l=this.stack.length-c*3;if(l>=0&&t.getGoto(this.stack[l],d,!1)>=0)return c<<19|65536|d}}else{let c=r(a,o+1);if(c!=null)return c}})},"explore");return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=t.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(n)))}reduceContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(n)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let n=new zi(this.curContext.tracker,t);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},zi=class{static{s(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},Ka=class{static{s(this,"SimulatedStack")}constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let n=t&65535,r=t>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=i}},Ya=class e{static{s(this,"StackBufferCursor")}constructor(t,n,r){this.stack=t,this.pos=n,this.index=r,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};s(ar,"decodeArray");nn=class{static{s(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Qm=new nn,Ga=class{static{s(this,"InputStream")}constructor(t,n){this.input=t,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Qm,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(t,n){let r=this.range,i=this.rangeIndex,o=this.pos+t;for(;o<r.from;){if(!i)return null;let a=this.ranges[--i];o-=r.from-a.to,r=a}for(;n<0?o>r.to:o>=r.to;){if(i==this.ranges.length-1)return null;let a=this.ranges[++i];o+=a.from-r.to,r=a}return o}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let n of this.ranges)if(n.to>t)return Math.max(t,n.from);return this.end}peek(t){let n=this.chunkOff+t,r,i;if(n>=0&&n<this.chunk.length)r=this.pos+t,i=this.chunk.charCodeAt(n);else{let o=this.resolveOffset(t,1);if(o==null)return-1;if(r=o,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let a=this.rangeIndex,c=this.range;for(;c.to<=r;)c=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>c.to&&(this.chunk2=this.chunk2.slice(0,c.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(t,n=0){let r=n?this.resolveOffset(n,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=r}acceptTokenTo(t,n){this.token.value=t,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),n=this.pos+t.length;this.chunk=n>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,n){if(n?(this.token=n,n.start=t,n.lookAhead=t+1,n.value=n.extended=-1):this.token=Qm,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,n){if(t>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,n-this.chunkPos);if(t>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,n-this.chunk2Pos);if(t>=this.range.from&&n<=this.range.to)return this.input.read(t,n);let r="";for(let i of this.ranges){if(i.from>=n)break;i.to>t&&(r+=this.input.read(Math.max(i.from,t),Math.min(i.to,n)))}return r}},at=class{static{s(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;Am(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};at.prototype.contextual=at.prototype.fallback=at.prototype.extend=!1;cr=class{static{s(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?ar(t):t}token(t,n){let r=t.pos,i=0;for(;;){let o=t.next<0,a=t.resolveOffset(1,1);if(Am(this.data,t,n,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(o||i++,a==null)break;t.reset(a,t.token)}i&&(t.reset(r,t.token),t.acceptToken(this.elseToken,i))}};cr.prototype.contextual=at.prototype.fallback=at.prototype.extend=!1;ue=class{static{s(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};s(Am,"readToken");s(Em,"findOffset");s(cx,"overrides");le=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),za=null;s(Im,"cutAt");Ba=class{static{s(this,"FragmentCursor")}constructor(t,n){this.fragments=t,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?Im(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?Im(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let r=this.trees[n],i=this.index[n];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=r.children[i],a=this.start[n]+r.positions[i];if(a>t)return this.nextStart=a,null;if(o instanceof ee){if(a==t){if(a<this.safeFrom)return null;let c=a+o.length;if(c<=this.safeTo){let d=o.prop(M.lookAhead);if(!d||c+d<this.fragment.to)return o}}this.index[n]++,a+o.length>=Math.max(this.safeFrom,t)&&(this.trees.push(o),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+o.length}}},Za=class{static{s(this,"TokenCache")}constructor(t,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(r=>new nn)}getActions(t){let n=0,r=null,{parser:i}=t.p,{tokenizers:o}=i,a=i.stateSlot(t.state,3),c=t.curContext?t.curContext.hash:0,d=0;for(let l=0;l<o.length;l++){if((1<<l&a)==0)continue;let f=o[l],u=this.tokens[l];if(!(r&&!f.fallback)&&((f.contextual||u.start!=t.pos||u.mask!=a||u.context!=c)&&(this.updateCachedToken(u,f,t),u.mask=a,u.context=c),u.lookAhead>u.end+25&&(d=Math.max(u.lookAhead,d)),u.value!=0)){let m=n;if(u.extended>-1&&(n=this.addActions(t,u.extended,u.end,n)),n=this.addActions(t,u.value,u.end,n),!f.extend&&(r=u,n>m))break}}for(;this.actions.length>n;)this.actions.pop();return d&&t.setLookAhead(d),!r&&t.pos==this.stream.end&&(r=new nn,r.value=t.p.parser.eofTerm,r.start=r.end=t.pos,n=this.addActions(t,r.value,r.end,n)),this.mainToken=r,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let n=new nn,{pos:r,p:i}=t;return n.start=r,n.end=Math.min(r+1,i.stream.end),n.value=r==i.stream.end?i.parser.eofTerm:0,n}updateCachedToken(t,n,r){let i=this.stream.clipPos(r.pos);if(n.token(this.stream.reset(i,t),r),t.value>-1){let{parser:o}=r.p;for(let a=0;a<o.specialized.length;a++)if(o.specialized[a]==t.value){let c=o.specializers[a](this.stream.read(t.start,t.end),r);if(c>=0&&r.p.parser.dialect.allows(c>>1)){(c&1)==0?t.value=c>>1:t.extended=c>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,n,r,i){for(let o=0;o<i;o+=3)if(this.actions[o]==t)return i;return this.actions[i++]=t,this.actions[i++]=n,this.actions[i++]=r,i}addActions(t,n,r,i){let{state:o}=t,{parser:a}=t.p,{data:c}=a;for(let d=0;d<2;d++)for(let l=a.stateSlot(o,d?2:1);;l+=3){if(c[l]==65535)if(c[l+1]==1)l=Le(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Le(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Le(c,l+1),n,r,i))}return i}},Ha=class{static{s(this,"Parse")}constructor(t,n,r,i){this.parser=t,this.input=n,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Ga(n,i),this.tokens=new Za(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Va.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new Ba(r,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,n=this.minStackPos,r=this.stacks=[],i,o;if(this.bigReductionCount>300&&t.length==1){let[a]=t;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<t.length;a++){let c=t[a];for(;;){if(this.tokens.mainToken=null,c.pos>n)r.push(c);else{if(this.advanceStack(c,r,t))continue;{i||(i=[],o=[]),i.push(c);let d=this.tokens.getMainToken(c);o.push(d.value,d.end)}}break}}if(!r.length){let a=i&&dx(i);if(a)return le&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw le&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&i){let a=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,o,r);if(a)return le&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(r.length>a)for(r.sort((c,d)=>d.score-c.score);r.length>a;)r.pop();r.some(c=>c.reducePos>n)&&this.recovering--}else if(r.length>1){e:for(let a=0;a<r.length-1;a++){let c=r[a];for(let d=a+1;d<r.length;d++){let l=r[d];if(c.sameState(l)||c.buffer.length>500&&l.buffer.length>500)if((c.score-l.score||c.buffer.length-l.buffer.length)>0)r.splice(d--,1);else{r.splice(a--,1);continue e}}}r.length>12&&(r.sort((a,c)=>c.score-a.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let a=1;a<r.length;a++)r[a].pos<this.minStackPos&&(this.minStackPos=r[a].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,n,r){let i=t.pos,{parser:o}=this,a=le?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,f=l?t.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let m=this.parser.nodeSet.types[u.type.id]==u.type?o.getGoto(t.state,u.type.id):-1;if(m>-1&&u.length&&(!l||(u.prop(M.contextHash)||0)==f))return t.useNode(u,m),le&&console.log(a+this.stackID(t)+` (via reuse of ${o.getName(u.type.id)})`),!0;if(!(u instanceof ee)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof ee&&u.positions[0]==0)u=g;else break}}let c=o.stateSlot(t.state,4);if(c>0)return t.reduce(c),le&&console.log(a+this.stackID(t)+` (via always-reduce ${o.getName(c&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let d=this.tokens.getActions(t);for(let l=0;l<d.length;){let f=d[l++],u=d[l++],m=d[l++],g=l==d.length||!r,w=g?t:t.split(),x=this.tokens.mainToken;if(w.apply(f,u,x?x.start:w.pos,m),le&&console.log(a+this.stackID(w)+` (via ${(f&65536)==0?"shift":`reduce of ${o.getName(f&65535)}`} for ${o.getName(u)} @ ${i}${w==t?"":", split"})`),g)return!0;w.pos>i?n.push(w):r.push(w)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return $m(t,n),!0}}runRecovery(t,n,r){let i=null,o=!1;for(let a=0;a<t.length;a++){let c=t[a],d=n[a<<1],l=n[(a<<1)+1],f=le?this.stackID(c)+" -> ":"";if(c.deadEnd&&(o||(o=!0,c.restart(),le&&console.log(f+this.stackID(c)+" (restarted)"),this.advanceFully(c,r))))continue;let u=c.split(),m=f;for(let g=0;g<10&&u.forceReduce()&&(le&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)le&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))le&&console.log(f+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>c.pos?(l==c.pos&&(l++,d=0),c.recoverByDelete(d,l),le&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),$m(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ee.build({buffer:Ya.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let n=(za||(za=new WeakMap)).get(t);return n||za.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s($m,"pushStackDedup");Ja=class{static{s(this,"Dialect")}constructor(t,n,r){this.source=t,this.flags=n,this.disabled=r}allows(t){return!this.disabled||this.disabled[t]==0}},Ua=s(e=>e,"id"),rn=class{static{s(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Ua,this.reduce=t.reduce||Ua,this.reuse=t.reuse||Ua,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},ct=class e extends qi{static{s(this,"LRParser")}constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let n=t.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let c=0;c<t.repeatNodeCount;c++)n.push("");let r=Object.keys(t.topRules).map(c=>t.topRules[c][1]),i=[];for(let c=0;c<n.length;c++)i.push([]);function o(c,d,l){i[c].push([d,d.deserialize(String(l))])}if(s(o,"setProp"),t.nodeProps)for(let c of t.nodeProps){let d=c[0];typeof d=="string"&&(d=M[d]);for(let l=1;l<c.length;){let f=c[l++];if(f>=0)o(f,d,c[l++]);else{let u=c[l+-f];for(let m=-f;m>0;m--)o(c[l++],d,u);l++}}}this.nodeSet=new Ni(n.map((c,d)=>me.define({name:d>=this.minRepeatTerm?void 0:c,id:d,props:i[d],top:r.indexOf(d)>-1,error:d==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(d)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let a=ar(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let c=0;c<this.specializerSpecs.length;c++)this.specialized[c]=this.specializerSpecs[c].term;this.specializers=this.specializerSpecs.map(Cm),this.states=ar(t.states,Uint32Array),this.data=ar(t.stateData),this.goto=ar(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new at(a,c):c),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,n,r){let i=new Ha(this,t,n,r);for(let o of this.wrappers)i=o(i,t,n,r);return i}getGoto(t,n,r=!1){let i=this.goto;if(n>=i[0])return-1;for(let o=i[n+1];;){let a=i[o++],c=a&1,d=i[o++];if(c&&r)return d;for(let l=o+(a>>1);o<l;o++)if(i[o]==t)return d;if(c)return-1}}hasAction(t,n){let r=this.data;for(let i=0;i<2;i++)for(let o=this.stateSlot(t,i?2:1),a;;o+=3){if((a=r[o])==65535)if(r[o+1]==1)a=r[o=Le(r,o+2)];else{if(r[o+1]==2)return Le(r,o+2);break}if(a==n||a==0)return Le(r,o+1)}return 0}stateSlot(t,n){return this.states[t*6+n]}stateFlag(t,n){return(this.stateSlot(t,0)&n)>0}validAction(t,n){return!!this.allActions(t,r=>r==n?!0:null)}allActions(t,n){let r=this.stateSlot(t,4),i=r?n(r):void 0;for(let o=this.stateSlot(t,1);i==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=Le(this.data,o+2);else break;i=n(Le(this.data,o+1))}return i}nextStates(t){let n=[];for(let r=this.stateSlot(t,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Le(this.data,r+2);else break;if((this.data[r+2]&1)==0){let i=this.data[r+1];n.some((o,a)=>a&1&&o==i)||n.push(this.data[r],i)}}return n}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let r=this.topRules[t.top];if(!r)throw new RangeError(`Invalid top rule name ${t.top}`);n.top=r}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(r=>{let i=t.tokenizers.find(o=>o.from==r);return i?i.to:r})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((r,i)=>{let o=t.specializers.find(c=>c.from==r.external);if(!o)return r;let a=Object.assign(Object.assign({},r),{external:o.to});return n.specializers[i]=Cm(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let n=this.dynamicPrecedences;return n==null?0:n[t]||0}parseDialect(t){let n=Object.keys(this.dialects),r=n.map(()=>!1);if(t)for(let o of t.split(" ")){let a=n.indexOf(o);a>=0&&(r[a]=!0)}let i=null;for(let o=0;o<n.length;o++)if(!r[o])for(let a=this.dialects[n[o]],c;(c=this.data[a++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[c]=1;return new Ja(t,r,i)}static deserialize(t){return new e(t)}};s(Le,"pair");s(dx,"findFinished");s(Cm,"getSpecializer")});function fx(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function px(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((n,r)=>r.length-n.length)}function sn(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let i of n.split(" "))if(i){let o=[],a=2,c=i;for(let u=0;;){if(c=="..."&&u>0&&u+3==i.length){a=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(c);if(!m)throw new RangeError("Invalid path: "+i);if(o.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]),u+=m[0].length,u==i.length)break;let g=i[u++];if(u==i.length&&g=="!"){a=0;break}if(g!="/")throw new RangeError("Invalid path: "+i);c=i.slice(u)}let d=o.length-1,l=o[d];if(!l)throw new RangeError("Invalid path: "+i);let f=new on(r,a,d>0?o.slice(0,d):null);t[l]=f.sort(t[l])}}return mx.add(t)}function hx(e,t){let n=Object.create(null);for(let o of e)if(!Array.isArray(o.tag))n[o.tag.id]=o.class;else for(let a of o.tag)n[a.id]=o.class;let{scope:r,all:i=null}=t||{};return{style:s(o=>{let a=i;for(let c of o)for(let d of c.set){let l=n[d.id];if(l){a=a?a+" "+l:l;break}}return a},"style"),scope:r}}var lx,we,ux,Gi,mx,on,_,Vi,dt,Xm,Mm,lt,Ki,ec,Ie,At,Qe,Ee,tc,dr,Yi,O,yY,Bi=p(()=>{qa();lx=0,we=class e{static{s(this,"Tag")}constructor(t,n,r,i){this.name=t,this.set=n,this.base=r,this.modified=i,this.id=lx++}toString(){let{name:t}=this;for(let n of this.modified)n.name&&(t=`${n.name}(${t})`);return t}static define(t,n){let r=typeof t=="string"?t:"?";if(t instanceof e&&(n=t),n?.base)throw new Error("Can not derive from a modified tag");let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let o of n.set)i.set.push(o);return i}static defineModifier(t){let n=new Gi(t);return r=>r.modified.indexOf(n)>-1?r:Gi.get(r.base||r,r.modified.concat(n).sort((i,o)=>i.id-o.id))}},ux=0,Gi=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=ux++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&fx(n,c.modified));if(r)return r;let i=[],o=new we(t.name,i,t,n);for(let c of n)c.instances.push(o);let a=px(n);for(let c of t.set)if(!c.modified.length)for(let d of a)i.push(e.get(c,d));return o}};s(fx,"sameArray");s(px,"powerSet");s(sn,"styleTags");mx=new M({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let o=new on(i.tags,i.mode,i.context);n?n.next=o:r=o,n=o}return r}}),on=class{static{s(this,"Rule")}constructor(t,n,r,i){this.tags=t,this.mode=n,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}};on.empty=new on([],2,null);s(hx,"tagHighlighter");_=we.define,Vi=_(),dt=_(),Xm=_(dt),Mm=_(dt),lt=_(),Ki=_(lt),ec=_(lt),Ie=_(),At=_(Ie),Qe=_(),Ee=_(),tc=_(),dr=_(tc),Yi=_(),O={comment:Vi,lineComment:_(Vi),blockComment:_(Vi),docComment:_(Vi),name:dt,variableName:_(dt),typeName:Xm,tagName:_(Xm),propertyName:Mm,attributeName:_(Mm),className:_(dt),labelName:_(dt),namespace:_(dt),macroName:_(dt),literal:lt,string:Ki,docString:_(Ki),character:_(Ki),attributeValue:_(Ki),number:ec,integer:_(ec),float:_(ec),bool:_(lt),regexp:_(lt),escape:_(lt),color:_(lt),url:_(lt),keyword:Qe,self:_(Qe),null:_(Qe),atom:_(Qe),unit:_(Qe),modifier:_(Qe),operatorKeyword:_(Qe),controlKeyword:_(Qe),definitionKeyword:_(Qe),moduleKeyword:_(Qe),operator:Ee,derefOperator:_(Ee),arithmeticOperator:_(Ee),logicOperator:_(Ee),bitwiseOperator:_(Ee),compareOperator:_(Ee),updateOperator:_(Ee),definitionOperator:_(Ee),typeOperator:_(Ee),controlOperator:_(Ee),punctuation:tc,separator:_(tc),bracket:dr,angleBracket:_(dr),squareBracket:_(dr),paren:_(dr),brace:_(dr),content:Ie,heading:At,heading1:_(At),heading2:_(At),heading3:_(At),heading4:_(At),heading5:_(At),heading6:_(At),contentSeparator:_(Ie),list:_(Ie),quote:_(Ie),emphasis:_(Ie),strong:_(Ie),link:_(Ie),monospace:_(Ie),strikethrough:_(Ie),inserted:_(),deleted:_(),changed:_(),invalid:_(),meta:Yi,documentMeta:_(Yi),annotation:_(Yi),processingInstruction:_(Yi),definition:we.defineModifier("definition"),constant:we.defineModifier("constant"),function:we.defineModifier("function"),standard:we.defineModifier("standard"),local:we.defineModifier("local"),special:we.defineModifier("special")};for(let e in O){let t=O[e];t instanceof we&&(t.name=e)}yY=hx([{tag:O.link,class:"tok-link"},{tag:O.heading,class:"tok-heading"},{tag:O.emphasis,class:"tok-emphasis"},{tag:O.strong,class:"tok-strong"},{tag:O.keyword,class:"tok-keyword"},{tag:O.atom,class:"tok-atom"},{tag:O.bool,class:"tok-bool"},{tag:O.url,class:"tok-url"},{tag:O.labelName,class:"tok-labelName"},{tag:O.inserted,class:"tok-inserted"},{tag:O.deleted,class:"tok-deleted"},{tag:O.literal,class:"tok-literal"},{tag:O.string,class:"tok-string"},{tag:O.number,class:"tok-number"},{tag:[O.regexp,O.escape,O.special(O.string)],class:"tok-string2"},{tag:O.variableName,class:"tok-variableName"},{tag:O.local(O.variableName),class:"tok-variableName tok-local"},{tag:O.definition(O.variableName),class:"tok-variableName tok-definition"},{tag:O.special(O.variableName),class:"tok-variableName2"},{tag:O.definition(O.propertyName),class:"tok-propertyName tok-definition"},{tag:O.typeName,class:"tok-typeName"},{tag:O.namespace,class:"tok-namespace"},{tag:O.className,class:"tok-className"},{tag:O.macroName,class:"tok-macroName"},{tag:O.propertyName,class:"tok-propertyName"},{tag:O.operator,class:"tok-operator"},{tag:O.comment,class:"tok-comment"},{tag:O.meta,class:"tok-meta"},{tag:O.invalid,class:"tok-invalid"},{tag:O.punctuation,class:"tok-punctuation"}])});var Ox,gx,yx,wx,Sx,bx,Px,vx,kx,xx,Tx,Rx,_x,Qx,Ex,Ix,$x,Cx,jm,Ax,Xx,Mx,jx,Wx,Fx,Dx,Wm,Fm=p(()=>{Ui();Bi();Ox=177,gx=179,yx=184,wx=12,Sx=13,bx=17,Px=20,vx=25,kx=53,xx=95,Tx=142,Rx=144,_x=145,Qx=148,Ex=10,Ix=13,$x=32,Cx=9,jm=47,Ax=41,Xx=125,Mx=new ue((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==Ex||r==Ix||r==jm&&e.peek(n+1)==jm)||r==Ax||r==Xx)&&e.acceptToken(Ox),!(r!=$x&&r!=Cx);)r=e.peek(++n)},{contextual:!0}),jx=new Set([xx,yx,Px,wx,bx,Rx,_x,Tx,Qx,Sx,kx,vx]),Wx=new rn({start:!1,shift:s((e,t)=>t==gx?e:jx.has(t),"shift")}),Fx=sn({"func interface struct chan map const type var":O.definitionKeyword,"import package":O.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":O.controlKeyword,range:O.keyword,Bool:O.bool,String:O.string,Rune:O.character,Number:O.number,Nil:O.null,VariableName:O.variableName,DefName:O.definition(O.variableName),TypeName:O.typeName,LabelName:O.labelName,FieldName:O.propertyName,"FunctionDecl/DefName":O.function(O.definition(O.variableName)),"TypeSpec/DefName":O.definition(O.typeName),"CallExpr/VariableName":O.function(O.variableName),LineComment:O.lineComment,BlockComment:O.blockComment,LogicOp:O.logicOperator,ArithOp:O.arithmeticOperator,BitOp:O.bitwiseOperator,"DerefOp .":O.derefOperator,"UpdateOp IncDecOp":O.updateOperator,CompareOp:O.compareOperator,"= :=":O.definitionOperator,"<-":O.operator,'~ "*"':O.modifier,"; ,":O.separator,"... :":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace}),Dx={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},Wm=ct.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26A0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:Wx,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[Fx],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[Mx,1,2,new cr("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:s(e=>Dx[e]||-1,"get")}],tokenPrec:5451})});function nc(e){return e==Xt||e==lr}function rc(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Hi(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}function qT(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==Ji?8-t%8:1;return t}function KT(e,t){if(t==AT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==XT)for(let n=0;n<2&&rc(e.next);n++)e.advance();else if(t==jT)for(let n=0;n<4&&rc(e.next);n++)e.advance();else if(t==WT)for(let n=0;n<8&&rc(e.next);n++)e.advance();else if(t==MT&&e.next==ic){for(e.advance();e.next>=0&&e.next!=Lm&&e.next!=Gm&&e.next!=Bm&&e.next!=Xt;)e.advance();e.next==Lm&&e.advance()}}var Nx,Um,Vm,Lx,Dm,qx,zx,Ux,Vx,Km,Nm,Kx,Yx,Gx,Bx,Zx,Hx,Jx,eT,tT,nT,rT,iT,oT,sT,aT,cT,dT,lT,uT,fT,pT,mT,hT,Ym,OT,gT,yT,wT,ST,bT,PT,vT,kT,xT,TT,RT,_T,QT,ET,IT,Xt,lr,oc,Ji,sc,$T,CT,ic,Lm,Gm,Bm,qm,AT,XT,MT,jT,WT,FT,DT,NT,Zi,Zm,qe,ze,Ue,Ve,LT,zm,zT,UT,VT,YT,GT,Hm,Jm=p(()=>{Ui();Bi();Nx=1,Um=194,Vm=195,Lx=196,Dm=197,qx=198,zx=199,Ux=200,Vx=2,Km=3,Nm=201,Kx=24,Yx=25,Gx=49,Bx=50,Zx=55,Hx=56,Jx=57,eT=59,tT=60,nT=61,rT=62,iT=63,oT=65,sT=238,aT=71,cT=241,dT=242,lT=243,uT=244,fT=245,pT=246,mT=247,hT=248,Ym=72,OT=249,gT=250,yT=251,wT=252,ST=253,bT=254,PT=255,vT=256,kT=73,xT=77,TT=263,RT=112,_T=130,QT=151,ET=152,IT=155,Xt=10,lr=13,oc=32,Ji=9,sc=35,$T=40,CT=46,ic=123,Lm=125,Gm=39,Bm=34,qm=92,AT=111,XT=120,MT=78,jT=117,WT=85,FT=new Set([Yx,Gx,Bx,TT,oT,_T,Hx,Jx,sT,rT,iT,Ym,kT,xT,tT,nT,QT,ET,IT,RT]);s(nc,"isLineBreak");s(rc,"isHex");DT=new ue((e,t)=>{let n;if(e.next<0)e.acceptToken(zx);else if(t.context.flags&Zi)nc(e.next)&&e.acceptToken(qx,1);else if(((n=e.peek(-1))<0||nc(n))&&t.canShift(Dm)){let r=0;for(;e.next==oc||e.next==Ji;)e.advance(),r++;(e.next==Xt||e.next==lr||e.next==sc)&&e.acceptToken(Dm,-r)}else nc(e.next)&&e.acceptToken(Lx,1)},{contextual:!0}),NT=new ue((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==Xt||r==lr){let i=0,o=0;for(;;){if(e.next==oc)i++;else if(e.next==Ji)i+=8-i%8;else break;e.advance(),o++}i!=n.indent&&e.next!=Xt&&e.next!=lr&&e.next!=sc&&(i<n.indent?e.acceptToken(Vm,-o):e.acceptToken(Um))}}),Zi=1,Zm=2,qe=4,ze=8,Ue=16,Ve=32;s(Hi,"Context");LT=new Hi(null,0,0);s(qT,"countIndent");zm=new Map([[cT,0],[dT,qe],[lT,ze],[uT,ze|qe],[fT,Ue],[pT,Ue|qe],[mT,Ue|ze],[hT,Ue|ze|qe],[OT,Ve],[gT,Ve|qe],[yT,Ve|ze],[wT,Ve|ze|qe],[ST,Ve|Ue],[bT,Ve|Ue|qe],[PT,Ve|Ue|ze],[vT,Ve|Ue|ze|qe]].map(([e,t])=>[e,t|Zm])),zT=new rn({start:LT,reduce(e,t,n,r){return e.flags&Zi&&FT.has(t)||(t==aT||t==Ym)&&e.flags&Zm?e.parent:e},shift(e,t,n,r){return t==Um?new Hi(e,qT(r.read(r.pos,n.pos)),0):t==Vm?e.parent:t==Kx||t==Zx||t==eT||t==Km?new Hi(e,0,Zi):zm.has(t)?new Hi(e,0,zm.get(t)|e.flags&Zi):e},hash(e){return e.hash}}),UT=new ue(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==oc||n==Ji)){n!=$T&&n!=CT&&n!=Xt&&n!=lr&&n!=sc&&e.acceptToken(Nx);return}}}),VT=new ue((e,t)=>{let{flags:n}=t.context,r=n&qe?Bm:Gm,i=(n&ze)>0,o=!(n&Ue),a=(n&Ve)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==ic)if(e.peek(1)==ic)e.advance(2);else{if(e.pos==c){e.acceptToken(Km,1);return}break}else if(o&&e.next==qm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),KT(e,d)),e.acceptToken(Vx);return}break}else if(e.next==qm&&!o&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!i||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==c){e.acceptToken(Nm,i?3:1);return}break}else if(e.next==Xt){if(i)e.advance();else if(e.pos==c){e.acceptToken(Nm);return}break}else e.advance();e.pos>c&&e.acceptToken(Ux)});s(KT,"skipEscape");YT=sn({'async "*" "**" FormatConversion FormatSpec':O.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":O.controlKeyword,"in not and or is del":O.operatorKeyword,"from def class global nonlocal lambda":O.definitionKeyword,import:O.moduleKeyword,"with as print":O.keyword,Boolean:O.bool,None:O.null,VariableName:O.variableName,"CallExpression/VariableName":O.function(O.variableName),"FunctionDefinition/VariableName":O.function(O.definition(O.variableName)),"ClassDefinition/VariableName":O.definition(O.className),PropertyName:O.propertyName,"CallExpression/MemberExpression/PropertyName":O.function(O.propertyName),Comment:O.lineComment,Number:O.number,String:O.string,FormatString:O.special(O.string),Escape:O.escape,UpdateOp:O.updateOperator,"ArithOp!":O.arithmeticOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,Ellipsis:O.punctuation,At:O.meta,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),GT={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},Hm=ct.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:zT,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[YT],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[UT,NT,DT,VT,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>GT[e]||-1,"get")}],tokenPrec:7668})});function ac(e){return e>=48&&e<=57}function to(e){return ac(e)||e==95}var BT,ZT,HT,JT,eR,eh,tR,nR,th,rR,eo,nh,iR,oR,rh,ih,sR,aR,cR,dR,lR,uR,fR,pR,oh,sh=p(()=>{Ui();Bi();BT=1,ZT=2,HT=3,JT=4,eR=5,eh=98,tR=101,nR=102,th=114,rR=69,eo=48,nh=46,iR=43,oR=45,rh=35,ih=34,sR=124,aR=60,cR=62;s(ac,"isNum");s(to,"isNum_");dR=new ue((e,t)=>{if(ac(e.next)){let n=!1;do e.advance();while(to(e.next));if(e.next==nh){if(n=!0,e.advance(),ac(e.next))do e.advance();while(to(e.next));else if(e.next==nh||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==tR||e.next==rR){if(n=!0,e.advance(),(e.next==iR||e.next==oR)&&e.advance(),!to(e.next))return;do e.advance();while(to(e.next))}if(e.next==nR){let r=e.peek(1);if(r==eo+3&&e.peek(2)==eo+2||r==eo+6&&e.peek(2)==eo+4)e.advance(3),n=!0;else return}n&&e.acceptToken(eR)}else if(e.next==eh||e.next==th){if(e.next==eh&&e.advance(),e.next!=th)return;e.advance();let n=0;for(;e.next==rh;)n++,e.advance();if(e.next!=ih)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==ih;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=rh)continue e;e.advance()}e.acceptToken(JT);return}}}}),lR=new ue(e=>{e.next==sR&&e.acceptToken(BT,1)}),uR=new ue(e=>{e.next==aR?e.acceptToken(ZT,1):e.next==cR&&e.acceptToken(HT,1)}),fR=sn({"const macro_rules struct union enum type fn impl trait let static":O.definitionKeyword,"mod use crate":O.moduleKeyword,"pub unsafe async mut extern default move":O.modifier,"for if else loop while match continue break return await":O.controlKeyword,"as in ref":O.operatorKeyword,"where _ crate super dyn":O.keyword,self:O.self,String:O.string,Char:O.character,RawString:O.special(O.string),Boolean:O.bool,Identifier:O.variableName,"CallExpression/Identifier":O.function(O.variableName),BoundIdentifier:O.definition(O.variableName),"FunctionItem/BoundIdentifier":O.function(O.definition(O.variableName)),LoopLabel:O.labelName,FieldIdentifier:O.propertyName,"CallExpression/FieldExpression/FieldIdentifier":O.function(O.propertyName),Lifetime:O.special(O.variableName),ScopeIdentifier:O.namespace,TypeIdentifier:O.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":O.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":O.macroName,'"!"':O.macroName,UpdateOp:O.updateOperator,LineComment:O.lineComment,BlockComment:O.blockComment,Integer:O.integer,Float:O.float,ArithOp:O.arithmeticOperator,LogicOp:O.logicOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,"=":O.definitionOperator,".. ... => ->":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,". DerefOp":O.derefOperator,"&":O.operator,", ; ::":O.separator,"Attribute/...":O.meta}),pR={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},oh=ct.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5<g,5<gO!9SQWO'#CoO!9jQWO'#CoO!9oQWO'#I`O! yQWO'#JuO!9yQWO'#J`O!:aQWO,5;VOOQO'#In'#InO!0zQWO'#DaO!<aQWO'#DcO!<iQWO,5;ZO.YQ_O,5;ZOOQO,5;[,5;[OOQV'#Er'#ErOOQV'#Es'#EsOOQV'#Et'#EtOOQV'#Eu'#EuOOQV'#Ev'#EvOOQV'#Ew'#EwOOQV'#Ex'#ExOOQV'#Ey'#EyO.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;fO!=PQ_O,5;kO!@gQ_O'#FROOQO,5;l,5;lO!BrQWO,5;pO.YQ_O,5;wOKlQYO,5;gO!D_QWO,5;kO!EOQWO,5;xOOQO,5;x,5;xO!E]QWO,5;xO!EbQ_O,5;xO!GmQWO'#CfO!GrQWO,5<QO!G|Q_O,5<QOOQO,5;{,5;{O!JjQXO'#CnO!K{QXO'#I`OOQS'#Dk'#DkOOQP'#Ir'#IrO!LuQ[O'#IrO!L}QXO'#DjO!M{QWO'#DnO!M{QWO'#DnO!N^QWO'#DnOOQP'#It'#ItO!NcQXO'#ItO# ^Q^O'#DoO# hQWO'#DrO# pQ^O'#DzO# zQ^O'#D|O#!RQWO'#EPO#!^QXO'#FdOOQP'#ES'#ESOOQP'#Iq'#IqO#!lQXO'#JfOOQP'#Je'#JeO#!tQXO,5;}O#!yQXO'#I`O!1PQ^O'#DyO!1PQ^O'#FdO##sQWO,5;|OOQO,5;|,5;|OKlQYO,5;|O#$ZQWO'#FhOOQO,5<R,5<ROOQV,5=l,5=lO#&`QYO'#FzOOQV,5<h,5<hO#&gQWO,5<hO#&nQWO,5=SO!1WQWO,59rO!1dQWO,5<dO#&uQWO,5=iO!2_QWO,5<jO!2_QWO,5<zO!2_QWO,5<|O!2_QWO,5=QO#&|QWO,5=]O#'TQWO,5=SO!2_QWO,5=]O!3|QWO,5=aO#']QWO,5=jOOQO-E;|-E;|O#'hQWO'#JjOOQV-E;h-E;hO#(PQWO'#HRO#(WQ_O,59pOOQV,59p,59pO#(_QWO,59pO#(dQ_O,59pO#)SQZO'#CuO#+[QZO'#CvOOQV'#C|'#C|O#-wQWO'#HTO#.OQYO'#IdOOQO'#Hh'#HhO#.WQWO'#CwO#.WQWO'#CwO#.iQWO'#CwOOQR'#Ic'#IcO#.nQZO'#IbO#1TQYO'#HTO#1qQYO'#H[O#2}QYO'#H_OKlQYO'#H`OOQR'#Hb'#HbO#4ZQWO'#HeO#4`QYO,59]OOQR'#Ib'#IbO#5PQZO'#CtO#7[QYO'#HUO#7aQWO'#HTO#7fQYO'#CrO#8VQWO'#H]O#7fQYO'#HcOOQV-E;e-E;eO#8_QWO,59sOOQV,59{,59{O#8mQYO,5=[OOQV,59},59}O!0zQWO,59}O#;aQWO'#IpOOQO'#Ip'#IpO!1PQ^O'#DhO!0zQWO,5:QO#;hQWO,5;iO#<OQWO,5;rO#<fQ_O,5;rOOQO,5;u,5;uO#@PQ_O,5;|O#BXQWO,5;PO!0zQWO,5<XO#B`QWO,5<ZOOQV,5<Z,5<ZO#BkQWO,5<]O!1PQ^O'#EOOOQQ'#D_'#D_O#BsQWO,59rO#BxQWO,5<`O#B}QWO,5<dOOQO,5@U,5@UO#CVQWO,5=iOOQQ'#Cv'#CvO#C[QYO,5<jO#CmQYO,5<zO#CxQYO,5<|O#DTQYO,5=_O#DcQYO,5=SO#E{QYO'#GQO#FYQYO,5=[O#FmQWO,5=[O#F{QYO,5=[O#HUQYO,5=]O#HdQWO,5=`O!1PQ^O,5=`O#HrQWO'#CnO#ITQWO'#I`OOQO'#Jy'#JyO#IfQWO'#IQO#IkQWO'#GwOOQO'#Jz'#JzO#JSQWO'#GzOOQO'#G|'#G|OOQO'#Jx'#JxO#IkQWO'#GwO#JZQWO'#GxO#J`QWO,5=aO#JeQWO,5=jO!1dQWO,5=jO#'`QWO,5=jPOOO'#Hf'#HfP#JjOpO,58}POOO,58},58}OOOO-E;g-E;gOOQV1G/T1G/TO#JuQWO1G4{O#JzQ^O'#CyPOQQ'#Cx'#CxOOQO1G/v1G/vOOQP1G.u1G.uO)xQWO1G/vO#NTQ!fO'#ETO#N[Q!fO'#EaO#NcQ!fO'#EbO$ kQWO1G1yO$!_Q_O1G1yOOQP1G5V1G5VOOQO1G1]1G1]O$&RQWO1G0oO$&WQWO'#CiO!7xQXO'#I`O!6PQYO1G.lO!5oQWO,5<_O!9SQWO,59ZO!9SQWO,59ZO!5oQWO,5?kO$&iQWO1G0uO$(vQWO1G0wO$*nQWO1G0wO$+UQWO1G0wO$-YQWO1G0wO$-aQWO1G0wO$/bQWO1G0wO$/iQWO1G0wO$1jQWO1G0wO$1qQWO1G0wO$3YQWO1G1QO$5ZQWO1G1VO$5zQ_O'#JcO$8SQWO'#JcOOQO'#Jb'#JbO$8^QWO,5;mOOQO'#Dw'#DwOOQO1G1[1G1[OOQO1G1Y1G1YO$8cQWO1G1cOOQO1G1R1G1RO$8jQ_O'#HrO$:xQWO,5@OO.YQ_O1G1dOOQO1G1d1G1dO$;QQWO1G1dO$;_QWO1G1dO$;dQWO1G1eOOQO1G1l1G1lO$;lQWO1G1lOOQP,5?^,5?^O$;vQ^O,5:kO$<aQXO,5:YO!M{QWO,5:YO!M{QWO,5:YO!1PQ^O,5:gO$=bQWO'#IyOOQO'#Ix'#IxO$=pQWO,5:ZO# ^Q^O,5:ZO$=uQWO'#DsOOQP,5:^,5:^O$>WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5<OO$>gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5<OO$?[QWO1G1hO$?dQWO'#CnO$?oQWO'#FiOOQO'#Fi'#FiO$?wQWO'#FjO.YQ_O'#FkOOQO'#Ji'#JiO$?|QWO'#JhOOQO'#Jg'#JgO$@UQWO,5<SOOQQ'#Hv'#HvO$@ZQYO,5<fOOQV,5<f,5<fO$@bQYO,5<fOOQV1G2S1G2SO$@iQWO1G2nO$@qQWO1G/^O$@vQWO1G2OO#CVQWO1G3TO$AOQYO1G2UO#CmQYO1G2fO#CxQYO1G2hO$AaQYO1G2lO!2_QWO1G2wO#DcQYO1G2nO#HUQYO1G2wO$AiQWO1G2{O$AnQWO1G3UO!1dQWO1G3UO$AsQWO1G3UOOQV1G/[1G/[O$A{QWO1G/[O$BQQ_O1G/[O#7aQWO,5=oO$BXQYO,5?OO$BmQWO,5?OO$BrQZO'#IeOOQO-E;f-E;fOOQR,59c,59cO#.WQWO,59cO#.WQWO,59cOOQR,5=n,5=nO$E_QYO'#HVO$FwQZO,5=oO!5oQWO,5={O$IZQWO,5=oO$IbQZO,5=vO$KqQYO,5=vO$>]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5<lO%4[QYO,5<lO%4jQYO,5<lO%5XQYO,5<lOOQQ,5<l,5<lO!1WQWO'#JuO%5dQYO,5<lO%5lQWO1G2vOOQV1G2v1G2vO%5tQWO1G2vO$>]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E<O-E<OOOQO,5=c,5=cOOQO,5=e,5=eOOQO,5=g,5=gOOQO,5=h,5=hO%6aQWO'#J|OOQO'#J{'#J{O%6iQWO,5=fO%6nQWO,5=cO!1dQWO,5=dOOQV1G2{1G2{O$>]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5<T,5<TO%ErQWO,5<UO.YQ_O,5<UO%EwQWO,5<VO%FRQWO'#HtO%FdQWO,5@SOOQO1G1n1G1nOOQQ-E;t-E;tOOQV1G2Q1G2QO%FlQYO1G2QO#DcQYO7+(YO$>]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5<lO&'nQYO,5<lO!1dQWO'#GWO&'|QWO'#JpO&([QWO'#G^O!BxQWO'#G^O&(aQWO'#JpOOQO'#Jo'#JoO&(iQWO,5<wOOQO'#DX'#DXO&(nQYO'#JrO&)}QWO'#JrO$>]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5<yO&*_QWO'#GZO#D^QWO'#G[O&*gQWO'#G[O&*oQWO'#JmOOQO'#Jl'#JlO&*zQYO'#GTOOQO,5<s,5<sO&+PQWO7+'pO&+UQWO'#JtO&+dQWO'#GeO#BxQWO'#GeO&+uQWO'#JtOOQO'#Js'#JsO&+}QWO,5=OO$>]QYO'#GUO&,SQYO'#JkOOQQ,5<n,5<nO&,kQWO7+(WOOQV7+(e7+(eO&.TQ^O'#D|O&._QWO'#GlO&.gQ^O'#JwOOQO'#Gn'#GnO&.nQWO'#JwOOQO'#Jv'#JvO&.vQWO,5=VO&.{QWO'#I`O&/]Q^O'#GmO&/dQWO'#IqO&/rQWO'#GmOOQV7+(Y7+(YO&/zQWO7+(YO$>]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5<m,5<mO$>]QYO,5<qO&0pQWO,5<rO&0uQWO7+(bO&1QQWO7+(fO&1XQWO7+(fOOQV7+(f7+(fO.YQ_O7+(fO$>]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<<Gr<<GrO&3iQWO1G5iO$5zQ_O,5>]O&3qQWO,5>]OOQO-E;o-E;oOOQO<<Jj<<JjO&3{QWO<<JjOOQO<<Jk<<JkO&4SQXO7+%`O&5TQWO,5>WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5<PO&6UQXO,5<PO&6dQXO7+'UO.YQ_O1G1pO&6oQWO1G1pOOQO,5>`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<<KtO#DfQWO<<KtO&7XQWO<<HdOOQV<<LZ<<LZO!1dQWO<<LZOOQV<<K[<<K[O&7dQWO<<K[O%/wQWO<<K[O&7iQWO<<K[OOQV<<Kl<<KlO%/wQWO<<KlOOQV<<Kn<<KnO%0gQWO<<KnO&7qQWO<<KrO$>]QYO<<KrOOQV<<K}<<K}O%5tQWO<<K}O%5yQWO<<K}O#HXQWO<<K}OOQV<<Kt<<KtO&7yQWO<<KtO$>]QYO<<KtO&8RQWO<<L[O$>]QYO<<L[O&8^QWO<<L[OOQV<<Hb<<HbO$>]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&<RQZO7+(uO&>eQZO7+(|O&@tQWO,5>qOOQO-E<T-E<TO&APQWO7+)QOOQO<<G}<<G}O&AWQYO'#ITO&AcQYO,5@jOOQQ7+(v7+(vOOQQ<<He<<HeO$>]QYO<<K|OOQV<<K|<<K|O&0uQWO<<K|O&AkQWO<<K|O%5tQWO<<K|O&AsQWO7+%YOOQV<<Hr<<HrOOQO<<Jn<<JnO.YQ_O,5;SO&AzQWO,5;SO.YQ_O'#EjO&BPQWO,5;SOOQU-E;m-E;mO&B[QWO1G0mOOQV1G0m1G0mO&%{Q^O1G0mOOQV<<Jy<<JyO!.cQ_O<<J}OOQV<<J}<<J}OOQV<<Hd<<HdO.YQ_O<<HdO&BaQWO'#FvO&BfQWO<<KQO&BnQ!fO<<KQO&BuQWO<<KQO&BzQWO<<KQO&CSQ!fO<<KQOOQV<<KQ<<KQO&CZQWO<<LZO&C`QWO,5@[O$>]QYO,5<xO&ChQWO,5<xO&CmQWO'#H{O&C`QWO,5@[OOQV1G2c1G2cO&DRQWO,5@^O$>]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5<uOOQO,5<v,5<vO&E{QYO'#HzO&G_QWO,5@XO%,bQYO,5=pO$>]QYO,5<oO&GjQWO,5@`O.YQ_O,5=PO&GrQWO,5=PO&G}QWO,5=PO&H`QWO'#H}O&GjQWO,5@`OOQV1G2j1G2jO&HtQYO,5<pO%0lQYO,5>PO&I]QYO,5@VOOQV<<Kr<<KrO&ItQWO,5=XO&KfQ^O,5:hO&KmQWO,5=XO$>]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<<KtO&NkQYO,5>oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<<LQ<<LQO.YQ_O<<LQO' lQWO<<LQO' sQWO<<LQOOQO,5>m,5>mOOQO-E<P-E<POOQV<<L[<<L[O.YQ_O<<L[O'!OQYO1G/QO'!ZQYO,5>nOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-E<Q-E<QOOQS1G0[1G0[O'$tQ!fO1G0^O'%RQ!fO1G0^O'%YQWO1G3wOOQOAN@UAN@UO'%dQWO1G/zOOQO,5>X,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<<La<<LaO''nQWO1G6WO%JkQWO,5>pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E<S-E<SO'(RQYO1G2sO'(]QWO1G2sOOQO1G2s1G2sO$>]QYO<<LaOOQR<<Ll<<LlOOQQ,5>o,5>oOOQQ-E<R-E<RO&0uQWOANAhOOQVANAhANAhO%5tQWOANAhO$>]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5<bOOQS,5>a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5<lO'-gQYO1G2ZO'.RQWO1G5zO'.ZQWO1G2kO.YQ_O1G2kO'.eQWO1G2kO&+UQWO,5>iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<<Is<<IsOOQVG26TG26TOOQVG23jG23jOOQO1G1|1G1|OOQVG26WG26WO'6aQWOG26WP&B}QWO'#HuO'6fQWO7+(OOOQO1G4R1G4RO'6qQWO7++dO'6yQWO1G4SO$>]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<<Id<<IdO'8`QWO<<IdO'8kQWO<<IQOOQVLD,fLD,fO'8vQWOLD,fO'9OQWOLD,fOOQVLD)ULD)UOOQVLD,oLD,oOOQVLD,|LD,|O'9^QWOLD,|O.YQ_OLD,|OOQVLD,nLD,nO%5tQWOLD,nO'9eQ^O<<ItO';OQWO<<JxO';rQ^O<<ItP'=OQWO1G0nP'=oQ^O1G0nP.YQ_O1G0nP'?bQWO1G0nOOQVLD+rLD+rO'?gQWO7+)nOOQO,5>e,5>eOOQO-E;w-E;wO'?rQWO<<KqOOQVLD,rLD,rOOQSAN?OAN?OOOQV!$(!Q!$(!QO'?|QWO!$(!QOOQV!$(!h!$(!hO'@UQWO!$(!hOOQV!$(!Y!$(!YO'@]Q^OAN?`POQU7+&Y7+&YP'AvQWO7+&YP'BgQ^O7+&YP.YQ_O7+&YOOQV!)9El!)9ElOOQV!)9FS!)9FSPOQU<<It<<ItP'DYQWO<<ItP'DyQ^O<<ItPOQUAN?`AN?`O'FlQWO'#CnO'FsQXO'#CnO'GlQWO'#I`O'IRQXO'#I`O'IxQWO'#DpO'IxQWO'#DpO!.cQ_O'#EkO'JZQ_O'#EoO'JbQ_O'#FPO'MfQ_O'#FbO'MmQXO'#I`O'NdQ_O'#E}O( gQ_O'#FWO'IxQWO,5:[O'IxQWO,5:[O!.cQ_O,5;ZO!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;fO(!jQ_O,5;kO(%nQWO,5;kO(&OQWO,5;|O(&VQYO'#CuO(&bQYO'#CvO(&mQWO'#CwO(&mQWO'#CwO('OQYO'#CtO('ZQWO,5;iO('bQWO,5;rO('iQ_O,5;rO((oQ_O,5;|O'IxQWO1G/vO((vQWO1G0uO(*eQWO1G0wO(*oQWO1G0wO(,dQWO1G0wO(,kQWO1G0wO(.]QWO1G0wO(.dQWO1G0wO(0UQWO1G0wO(0]QWO1G0wO(0dQWO1G1QO(0tQWO1G1VO(1UQYO'#IeO(&mQWO,59cO(&mQWO,59cO(1aQWO1G1^O(1hQWO1G1hO(&mQWO1G.}O(1oQWO'#DpO!.^QXO'#FbO(1tQWO,5;ZO(1{QWO'#Cw",stateData:"(2_~O&|OSUOS&}PQ~OPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'TQO'ZkO'^UO'gcO'qiO(QdO~O&}!sO~OZbX[bXdbXdlXobXwjX}bX!lbX!qbX!tbX#ObX#PbX#pbX'gbX'qbX'rbX'xbX'ybX'zbX'{bX'|bX'}bX(ObX(PbX(QbX(RbX(TbX~OybXXbX!ebX!PbXvbX#RbX~P$|OZ'SX['SXd'SXd'XXo'SXw'kXy'SX}'SX!l'SX!q'SX!t'SX#O'SX#P'SX#p'SX'g'SX'q'SX'r'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SXv'SX~OX'SX!e'SX!P'SX#R'SX~P'ZOr!uO']!wO'_!uO~Od!xO~O^RO_RO`ROaRO'TQO~Od!}O~Od#PO[(SXo(SXy(SX}(SX!l(SX!q(SX!t(SX#O(SX#P(SX#p(SX'g(SX'q(SX'r(SX'x(SX'y(SX'z(SX'{(SX'|(SX'}(SX(O(SX(P(SX(Q(SX(R(SX(T(SXv(SX~OZ#OO~P*`OZ#RO[#QO~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'T#SO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!j#eO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xO[#}Oo#xO}#zO!l#yO!q#jO!t#yO#O#xO#P#uO#p$OO'g#gO'q#yO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~OPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXy#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sXX#sX!e#sX!P#sXv#sX#R#sX~P)xOX(SX!e(SX!P(SXw(SX#R(SX~P*`OPoOQ!QOSVOTVOX$ROZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!P$XO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOQ!QOSVOTVO[$gO^$pO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j$rOP(XP~P<cOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q$uO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw$vO~Oo'bX#O'bX#P'bX#p'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(R'bX(T'bX~OP%tXQ%tXS%tXT%tXZ%tX[%tX^%tX_%tX`%tXa%tXd%tXg%tXs%tXt%tXu%tXw%tXy%tX|%tX}%tX!Q%tX!U%tX!W%tX!X%tX!Z%tX!]%tX!l%tX!q%tX!t%tX#Y%tX#r%tX#{%tX$O%tX$b%tX$d%tX$f%tX$i%tX$m%tX$q%tX$s%tX%T%tX%V%tX%Z%tX%]%tX%^%tX%f%tX%j%tX%s%tX&z%tX'Q%tX'T%tX'Z%tX'^%tX'g%tX'q%tX(Q%tXv%tX~P@[Oy$xO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bXv'bX~P@[Ow$yO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Oy$zO~PEsO!Q$}O!U%UO!W!lO$m%OO$q%PO$s%QO%T%RO%V%SO%Z%TO%]!lO%^%VO%f%WO%j%XO%s%YO~O!Q!lO!U!lO!W!lO$q%[O%]!lO~O%^%VO~PGaOPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'TQO'ZkO'^UO'gcO'qiO(QdO~Ov%`O~P]OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~P'ZO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~O}%}O'T{XQ{XZ{X[{X^{X_{X`{Xa{Xd{Xg{X!q{X$f{X&W{X'Z{X(Q{X~PMuOg&PO%f%WO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Ow!PO~P! yOw!PO!X&RO~PEvOPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!]&UO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#qXy#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qXX#qX!e#qX!P#qXv#qX#R#qX~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zXy#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zXX#zX!e#zX!P#zXv#zX#R#zX~P)xO'ZkO[#}Xo#}Xy#}X}#}X!l#}X!q#}X!t#}X#O#}X#P#}X#p#}X'g#}X'q#}X'r#}X'x#}X'y#}X'z#}X'{#}X'|#}X'}#}X(O#}X(P#}X(Q#}X(R#}X(T#}XX#}X!e#}X!P#}Xv#}Xw#}X#R#}X~OPoO~OPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~O!S&_O~Ow!PO~O!j&bO~P<cO'T&cO~PEvOZ&eO~O'T&cO~O'^UOw(^Xy(^X!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Oa&hO~P!1iO'T&iO~O_&nO'T&cO~OQ&oOZ&pO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!j&uO~P<cO^&wO_&wO`&wOa&wOd'POw&|O'T&vO(Q&}O~O!i'UO!j'TO'T&cO~O&}!sO'O'VO'P'XO~Or!uO']'ZO'_!uO~OQ']O^'ia_'ia`'iaa'ia'T'ia~O['cOw'dO}'bO~OQ']O~OQ!QO^#TO_#TO`#TOa'kOd#ZO'T#SO~O['lO~OZbXdlXXbXobXPbX!SbX!ebX'rbX!PbX!ObXybX!ZbX#RbXvbX~O[bXwbX}bX~P!6mOZ'SXd'XXX'SX['SXo'SXw'SX}'SX#p'SXP'SX!S'SX!e'SX'r'SX!P'SX!O'SXy'SX!Z'SX#R'SXv'SX~O^#TO_#TO`#TOa'kO'T#SO~OZ'mO~Od'oO~OZ'SXd'XX~PMuOZ'pOX(SX!e(SX!P(SXw(SX#R(SX~P*`O[#}O}#zO(O#|O(R#fOo#_ay#_a!l#_a!q#_a!t#_a#O#_a#P#_a#p#_a'g#_a'q#_a'r#_a'x#_a'y#_a'z#_a'{#_a'|#_a'}#_a(P#_a(Q#_a(T#_aX#_a!e#_a!P#_av#_aw#_a#R#_a~Ow!PO!X&RO~Oy#caX#ca!e#ca!P#cav#ca#R#ca~P2gOPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#say#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#saX#sa!e#sa!P#sav#sa#R#sa~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P(UP~P)xOu(SO#w(TO'T(RO~O[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#sa!t#sa#p#sa'q#sa~Oo#xO#O#xO#P#uOy#saX#sa!e#sa!P#sav#sa#R#sa~P!B}Oy(YO!e(WOX(WX~P2gOX(ZO~OPoOQ!QOSVOTVOX(ZOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZ#RO~O!P(_O!e(WO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZbXdlXwjX}jX!tbX'qbX~OP!RX!S!RX!e!RX'p!RX'r!RX!O!RXo!RXy!RX!P!RXX!RX!Z!RX#R!RXv!RX~P!JUOZ'SXd'XXw'kX}'kX!t'SX'q'SX~OP!`X!S!`X!e!`X'r!`X!O!`Xo!`Xy!`X!P!`XX!`X!Z!`X#R!`Xv!`X~P!KgOT(aOu(aO~O!t(bO'q(bOP!^X!S!^X!e!^X'r!^X!O!^Xo!^Xy!^X!P!^XX!^X!Z!^X#R!^Xv!^X~O^9rO_9rO`9yOa9yO'T9pO~Od(eO~O'p(fOP'hX!S'hX!e'hX'r'hX!O'hXo'hXy'hX!P'hXX'hX!Z'hX#R'hXv'hX~O!j&bO!P'lP~P<cOw(kO}(jO~O!j&bOX'lP~P<cO!j(oO~P<cOZ'pO!t(bO'q(bO~O!S(qO'r(pOP$WX!e$WX~O!e(rOP(YX~OP(tO~OP!aX!S!aX!e!aX'r!aX!O!aXo!aXy!aX!P!aXX!aX!Z!aX#R!aXv!aX~P!KgOy$UaX$Ua!e$Ua!P$Uav$Ua#R$Ua~P2gO!l(|O'Q#VO'T(xOv(ZP~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'T#SO~Ov)TO~P#$iOy)VO~PEsO%^)WO~PGaOa)ZO~P!1iO%f)`O~PEvO_)aO'T&cO~O!i)fO!j)eO'T&cO~O'^UO!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Ov%uX~P2gOv)gO~PGyOv)gO~Ov)gO~P]OQiXQ'XXZiXd'XX}iX#piX(PiX~ORiXwiX$fiX$|iX[iXoiXyiX!liX!qiX!tiX#OiX#PiX'giX'qiX'riX'xiX'yiX'ziX'{iX'|iX'}iX(OiX(QiX(RiX(TiX!PiX!eiXXiXPiXviX!SiX#RiX~P#(kOQjXQlXRjXZjXdlX}jX#pjX(PjXwjX$fjX$|jX[jXojXyjX!ljX!qjX!tjX#OjX#PjX'gjX'qjX'rjX'xjX'yjX'zjX'{jX'|jX'}jX(OjX(QjX(RjX(TjX!PjX!ejXXjX!SjXPjXvjX#RjX~O%^)jO~PGaOQ']Od)kO~O^)mO_)mO`)mOa)mO'T%dO~Od)qO~OQ']OZ)uO})sOR'UX#p'UX(P'UXw'UX$f'UX$|'UX['UXo'UXy'UX!l'UX!q'UX!t'UX#O'UX#P'UX'g'UX'q'UX'r'UX'x'UX'y'UX'z'UX'{'UX'|'UX'}'UX(O'UX(Q'UX(R'UX(T'UX!P'UX!e'UXX'UXP'UXv'UX!S'UX#R'UX~OQ!QO^:bO_:^O`TOaTOd:aO%^)jO'T:_O~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!j)yO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!P)|O!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO(P*OO~OR*QO#p*RO(P*PO~OQhXQ'XXZhXd'XX}hX(PhX~ORhX#phXwhX$fhX$|hX[hXohXyhX!lhX!qhX!thX#OhX#PhX'ghX'qhX'rhX'xhX'yhX'zhX'{hX'|hX'}hX(OhX(QhX(RhX(ThX!PhX!ehXXhXPhXvhX!ShX#RhX~P#4kOQ*SO~O})sO~OQ!QO^%vO_%cO`TOaTOd%jO$f%wO%^%xO'T%dO~PGaO!Q*VO!j*VO~O^*YO`*YOa*YO!O*ZO~OQ&oOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO[#}Oo:YO}#zO!l:ZO!q#jO!t:ZO#O:YO#P:VO#p$OO'g#gO'q:ZO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~Ow'dX~P#9vOy#qaX#qa!e#qa!P#qav#qa#R#qa~P2gOy#zaX#za!e#za!P#zav#za#R#za~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!S&_O!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zay#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#zaX#za!e#za!P#zav#za#R#za~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q*eO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw*fO~P#9vO$b*iO$d*jO$f*kO~O!O*lO'r(pO~O!S*nO~O'T*oO~Ow$yOy*qO~O'T*rO~OQ*uOw*vOy*yO}*wO$|*xO~OQ*uOw*vO$|*xO~OQ*uOw+QO$|*xO~OQ*uOo+VOy+XO!S+UO~OQ*uO}+ZO~OQ!QOZ%rO[%qO^%vO`TOaTOd%jOg%yO}%pO!U!lO!W!lO!q%oO$f%wO$q%[O%]!lO%^%xO&W%{O'T%dO'Z%eO(Q%zO~OR+bO_+^O!Q+cO~P#DkO_%cO!Q!lOw&UX$|&UX(P&UX~P#DkOw$yO$f+hO$|*xO(P*PO~OQ!QOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ*uOw$yO!S+UO$|*xO~Oo+nOy+mO!S+oO'r(pO~OdlXy!RX#pbXv!RX!e!RX~Od'XXy(mX#p'SXv(mX!e(mX~Od+qO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q+vO~Ov(oP~P!3|O#p+{O~Oy+|O~O!S+}O~O&}!sO'O'VO'P,PO~Od,QO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UO~P#DkOS,^OT,^OZ,^O['cO_,YOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~O!P,dO~P#KkOX,gO~P#KkOv,iO~P#KkOo'tX#O'tX#P'tX#p'tX'r'tX'x'tX'y'tX'z'tX'{'tX'|'tX'}'tX(O'tX(P'tX(R'tX(T'tX~Oy,jO['tX}'tX!l'tX!q'tX!t'tX'g'tX'q'tX(Q'tXv'tX~P#NjOP$giQ$giS$giT$giZ$gi[$gi^$gi_$gi`$gia$gid$gig$gis$git$giu$giw$giy$gi|$gi}$gi!Q$gi!U$gi!W$gi!X$gi!Z$gi!]$gi!l$gi!q$gi!t$gi#Y$gi#r$gi#{$gi$O$gi$b$gi$d$gi$f$gi$i$gi$m$gi$q$gi$s$gi%T$gi%V$gi%Z$gi%]$gi%^$gi%f$gi%j$gi%s$gi&z$gi'Q$gi'T$gi'Z$gi'^$gi'g$gi'q$gi(Q$giv$gi~P#NjOX,kO~O['cOo,lOw'dO}'bOX]X~Oy#ciX#ci!e#ci!P#civ#ci#R#ci~P2gO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei(P#ei~P$'PO[#}O}#zO(O#|O(R#fOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei'x#ei(P#ei(Q#ei(T#eiw#ei~P$)QO'g#gO(P#gO~P$'PO[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O!q#ei~P$+`O!q#jO~P$+`O[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'r#ei~P$-hO'r#lO~P$-hO[#}O}#zO!q#jO#P#uO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#eiX#ei!e#ei!P#eiv#ei#R#ei~O'}#ei~P$/pO'}#mO~P$/pO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#ni!t#ni#p#ni'q#ni~Oo#xO#O#xO#P#uOy#niX#ni!e#ni!P#niv#ni#R#ni~P$1xO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#si!t#si#p#si'q#si~Oo#xO#O#xO#P#uOy#siX#si!e#si!P#siv#si#R#si~P$3yOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO~P)xO!e,sO!P(VX~P2gO!P,uO~OX,vO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOX&fX!e&fX!P&fX~P)xO!e(WOX(Wa~Oy,zO!e(WOX(WX~P2gOX,{O~O!P,|O!e(WO~O!P-OO!e(WO~P2gOSVOTVOsVOtVOuVO'^UO'g$[O~P!6POP!baZca!S!ba!e!ba!tca'qca'r!ba!O!bao!bay!ba!P!baX!ba!Z!ba#R!bav!ba~O!e-TO'r(pO!P'mXX'mX~O!P-VO~O!i-`O!j-_O!l-[O'T-XOv'nP~OX-aO~O_%cO!Q!lO~P#DkO!j-gOP&gX!e&gX~P<cO!e(rOP(Ya~O!S-iO'r(pOP$Wa!e$Wa~Ow!PO(P*PO~OvbX!S!kX!ebX~O'Q#VO'T(xO~O!S-mO~O!e-oOv([X~Ov-qO~Ov-sO~P,cOv-sO~P#$iO_-uO'T&cO~O!S-vO~Ow$yOy-wO~OQ*uOw*vOy-zO}*wO$|*xO~OQ*uOo.UO~Oy._O~O!S.`O~O!j.bO'T&cO~Ov.cO~Ov.cO~PGyOQ']O^'Wa_'Wa`'Waa'Wa'T'Wa~Od.gO~OQ'XXQ'kXR'kXZ'kXd'XX}'kX#p'kX(P'kXw'kX$f'kX$|'kX['kXo'kXy'kX!l'kX!q'kX!t'kX#O'kX#P'kX'g'kX'q'kX'r'kX'x'kX'y'kX'z'kX'{'kX'|'kX'}'kX(O'kX(Q'kX(R'kX(T'kX!P'kX!e'kXX'kXP'kXv'kX!S'kX#R'kX~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t.kO#V.mO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(sP~PGaO#Q.tOR%wa#p%wa(P%waw%wa$f%wa$|%wa[%wao%way%wa}%wa!l%wa!q%wa!t%wa#O%wa#P%wa'g%wa'q%wa'r%wa'x%wa'y%wa'z%wa'{%wa'|%wa'}%wa(O%wa(Q%wa(R%wa(T%wa!P%wa!e%waX%waP%wav%wa!S%wa#R%wa~O%^.vO~PGaO(P*POR&Oa#p&Oaw&Oa$f&Oa$|&Oa[&Oao&Oay&Oa}&Oa!l&Oa!q&Oa!t&Oa#O&Oa#P&Oa'g&Oa'q&Oa'r&Oa'x&Oa'y&Oa'z&Oa'{&Oa'|&Oa'}&Oa(O&Oa(Q&Oa(R&Oa(T&Oa!P&Oa!e&OaX&OaP&Oav&Oa!S&Oa#R&Oa~O_%cO!Q!lO!j.xO(P*OO~P#DkO!e.yO(P*PO!P(uX~O!P.{O~OX.|Oy.}O(P*PO~O'Z%eOR(qP~OQ']O})sORfa#pfa(Pfawfa$ffa$|fa[faofayfa!lfa!qfa!tfa#Ofa#Pfa'gfa'qfa'rfa'xfa'yfa'zfa'{fa'|fa'}fa(Ofa(Qfa(Rfa(Tfa!Pfa!efaXfaPfavfa!Sfa#Rfa~OQ']O})sOR&Va#p&Va(P&Vaw&Va$f&Va$|&Va[&Vao&Vay&Va!l&Va!q&Va!t&Va#O&Va#P&Va'g&Va'q&Va'r&Va'x&Va'y&Va'z&Va'{&Va'|&Va'}&Va(O&Va(Q&Va(R&Va(T&Va!P&Va!e&VaX&VaP&Vav&Va!S&Va#R&Va~O!P/UO~Ow$yO$f/ZO$|*xO(P*PO~OQ!QOZ/[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOo/^O'r(pO~O#W/_OP!YiQ!YiS!YiT!YiZ!Yi[!Yi^!Yi_!Yi`!Yia!Yid!Yig!Yio!Yis!Yit!Yiu!Yiw!Yiy!Yi|!Yi}!Yi!Q!Yi!U!Yi!W!Yi!X!Yi!Z!Yi!]!Yi!l!Yi!q!Yi!t!Yi#O!Yi#P!Yi#Y!Yi#p!Yi#r!Yi#{!Yi$O!Yi$b!Yi$d!Yi$f!Yi$i!Yi$m!Yi$q!Yi$s!Yi%T!Yi%V!Yi%Z!Yi%]!Yi%^!Yi%f!Yi%j!Yi%s!Yi&z!Yi'Q!Yi'T!Yi'Z!Yi'^!Yi'g!Yi'q!Yi'r!Yi'x!Yi'y!Yi'z!Yi'{!Yi'|!Yi'}!Yi(O!Yi(P!Yi(Q!Yi(R!Yi(T!YiX!Yi!e!Yi!P!Yiv!Yi!i!Yi!j!Yi#V!Yi#R!Yi~Oy#ziX#zi!e#zi!P#ziv#zi#R#zi~P2gOy$UiX$Ui!e$Ui!P$Uiv$Ui#R$Ui~P2gOv/eO!j&bO'Q`O~P<cOw/nO}/mO~Oy!RX#pbX~Oy/oO~O#p/pO~OR+bO_+dO!Q/sO'T&iO'Z%eO~Oa/zO|!VO'Q#VO'T(ROv(cP~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(eP~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw(`Py(`P~PGaOw*vO~Oy-zO$|*xO~Oa/zO|!VO'Q#VO'T*oOv(gP~Ow+QO~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zO(R0`O~PGaOy0dO~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t0hO'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V0nO!P(jP~P%1}Ow!POy0pO#Q0rO$|*xO~OR0uO!e0sO~P#(kOR0uO!S+UO!e0sO(P*OO~OR0uOo0wO!S+UO!e0sOQ'VXZ'VX}'VX#p'VX(P'VX~OR0uOo0wO!e0sO~OR0uO!e0sO~O$f/ZO(P*PO~Ow$yO~Ow$yO$|*xO~Oo0}Oy0|O!S1OO'r(pO~O!e1POv(pX~Ov1RO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q1VO~Oo1YOQ'VXR'VXZ'VX}'VX!e'VX(P'VX~O!e1ZO(P*POR'YX~O!e1ZOR'YX~O!e1ZO(P*OOR'YX~OR1]O~O!S1^OS'wXT'wXZ'wX['wX_'wXd'wXo'wXs'wXu'wXw'wXy'wX}'wX!P'wX!e'wX!l'wX!q'wX!t'wX!y'wX#O'wX#P'wX#Q'wX#R'wX'Q'wX'Z'wX'^'wX'g'wX'r'wX'v'wX'x'wX'y'wX'z'wX'{'wX'|'wX'}'wX(O'wX(P'wX(Q'wX(R'wXX'wXv'wX~O}1_O~O!P1aO~P#KkOX1bO~P#KkOv1cO~P#KkOS,^OT,^OZ,^O['cO_1dOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~OX1fO~Oy,jO~O!e,sO!P(Va~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P&eX!e&eX~P)xO!e,sO!P(Va~OX&fa!e&fa!P&fa~P2gOX1kO~P2gO!P1mO!e(WO~OP!biZci!S!bi!e!bi!tci'qci'r!bi!O!bio!biy!bi!P!biX!bi!Z!bi#R!biv!bi~O'r(pOP!oi!S!oi!e!oi!O!oio!oiy!oi!P!oiX!oi!Z!oi#R!oiv!oi~O!j&bO!P&`X!e&`XX&`X~P<cO!e-TO!P'maX'ma~O!P1qO~Ov!RX!S!kX!e!RX~O!S1rO~O!e1sOv'oX~Ov1uO~O'T-XO~O!j1xO'T-XO~O(P*POP$Wi!e$Wi~O!S1yO'r(pOP$XX!e$XX~O!S1|O~Ov$_a!e$_a~P2gO!l(|O'Q#VO'T(xOv&hX!e&hX~O!e-oOv([a~Ov2QO~P,cOy2UO~O#p2VO~Oy2WO$|*xO~Ow*vOy2WO}*wO$|*xO~Oo2aO~Ow!POy2fO#Q2hO$|*xO~O!S2jO~Ov2lO~O#Q2mOR%wi#p%wi(P%wiw%wi$f%wi$|%wi[%wio%wiy%wi}%wi!l%wi!q%wi!t%wi#O%wi#P%wi'g%wi'q%wi'r%wi'x%wi'y%wi'z%wi'{%wi'|%wi'}%wi(O%wi(Q%wi(R%wi(T%wi!P%wi!e%wiX%wiP%wiv%wi!S%wi#R%wi~Od2nO~O^2qO!j.sO!q2rO'Q#VO'Z%eO~O(P*PO!P%{X!e%{X~O!e2sO!P(tX~O!P2uO~OQ!QOZ%rO[%qO^2wO_%cO`TOaTOd%jOg%yO}%pO!j2xO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO^2yO!j2xO(P*OO~O!P%aX!e%aX~P#4kO^2yO~O(P*POR&Oi#p&Oiw&Oi$f&Oi$|&Oi[&Oio&Oiy&Oi}&Oi!l&Oi!q&Oi!t&Oi#O&Oi#P&Oi'g&Oi'q&Oi'r&Oi'x&Oi'y&Oi'z&Oi'{&Oi'|&Oi'}&Oi(O&Oi(Q&Oi(R&Oi(T&Oi!P&Oi!e&OiX&OiP&Oiv&Oi!S&Oi#R&Oi~O_%cO!Q!lO!P&yX!e&yX~P#DkO!e.yO!P(ua~OR3QO(P*PO~O!e3ROR(rX~OR3TO~O(P*POR&Pi#p&Piw&Pi$f&Pi$|&Pi[&Pio&Piy&Pi}&Pi!l&Pi!q&Pi!t&Pi#O&Pi#P&Pi'g&Pi'q&Pi'r&Pi'x&Pi'y&Pi'z&Pi'{&Pi'|&Pi'}&Pi(O&Pi(Q&Pi(R&Pi(T&Pi!P&Pi!e&PiX&PiP&Piv&Pi!S&Pi#R&Pi~O!P3UO~O$f3VO(P*PO~Ow$yO$f3VO$|*xO(P*PO~Ow!PO!Z!YO~O!Z3aO#R3_O'r(pO~O!j&bO'Q#VO~P<cOv3eO~Ov3eO!j&bO'Q`O~P<cO!O3hO'r(pO~Ow!PO~P#9vOo3kOy3jO(P*PO~O!P3oO~P%;pOv3rO~P%;pOR0uO!S+UO!e0sO~OR0uOo0wO!S+UO!e0sO~Oa/zO|!VO'Q#VO'T(RO~O!S3uO~O!e3wOv(dX~Ov3yO~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO~PGaO!e3|O(P*PO!P(fX~O!P4OO~O!S4PO(P*OO~O!S+UO(P*PO~O!e4ROw(aXy(aX~OQ4TO~Oy2WO~Oa/zO|!VO'Q#VO'T*oO~Oo4WOw*vO}*wOv%XX!e%XX~O!e4ZOv(hX~Ov4]O~O(P4_Oy(_Xw(_X$|(_XR(_Xo(_X!e(_X~Oy4aO(P*PO~OQ!QOSVOTVO[$gO^4bO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j4cO'Z%eO~P&,sO!S4eO'r(pO~O#V4gO~P%1}O!e4hO!P(kX~O!P4jO~O!P%aX!S!aX!e%aX'r!aX~P!KgO!j&bO~P&,sO!e4hO!P(kX!S'eX'r'eX~O^2yO!j2xO~Ow!POy2fO~O_4pO!Q/sO'T&iO'Z%eOR&lX!e&lX~OR4rO!e0sO~O!S4tO~Ow$yO$|*xO(P*PO~Oy4uO~P2gOo4vOy4uO(P*PO~Ov&uX!e&uX~P!3|O!e1POv(pa~Oo4|Oy4{O(P*PO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UOR&vX!e&vX~P#DkO!e1ZOR'Ya~O!y5SO~O!P5TO~P#KkO!S1^OX'wX#R'wX~O!e,sO!P(Vi~O!P&ea!e&ea~P2gOX5WO~P2gOP!bqZcq!S!bq!e!bq!tcq'qcq'r!bq!O!bqo!bqy!bq!P!bqX!bq!Z!bq#R!bqv!bq~O'r(pO!P&`a!e&`aX&`a~O!i-`O!j-_O!l5YO'T-XOv&aX!e&aX~O!e1sOv'oa~O!S5[O~O!S5`O'r(pOP$Xa!e$Xa~O(P*POP$Wq!e$Wq~Ov$^i!e$^i~P2gOw!POy5bO#Q5dO$|*xO~Oo5gOy5fO(P*PO~Oy5iO~Oy5iO$|*xO~Oy5mO(P*PO~Ow!POy5bO~Oo5tOy5sO(P*PO~O!S5vO~O!e2sO!P(ta~O^2yO!j2xO'Z%eO~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t5zO#V5|O$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&xX!e&xX~PGaOQ!QOZ%rO[%qO^6OO_%cO`TOaTOd%jOg%yO}%pO!j6PO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(P*OO(Q%zO~PGaO!P%aa!e%aa~P#4kO^6QO~O#Q6ROR%wq#p%wq(P%wqw%wq$f%wq$|%wq[%wqo%wqy%wq}%wq!l%wq!q%wq!t%wq#O%wq#P%wq'g%wq'q%wq'r%wq'x%wq'y%wq'z%wq'{%wq'|%wq'}%wq(O%wq(Q%wq(R%wq(T%wq!P%wq!e%wqX%wqP%wqv%wq!S%wq#R%wq~O(P*POR&Oq#p&Oqw&Oq$f&Oq$|&Oq[&Oqo&Oqy&Oq}&Oq!l&Oq!q&Oq!t&Oq#O&Oq#P&Oq'g&Oq'q&Oq'r&Oq'x&Oq'y&Oq'z&Oq'{&Oq'|&Oq'}&Oq(O&Oq(Q&Oq(R&Oq(T&Oq!P&Oq!e&OqX&OqP&Oqv&Oq!S&Oq#R&Oq~O(P*PO!P&ya!e&ya~OX6SO~P2gO'Z%eOR&wX!e&wX~O!e3ROR(ra~O$f6YO(P*PO~Ow![q~P#9vO#R6]O~O!Z3aO#R6]O'r(pO~Ov6bO~O#R6fO~Oy6gO!P6hO~O!P6hO~P%;pOy6kO~Ov6kOy6gO~Ov6kO~P%;pOy6mO~O!e3wOv(da~O!S6pO~Oa/zO|!VO'Q#VO'T(ROv&oX!e&oX~O!e3|O(P*PO!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&pX!e&pX~PGaO!e3|O!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw&nX!e&nXy&nX~PGaO!e4ROw(aay(aa~O!e4ZOv(ha~Oo7SOv%Xa!e%Xa~Oo7SOw*vO}*wOv%Xa!e%Xa~Oa/zO|!VO'Q#VO'T*oOv&qX!e&qX~O(P*POy$xaw$xa$|$xaR$xao$xa!e$xa~O(P4_Oy(_aw(_a$|(_aR(_ao(_a!e(_a~O!P%aa!S!aX!e%aa'r!aX~P!KgOQ!QOSVOTVO[$gO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j&bO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O^7ZO~P&JUO^6QO!j6PO~O!e4hO!P(ka~O!e4hO!P(ka!S'eX'r'eX~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t7_O'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V7aO!P&sX!e&sX~P&L]O!S7cO'r(pO~Ow!POy5bO$|*xO(P*PO~O!S+UOR&la!e&la~Oo0wO!S+UOR&la!e&la~Oo0wOR&la!e&la~O(P*POR$yi!e$yi~Oy7fO~P2gOo7gOy7fO(P*PO~O(P*PORni!eni~O(P*POR&va!e&va~O(P*OOR&va!e&va~OS,^OT,^OZ,^O_,^Od,^Oo,^Os,^Ou,^Oy,^O!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O~O(P7iO(Q7iO(R7iO~P'!qO!P7kO~P#KkO!P&ei!e&ei~P2gO'r(pOv!hi!e!hi~O!S7mO~O(P*POP$Xi!e$Xi~Ov$^q!e$^q~P2gOw!POy7oO~Ow!POy7oO#Q7rO$|*xO~Oy7tO~Oy7uO~Oy7vO(P*PO~Ow!POy7oO$|*xO(P*PO~Oo7{Oy7zO(P*PO~O!e2sO!P(ti~O(P*PO!P%}X!e%}X~O!P%ai!e%ai~P#4kO^8OO~O!e8TO['bXv$`i}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[iv$`i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R#^a~P2gO#R8WO~O!Z3aO#R8XO'r(pO~Ov8[O~Oy8^O~P2gOy8`O~Oy6gO!P8aO~Ov8`Oy6gO~O!e3wOv(di~O(P*POv%Qi!e%Qi~O!e3|O!P(fi~O!e3|O(P*PO!P(fi~O(P*PO!P&pa!e&pa~O(P8hOw(bX!e(bXy(bX~O(P*PO!S$wiy$wiw$wi$|$wiR$wio$wi!e$wi~O!e4ZOv(hi~Ov%Xi!e%Xi~P2gOo8kOv%Xi!e%Xi~O!P%ai!S!aX!e%ai'r!aX~P!KgO(P*PO!P%`i!e%`i~O!e4hO!P(ki~O#V8nO~P&L]O!P&sa!S'eX!e&sa'r'eX~O(P*POR$zq!e$zq~Oy8pO~P2gOy7zO~P2gO(P8rO(Q8rO(R8rO~O(P8rO(Q8rO(R8rO~P'!qO'r(pOv!hq!e!hq~O(P*POP$Xq!e$Xq~Ow!POy8uO$|*xO(P*PO~Ow!POy8uO~Oy8xO~P2gOy8zO~P2gOo8|Oy8zO(P*PO~OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[qv$`q}#[q!i#[q!j#[q!l#[q!q#[q#V#[q'Q#[q'T#[q'^#[q'g#[q~O!e9PO['bXv$`q}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'2fO#R9UO~O!Z3aO#R9UO'r(pO~Oy9WO~O(P*POv%Qq!e%Qq~O!e3|O!P(fq~O(P*PO!P&pi!e&pi~O(P8hOw(ba!e(bay(ba~Ov%Xq!e%Xq~P2gO!P&si!S'eX!e&si'r'eX~O(P*PO!P%`q!e%`q~Oy9]O~P2gO(P9^O(Q9^O(R9^O~O'r(pOv!hy!e!hy~Ow!POy9_O~Ow!POy9_O$|*xO(P*PO~Oy9aO~P2gOQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[yv$`y}#[y!i#[y!j#[y!l#[y!q#[y#V#[y'Q#[y'T#[y'^#[y'g#[y~O!e9dO['bXv$`y}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'9eO!e9eO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R9hO~O(P*PO!P&pq!e&pq~Ov%Xy!e%Xy~P2gOw!POy9iO~Oy9jO~P2gOQ#[!RS#[!RT#[!R[#[!R^#[!R_#[!R`#[!Ra#[!Rd#[!Rs#[!Rt#[!Ru#[!Rv$`!R}#[!R!i#[!R!j#[!R!l#[!R!q#[!R#V#[!R'Q#[!R'T#[!R'^#[!R'g#[!R~O!e9kO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[q}#[q!i#[q!j#[q!l#[q!q#[q!t'bX#V#[q'Q#[q'T#[q'^#[q'g#[q'q'bX(Q'bX~P@[O!e9nO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[y}#[y!i#[y!j#[y!l#[y!q#[y!t'bX#V#[y'Q#[y'T#[y'^#[y'g#[y'q'bX(Q'bX~P@[OwbX~P$|OwjX}jX!tbX'qbX~P!6mOZ'SXd'XXo'SXw'kX!t'SX'q'SX'r'SX~O['SXd'SXw'SX}'SX!l'SX!q'SX#O'SX#P'SX#p'SX'g'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SX~P'GTOP'SX}'kX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTO^9qO_9qO`9qOa9qO'T9oO~O!j:OO~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXw#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sX~P'IxO#Q$uO~P!.cO}'kXP'SX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTOo#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qX~P!.cOo#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zX~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#saw#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#sa~P'IxOo:YO#O:YO#P:VOw#sa~P!B}Ow$Ua~P#9vOQ'XXd'XX}iX~OQlXdlX}jX~O^:sO_:sO`:sOa:sO'T:_O~OQ'XXd'XX}hX~Ow#qa~P#9vOw#za~P#9vO!S&_Oo#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#za~P!.cO#Q*eO~P!.cOw#ci~P#9vO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#ei~O'g#ei(P#ei~P((}O'g#gO(P#gO~P((}O[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#ei~O!q#ei~P(*yO!q#jO~P(*yO[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#ei~O'r#ei~P(,rO'r#lO~P(,rO[#}O}#zO!q#jO#P:VO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#ei~O'}#ei~P(.kO'}#mO~P(.kOo:YO#O:YO#P:VOw#ni~P$1xOo:YO#O:YO#P:VOw#si~P$3yOQ'XXd'XX}'kX~Ow#zi~P#9vOw$Ui~P#9vOd9}O~Ow#ca~P#9vOd:uO~OU'x_'v'P'O'^s!y'^'T'Z~",goto:"$Ku(vPPPPPPP(wPP)OPP)^PPPP)d-hP0f5aP7R7R8v7R>wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"\u26A0 | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[fR],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O_!<Z]'_QUX'PS'OSOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O]!=]XUX'PS'OSOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!=}XUXOY!>jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!<O_!CQjuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#U$n#U#V#!}#V#]$n#]#^!FZ#^#c$n#c#d#%u#d#i$n#i#j!FZ#j#l$n#l#m#(g#m;'S$n;'S;=`4s<%lO$n_!D{duX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_!Fbg'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R$n!R!S!Gy!S!T$n!T!U!K_!U!W$n!W!X!Le!X!Y$n!Y!Z!J]!Z#O$n#O#P&[#P#g$n#g#h!Mk#h;'S$n;'S;=`4s<%lO$n_!HQa'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!IV!T!W$n!W!X!J]!X#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!I^_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y$n!Y!Z!J]!Z#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Jf]uX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Kf_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!J]!T#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Ll_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!U$n!U!V!J]!V#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Mr_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#]$n#]#^!Nq#^;'S$n;'S;=`4s<%lO$n_!Nx_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#n$n#n#o# w#o;'S$n;'S;=`4s<%lO$n_#!O_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#X$n#X#Y!J]#Y;'S$n;'S;=`4s<%lO$n_##Ua'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S;'S$n;'S;=`4s<%lO$n_#$deuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#%|`'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S;'S$n;'S;=`4s<%lO$n_#'XduX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#(nd'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z;'S$n;'S;=`4s<%lO$n_#*VhuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#+z_!SX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![$n![!]#,y!]#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#-S]dX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#.U]yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#/W`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!^$n!^!_#0Y!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#0c_'yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#1k`oX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#2m!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#2v]#RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#3x`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#4z!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#5T_'zX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#6]](RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV#7_]'pP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#8cj'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n_#:^][X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU#;[Z'OSOz#;}z{#<k{!P#;}!P!Q#=V!Q#i#;}#i#j#=n#j#l#;}#l#m#?j#m;'S#;};'S;=`#C[<%lO#;}U#<UVrQ'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[U#<pVrQOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`U#=[UrQOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`U#=s^'OSOz&[z{&v{!P&[!P!Q'x!Q![#>o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[lR,uR,dR,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>pR[e]||-1,"get")}],tokenPrec:15596})});import cn from"fs/promises";import lc from"path";function ch(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function uc(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function V(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function Se(e,t){return e.slice(t.from,t.to)}function Ke(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function Ye(e,t){return e[t-1]?.trim()||"<unknown>"}function mR(e,t){let n=[];return V(t,r=>{if(r.type.name!=="ImportStatement")return;let i=Se(e,r).trim(),o=/^from\s+([.\w]+)\s+import\b/.exec(i);if(o?.[1]){n.push(o[1]);return}o=/^import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+as\s+/i)[0]??"").filter(Boolean))}),de(n,12)}function dc(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return Se(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return V(t,i=>{let o=dc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?dc(e,n):null}function ah(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?dc(e,o):null;a&&!Re.has(a)&&n.add(a)}V(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function dh(e,t,n){let r=[];for(let i of t){let o=lc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=Hm.parse(c).topNode,u=J(i),m=ae(u),g=Ne(m),w=mR(c,f),x=[],h=ye(i,n).id;V(f,y=>{if(y.type.name==="FunctionDefinition"){let v=null;if(V(y,E=>{E.type.name==="VariableName"&&!v&&(v=Se(c,E).trim())}),!v)return;let P=v,k=Ke(c,y);x.push({id:`${i}#${P}:${k}`,name:P,qualifiedName:`${i}:${P}`,kind:"function",filePath:i,moduleId:h,language:u,capabilityTier:m,line:k,signature:Ye(d,k),exported:!P.startsWith("_"),calls:ah(c,y),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let b=null,S=null;if(V(y,v=>{v.type.name==="VariableName"&&!b?b=Se(c,v).trim():v.type.name==="Body"&&(S=v)}),!b)return;let Q=b,T=Ke(c,y);x.push({id:`${i}#${Q}:${T}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"class",filePath:i,moduleId:h,language:u,capabilityTier:m,line:T,signature:Ye(d,T),exported:!Q.startsWith("_"),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.99,g+.08)}),S&&V(S,v=>{if(v.type.name!=="FunctionDefinition")return;let P=null;if(V(v,R=>{R.type.name==="VariableName"&&!P&&(P=Se(c,R).trim())}),!P)return;let k=P,E=Ke(c,v);x.push({id:`${i}#${Q}.${k}:${E}`,name:k,qualifiedName:`${i}:${Q}.${k}`,kind:"method",filePath:i,moduleId:h,language:u,capabilityTier:m,line:E,signature:Ye(d,E),exported:!k.startsWith("_"),calls:ah(c,v),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:h,language:u,capabilityTier:m,importPaths:w,symbols:x.slice(0,rt)})}return r}function ur(e,t){let n=null;return V(e,r=>{!n&&t(r)&&(n=r)}),n}function hR(e,t){let n=null;return V(e,r=>{t(r)&&(n=r)}),n}function lh(e,t){if(t(e))return e;let n=null;return V(e,r=>{n||(n=lh(r,t))}),n}function no(e,t,n){let r=new Set,i=s(o=>{if(o.type.name==="CallExpr"||o.type.name==="CallExpression"){let a=o.firstChild,c=a?n(e,a):null;c&&!Re.has(c)&&r.add(c)}V(o,i)},"walk");return i(t),Array.from(r).slice(0,24)}function ro(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return Se(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return V(t,i=>{let o=ro(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?ro(e,n):null}function io(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return Se(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return V(t,i=>{let o=io(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?io(e,n):null}function an(e,t,n){let r=ur(t,i=>i.type.name===n);return r?Se(e,r).trim():null}function cc(e,t){return/^pub(?:\([^)]*\))?\s/.test(Se(e,t).trimStart())}async function uh(e,t,n){let r=[];for(let i of t){let o=lc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=Wm.parse(c),f=ye(i,n).id,u=J(i),m=ae(u),g=Ne(m),w=tr(c,u),x=[];V(l.topNode,h=>{if(h.type.name==="TypeDecl"){let v=ur(h,R=>R.type.name==="TypeSpec"),P=v?an(c,v,"DefName"):null;if(!v||!P)return;let k=ur(v,R=>R.type.name==="InterfaceType")?"interface":"struct",E=Ke(c,v);x.push({id:`${i}#${P}:${E}`,name:P,qualifiedName:`${i}:${P}`,kind:k,filePath:i,moduleId:f,language:u,capabilityTier:m,line:E,signature:Ye(d,E),exported:/^[A-Z]/.test(P),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name==="FunctionDecl"){let v=an(c,h,"DefName");if(!v)return;let P=Ke(c,h);x.push({id:`${i}#${v}:${P}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:P,signature:Ye(d,P),exported:/^[A-Z]/.test(v),calls:no(c,h,ro),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name!=="MethodDecl")return;let y=ur(h,v=>v.type.name==="Parameters"),b=an(c,h,"FieldName"),S=y?lh(y,v=>v.type.name==="TypeName"):null,Q=S?Se(c,S).trim():void 0;if(!b)return;let T=Ke(c,h);x.push({id:`${i}#${Q?`${Q}.`:""}${b}:${T}`,name:b,qualifiedName:`${i}:${Q?`${Q}.`:""}${b}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:T,signature:Ye(d,T),exported:/^[A-Z]/.test(b),calls:no(c,h,ro),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:x.slice(0,rt)})}return r}async function fh(e,t,n){let r=[];for(let i of t){let o=lc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=oh.parse(c),f=ye(i,n).id,u=J(i),m=ae(u),g=Ne(m),w=tr(c,u),x=[];V(l.topNode,h=>{if(h.type.name==="StructItem"||h.type.name==="TraitItem"||h.type.name==="EnumItem"){let Q=an(c,h,"TypeIdentifier");if(!Q)return;let T=h.type.name==="TraitItem"?"trait":h.type.name==="EnumItem"?"enum":"struct",v=Ke(c,h);x.push({id:`${i}#${Q}:${v}`,name:Q,qualifiedName:`${i}:${Q}`,kind:T,filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ye(d,v),exported:cc(c,h),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name==="FunctionItem"){let Q=an(c,h,"BoundIdentifier");if(!Q)return;let T=Ke(c,h);x.push({id:`${i}#${Q}:${T}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:T,signature:Ye(d,T),exported:cc(c,h),calls:no(c,h,io),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name!=="ImplItem")return;let y=hR(h,Q=>Q.type.name==="TypeIdentifier"),b=y?uc(Se(c,y).trim()):void 0,S=ur(h,Q=>Q.type.name==="DeclarationList");!b||!S||V(S,Q=>{if(Q.type.name!=="FunctionItem")return;let T=an(c,Q,"BoundIdentifier");if(!T)return;let v=Ke(c,Q);x.push({id:`${i}#${b}.${T}:${v}`,name:T,qualifiedName:`${i}:${b}.${T}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ye(d,v),exported:cc(c,Q),calls:no(c,Q,io),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:x.slice(0,rt)})}return r}var fc=p(()=>{"use strict";Fm();Jm();sh();ot();s(ch,"extractGoReceiverQualifier");s(uc,"normalizeRustQualifier");s(V,"forEachSyntaxChild");s(Se,"getSyntaxNodeText");s(Ke,"getPythonNodeLine");s(Ye,"getPythonSignature");s(mR,"collectPythonImports");s(dc,"getPythonCallName");s(ah,"collectPythonCallNames");s(dh,"analyzePythonFiles");s(ur,"findFirstSyntaxChild");s(hR,"findLastSyntaxChild");s(lh,"findSyntaxDescendant");s(no,"collectLezerCallNames");s(ro,"getGoCallName");s(io,"getRustCallName");s(an,"findSyntaxNodeText");s(cc,"isRustExported");s(uh,"analyzeGoFiles");s(fh,"analyzeRustFiles")});import ph from"fs/promises";import ut from"path";function mh(e,t){return Array.from(e.matchAll(t)).length}function be(e){return mh(e,/\{/g)-mh(e,/\}/g)}function OR(e,t,n,r,i){let o=Math.max(0,n.line-1),a=Math.max(n.line,(r[i+1]?.line??e.length+1)-1);if(t==="python"){let u=e[o]?.match(/^\s*/)?.[0]?.length??0,m=o+1;for(;m<e.length;){let g=e[m]??"",w=g.trim();if(!w){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!w.startsWith("#"))break;m+=1}return e.slice(o,m).join(`
801
- `)}let c=0,d=!1,l=o;for(let u=o;u<e.length;u+=1){let m=e[u]??"";if(c+=be(m),m.includes("{")&&(d=!0),l=u,d&&c<=0&&u>o||!d&&u+1>=a)break}let f=d?l+1:a;return e.slice(o,f).join(`
802
- `)}function gR(e){let t=new Set,n=[/\b([A-Za-z_][A-Za-z0-9_]*)\s*\(/g,/\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/g];for(let r of n){let i=null;for(;(i=r.exec(e))!==null;){let o=i[1];if(!(!o||Re.has(o))&&(t.add(o),t.size>=24))break}}return Array.from(t)}function te(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function yR(e,t){let n=[],r=new Set,i=[],o=[],a=[],c=0;for(let[d,l]of e.entries()){let f=l.trim();if(!f)continue;let u=null;if(t==="typescript"||t==="javascript"){if(u=/^(export\s+)?(?:async\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(/.exec(f),u){te(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08});continue}if(u=/^(export\s+)?(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*(?:async\s*)?(?:\([^=]*\)|[A-Za-z_$][A-Za-z0-9_$]*)\s*=>/.exec(f),u){te(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.06});continue}if(u=/^(export\s+)?class\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?interface\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?type\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=/.exec(f)??/^(export\s+)?enum\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f),u){let m=f.includes("interface")?"interface":f.includes("type ")?"type":f.includes("enum ")?"enum":"class";te(n,r,{name:u[2],kind:m,line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08})}continue}if(t==="python"){if(u=/^def\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){te(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}u=/^class\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&te(n,r,{name:u[1],kind:"class",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}if(t==="go"){if(u=/^func\s+\(([^)]+)\)\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){te(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:ch(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){te(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}u=/^type\s+([A-Za-z_][A-Za-z0-9_]*)\s+(?:struct|interface)/.exec(f),u&&te(n,r,{name:u[1],kind:f.includes("interface")?"interface":"struct",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}if(t==="rust"){let m=a[a.length-1];if(u=/^impl(?:<[^>]+>)?\s+(?:[A-Za-z0-9_:<&>\[\]]+\s+for\s+)?([A-Za-z_][A-Za-z0-9_:<>]*)/.exec(f),u){let g=uc(u[1]);a.push({name:g,depth:c+be(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(te(n,r,{name:u[1],kind:m?.name?"method":"function",line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:m?.name?.07:.06,qualifier:m?.name}),c+=be(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}for(u=/^(?:pub\s+)?(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&te(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=be(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}if(t==="java"){if(u=/^(?:public\s+)?(class|interface|enum)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(te(n,r,{name:u[2],kind:u[1]==="interface"?"interface":u[1]==="enum"?"enum":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.05}),i.push({name:u[2],depth:c+be(l)}),c+=be(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(u=/^(?:public|protected|private|static|final|synchronized|abstract|\s)+[\w<>\[\], ?]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*\([^;]*\)\s*\{?$/.exec(f),u&&!Re.has(u[1])){let m=i[i.length-1]?.name;te(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=be(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(t==="cpp"){if(u=/^(class|struct|enum)(?:\s+(?:class|struct))?\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(te(n,r,{name:u[2],kind:u[1]==="enum"?"enum":u[1]==="struct"?"struct":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.03}),u[1]!=="enum"&&o.push({name:u[2],depth:c+be(l)}),c+=be(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)::([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Re.has(u[2])){for(te(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=be(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Re.has(u[1])){let m=o[o.length-1]?.name;te(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=be(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop()}}return n.slice(0,rt)}async function hh(e,t,n){let r=ut.join(e,t);if((await ph.stat(r)).size>Zt)return null;let o=await ph.readFile(r,"utf8"),a=o.split(/\r?\n/),c=J(t),d=ae(c),l=tr(o,c),f=yR(a,c),u=Ne(d),m=f.map((g,w,x)=>{let h=OR(a,c,g,x,w),y=g.calls??gR(h);return{id:`${t}#${g.qualifier?`${g.qualifier}.`:""}${g.name}:${g.line}`,name:g.name,qualifiedName:`${t}:${g.qualifier?`${g.qualifier}.`:""}${g.name}`,kind:g.kind,filePath:t,moduleId:n,language:c,capabilityTier:d,line:g.line,signature:g.signature,exported:g.exported,calls:y,callTargets:[],importPaths:l,confidence:Math.min(.97,u+g.confidenceBoost)}});return{filePath:t,moduleId:n,language:c,capabilityTier:d,importPaths:l,symbols:m}}function Oh(e){let t=new Map;for(let n of e)t.set(n.id.toLowerCase(),n.id),t.set(n.label.toLowerCase(),n.id),t.set(ut.posix.basename(n.root).toLowerCase(),n.id);return t}function wR(e,t,n){if(!e.startsWith("."))return null;let r=ut.posix.dirname(t),i;if(e.includes("/"))i=U(ut.posix.join(r,e));else{let a=e.match(/^\.+/)?.[0]?.length??0,c=e.slice(a).replace(/\./g,"/"),d=r;for(let l=1;l<a;l+=1)d=ut.posix.dirname(d);i=U(ut.posix.join(d,c))}let o=[i];for(let a of Ht)o.push(`${i}${a}`),o.push(`${i}/index${a}`);for(let a of o)if(n.has(a))return a;return null}function fr(e,t,n,r,i){let o=wR(e,t,n);if(o)return ye(o,r).id;let a=e.toLowerCase();for(let[c,d]of i.entries())if(a===c||a.startsWith(`${c}/`)||a.endsWith(`/${c}`))return d;return null}function oo(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function gh(e,t){let n=new Map(t.map(o=>[o.id,o])),r=new Map;for(let o of t){let a=r.get(o.moduleId)??[];a.push(o),r.set(o.moduleId,a)}let i=[];for(let o of e){let a=r.get(o.moduleId)??[],c=o.entryFiles.length>0?o.entryFiles:o.sampleFiles;for(let d of c.slice(0,2)){let l=a.find(h=>h.filePath===d&&h.exported)??a.find(h=>h.filePath===d)??a[0];if(!l)continue;let f=[{kind:"entry",symbolName:l.name,symbolId:l.id,filePath:l.filePath,line:l.line,note:`Entry symbol ${l.name} in ${l.filePath}`}];for(let h of l.importPaths.slice(0,3))f.push({kind:"imports",symbolName:h,filePath:l.filePath,note:`Imports ${h}`});let u=l.callTargets.slice(0,3);for(let h of u){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Calls ${h.name} (${h.reason})`})}let m=u.map(h=>n.get(h.symbolId)).filter(h=>h!==void 0).flatMap(h=>h.callTargets.slice(0,2)).slice(0,2);for(let h of m){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Then reaches ${h.name} (${h.reason})`})}let g=f.slice(0,cm),w=de(g.map(h=>n.get(h.symbolId??"")?.moduleId).filter(h=>typeof h=="string"),4),x=`${o.moduleId}::${ut.posix.basename(d)}`;i.push({id:x,label:`${o.label} entry via ${ut.posix.basename(d)}`,moduleId:o.moduleId,entryFile:d,entrySymbol:l.name,summary:w.length>0?`${l.name} fans into ${de(u.map(h=>h.name),4).join(", ")||"local work"} and touches modules ${w.join(", ")}.`:`${l.name} starts the main path for ${o.label}.`,steps:g,confidence:Math.min(.95,l.confidence-.02+u.length*.03)})}}return i}var pc=p(()=>{"use strict";ot();fc();s(mh,"countOccurrences");s(be,"countBraceDelta");s(OR,"extractSymbolBody");s(gR,"extractCallNames");s(te,"pushSymbol");s(yR,"extractSymbolsFromLines");s(hh,"analyzeSourceFile");s(Oh,"buildModuleAliases");s(wR,"resolveRelativeImport");s(fr,"resolveImportToModule");s(oo,"rankReferenceReason");s(gh,"buildProcessCapsules")});var vh={};Xc(vh,{analyzeTypeScriptFiles:()=>bR,collectTypeScriptImportPaths:()=>bh,getCallExpressionName:()=>Sh,getDeclarationKey:()=>hc,getNodeLine:()=>yh,getPropertyNameText:()=>so,getSignatureSnippet:()=>wh,hasModifier:()=>mc,isExportedDeclaration:()=>pt,registerTypeScriptSymbol:()=>ft,resolveTypeScriptCallSymbol:()=>Ph,scriptKindFromFilePath:()=>SR});import ao from"path";import I from"typescript";function SR(e){switch(ao.extname(e).toLowerCase()){case".ts":return I.ScriptKind.TS;case".tsx":return I.ScriptKind.TSX;case".jsx":return I.ScriptKind.JSX;default:return I.ScriptKind.JS}}function yh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function hc(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${U(ao.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function wh(e,t){let n=t.getStart(e),r=e.text.indexOf(`
803
- `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function mc(e,t){return I.canHaveModifiers(e)?!!I.getModifiers(e)?.some(n=>n.kind===t):!1}function pt(e){return mc(e,I.SyntaxKind.ExportKeyword)||mc(e,I.SyntaxKind.DefaultKeyword)?!0:I.isVariableDeclaration(e)&&I.isVariableDeclarationList(e.parent)&&I.isVariableStatement(e.parent.parent)?pt(e.parent.parent):!1}function so(e){return e&&(I.isIdentifier(e)||I.isPrivateIdentifier(e)||I.isStringLiteral(e)||I.isNumericLiteral(e))?e.text:null}function Sh(e){return I.isIdentifier(e)?e.text:I.isPropertyAccessExpression(e)?e.name.text:I.isElementAccessExpression(e)&&I.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function bh(e){let t=new Set,n=s(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=s(i=>{if(I.isImportDeclaration(i)||I.isExportDeclaration(i))i.moduleSpecifier&&I.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(I.isImportEqualsDeclaration(i)){let o=i.moduleReference;I.isExternalModuleReference(o)&&o.expression&&I.isStringLiteralLike(o.expression)&&n(o.expression.text)}else I.isCallExpression(i)&&I.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&I.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);I.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function ft(e,t,n,r,i,o,a,c,d,l,f){if(!o.trim())return;let u=yh(r,i),m=f?`${n.filePath}:${f}.${o}`:`${n.filePath}:${o}`,g={id:`${n.filePath}#${f?`${f}.`:""}${o}:${u}`,name:o,qualifiedName:m,kind:a,filePath:n.filePath,moduleId:n.moduleId,language:n.language,capabilityTier:n.capabilityTier,line:u,signature:wh(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,Ne(n.capabilityTier)+d)};if(n.symbols.find(h=>h.id===g.id)||n.symbols.length>=rt)return;n.symbols.push(g);let x;I.isFunctionDeclaration(i)||I.isMethodDeclaration(i)||I.isGetAccessorDeclaration(i)||I.isSetAccessorDeclaration(i)||I.isFunctionExpression(i)||I.isArrowFunction(i)?x=i.body??void 0:I.isVariableDeclaration(i)?x=i.initializer??void 0:(I.isClassDeclaration(i)||I.isClassExpression(i))&&(x=i),t.push({record:g,declaration:i,body:x}),l.set(hc(e,i),g)}function Ph(e,t){return I.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):I.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function bR(e,t,n,r,i){let o={allowJs:!0,checkJs:!1,target:I.ScriptTarget.Latest,module:I.ModuleKind.ESNext,moduleResolution:I.ModuleResolutionKind.NodeNext,jsx:I.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>ao.join(e,m)),c=I.createProgram(a,o),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=J(m);if(!$t(g))continue;let w=c.getSourceFile(ao.join(e,m));if(!w)continue;let x={filePath:m,moduleId:ye(m,n).id,language:g,capabilityTier:ae(g),importPaths:bh(w),symbols:[]};l.set(m,x);for(let h of w.statements){if(I.isFunctionDeclaration(h)&&h.name){ft(e,u,x,w,h,h.name.text,"function",pt(h),.1,f);continue}if(I.isVariableStatement(h)){for(let y of h.declarationList.declarations){let b=so(y.name);b&&y.initializer&&(I.isArrowFunction(y.initializer)||I.isFunctionExpression(y.initializer))&&ft(e,u,x,w,y,b,"function",pt(y),.08,f)}continue}if(I.isClassDeclaration(h)&&h.name){ft(e,u,x,w,h,h.name.text,"class",pt(h),.1,f);for(let y of h.members)(I.isMethodDeclaration(y)||I.isGetAccessorDeclaration(y)||I.isSetAccessorDeclaration(y))&&so(y.name)&&ft(e,u,x,w,y,so(y.name),"method",!1,.05,f,h.name.text);continue}if(I.isInterfaceDeclaration(h)&&h.name){ft(e,u,x,w,h,h.name.text,"interface",pt(h),.09,f);continue}if(I.isTypeAliasDeclaration(h)&&h.name){ft(e,u,x,w,h,h.name.text,"type",pt(h),.09,f);continue}I.isEnumDeclaration(h)&&h.name&&ft(e,u,x,w,h,h.name.text,"enum",pt(h),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let b=fr(y,m.record.filePath,r,n,i);b&&g.add(b)}let w=new Set,x=new Map,h=s(y=>{if(I.isCallExpression(y)||I.isNewExpression(y)){let b=Sh(y.expression);b&&!Re.has(b)&&w.add(b);let Q=Ph(d,y.expression)?.declarations?.[0];if(Q){let T=f.get(hc(e,Q));T&&T.id!==m.record.id&&x.set(T.id,{symbolId:T.id,name:T.name,filePath:T.filePath,moduleId:T.moduleId,reason:oo(m.record.moduleId,T.moduleId,g)})}}I.forEachChild(y,h)},"visit");h(m.body??m.declaration),m.record.calls=Array.from(w).slice(0,24),m.record.callTargets=Array.from(x.values()).slice(0,ge),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var kh=p(()=>{"use strict";ot();nr();pc();s(SR,"scriptKindFromFilePath");s(yh,"getNodeLine");s(hc,"getDeclarationKey");s(wh,"getSignatureSnippet");s(mc,"hasModifier");s(pt,"isExportedDeclaration");s(so,"getPropertyNameText");s(Sh,"getCallExpressionName");s(bh,"collectTypeScriptImportPaths");s(ft,"registerTypeScriptSymbol");s(Ph,"resolveTypeScriptCallSymbol");s(bR,"analyzeTypeScriptFiles")});import Ge from"path";function PR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function vR(e){let t=new Map;for(let n of e)t.set(n.language,(t.get(n.language)??0)+1);return Array.from(t.entries()).map(([n,r])=>({language:n,capabilityTier:ae(n),fileCount:r}))}function kR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function xR(e,t){return e.map(n=>kR(n,t))}async function co(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",o=t.preflight,a=o?.storageRoot??await Xi(r,i),c=e.inventory,d=c?null:await Hn(r,n.source),l=o?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(v=>U(v)));if(l&&l.length>0)for(let v of l){let P=Ge.join(r,v);await Ai(P)?f.add(v):f.delete(v)}let u=Array.from(f).sort((v,P)=>v.localeCompare(P)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:x}=Sm(u,n.areas),h=u.filter(v=>Ht.has(Ge.extname(v).toLowerCase())),y=new Set(h),b=o?.dirtyPathsFingerprint??(l?er(l):void 0),S=o?.dirtySourcePaths?o.dirtySourcePaths.filter(v=>y.has(v)):l?l.filter(v=>y.has(v)):[],Q=o?.dirtySourceStateMap??(S.length>0?await tn(r,S,m,n.areas,i):void 0),T=o?.dirtySourceFingerprint??(l?en(Q?Array.from(Q.values()).sort((v,P)=>v.filePath.localeCompare(P.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Mi(n,u),workspaceSnapshot:o?.workspaceSnapshot??ji(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:x,sourceFiles:h,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:b,dirtySourceFingerprint:T,dirtySourceStateMap:Q,moduleAliases:Oh(n.areas),buckets:Xa(h)}}function Oc(e,t){return{...e,sourceStates:t,sourceFingerprint:en(t)}}async function gc(e,t){let n=new Map(t.map(o=>[o,null])),r=Xa(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(kh(),vh)),a=await o(e.workspaceRoot,r.typeScriptFiles,e.overview.areas,e.sourceFileSet,e.moduleAliases);for(let c of a)n.set(c.filePath,c)}if(r.pythonFiles.length>0){let o=await dh(e.workspaceRoot,r.pythonFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.goFiles.length>0){let o=await uh(e.workspaceRoot,r.goFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.rustFiles.length>0){let o=await fh(e.workspaceRoot,r.rustFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}let i=e.analysisProfile==="light"?[...r.typeScriptFiles,...r.fallbackFiles]:r.fallbackFiles;if(i.length>0){let o=await Promise.all(i.map(a=>hh(e.workspaceRoot,a,e.areaByFile.get(a)?.id??e.overview.areas[0].id)));for(let[a,c]of o.entries())n.set(i[a],c??null)}return n}function TR(e,t){return PR(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function lo(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=TR(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let b=y.name.toLowerCase(),S=i.get(b)??[];S.push(y),i.set(b,S)}let o=r.map(y=>{let b=new Set;for(let T of y.importPaths){let v=fr(T,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&b.add(v)}let S=y.calls.flatMap(T=>(i.get(T.toLowerCase())??[]).map(v=>({candidate:v,reason:oo(y.moduleId,v.moduleId,b)}))).filter(({candidate:T})=>T.id!==y.id).sort((T,v)=>{if(T.reason!==v.reason){let P=["same-module","imported-module","name-match"];return P.indexOf(T.reason)-P.indexOf(v.reason)}return T.candidate.filePath.localeCompare(v.candidate.filePath)}),Q=new Map;for(let{candidate:T,reason:v}of S)if(Q.has(T.id)||Q.set(T.id,{symbolId:T.id,name:T.name,filePath:T.filePath,moduleId:T.moduleId,reason:v}),Q.size>=ge)break;return{...y,callTargets:Array.from(Q.values())}}),a=xR(o,e.analysisProfile),c=new Map;for(let y of e.overview.areas)c.set(y.id,{dependencies:new Set,dependents:new Set,languageCounts:new Map,sourceFileCount:0,symbolCount:0,entryFiles:[]});for(let y of n){let b=c.get(y.moduleId);if(!b)continue;let S=new Map(b.languageCounts);S.set(y.language,(S.get(y.language)??0)+1);let Q=new Set(b.dependencies),T=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?de([...b.entryFiles,y.filePath],4):b.entryFiles;for(let v of y.importPaths){let P=fr(v,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);P&&P!==y.moduleId&&Q.add(P)}c.set(y.moduleId,{...b,sourceFileCount:b.sourceFileCount+1,symbolCount:b.symbolCount+y.symbols.length,languageCounts:S,dependencies:Q,entryFiles:T})}for(let[y,b]of c.entries())for(let S of b.dependencies){let Q=c.get(S);Q&&c.set(S,{...Q,dependents:new Set([...Q.dependents,y])})}let d=Array.from(c.entries()).map(([y,b])=>{let S=e.overview.areas.find(k=>k.id===y);if(!S)return null;let Q=Array.from(b.dependencies).sort((k,E)=>k.localeCompare(E)),T=Array.from(b.dependents).sort((k,E)=>k.localeCompare(E)),v=Array.from(b.languageCounts.entries()).map(([k,E])=>({language:k,capabilityTier:ae(k),fileCount:E})).sort((k,E)=>E.fileCount-k.fileCount),P=a.filter(k=>k.moduleId===y);return{moduleId:S.id,label:S.label,kind:S.kind,root:S.root,fileCount:e.filesByAreaId.get(S.id)?.length??0,sourceFileCount:b.sourceFileCount,symbolCount:b.symbolCount,languages:v,topSymbols:P.sort((k,E)=>Number(E.exported)-Number(k.exported)||E.confidence-k.confidence).slice(0,6).map(k=>k.name),dependencies:Q,dependents:T,entryFiles:b.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:S.sampleFiles.slice(0,5),processIds:[],confidence:mm(P,v)}}).filter(y=>y!==null).sort((y,b)=>b.symbolCount-y.symbolCount||y.moduleId.localeCompare(b.moduleId)),l=gh(d,a),f=new Map;for(let y of l){let b=f.get(y.moduleId)??[];b.push(y.id),f.set(y.moduleId,b)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:B,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:vR(n),modules:u,symbols:a,processes:l},g={schemaVersion:B,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:e.overviewFingerprint,workspaceSnapshot:e.workspaceSnapshot,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languageBreakdown:m.languages,sourceStates:e.sourceStates},w={schemaVersion:B,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,Pm(t.get(y)??null)]))},x=gm(e),h={schemaVersion:B,workspaceRoot:e.workspaceRoot,branch:e.workspaceSnapshot.branch,head:e.workspaceSnapshot.head,queryGeneratedAt:m.generatedAt,overviewFingerprint:e.overviewFingerprint,sourceFingerprint:e.sourceFingerprint,sourceFileCount:e.sourceFiles.length,dirtyPathsFingerprint:e.dirtyPathsFingerprint??er(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??en([]),dirtySourcePaths:x};return await it(Ge.join(e.storageRoot,om),u),await it(Ge.join(e.storageRoot,sm),a),await it(Ge.join(e.storageRoot,am),l),await it(Ge.join(e.storageRoot,nt),m),await it(Ge.join(e.storageRoot,Ci),h),Om(e)&&(await it(Ge.join(e.storageRoot,Ii),g),await it(Ge.join(e.storageRoot,$i),w)),m}var xh=p(()=>{"use strict";Qi();fc();pc();nr();ot();nr();s(PR,"orderedSourceFilesForBuild");s(vR,"collectLanguageBreakdown");s(kR,"calibrateSymbolConfidenceForProfile");s(xR,"calibrateSymbolsForProfile");s(co,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(Oc,"finalizeRepoIntelligenceBuildInputs");s(gc,"analyzeSourceFilesForBuild");s(TR,"collectOrderedAnalyses");s(lo,"materializeRepoIntelligenceIndex")});import mt from"path";async function wc(e){let t=await Aa(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=Oc(e,t),r=await gc(n,n.sourceFiles);return lo(n,r)}async function Sc(e){return oe(mt.join(e,Ii),lm)}async function Th(e){return oe(mt.join(e,$i),um)}async function uo(e){return oe(mt.join(e,Ci),fm)}function Rh(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _h(e,t,n){return t.schemaVersion===B&&n.schemaVersion===B&&t.workspaceRoot===e.workspaceRoot&&n.workspaceRoot===e.workspaceRoot&&t.workspaceSnapshot.source===e.workspaceSnapshot.source&&t.sourceStates.length===t.sourceFileCount&&n.sourceFingerprint===t.sourceFingerprint}async function RR(e,t){let n=await oe(mt.join(e.storageRoot,nt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Qh(e,t){return Wi(e.workspaceSnapshot)&&$a(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Eh(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===B&&t.workspaceRoot===e.workspaceRoot&&t.head===e.workspaceSnapshot.head&&t.branch===e.workspaceSnapshot.branch&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length&&t.dirtyPathsFingerprint===e.dirtyPathsFingerprint&&t.dirtySourceFingerprint===e.dirtySourceFingerprint)}async function Ih(e){if(!Wi(e.workspaceSnapshot))return null;let t=await Sc(e.storageRoot);if(!t||t.schemaVersion!==B||t.workspaceRoot!==e.workspaceRoot||!$a(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await oe(mt.join(e.storageRoot,nt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function $h(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await uo(e.storageRoot);if(!t||t.schemaVersion!==B||t.workspaceRoot!==e.workspaceRoot||t.head!==e.workspaceSnapshot.head||t.branch!==e.workspaceSnapshot.branch||t.overviewFingerprint!==e.overviewFingerprint||t.dirtyPathsFingerprint!==e.dirtyPathsFingerprint||t.dirtySourceFingerprint!==e.dirtySourceFingerprint)return null;let n=await oe(mt.join(e.storageRoot,nt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function fo(e){return new Map(e.map(t=>[t.filePath,t]))}function bc(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:Oc(e,n)}function Pc(e,t){let n=new Set;for(let r of e){let i=t.get(r.filePath);if(!i){n.add(r.filePath);continue}if(i.analyzerVersion!==r.analyzerVersion)return null;(i.fileFingerprint!==r.fileFingerprint||i.language!==r.language||i.moduleId!==r.moduleId)&&n.add(r.filePath)}return n}async function vc(e,t,n,r){if(!e.sourceStates)return null;let i=fo(e.sourceStates),o=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?$t(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(o&&$t(d.language)){a.add(d.filePath);continue}r.has(d.filePath)&&a.add(d.filePath)}let c=new Map;for(let d of e.sourceStates)if(!a.has(d.filePath)){if(!Rh(n.analyses,d.filePath))return null;c.set(d.filePath,vm(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await gc(e,e.sourceFiles.filter(l=>a.has(l)));for(let l of a)c.set(l,d.get(l)??null)}for(let d of e.sourceStates){if(!c.has(d.filePath))return null;let l=c.get(d.filePath)??null;if(l&&(l.filePath!==d.filePath||l.moduleId!==d.moduleId||l.language!==d.language)||t.get(d.filePath)?.analyzerVersion!==void 0&&t.get(d.filePath)?.analyzerVersion!==d.analyzerVersion)return null}return c}async function Ch(e,t,n){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0||t.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.head!==t.workspaceSnapshot.head||e.workspaceSnapshot.branch!==t.workspaceSnapshot.branch)return null;let r=new Set(e.dirtyPaths??[]),i=await uo(e.storageRoot),o=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=fo(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let w=a.get(g);if(!w){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||o.has(g)){d.add(g);continue}c.set(g,w)}if(d.size>0){let g=new Set;for(let w of d){let x=l.get(w);if(x){c.set(w,x);continue}g.add(w)}if(g.size>0){let w=await tn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[x,h]of w.entries())c.set(x,h)}}let f=bc(e,c);if(!f?.sourceStates)return null;let u=Pc(f.sourceStates,a);if(!u)return null;let m=await vc(f,a,n,u);return m?lo(f,m):null}async function Ah(e,t,n){let r=await tn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=bc(e,r);if(!i?.sourceStates)return null;let o=fo(t.sourceStates),a=Pc(i.sourceStates,o);if(!a)return null;if(a.size===0)return RR(i,t);let c=await vc(i,o,n,a);return c?lo(i,c):null}async function Xh(e,t){if(!t)return null;let n=await Th(e.storageRoot);if(!n||!_h(e,t,n))return null;let r=await Ch(e,t,n);return r||Ah(e,t,n)}async function yc(e,t=!1){let n=t?null:await Sc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await uo(e.storageRoot):null;if(n&&Qh(e,n)){let i=await oe(mt.join(e.storageRoot,nt),Jt);if(i?.schemaVersion===B&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(Eh(e,r)){let i=await oe(mt.join(e.storageRoot,nt),Jt);if(i?.schemaVersion===B&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await Xh(e,n);if(i)return i}return wc(e)}async function pr(e,t=!1,n="full"){if(t){let c=await co(e,{profile:n});return yc(c,!0)}let r=await bm(e,n),i=await Ih(r);if(i)return i;let o=await $h(r);if(o)return o;let a=await co(e,{preflight:r});return yc(a,!1)}async function _R(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await co(n,{profile:t.profile??"full"});return wc(r)}async function mr(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh});return pr(n,t.refresh===!0,t.profile??"full")}var kc=p(()=>{"use strict";Qi();nr();xh();ot();s(wc,"buildRepoIntelligenceIndexFromInputs");s(Sc,"readRepoIntelligenceManifest");s(Th,"readFileAnalysisIndex");s(uo,"readDirtySourceHint");s(Rh,"hasOwnAnalysisEntry");s(_h,"hasCompatibleIncrementalCache");s(RR,"readCompatibleCachedQueryIndex");s(Qh,"canDirectReuseCleanCachedQueryIndex");s(Eh,"canDirectReuseDirtyCachedQueryIndex");s(Ih,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s($h,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(fo,"mapSourceStatesByFile");s(bc,"buildCompleteInputsFromSourceStates");s(Pc,"classifyChangedOrNewSourceFiles");s(vc,"buildIncrementalAnalysisEntries");s(Ch,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Ah,"tryStatBasedIncrementalRepoIntelligenceBuild");s(Xh,"tryIncrementalRepoIntelligenceBuild");s(yc,"getRepoIntelligenceIndexFromInputs");s(pr,"getRepoIntelligenceIndexFromSnapshot");s(_R,"buildRepoIntelligenceIndex");s(mr,"getRepoIntelligenceIndex")});import QR from"path";function Mh(e,t,n,r){return e>=20||t>=4e3||n>=5||r>=5?"systemic":e>=8||t>=1200||n>=3||r>=3?"complex":e>=3||t>=250||n>=2||r>=2?"moderate":"simple"}function jh(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function dn(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function hr(e,t,n){if(n){let i=U(n),o=e.modules.find(a=>i===a.root||i.startsWith(`${a.root}/`)||a.sampleFiles.includes(i));if(o)return o}let r=t?.trim().toLowerCase();return r?e.modules.slice().sort((i,o)=>o.symbolCount-i.symbolCount).find(i=>i.moduleId.toLowerCase()===r||i.label.toLowerCase()===r||i.root.toLowerCase()===r||QR.posix.basename(i.root).toLowerCase()===r)??e.modules.find(i=>i.moduleId.toLowerCase().includes(r)||i.label.toLowerCase().includes(r)||i.root.toLowerCase().includes(r))??null:e.modules.find(i=>i.moduleId!==".")??e.modules[0]??null}function Wh(e,t,n){let r=t.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.symbols.filter(o=>o.name.toLowerCase()===r||o.qualifiedName.toLowerCase()===r||o.filePath.toLowerCase()===r).sort((o,a)=>{let c=i&&(o.moduleId.toLowerCase().includes(i)||o.filePath.toLowerCase().includes(i))?1:0,d=i&&(a.moduleId.toLowerCase().includes(i)||a.filePath.toLowerCase().includes(i))?1:0;return d!==c?d-c:Number(a.exported)-Number(o.exported)||a.confidence-o.confidence})}function Fh(e,t,n){let r=t?.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.processes.filter(o=>{let a=!r||o.label.toLowerCase().includes(r)||o.entryFile.toLowerCase().includes(r)||(o.entrySymbol?.toLowerCase().includes(r)??!1),c=!i||o.moduleId.toLowerCase().includes(i);return a&&c}).sort((o,a)=>a.confidence-o.confidence||o.label.localeCompare(a.label))}function po(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,ge)}function xc(e,t){let n=hr(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:dn(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function Tc(e,t){let n=Wh(e,t.symbol,t.module);if(n.length===0)throw new Error(`No symbol matched "${t.symbol}".`);let[r,...i]=n;return{symbol:r,alternatives:i.slice(0,4),callers:po(e,r.id),freshness:dn(e),confidence:r.confidence}}function Dh(e,t){let n=Fh(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let o=hr(e,t.module,t.targetPath);if(o?.processIds[0]){let a=e.processes.find(c=>c.id===o.processIds[0]);if(a)return{process:a,alternatives:[],freshness:dn(e),confidence:a.confidence}}}let[r,...i]=n;if(!r)throw new Error(`No process matched "${t.entry??t.module??t.targetPath??"request"}".`);return{process:r,alternatives:i.slice(0,4),freshness:dn(e),confidence:r.confidence}}function Rc(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=Tc(e,{symbol:t.symbol,module:t.module}),f=de([l.symbol.moduleId,...l.symbol.callTargets.map(u=>u.moduleId),...l.callers.map(u=>u.moduleId)]);r={kind:"symbol",label:l.symbol.name,moduleId:l.symbol.moduleId,filePath:l.symbol.filePath},i=e.modules.filter(u=>f.includes(u.moduleId)),o=de([l.symbol.id,...l.symbol.callTargets.map(u=>u.symbolId),...l.callers.map(u=>u.id)]).map(u=>e.symbols.find(m=>m.id===u)).filter(u=>u!==void 0),a=l.callers,c=l.confidence}else if(t.path){let l=U(t.path),f=hr(e,void 0,l),u=e.symbols.filter(m=>m.filePath===l);r={kind:"path",label:l,moduleId:f?.moduleId,filePath:l},i=f?[f,...e.modules.filter(m=>f.dependents.includes(m.moduleId))]:[],o=u,a=u.flatMap(m=>po(e,m.id)).slice(0,ge),c=f?.confidence??.62}else{let l=hr(e,t.module,t.targetPath);if(!l)throw new Error("impact_estimate requires one of symbol, path, or module.");r={kind:"module",label:l.label,moduleId:l.moduleId},i=[l,...e.modules.filter(f=>l.dependents.includes(f.moduleId))],o=e.symbols.filter(f=>f.moduleId===l.moduleId).slice(0,ge),a=o.flatMap(f=>po(e,f.id)).slice(0,ge),c=l.confidence}let d=n?n.files.filter(l=>i.some(f=>l.areaId===f.moduleId)||o.some(f=>l.path===f.filePath)).length:0;return{target:r,summary:d>0?`${r.label} overlaps with ${d} currently changed file(s); validate blast radius before editing.`:`${r.label} primarily affects ${de(i.map(l=>l.label),4).join(", ")||"its local module"} and ${o.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:o.slice(0,ge),callers:a.slice(0,ge),changedScope:n,freshness:dn(e),confidence:c}}async function ER(e,t={}){let n=await mr(e,t);return xc(n,t)}async function IR(e,t){let n=await mr(e,t);return Tc(n,t)}async function $R(e,t){let n=await mr(e,t);return Dh(n,t)}async function CR(e,t){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await pr(n,t.refresh===!0,t.profile??"full"),i;try{i=await Ri(n,{scope:"all"})}catch(o){Oe("impact_estimate could not load changed scope.",o),i=void 0}return Rc(r,t,i)}async function AR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,o]=await Promise.all([pr(n,t.refresh===!0,t.profile??"full"),Ri(n,{scope:"all"}).catch(P=>(Oe("Routing signals could not load changed scope.",P),null))]),a=null,c=null;try{a=xc(i,{targetPath:r})}catch(P){Oe("Routing signals could not resolve module context.",P)}try{c=Rc(i,{targetPath:r},o??void 0)}catch(P){Oe("Routing signals could not resolve impact estimate.",P)}let d=o?.areasTouched.map(P=>P.areaId).slice(0,8)??[],l=o?.totalChangedFiles??0,f=o?.changedLineCount??0,u=o?.addedLineCount??0,m=o?.deletedLineCount??0,g=o?.areasTouched.length??0,w=c?.impactedModules.length??(a?1:0),x=Mh(l,f,g,w),h=jh(l,f,g),y=a?.confidence,b=c?.confidence,S=(y??1)<.72||(b??1)<.72,Q=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",T=x==="complex"||x==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,v=S||(o?.riskHints.length??0)>0||(c?.changedScope?.riskHints.length??0)>0;return{workspaceRoot:i.workspaceRoot,changedFileCount:l,changedLineCount:f,addedLineCount:u,deletedLineCount:m,touchedModuleCount:g,changedModules:d,crossModule:g>1||w>1,reviewScale:h,riskHints:de([...S?["Light repo routing uses heuristic static analysis; validate low-confidence edges before editing."]:[],...o?.riskHints??[],...c?.changedScope?.riskHints??[]],4),activeModuleId:a?.module.moduleId,activeModuleConfidence:y,activeImpactConfidence:b,impactedModuleCount:w,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:Q,suggestedComplexity:x,plannerBias:T,investigationBias:v,lowConfidence:S}}var Nh=p(()=>{"use strict";Qi();kc();ot();s(Mh,"deriveRoutingComplexity");s(jh,"deriveReviewScale");s(dn,"buildFreshnessLabel");s(hr,"findModuleMatch");s(Wh,"findSymbolMatches");s(Fh,"findProcessMatches");s(po,"collectCallers");s(xc,"resolveModuleContextFromIndex");s(Tc,"resolveSymbolContextFromIndex");s(Dh,"resolveProcessContextFromIndex");s(Rc,"resolveImpactEstimateFromIndex");s(ER,"getModuleContext");s(IR,"getSymbolContext");s($R,"getProcessContext");s(CR,"getImpactEstimate");s(AR,"getRepoRoutingSignals")});var Lh=p(()=>{"use strict";kc();Nh()});function _c(e,...t){let n=e.trim().toLowerCase(),r=0;for(let i of t){if(!i)continue;let o=i.toLowerCase();if(o===n){r=Math.max(r,1);continue}if(o.startsWith(n)){r=Math.max(r,.92);continue}if(o.includes(n)){r=Math.max(r,.78);continue}let a=n.split(/\s+/).filter(Boolean);a.length>0&&a.every(c=>o.includes(c))&&(r=Math.max(r,.66))}return r}function XR(e,t){return{item:{title:`${e.name} (${e.kind})`,locator:`${e.filePath}:${e.line}`,snippet:e.signature,score:t,metadata:{kind:"symbol",moduleId:e.moduleId,exported:e.exported,confidence:e.confidence}},artifact:{kind:"symbol",label:e.qualifiedName,value:`${e.filePath}:${e.line}`}}}function MR(e,t){return{item:{title:e.label,locator:e.root,snippet:`Module ${e.moduleId} with ${e.symbolCount} symbols and ${e.sourceFileCount} source files.`,score:t,metadata:{kind:"module",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"module",label:e.label,value:e.root}}}function jR(e,t){return{item:{title:e.label,locator:e.entryFile,snippet:e.summary,score:t,metadata:{kind:"process",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"process",label:e.label,value:e.entryFile}}}function WR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=_c(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...XR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=_c(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...MR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=_c(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...jR(a,c)})}i.sort((a,c)=>c.score!==a.score?c.score-a.score:a.item.title.localeCompare(c.item.title));let o=i.slice(0,r);return{items:o.map(a=>a.item),artifacts:o.map(a=>a.artifact),generatedAt:e.generatedAt,sourceFileCount:e.sourceFileCount,capabilityEngine:e.capability?.engine}}var qh=p(()=>{"use strict";s(_c,"scoreCandidate");s(XR,"buildSymbolItem");s(MR,"buildModuleItem");s(jR,"buildProcessItem");s(WR,"collectSemanticLookupItems")});function mo(e){return e>=.8?"high":e>=.65?"medium":"low"}function ho(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function FR(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${mo(e.confidence)} (${e.confidence.toFixed(2)})`,`Files: ${t.fileCount} total | ${t.sourceFileCount} source | ${t.symbolCount} symbols`,`Languages: ${t.languages.map(n=>`${n.language}/${n.capabilityTier}:${n.fileCount}`).join(" | ")||"none"}`,`Dependencies: ${t.dependencies.join(" | ")||"none"}`,`Dependents: ${t.dependents.join(" | ")||"none"}`,`Entry files: ${t.entryFiles.join(" | ")||"none"}`,`Top symbols: ${t.topSymbols.join(" | ")||"none"}`,`Tests: ${t.keyTests.join(" | ")||"none"}`,`Docs: ${t.keyDocs.join(" | ")||"none"}`,`Processes: ${t.processIds.join(" | ")||"none"}`,`Evidence: ${e.evidence.join(" | ")||"none"}`,...ho(e.capability)].join(`
804
- `)}function DR(e){let{symbol:t}=e;return[`Symbol context for ${t.name}`,`Definition: ${t.filePath}:${t.line}`,`Module: ${t.moduleId} | Kind: ${t.kind} | Exported: ${t.exported?"yes":"no"}`,`Language: ${t.language}/${t.capabilityTier}`,`Freshness: ${e.freshness}`,`Confidence: ${mo(e.confidence)} (${e.confidence.toFixed(2)})`,`Signature: ${t.signature}`,`Possible callees: ${t.callTargets.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Imports: ${t.importPaths.join(" | ")||"none"}`,e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>`${n.name} @ ${n.filePath}:${n.line}`).join(" | ")}`:"Alternatives: none",...ho(e.capability)].join(`
805
- `)}function NR(e){let{process:t}=e;return[`Process context for ${t.label}`,`Module: ${t.moduleId}`,`Entry: ${t.entryFile}${t.entrySymbol?` -> ${t.entrySymbol}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${mo(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${t.summary}`,"Steps:",...t.steps.map(n=>`- ${n.kind} ${n.symbolName} @ ${n.filePath}${n.line?`:${n.line}`:""} | ${n.note}`),e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>n.label).join(" | ")}`:"Alternatives: none",...ho(e.capability)].join(`
806
- `)}function LR(e){return[`Impact estimate for ${e.target.label}`,`Target: ${e.target.kind}${e.target.moduleId?` | module=${e.target.moduleId}`:""}${e.target.filePath?` | file=${e.target.filePath}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${mo(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${e.summary}`,`Impacted modules: ${e.impactedModules.map(t=>`${t.label}(${t.moduleId})`).join(" | ")||"none"}`,`Impacted symbols: ${e.impactedSymbols.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,e.changedScope?`Changed-scope overlap: ${e.changedScope.files.filter(t=>e.impactedModules.some(n=>n.moduleId===t.areaId)||e.impactedSymbols.some(n=>n.filePath===t.path)).length} file(s)`:"Changed-scope overlap: unavailable",...ho(e.capability)].join(`
807
- `)}var zh=p(()=>{"use strict";s(mo,"confidenceLabel");s(ho,"capabilityLines");s(FR,"renderModuleContext");s(DR,"renderSymbolContext");s(NR,"renderProcessContext");s(LR,"renderImpactEstimate")});function qR(e){let t=0,n=new Map,r=new Map,i=new Set,o=[],a=[],c=s(d=>{n.set(d,t),r.set(d,t),t++,o.push(d),i.add(d);for(let l of e.get(d)??[])n.has(l)?i.has(l)&&r.set(d,Math.min(r.get(d)??0,n.get(l)??0)):(c(l),r.set(d,Math.min(r.get(d)??0,r.get(l)??0)));if((r.get(d)??0)===(n.get(d)??0)){let l=[],f="";do f=o.pop()??"",i.delete(f),l.push(f);while(f!==d&&o.length>=0&&f!=="");a.push(l)}},"strongconnect");for(let d of e.keys())n.has(d)||c(d);return a}function zR(e){return e>=4?"high":e===3?"medium":"low"}function UR(e){let t=e.modules??[],n=new Set(t.map(d=>d.moduleId)),r=new Map,i=0;for(let d of t){let l=(d.dependencies??[]).filter(f=>n.has(f)&&f!==d.moduleId);r.set(d.moduleId,l),i+=l.length}let o=qR(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:zR(d.length)}}).sort((d,l)=>l.hopCount-d.hopCount),a=o.filter(d=>d.severity==="high").length,c=o.length===0?"No circular dependencies found.":`${o.length} cycle(s) found, ${a} high-severity.`;return{cycles:o,scanned:{modules:t.length,edges:i},summary:c}}function VR(e){let t=[e.summary,`Scanned ${e.scanned.modules} modules, ${e.scanned.edges} edges.`];for(let n of e.cycles)t.push(`- [${n.severity}] ${n.hopCount}-hop: ${n.chain.join(" -> ")}`);return t.join(`
808
- `)}var Uh=p(()=>{"use strict";s(qR,"tarjanScc");s(zR,"severityFor");s(UR,"findCyclicDependencies");s(VR,"renderCycleAnalysis")});var Vh={};Xc(Vh,{buildCompleteInputsFromSourceStates:()=>bc,buildFreshnessLabel:()=>dn,buildIncrementalAnalysisEntries:()=>vc,buildRepoIntelligenceIndex:()=>_R,buildRepoIntelligenceIndexFromInputs:()=>wc,canDirectReuseCleanCachedQueryIndex:()=>Qh,canDirectReuseDirtyCachedQueryIndex:()=>Eh,classifyChangedOrNewSourceFiles:()=>Pc,collectCallers:()=>po,collectSemanticLookupItems:()=>WR,deriveReviewScale:()=>jh,deriveRoutingComplexity:()=>Mh,findCyclicDependencies:()=>UR,findModuleMatch:()=>hr,findProcessMatches:()=>Fh,findSymbolMatches:()=>Wh,getImpactEstimate:()=>CR,getModuleContext:()=>ER,getProcessContext:()=>$R,getRepoIntelligenceIndex:()=>mr,getRepoIntelligenceIndexFromInputs:()=>yc,getRepoIntelligenceIndexFromSnapshot:()=>pr,getRepoRoutingSignals:()=>AR,getSymbolContext:()=>IR,hasCompatibleIncrementalCache:()=>_h,hasOwnAnalysisEntry:()=>Rh,mapSourceStatesByFile:()=>fo,readDirtySourceHint:()=>uo,readFileAnalysisIndex:()=>Th,readRepoIntelligenceManifest:()=>Sc,renderCycleAnalysis:()=>VR,renderImpactEstimate:()=>LR,renderModuleContext:()=>FR,renderProcessContext:()=>NR,renderSymbolContext:()=>DR,resolveImpactEstimateFromIndex:()=>Rc,resolveModuleContextFromIndex:()=>xc,resolveProcessContextFromIndex:()=>Dh,resolveSymbolContextFromIndex:()=>Tc,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>Ih,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>$h,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Ch,tryIncrementalRepoIntelligenceBuild:()=>Xh,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Ah});var Kh=p(()=>{"use strict";Lh();qh();zh();Uh()});import{parentPort as Ic}from"node:worker_threads";if(!Ic)throw new Error("semantic-worker must run inside a worker thread.");function Qc(e){return typeof e=="object"&&e!==null}s(Qc,"isRecord");function KR(e){return Qc(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Qc(e.context)&&Qc(e.options)}s(KR,"isRequest");function YR(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(YR,"serializeError");async function GR(e){let t=await BR();switch(e.kind){case"buildIndex":return t.buildRepoIntelligenceIndex(e.context,e.options);case"getIndex":return t.getRepoIntelligenceIndex(e.context,e.options);case"module":return t.getModuleContext(e.context,e.options);case"symbol":return t.getSymbolContext(e.context,e.options);case"process":return t.getProcessContext(e.context,e.options);case"impact":return t.getImpactEstimate(e.context,e.options);case"routing":return t.getRepoRoutingSignals(e.context,e.options);case"semanticLookup":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.collectSemanticLookupItems(n,e.options.query,e.options.lookupKind,e.options.limit)}case"cyclicDeps":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.findCyclicDependencies(n)}}}s(GR,"runRequest");function Yh(e){Ic?.postMessage(e)}s(Yh,"post");var Gh=Promise.resolve(),Ec;function BR(){return Ec||(Ec=import.meta.url.endsWith(".ts")?ZR():Promise.resolve().then(()=>(Kh(),Vh))),Ec}s(BR,"loadSemanticIndex");async function ZR(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(ZR,"loadDevSemanticIndex");Ic.on("message",e=>{Gh=Gh.then(async()=>{if(KR(e))try{Yh({id:e.id,ok:!0,result:await GR(e)})}catch(n){Yh({id:e.id,ok:!1,error:YR(n)})}}).catch(()=>{})});
796
+ `});var Kf=p(()=>{"use strict";Bn();ca();da();aa();ia();mi();sa();Uf();Vf()});async function ev(e,t,n){let r=Gf("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function tv(e,t,n){let r=Gf("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function nv(e){let t=[],n=new Map,r=[],i=null;for(let o of e){if(o.type==="label"){let c=o.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:o,children:[]};if(o.type==="message"){t.push(a),n.set(o.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:o,label:a}of r){let c=n.get(o);c&&a!==void 0&&(c.label=a)}return t}var Yf,HP,JP,Gf,rv,Bf=p(()=>{"use strict";Yf=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),HP=0,JP=0,Gf=s(e=>{let t=e==="label"?++HP:++JP,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(ev,"appendLabel");s(tv,"appendArtifact");s(nv,"buildLineageTree");rv=Object.freeze({name:"lineage",entryTypes:Yf,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return ev(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return tv(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>nv(e),"buildLineageTree")})})});var Zf=p(()=>{"use strict"});var hi=p(()=>{"use strict"});var Oi=p(()=>{"use strict";hi()});var la=p(()=>{"use strict"});var ua=p(()=>{"use strict";la()});var Hf=p(()=>{"use strict"});var gi=p(()=>{"use strict"});var yi=p(()=>{"use strict"});var fv,pa,wi,Gt=p(()=>{"use strict";jt();Oi();ua();Hf();hi();fn();gi();yi();fv=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),pa=fv,wi=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
797
+
798
+ `});var ma=p(()=>{"use strict";jt()});var Bt=p(()=>{"use strict";Gt();ma()});var ip=p(()=>{"use strict";Bt()});var op=p(()=>{"use strict"});var Iq,$q,sp=p(()=>{"use strict";Gt();Bt();Iq=wi.trimEnd(),$q=16*1024});var ap=p(()=>{"use strict";Oi();Bt()});var cp=p(()=>{"use strict";Bt()});var gv,dp=p(()=>{"use strict";Gt();hi();gv={enabled:!1,maxAge:20,protectedTools:Array.from(pa)}});var lp=p(()=>{"use strict"});var up=p(()=>{"use strict";H()});var fp=p(()=>{"use strict";Gt()});var pp=p(()=>{"use strict";jt();fn();gi();yi()});var mp=p(()=>{"use strict"});var hp=p(()=>{"use strict";fp();pp();mp()});var Op=p(()=>{"use strict";Bf();Zf();ip();op();Bt();sp();ap();cp();gi();yi();Oi();la();ua();Gt();dp();ma();lp();up();hp()});var gp=p(()=>{"use strict"});var Oa=p(()=>{"use strict"});var ga=p(()=>{"use strict"});var Si=p(()=>{"use strict"});import{createRequire as vv}from"node:module";var kv,yp,DU,ya=p(()=>{"use strict";kv=vv(import.meta.url),DU=new Proxy({},{get(e,t){return yp??=kv("typescript"),Reflect.get(yp,t)}})});var wa=p(()=>{"use strict";Si();ya()});var Sp=p(()=>{"use strict";Si();wa()});var Sa=p(()=>{"use strict";vn();Oa()});var bp=p(()=>{"use strict";ga();Sa()});var Pp=p(()=>{"use strict";gp();Oa();ga();Si();wa();ya();Sp();Sa();bp()});var vp=p(()=>{"use strict"});var ba=p(()=>{"use strict"});var kp=p(()=>{"use strict";ba();ba()});var xp=p(()=>{"use strict"});var Tp=p(()=>{"use strict";vp();kp();xp()});var bi=p(()=>{"use strict"});var Pa=p(()=>{"use strict";bi()});var nV,Rp=p(()=>{"use strict";bi();Pa();nV=new Intl.Segmenter("en",{granularity:"grapheme"})});var _p=p(()=>{"use strict";Rp();bi();Pa()});var Pi=p(()=>{"use strict";zc();jt();fn();ge();Kd();Yd();Gd();ts();Ho();es();Jo();xn();Bo();Zo();Xr();al();H();ul();ns();Qn();as();Cl();Al();ls();ql();Gl();hs();Os();Bl();Zl();gs();ys();ys();Vr();Lf();ii();ii();kt();Kf();ta();Go();Op();Pp();Tp();_p()});import Qp from"node:fs";import va from"node:os";import Ne from"node:path";function $p(e){return(e==="~"?va.homedir():/^~[\\/]/.test(e)?Ne.join(va.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,va.homedir())}function ka(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=$p(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=Ne.resolve(t,n);for(;;){try{Qp.lstatSync(i)}catch(o){if(o.code!=="ENOENT")return;let a=Ne.dirname(i);if(a===i)return;r.unshift(Ne.basename(i)),i=a;continue}try{return Ne.join(Qp.realpathSync.native(i),...r)}catch{return}}}function Ep(e,t){let n=Ne.relative(t,e);if(!(!n||n.startsWith("..")||Ne.isAbsolute(n)))return n.split(/[\\/]+/).map(r=>{let i=r.toLowerCase();if(process.platform!=="win32")return i;let o=i.indexOf(":");return(o>=0?i.slice(0,o):i).replace(/[ .]+$/g,"")}).join("/")}function Cp(e,t=process.cwd()){let n;try{n=Pt()}catch{return!1}let r=Ne.resolve(n),i=Ne.resolve(t,$p(e));if(Tn(i,r)){let d=Ep(i,r);if(Ip(d))return!0}let o=ka(n)??r,a=ka(e,t);if(a===void 0)return Tn(i,r);if(!Tn(a,o))return!1;let c=Ep(a,o);return Ip(c)}function Ip(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Ap=p(()=>{"use strict";Pi();s($p,"expandHome");s(ka,"canonicalizeAgentHomePolicyPath");s(Ep,"normalizedRelative");s(Cp,"isAgentHomeHardMutationTarget");s(Ip,"isHardAgentHomeRelativePath")});import{randomUUID as Fp}from"node:crypto";import{mkdir as Nv,readFile as Dp,rename as Lv,rm as _a,writeFile as Np}from"node:fs/promises";import Ti from"node:path";function Lp(){return Mp||(Xp=je(process.pid),Mp=!0),Xp}function Wp(e,t){return Ti.join(e,"runtime",...jp===void 0?[]:[`test-filesystem-effects-${jp}`],t)}function Yv(){let e=process.platform==="win32"?Ti.join(Ti.resolve(process.env.PROGRAMDATA??"C:\\ProgramData"),"KodaX","sandbox-runtime"):Pt();return{coordinatorPath:Wp(e,Kv),statePath:Wp(e,Vv)}}function xa(e){if(typeof e!="object"||e===null)return!1;let t=e;return Number.isInteger(t.pid)&&typeof t.token=="string"&&(t.effectPid===void 0||Number.isInteger(t.effectPid))&&(t.effectProcessStartIdentity===void 0||typeof t.effectProcessStartIdentity=="string")&&(t.effectFinished===void 0||typeof t.effectFinished=="boolean")&&(t.processStartIdentity===void 0||typeof t.processStartIdentity=="string")&&(t.sandboxPolicyKey===void 0||typeof t.sandboxPolicyKey=="string")&&(t.posixProcessGroup===void 0||typeof t.posixProcessGroup=="boolean")&&(t.windowsJobContained===void 0||typeof t.windowsJobContained=="boolean")}async function Zn(e){let t;try{t=await Dp(e.statePath,"utf8")}catch(o){if(o.code==="ENOENT")return{direct:[],namespaces:[],shells:[]};throw o}let n=JSON.parse(t);if(typeof n!="object"||n===null)throw new Error("Invalid filesystem effect lease state.");let r=n;if(!Array.isArray(r.direct)||!r.direct.every(xa))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(xa))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(xa))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function Gv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function qp(e){if(!Gv(e.pid))return!1;let t=e.pid===process.pid?Lp():je(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function Bv(e,t){if(e.effectFinished===!0)return"absent";if(e.effectPid===void 0)return t?"unknown":"absent";if(e.posixProcessGroup===!0)try{return process.kill(-e.effectPid,0),"alive"}catch(r){return r.code==="ESRCH"?"absent":"unknown"}let n=je(e.effectPid);return n!==void 0&&(e.effectProcessStartIdentity===void 0||n===e.effectProcessStartIdentity)?"alive":process.platform!=="win32"||e.windowsJobContained===!0||!t?"absent":"unknown"}function Zv(e,t,n){let r=new Map;for(let a of[...e.direct,...e.namespaces,...e.shells])r.set(a,qp(a));let i=s(a=>n.has(a.token)&&(a.effectPid===void 0||a.effectFinished===!0),"hasReleaseProof"),o=s(a=>!i(a)&&(r.get(a)===!0||Bv(a,t)!=="absent"),"keepExternalEffect");return{direct:e.direct.filter(a=>!i(a)&&r.get(a)===!0),namespaces:e.namespaces.filter(o),shells:e.shells.filter(o)}}function Qa(e,t){return`${e.statePath}.${Buffer.from(t,"utf8").toString("base64url")}.released`}async function Hv(e,t){let n=new Set,r=[...t.direct,...t.namespaces,...t.shells];return await Promise.all(r.map(async i=>{try{(await Dp(Qa(e,i.token),"utf8")).trim()===i.token&&n.add(i.token)}catch(o){if(o.code!=="ENOENT")throw o}})),n}async function Ta(e,t){try{await _a(Qa(e,t),{force:!0})}catch(n){L({source:"coding.filesystem-effect-coordinator",level:"warn",message:"Failed to remove a settled filesystem-effect release marker.",detail:n})}}async function Jv(e){return await Hn(e,async()=>{let r=await Zn(e);return[...r.namespaces,...r.shells].some(i=>!qp(i))})?(await ss()).skipped>0:!0}async function xi(e,t){let{statePath:n}=e;if(t.direct.length===0&&t.namespaces.length===0&&t.shells.length===0){await _a(n,{force:!0});return}await Nv(Ti.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${Fp()}.tmp`;await Np(r,`${JSON.stringify(t)}
799
+ `,"utf8");try{await Lv(r,n)}catch(i){try{await _a(r,{force:!0})}catch(o){throw new AggregateError([i,o],"Filesystem effect state update and cleanup both failed.")}throw i}}async function Hn(e,t){let n=await Rs(e.coordinatorPath,qv);try{return await t()}finally{await n()}}function ek(e,t){return e.sandboxPolicyKey===void 0||t===void 0?!0:e.sandboxPolicyKey!==t}function Ra(e,t){return t===void 0||e.sandboxPolicyKey===void 0?!0:e.sandboxPolicyKey!==t}async function tk(e,t){let n=Yv(),r=Fp(),i=Lp(),o={pid:process.pid,token:r,...i===void 0?{}:{processStartIdentity:i},...t===void 0?{}:{sandboxPolicyKey:t}},a=Date.now()+zv,c=Date.now()+Uv,d=await Jv(n);for(;;){let R=await Hn(n,async()=>{let _=await Zn(n),X=await Hv(n,_),$=Zv(_,d,X),D=new Set([...$.direct,...$.namespaces,...$.shells].map(N=>N.token));return(e==="shell"?$.direct.length>0||$.namespaces.some(N=>ek(N,t)):e==="direct"?$.shells.length>0||$.namespaces.length>0:$.direct.length>0||$.namespaces.length>0||$.shells.some(N=>Ra(N,t)))?t!==void 0&&(e==="namespace"?$.namespaces.some(U=>U.sandboxPolicyKey!==t)||$.shells.some(U=>Ra(U,t)):e==="shell"&&$.namespaces.some(U=>U.sandboxPolicyKey!==void 0&&U.sandboxPolicyKey!==t))?"sandbox-policy-conflict":$.direct.length===0&&(e==="namespace"?t!==void 0&&$.shells.every(U=>!Ra(U,t))&&$.namespaces.length>0&&$.namespaces.every(U=>U.sandboxPolicyKey===t):e==="shell"&&t===void 0&&$.namespaces.length>0&&$.namespaces.every(U=>U.sandboxPolicyKey!==void 0))?"sandbox-acl-transition":!1:(await xi(n,e==="shell"?{direct:$.direct,namespaces:$.namespaces,shells:[...$.shells,o]}:e==="direct"?{direct:[...$.direct,o],namespaces:$.namespaces,shells:$.shells}:{direct:$.direct,namespaces:[...$.namespaces,o],shells:$.shells}),await Promise.all([...X].filter(N=>!D.has(N)).map(N=>Ta(n,N))),!0)});if(R===!0)break;if(R==="sandbox-policy-conflict")throw new Error("A different sandbox policy is already active.");let C=R==="sandbox-acl-transition"?c:a;if(Date.now()>=C)throw new Error("A model filesystem effect is already active; retry after it finishes.");await new Promise(_=>setTimeout(_,20))}let l=!1,f=!1,u,m=!1,g=!1,w=!1,k=!1,h=s(()=>Hn(n,async()=>{let R=await Zn(n),C=(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).find(_=>_.token===r);if(C===void 0){if(f||g){await Ta(n,r);return}throw new Error("Filesystem effect lease ownership was lost.")}if(C.effectPid!==void 0&&C.effectFinished!==!0)throw new Error("Filesystem effect process tree has not been proven drained.");g=!0,await xi(n,e==="shell"?{direct:R.direct,namespaces:R.namespaces,shells:R.shells.filter(_=>_.token!==r)}:e==="direct"?{direct:R.direct.filter(_=>_.token!==r),namespaces:R.namespaces,shells:R.shells}:{direct:R.direct,namespaces:R.namespaces.filter(_=>_.token!==r),shells:R.shells}),await Ta(n,r)}),"releaseOnce"),y=s(()=>{if(l||m)return;m=!0;let R=s(()=>{setTimeout(()=>{h().then(()=>{l=!0,m=!1}).catch(()=>{R()})},250).unref?.()},"retry");R()},"scheduleBackgroundRelease"),P=s(async()=>{let R;if(!f&&(!w||k))try{await Np(Qa(n,r),`${r}
800
+ `,"utf8"),f=!0}catch(_){R=_}let C;for(let _=1;_<=ki;_+=1)try{await h(),R!==void 0&&L({source:"coding.filesystem-effect-coordinator",level:"warn",message:"Filesystem-effect release converged without a durable release marker.",detail:R});return}catch(X){C=X,_<ki&&await new Promise($=>setTimeout($,20))}throw y(),R===void 0?C:new AggregateError([R,C],"Filesystem-effect release marker and coordinator cleanup both failed.")},"releaseReliably"),S=s(async()=>{l||(u??=P().then(()=>{l=!0}).finally(()=>{u=void 0}),await u)},"release"),Q=s(async(R,C)=>{if(!Number.isInteger(R)||R<=0)throw new Error(`Invalid filesystem effect process id: ${R}`);await Hn(n,async()=>{let _=await Zn(n);if(!(e==="shell"?_.shells:e==="direct"?_.direct:_.namespaces).some(N=>N.token===r))throw new Error("Filesystem effect lease ownership was lost before process binding.");let $=je(R),D={...o,effectPid:R,effectFinished:!1,...$===void 0?{}:{effectProcessStartIdentity:$},posixProcessGroup:process.platform!=="win32",windowsJobContained:C},le=s(N=>N.token===r?D:N,"replaceOwner");await xi(n,{direct:e==="direct"?_.direct.map(le):_.direct,namespaces:e==="namespace"?_.namespaces.map(le):_.namespaces,shells:e==="shell"?_.shells.map(le):_.shells})}),w=!0,k=!1},"bindEffectProcess"),x,v=!1,b=s(()=>Hn(n,async()=>{let R=await Zn(n),C=s(X=>X.token===r?{...X,effectFinished:!0}:X,"replaceOwner");if(!(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).some(X=>X.token===r))throw new Error("Filesystem effect lease ownership was lost before tree completion.");await xi(n,{direct:e==="direct"?R.direct.map(C):R.direct,namespaces:e==="namespace"?R.namespaces.map(C):R.namespaces,shells:e==="shell"?R.shells.map(C):R.shells})}),"finishEffectProcessOnce"),I=s(()=>{if(k||v)return;v=!0;let R=s(()=>{setTimeout(()=>{b().then(()=>{k=!0,v=!1}).catch(()=>{R()})},250).unref?.()},"retry");R()},"scheduleBackgroundFinish");return Object.assign(S,{bindEffectProcess:Q,finishEffectProcess:s(async()=>{k||(x??=(async()=>{let R;for(let C=1;C<=ki;C+=1)try{await b(),k=!0;return}catch(_){R=_,C<ki&&await new Promise(X=>setTimeout(X,20))}throw I(),R})().finally(()=>{x=void 0}),await x)},"finishEffectProcess")})}function nk(){return tk("direct")}async function rk(e){let t=await nk();try{return await e()}finally{await t()}}function ik(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function ok(e){if(typeof e!="string"||e.length===0)return"";let t=e.replace(/\\/g,"/");return t.startsWith("//")?t="//"+t.slice(2).replace(/\/+/g,"/"):t=t.replace(/\/+/g,"/"),ik()?t=t.toLowerCase():t.length>=2&&/^[A-Za-z]:/.test(t)&&(t=t[0].toLowerCase()+t.slice(1)),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/g,"")),t}async function Ea(e,t){let n=ok(e),i=(vi.get(n)??Promise.resolve()).catch(()=>{}).then(async()=>rk(async()=>{if(Cp(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return await t()})),o=i.catch(()=>{}).finally(()=>{vi.get(n)===o&&vi.delete(n)});return vi.set(n,o),i}var vi,qv,zv,Uv,ki,Vv,Kv,Xp,Mp,jp,zp=p(()=>{"use strict";Pi();Ap();vi=new Map,qv=3e4,zv=1e3,Uv=3e4,ki=3,Vv="model-filesystem-effects.json",Kv="model-filesystem-effects.lock",Mp=!1;s(Lp,"getEffectOwnerStartIdentity");jp=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Wp,"effectRuntimePath");s(Yv,"captureEffectLeaseStorage");s(xa,"isEffectLeaseOwner");s(Zn,"readEffectLeaseState");s(Gv,"isProcessAlive");s(qp,"isEffectLeaseOwnerAlive");s(Bv,"modelEffectTreeState");s(Zv,"removeStaleEffectLeases");s(Qa,"effectReleaseMarkerPath");s(Hv,"releasedEffectTokens");s(Ta,"removeEffectReleaseMarkerBestEffort");s(Jv,"reconcileAbandonedManagedEffects");s(xi,"writeEffectLeaseState");s(Hn,"withEffectLeaseCoordinator");s(ek,"namespaceConflictsWithShell");s(Ra,"shellConflictsWithNamespace");s(tk,"acquireEffectLease");s(nk,"acquireDirectFileMutationLease");s(rk,"withHostFileSystemMutation");s(ik,"isWindowsPathPlatform");s(ok,"normalizePathForKey");s(Ea,"withFileMutation")});import{AsyncLocalStorage as sk}from"node:async_hooks";import Le from"fs/promises";import $a from"path";async function ae(e,t){try{let n=await Le.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function we(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&L({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function Jn(e){return ak.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function lk(e){return Ia=(Ia+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${Ia}.tmp`}async function fk(e,t){for(let r=1;;r+=1)try{await Le.rename(e,t);return}catch(i){let o=i?.code;if(r>=5||!o||!uk.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function qe(e,t){await Ea(e,async()=>{let n=$a.dirname(e);await Le.mkdir(n,{recursive:!0});let r=lk(e);try{await Le.writeFile(r,`${JSON.stringify(t,null,2)}
801
+ `,"utf8"),await fk(r,e)}catch(i){throw await Le.rm(r,{force:!0}).catch(()=>{}),i}await pk(n,$a.basename(e)).catch(()=>{})})}async function Ri(e){await Ea(e,async()=>{await Le.mkdir(e,{recursive:!0})})}async function pk(e,t){let n=`${t}.`,r=Date.now(),i=await Le.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&dk.test(o.slice(n.length))).map(async o=>{let a=$a.join(e,o);try{let c=await Le.stat(a);r-c.mtimeMs>=ck&&await Le.rm(a,{force:!0})}catch{}}))}var ak,ck,dk,Ia,uk,_i=p(()=>{"use strict";Pi();zp();ak=new sk;s(ae,"safeReadJson");s(we,"debugLogRepoIntelligence");s(Jn,"resolveRepoIntelligenceStorageDir");ck=3600*1e3,dk=/^\d+\.\d+(?:\.\d+)?\.tmp$/,Ia=0;s(lk,"nextAtomicTempPath");uk=new Set(["EPERM","EBUSY","EACCES"]);s(fk,"renameWithRetry");s(qe,"writeJsonFileAtomic");s(Ri,"ensureRepoIntelligenceStorageDir");s(pk,"sweepStaleTempFiles")});import _t from"fs/promises";import M from"path";import{createHash as Aa}from"node:crypto";import{execFile as mk}from"child_process";import{promisify as hk}from"util";function Qt(e){return typeof e=="object"&&e!==null}function _k(e){return Qt(e)&&typeof e.id=="string"&&typeof e.label=="string"&&typeof e.kind=="string"&&typeof e.root=="string"&&typeof e.fileCount=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.sampleFiles)}function Qk(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&Qt(e.fileStats)&&typeof e.fileStats.totalFiles=="number"&&typeof e.fileStats.sourceFiles=="number"&&typeof e.fileStats.docFiles=="number"&&typeof e.fileStats.testFiles=="number"&&typeof e.fileStats.configFiles=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.keyDocs)&&Array.isArray(e.entryHints)&&Array.isArray(e.areas)&&e.areas.every(t=>_k(t))}function Ek(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.overviewGeneratedAt=="string"&&(e.source==="git"||e.source==="filesystem")&&Array.isArray(e.allFiles)&&e.allFiles.every(t=>typeof t=="string")&&Array.isArray(e.sourceFiles)&&e.sourceFiles.every(t=>typeof t=="string")}function Ik(e){return Qt(e)&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function $k(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||Ik(e.git))&&(e.snapshotKind==="clean"||e.snapshotKind==="dirty")&&(e.head===void 0||typeof e.head=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.dirtyPathsFingerprint===void 0||typeof e.dirtyPathsFingerprint=="string")&&(e.dirtySemanticFingerprint===void 0||typeof e.dirtySemanticFingerprint=="string")}async function ce(e,t){return(await Ok("git",e,{cwd:t,timeout:wk,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function er(e){try{return await _t.access(e),!0}catch{return!1}}async function ja(e){let t=Ii(e);return await Ri(t),t}function q(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function im(e){let t=Aa("sha256");for(let n of Array.from(e,r=>q(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Ck(e){return xk.has(M.posix.basename(q(e)))}function Ak(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(q(e[n]??"")!==q(t[n]??""))return!1;return!0}function Et(e){let t=q(e);return t===".agent"||t===".kodax"||Sk.some(n=>t.startsWith(n))}async function Xk(e){try{let t=(await ce(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:M.resolve(t),source:"git"}}catch{}return{workspaceRoot:M.resolve(e),source:"filesystem"}}async function Mk(e){try{return(await _t.stat(e)).isDirectory()?e:M.dirname(e)}catch{return e}}async function jk(e){let t=(await ce(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await ce(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(q).filter(i=>!Et(i))));return{files:r.slice(0,it),truncated:r.length>it}}async function Up(e){let t=[],n=!1;async function r(i){if(t.length>=it){n=!0;return}let o=await _t.readdir(i,{withFileTypes:!0});for(let a of o){if(t.length>=it){n=!0;return}if(a.isDirectory()){if(Rk.has(a.name))continue;await r(M.join(i,a.name));continue}if(!a.isFile())continue;let c=q(M.relative(e,M.join(i,a.name)));Et(c)||t.push(c)}}return s(r,"walk"),await r(e),{files:t,truncated:n}}function Wk(e){let t=q(e).toLowerCase();return t.split("/").some(r=>Pk.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Zt(e){let t=q(e),n=M.extname(t).toLowerCase(),r=M.posix.basename(t);return Ma.has(r)?"config":t.startsWith("docs/")||rm.has(t)||nm.has(n)?"docs":Wk(t)?"tests":bk.has(n)?"source":"other"}async function om(e,t){if(t===".")return"Workspace Root";let n=M.join(e,t,"package.json"),r=M.join(e,t,"pyproject.toml"),i=M.join(e,t,"Cargo.toml");if(await er(n))try{let o=JSON.parse(await _t.readFile(n,"utf8"));if(o.name?.trim())return o.name.trim()}catch{}for(let o of[r,i])if(await er(o))try{let c=(await _t.readFile(o,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return M.posix.basename(t)}async function Fk(e,t){let n=new Map;for(let i of t){let a=q(i).split("/");if(a.length===1){n.set(".","root");continue}if(kk.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=vk.get(a[0]??"");c&&n.set(a[0],c)}n.size===0&&n.set(".","root");let r=[];for(let[i,o]of Array.from(n.entries()).sort((a,c)=>a[0].localeCompare(c[0]))){let a=i==="."?"":`${i}/`,c=t.filter(l=>i==="."?!l.includes("/"):l===i||l.startsWith(a)).sort((l,f)=>l.localeCompare(f)),d=c.filter(l=>!(i==="."?l:l.slice(a.length)).includes("/")&&Ma.has(M.posix.basename(l)));r.push({id:i,label:await om(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,Xa),sampleFiles:c.slice(0,Xa)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Vp(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([ce(["branch","--show-current"],e),ce(["rev-parse","HEAD"],e),ce(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function tr(e,t){if(t==="git")try{return await jk(e)}catch{return Up(e)}return Up(e)}async function Qi(e,t){let n=await am(e,Jp);return!n||n.schemaVersion!==ue||t&&n.overviewGeneratedAt!==t?null:n}async function Kp(e){let n=(await ce(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),r=new Set;for(let i=0;i<n.length;i+=1){let o=n[i];if(!o||o.length<4)continue;let a=o.slice(0,2),c=q(o.slice(3));if(c&&!Et(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=q(n[i+1]??"");d&&!Et(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function sm(e,t){return ae(Ii(e,t),Qk)}async function am(e,t){return ae(Ii(e,t),Ek)}async function Dk(e){return ae(Ii(e,Zp),$k)}async function Nk(e,t){let n=Aa("sha256");n.update(im(t));for(let r of t){let i=M.join(e,r);n.update(r),n.update(":");try{if(await _t.stat(i),n.update("present:"),Ck(r)){let o=await _t.readFile(i,"utf8");n.update(Aa("sha256").update(o).digest("hex"))}}catch(o){let a=Qt(o)&&typeof o.code=="string"?o.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Yp(e,t){let n=t.map(r=>q(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:im(n),dirtySemanticFingerprint:await Nk(e,n)}}async function Lk(e,t,n){let r=new Set(t.map(i=>q(i)));for(let i of n){let o=M.join(e,i);await er(o)?r.add(i):r.delete(i)}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function cm(e,t,n,r,i){let o=n.map(c=>q(c)),a={schemaVersion:ue,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:o.length,sourceFiles:o.filter(c=>Zt(c)==="source").length,docFiles:o.filter(c=>Zt(c)==="docs").length,testFiles:o.filter(c=>Zt(c)==="tests").length,configFiles:o.filter(c=>Zt(c)==="config").length},manifests:o.filter(c=>Ma.has(M.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>rm.has(c)||/^README/i.test(M.posix.basename(c))&&nm.has(M.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>Tk.includes(M.posix.basename(c))).slice(0,8),areas:await Fk(e,o)};return{overview:a,inventory:{schemaVersion:ue,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...o].sort((c,d)=>c.localeCompare(d)),sourceFiles:o.filter(c=>Zt(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function dm(e,t,n,r={}){let i={schemaVersion:ue,generatedAt:t.generatedAt,workspaceRoot:t.workspaceRoot,git:t.git??null,snapshotKind:t.source==="git"&&t.git?.hasUncommittedChanges===!0?"dirty":"clean",head:t.git?.head,branch:t.git?.branch,dirtyPathsFingerprint:r.dirtyIdentity?.dirtyPathsFingerprint,dirtySemanticFingerprint:r.dirtyIdentity?.dirtySemanticFingerprint};await qe(M.join(e,Zp),i),await qe(M.join(e,Hp),t),await qe(M.join(e,Jp),n),r.writeBaseline===!0&&(await qe(M.join(e,em),t),await qe(M.join(e,tm),n))}function qk(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===ue&&t.schemaVersion===ue&&e.source==="git"&&t.source==="git"&&e.git?.hasUncommittedChanges!==!0&&e.git?.head&&e.git?.head===n.head&&e.git?.branch===n.branch&&t.workspaceRoot===e.workspaceRoot&&t.overviewGeneratedAt===e.generatedAt)}function zk(e,t,n,r){return!!(e&&t&&e.schemaVersion===ue&&t.schemaVersion===ue&&e.source==="git"&&e.generatedAt===t.generatedAt&&e.workspaceRoot===t.workspaceRoot&&t.snapshotKind==="dirty"&&n?.hasUncommittedChanges===!0&&t.head===n.head&&t.branch===n.branch&&t.dirtyPathsFingerprint===r.dirtyPathsFingerprint&&t.dirtySemanticFingerprint===r.dirtySemanticFingerprint)}async function Uk(e,t,n){let r=await sm(e,em),i=await am(e,tm);if(!qk(r,i,t))return null;let o=i,{dirtyPaths:a}=n,c=new Set(o.allFiles);if(r.truncated)for(let k of a){let h=M.join(e,k);if(!c.has(k)||await er(h)===!1)return null}let d=new Set(c);for(let k of a){let h=M.join(e,k);await er(h)?d.add(k):d.delete(k)}let l=Array.from(d).sort((k,h)=>k.localeCompare(h)),f=r.truncated||l.length>it,u=f?l.slice(0,it):l,{overview:m,inventory:g}=await cm(e,"git",u,f,t),w=await ja(e);return await dm(w,m,g,{dirtyIdentity:n}),m}async function Vk(e,t,n,r,i){if(!t||!n||t.schemaVersion!==ue||t.source!=="filesystem"||n.schemaVersion!==ue||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let o=r.map(a=>q(a)).sort((a,c)=>a.localeCompare(c));if(!Ak(n.allFiles,o))return!1;for(let a of t.areas)if(await om(e,a.root)!==a.label)return!1;return!0}async function Ca(e,t,n,r,i){let{files:o,truncated:a}=i??await tr(e,t),c=t==="git"&&r?.dirtyPaths.length?await Lk(e,o,r.dirtyPaths):o.map(g=>q(g)),d=a||c.length>it,l=d?c.slice(0,it):c,f=await ja(e),{overview:u,inventory:m}=await cm(e,t,l,d,n);return await dm(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function It(e,t={}){let n=Lc(e),r=await Mk(t.targetPath?M.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await Xk(r),a=await sm(i,Hp),c=await Dk(i),d,l;if(!t.refresh){if(d=await Vp(i,o),o!=="git"){let u=a?.schemaVersion===ue?await Qi(i,a.generatedAt):null,m=await tr(i,o);return await Vk(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:Ca(i,o,d,void 0,m)}if(o==="git"&&a?.schemaVersion===ue&&d?.hasUncommittedChanges!==!0&&a.git?.head===d?.head&&a.git?.branch===d?.branch&&a.git?.hasUncommittedChanges===d?.hasUncommittedChanges&&a)return{workspaceRoot:i,source:o,overview:a,inventory:await Qi(i,a.generatedAt)};if(o==="git"&&d?.hasUncommittedChanges===!0){let u=await Kp(i).catch(m=>(we("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Yp(i,u),zk(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await Qi(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await Uk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await Qi(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Ca(i,o,d,l)}if(d=await Vp(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await Kp(i).catch(u=>(we("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Yp(i,f))}return Ca(i,o,d,l)}function Gp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function Kk(e){if(!e.trim())return null;let t=e.slice(0,2),n=e.slice(3).trim(),r=q(n.includes(" -> ")?n.split(" -> ").pop()??n:n),i=t[0]!==" "&&t[0]!=="?",o=t[1]!==" "&&t[1]!=="?";return{status:t,path:r,staged:i,unstaged:o||t==="??"}}function Yk(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Bp(e,t){let n=q(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function Gk(e,t){let n=[];t.length>1&&n.push(`Cross-area change touches ${t.length} areas.`);let r=e.filter(o=>o.category==="config").map(o=>o.path);return r.length>0&&n.push(`Config or manifest changes detected: ${r.slice(0,4).join(" | ")}.`),e.length>0&&e.every(o=>o.category==="docs"||o.category==="tests")&&n.push("Changes are currently limited to docs/tests; implementation files are untouched."),e.some(o=>o.areaId===".")&&n.push("Workspace-root files changed; validate repo-wide implications."),n}async function Bk(e,t,n){if(t==="compare"){let a=n?.trim()||"HEAD~1";if(!a||a.startsWith("-")||/[\u0000-\u001f\s]/.test(a))throw new Error(`Invalid base ref "${a}".`);try{await ce(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(d){throw we(`Rejected compare base ref "${a}".`,d),new Error(`Could not resolve base ref "${a}".`)}return(await ce(["diff","--name-status",`${a}...HEAD`],e)).split(/\r?\n/).map(d=>d.trim()).filter(Boolean).map(d=>{let[l,...f]=d.split(/\s+/),u=f.join(" ").split(" -> ").pop()??f.join(" ");return{path:q(u),status:Gp(l??"M")}}).filter(d=>!Et(d.path))}let i=(await ce(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(Kk).filter(a=>a!==null).filter(a=>Yk(a,t)),o=new Map;for(let a of i)Et(a.path)||o.set(a.path,{path:a.path,status:Gp(a.status)});return Array.from(o.values())}async function Zk(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await ce(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await ce(["diff","--cached","--numstat"],e):t==="unstaged"?r=await ce(["diff","--numstat"],e):r=await ce(["diff","--numstat","HEAD"],e);let i=0,o=0;for(let a of r.split(/\r?\n/)){let c=a.trim();if(!c)continue;let d=c.match(/^(\d+|-)\s+(\d+|-)\s+(.+)$/);if(!d)continue;let[,l,f,u]=d,m=q(u.split(" -> ").pop()??u);if(Et(m))continue;let g=l==="-"?0:Number.parseInt(l,10),w=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(w)&&(o+=w)}return{changedLineCount:i+o,addedLineCount:i,deletedLineCount:o}}async function Ei(e,t={}){let n=t.scope??"all",r=e.overview;if(r.source!=="git")throw new Error("changed_scope requires a git-backed workspace.");let i=await Bk(r.workspaceRoot,n,t.baseRef),o=await Zk(r.workspaceRoot,n,t.baseRef).catch(u=>(we("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=Bp(u.path,r.areas);return{path:u.path,status:u.status,category:Zt(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=Bp(u.path,r.areas),g=c.get(m.id)??{areaId:m.id,label:m.label,root:m.root,kind:m.kind,fileCount:0,files:[]};c.set(m.id,{...g,fileCount:g.fileCount+1,files:g.files.length<Xa?[...g.files,u.path]:g.files})}let d={source:0,docs:0,tests:0,config:0,other:0};for(let u of a)d[u.category]+=1;let l={schemaVersion:ue,workspaceRoot:r.workspaceRoot,analyzedAt:new Date().toISOString(),scope:n,baseRef:n==="compare"?t.baseRef?.trim()||"HEAD~1":void 0,overviewGeneratedAt:r.generatedAt,totalChangedFiles:a.length,changedLineCount:o.changedLineCount,addedLineCount:o.addedLineCount,deletedLineCount:o.deletedLineCount,categories:d,areasTouched:Array.from(c.values()).sort((u,m)=>m.fileCount!==u.fileCount?m.fileCount-u.fileCount:u.root.localeCompare(m.root)),files:a,riskHints:Gk(a,Array.from(c.values()))},f=await ja(r.workspaceRoot);return await qe(M.join(f,yk),l),l}function Hk(){return Jn(gk)}function Ii(e,...t){let n=Hk(),r=M.isAbsolute(n)?n:M.join(e,n);return M.join(r,...t)}var Ok,gk,Zp,Hp,Jp,em,tm,yk,ue,it,Xa,wk,Sk,bk,nm,Pk,vk,kk,Ma,xk,rm,Tk,Rk,lm=p(()=>{"use strict";qc();_i();Ok=hk(mk),gk=M.join(".agent","repo-intelligence"),Zp="manifest.json",Hp="repo-overview.json",Jp="repo-overview-inventory.json",em="repo-overview-baseline.json",tm="repo-overview-inventory-baseline.json",yk="changed-scope.json",ue=3,it=12e3,Xa=3,wk=5e3,Sk=[".agent/",".kodax/"],bk=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h",".cs",".rb",".php",".swift",".kt",".kts",".scala",".sh"]),nm=new Set([".md",".mdx",".rst",".txt"]),Pk=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),vk=new Map([["docs","docs"],["test","tests"],["tests","tests"],["scripts","scripts"],["bin","scripts"],["tools","scripts"],["src","directory"],["server","directory"],["client","directory"],["web","directory"],["api","directory"],["cmd","directory"],["examples","directory"],["example","directory"]]),kk=new Set(["packages","apps","libs","services"]),Ma=new Set(["package.json","package-lock.json","pnpm-lock.yaml","pnpm-workspace.yaml","yarn.lock","tsconfig.json","tsconfig.build.json","vitest.config.ts","vitest.config.js","vite.config.ts","vite.config.js","pyproject.toml","requirements.txt","Cargo.toml","Cargo.lock","go.mod","go.sum","pom.xml","build.gradle","build.gradle.kts","Makefile","Dockerfile"]),xk=new Set(["package.json","pyproject.toml","Cargo.toml"]),rm=new Set(["README.md","README_CN.md","AGENTS.md","CLAUDE.md","docs/HLD.md","docs/PRD.md","docs/ADR.md","docs/DD.md","docs/FEATURE_LIST.md"]),Tk=["index.ts","index.js","main.ts","main.js","app.ts","app.js","server.ts","server.js","cli.ts","cli.js","kodax_cli.ts","main.py"],Rk=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(Qt,"isRecord");s(_k,"isRepoAreaOverview");s(Qk,"isRepoOverviewPayload");s(Ek,"isRepoOverviewInventoryPayload");s(Ik,"isGitSummaryPayload");s($k,"isRepoOverviewManifestPayload");s(ce,"runGit");s(er,"exists");s(ja,"ensureStorageDir");s(q,"normalizeRelativePath");s(im,"computePathFingerprint");s(Ck,"isAreaLabelSensitiveManifestPath");s(Ak,"sameNormalizedPathList");s(Et,"isManagedMetadataPath");s(Xk,"resolveWorkspaceRoot");s(Mk,"resolveTargetDirectory");s(jk,"listGitFiles");s(Up,"walkFilesystemFiles");s(Wk,"isTestFile");s(Zt,"classifyFileCategory");s(om,"readAreaLabel");s(Fk,"buildAreas");s(Vp,"getGitSummary");s(tr,"collectWorkspaceFilesForSource");s(Qi,"readRepoOverviewInventory");s(Kp,"collectWorkspaceDirtyPaths");s(sm,"readStoredRepoOverview");s(am,"readStoredRepoOverviewInventory");s(Dk,"readStoredRepoOverviewManifest");s(Nk,"computeDirtySemanticFingerprint");s(Yp,"buildDirtyOverviewIdentity");s(Lk,"applyDirtyPathPatchToFiles");s(cm,"buildRepoOverviewArtifacts");s(dm,"writeRepoOverviewArtifacts");s(qk,"canUseOverviewBaseline");s(zk,"canDirectReuseDirtyOverview");s(Uk,"tryBuildDirtyRepoOverviewFromBaseline");s(Vk,"canDirectReuseFilesystemOverview");s(Ca,"buildRepoOverviewSnapshotForWorkspace");s(It,"resolveRepoOverviewSnapshot");s(Gp,"resolveChangedStatus");s(Kk,"parsePorcelainLine");s(Yk,"includesCandidate");s(Bp,"findAreaForFile");s(Gk,"buildRiskHints");s(Bk,"collectChangedFiles");s(Zk,"collectChangedLineStats");s(Ei,"analyzeChangedScopeFromSnapshot");s(Hk,"getRepoIntelligenceDir");s(Ii,"resolveRepoIntelligencePath")});var $i=p(()=>{"use strict";lm();_i()});import Jk from"fs/promises";import nr from"path";import{createHash as Ci}from"node:crypto";function Qe(e){return typeof e=="object"&&e!==null}function en(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languages)&&Array.isArray(e.modules)&&Array.isArray(e.symbols)&&Array.isArray(e.processes)}function hm(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function tx(e){return e==="high"||e==="medium"||e==="low"}function nx(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function rx(e){return Qe(e)&&hm(e.language)&&tx(e.capabilityTier)&&typeof e.fileCount=="number"}function ix(e){return Qe(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&hm(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function ox(e){return Qe(e)&&(e.source==="git"||e.source==="filesystem")&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function Om(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&ox(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>rx(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>ix(t))}function sx(e){return Qe(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&nx(e.kind)&&typeof e.line=="number"&&typeof e.signature=="string"&&typeof e.exported=="boolean"&&Array.isArray(e.calls)&&e.calls.every(t=>typeof t=="string")&&typeof e.confidence=="number"}function ax(e){return Qe(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>sx(t))}function gm(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Qe(e.analyses)&&Object.values(e.analyses).every(t=>t===null||ax(t))}function ym(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&typeof e.queryGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&typeof e.sourceFingerprint=="string"&&typeof e.sourceFileCount=="number"&&typeof e.dirtyPathsFingerprint=="string"&&typeof e.dirtySourceFingerprint=="string"&&Array.isArray(e.dirtySourcePaths)&&e.dirtySourcePaths.every(t=>typeof t=="string")}function K(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function te(e){switch(nr.extname(e).toLowerCase()){case".ts":case".tsx":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":return"python";case".java":return"java";case".go":return"go";case".rs":return"rust";case".cpp":case".cc":case".cxx":case".c":case".hpp":case".h":return"cpp";default:return"unknown"}}function de(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function wm(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function ze(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function Sm(e,t){if(e.length>0){let r=e.reduce((i,o)=>i+o.confidence,0);return Math.min(.95,Math.max(.32,r/e.length))}let n=t[0];return n?ze(n.capabilityTier):.4}async function ji(e){try{return await Jk.access(e),!0}catch{return!1}}async function Wi(e,t="full"){let n=cx(),r=nr.isAbsolute(n)?n:nr.join(e,n),i=t==="light"?nr.join(r,"light"):r;return await Ri(i),i}function bm(e,t,n){return Ci("sha256").update(K(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function tn(e){let t=Ci("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Fi(e,t){let n=Ci("sha256");n.update(e.workspaceRoot),n.update("|"),n.update(e.source),n.update("|");for(let r of e.areas)n.update(r.id),n.update(":"),n.update(r.label),n.update(":"),n.update(r.kind),n.update(":"),n.update(r.root),n.update(":"),n.update(String(r.fileCount)),n.update(":"),n.update(r.manifests.join(",")),n.update(":"),n.update(r.sampleFiles.join(",")),n.update("|");for(let r of t)n.update(r),n.update("|");return n.digest("hex")}function rr(e){let t=Ci("sha256");for(let n of Array.from(e,r=>K(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Di(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Ni(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Wa(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function Pm(e){return e.workspaceSnapshot.source!=="git"||Ni(e.workspaceSnapshot)}function vm(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function at(e,t){return qe(e,t)}function km(e){let t=K(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function xm(e){let t=K(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function be(e,t){let n=K(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function fe(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function ir(e,t){let n=[],r=e.split(/\r?\n/);for(let i of r){let o=null;if(t==="typescript"||t==="javascript"){o=/from\s+['"]([^'"]+)['"]/.exec(i)??/require\(\s*['"]([^'"]+)['"]\s*\)/.exec(i)??/^\s*import\s+['"]([^'"]+)['"]/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="python"){if(o=/^\s*from\s+([A-Za-z0-9_\.]+)\s+import/.exec(i),o?.[1]){n.push(o[1]);continue}o=/^\s*import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+/)[0]??"").filter(Boolean));continue}if(t==="go"){o=/^\s*import\s+"([^"]+)"/.exec(i)??/^\s*"([^"]+)"/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="rust"){o=/^\s*use\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}if(t==="java"){o=/^\s*import\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}t==="cpp"&&(o=/^\s*#include\s+[<"]([^">]+)[">]/.exec(i),o?.[1]&&n.push(o[1].trim()))}return fe(n,12)}function cx(){return Jn(ex)}var ex,ot,Ai,Xi,Mi,um,fm,pm,J,Ht,st,mm,Se,Jt,Ee,ct=p(()=>{"use strict";_i();ex=nr.join(".agent","repo-intelligence"),ot="repo-intelligence-index.json",Ai="repo-intelligence-manifest.json",Xi="file-analysis-index.json",Mi="repo-intelligence-dirty-source-hint.json",um="module-index.json",fm="symbol-index.json",pm="process-index.json",J=9,Ht=512*1024,st=40,mm=8,Se=8,Jt=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Ee=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);s(Qe,"isRecord");s(en,"isRepoIntelligenceIndexPayload");s(hm,"isRepoLanguageId");s(tx,"isLanguageCapabilityTier");s(nx,"isRepoSymbolKind");s(rx,"isRepoLanguageSupportPayload");s(ix,"isRepoSourceFileStatePayload");s(ox,"isRepoWorkspaceSnapshotPayload");s(Om,"isRepoIntelligenceManifestPayload");s(sx,"isCachedRepoSymbolRecordPayload");s(ax,"isCachedFileAnalysisEntryPayload");s(gm,"isFileAnalysisIndexPayload");s(ym,"isDirtySourceHintPayload");s(K,"normalizeRelativePath");s(te,"languageFromFile");s(de,"capabilityTierForLanguage");s(wm,"analyzerVersionForLanguage");s(ze,"baseConfidenceForTier");s(Sm,"computeModuleConfidence");s(ji,"exists");s(Wi,"ensureStorageDir");s(bm,"computeFileFingerprint");s(tn,"computeSourceFingerprint");s(Fi,"computeOverviewFingerprint");s(rr,"computePathFingerprint");s(Di,"workspaceSnapshotFromOverview");s(Ni,"isCleanGitSnapshot");s(Wa,"sameWorkspaceSnapshot");s(Pm,"shouldPersistRepoIntelligenceBaseline");s(vm,"getDirtySourcePathsForInputs");s(at,"writeJsonFileAtomic");s(km,"isTestFile");s(xm,"isDocFile");s(be,"findAreaForFile");s(fe,"dedupeStrings");s(ir,"extractImports");s(cx,"getRepoIntelligenceDir")});import Fa from"path";import dx from"fs/promises";function Tm(e,t){let n=new Map,r=new Map,i=new Map,o=new Map;for(let a of e){let c=be(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),km(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(xm(a)){let l=o.get(c.id)??[];l.push(a),o.set(c.id,l)}}return{areaByFile:n,filesByAreaId:r,testFilesByAreaId:i,docFilesByAreaId:o}}async function Rm(e,t="full"){let n=e.workspaceRoot,r=await Wi(n,t),i=Di(e.overview),o=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>K(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=o?rr(o):void 0,c=(o??[]).filter(f=>Jt.has(Fa.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await ji(Fa.join(n,f))&&d.push(f);let l=d.length>0?await nn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Fi(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:o,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:o?tn(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Da(e,t,n,r,i="full"){let o=[];for(let a of t){let c=K(a),d=await dx.stat(Fa.join(e,c)),l=te(c);o.push({filePath:c,fileFingerprint:bm(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??be(c,r).id,analyzerVersion:wm(l,i)})}return o.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function nn(e,t,n,r,i="full"){let o=Array.from(new Set(Array.from(t,c=>K(c)))).sort((c,d)=>c.localeCompare(d)),a=await Da(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function _m(e){return e?{importPaths:e.importPaths,symbols:e.symbols.map(t=>({id:t.id,name:t.name,qualifiedName:t.qualifiedName,kind:t.kind,line:t.line,signature:t.signature,exported:t.exported,calls:t.calls,confidence:t.confidence}))}:null}function Qm(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:de(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:de(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function Na(e){return{typeScriptFiles:e.filter(t=>$t(te(t))),pythonFiles:e.filter(t=>te(t)==="python"),goFiles:e.filter(t=>te(t)==="go"),rustFiles:e.filter(t=>te(t)==="rust"),fallbackFiles:e.filter(t=>{let n=te(t);return!$t(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function $t(e){return e==="typescript"||e==="javascript"}var or=p(()=>{"use strict";ct();s(Tm,"buildAreaFileLookups");s(Rm,"buildRepoIntelligencePreflight");s(Da,"collectSourceFileStates");s(nn,"collectSourceFileStateMap");s(_m,"serializeCachedFileAnalysisEntry");s(Qm,"hydrateCachedFileAnalysis");s(Na,"bucketSourceFiles");s($t,"isTypeScriptLikeLanguage")});function Cm(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function ar(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let a=!r&&e instanceof Ie&&e.index<0?null:e.parent;if(!a)return e;e=a}let o=r?0:z.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof Ie&&a.index<0&&((i=c.enter(t,n,o))===null||i===void 0?void 0:i.from)!=a.from&&(e=c);for(;;){let a=e.enter(t,n,o);if(!a)return e;e=a}}function Im(e,t,n,r){let i=e.cursor(),o=[];if(!i.firstChild())return o;if(n!=null){for(let a=!1;!a;)if(a=i.type.is(n),!i.nextSibling())return o}for(;;){if(r!=null&&i.type.is(r))return o;if(i.type.is(t)&&o.push(i.node),!i.nextSibling())return r==null?o:[]}}function qa(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function Am(e){if(!e.length)return null;let t=0,n=e[0];for(let o=1;o<e.length;o++){let a=e[o];(a.from>n.from||a.to<n.to)&&(n=a,t=o)}let r=n instanceof Ie&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Ua(i,n)}function fx(e,t,n){let r=e.resolveInner(t,n),i=null;for(let o=r instanceof Ie?r:r.context.parent;o;o=o.parent)if(o.index<0){let a=o.parent;(i||(i=[r])).push(a.resolve(t,n)),o=a}else{let a=Ct.get(o.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new Ie(a.tree,a.overlay[0].from+o.from,-1,o);(i||(i=[r])).push(ar(c,t,n,!1))}}return i?Am(i):r}function Ka(e){return e.children.some(t=>t instanceof dt||!t.type.isAnonymous||Ka(t))}function px(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new La(n,n.length):n,d=r.types,l=0,f=0;function u(x,v,b,I,A,R){let{id:C,start:_,end:X,size:$}=c,D=f,le=l;if($<0)if(c.next(),$==-1){let Xe=o[C];b.push(Xe),I.push(_-x);return}else if($==-3){l=C;return}else if($==-4){f=C;return}else throw new RangeError(`Unrecognized record size: ${$}`);let N=d[C],un,U,Wc=_-x;if(X-_<=i&&(U=h(c.pos-v,A))){let Xe=new Uint16Array(U.size-U.skip),he=c.pos-U.size,xe=Xe.length;for(;c.pos>he;)xe=y(U.start,Xe,xe);un=new dt(Xe,X-U.start,r),Wc=U.start-x}else{let Xe=c.pos-$;c.next();let he=[],xe=[],yt=C>=a?C:-1,Mt=0,wr=X;for(;c.pos>Xe;)yt>=0&&c.id==yt&&c.size>=0?(c.end<=wr-i&&(w(he,xe,_,Mt,c.end,wr,yt,D,le),Mt=he.length,wr=c.end),c.next()):R>2500?m(_,Xe,he,xe):u(_,Xe,he,xe,yt,R+1);if(yt>=0&&Mt>0&&Mt<he.length&&w(he,xe,_,Mt,_,wr,yt,D,le),he.reverse(),xe.reverse(),yt>-1&&Mt>0){let Fc=g(N,le);un=Ya(N,he,xe,0,he.length,0,X-_,Fc,Fc)}else un=k(N,he,xe,X-_,D-X,le)}b.push(un),I.push(Wc)}s(u,"takeNode");function m(x,v,b,I){let A=[],R=0,C=-1;for(;c.pos>v;){let{id:_,start:X,end:$,size:D}=c;if(D>4)c.next();else{if(C>-1&&X<C)break;C<0&&(C=$-i),A.push(_,X,$),R++,c.next()}}if(R){let _=new Uint16Array(R*4),X=A[A.length-2];for(let $=A.length-3,D=0;$>=0;$-=3)_[D++]=A[$],_[D++]=A[$+1]-X,_[D++]=A[$+2]-X,_[D++]=D;b.push(new dt(_,A[2]-X,r)),I.push(X-x)}}s(m,"takeFlatNode");function g(x,v){return(b,I,A)=>{let R=0,C=b.length-1,_,X;if(C>=0&&(_=b[C])instanceof ne){if(!C&&_.type==x&&_.length==A)return _;(X=_.prop(j.lookAhead))&&(R=I[C]+_.length+X)}return k(x,b,I,A,R,v)}}s(g,"makeBalanced");function w(x,v,b,I,A,R,C,_,X){let $=[],D=[];for(;x.length>I;)$.push(x.pop()),D.push(v.pop()+b-A);x.push(k(r.types[C],$,D,R-A,_-R,X)),v.push(A-b)}s(w,"makeRepeatLeaf");function k(x,v,b,I,A,R,C){if(R){let _=[j.contextHash,R];C=C?[_].concat(C):[_]}if(A>25){let _=[j.lookAhead,A];C=C?[_].concat(C):[_]}return new ne(x,v,b,I,C)}s(k,"makeTree");function h(x,v){let b=c.fork(),I=0,A=0,R=0,C=b.end-i,_={size:0,start:0,skip:0};e:for(let X=b.pos-x;b.pos>X;){let $=b.size;if(b.id==v&&$>=0){_.size=I,_.start=A,_.skip=R,R+=4,I+=4,b.next();continue}let D=b.pos-$;if($<0||D<X||b.start<C)break;let le=b.id>=a?4:0,N=b.start;for(b.next();b.pos>D;){if(b.size<0)if(b.size==-3||b.size==-4)le+=4;else break e;else b.id>=a&&(le+=4);b.next()}A=N,I+=$,R+=le}return(v<0||I==x)&&(_.size=I,_.start=A,_.skip=R),_.size>4?_:void 0}s(h,"findBufferSize");function y(x,v,b){let{id:I,start:A,end:R,size:C}=c;if(c.next(),C>=0&&I<a){let _=b;if(C>4){let X=c.pos-(C-4);for(;c.pos>X;)b=y(x,v,b)}v[--b]=_,v[--b]=R-x,v[--b]=A-x,v[--b]=I}else C==-3?l=I:C==-4&&(f=I);return b}s(y,"copyToBuffer");let P=[],S=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,P,S,-1,0);let Q=(t=e.length)!==null&&t!==void 0?t:P.length?S[0]+P[0].length:0;return new ne(d[e.topID],P.reverse(),S.reverse(),Q)}function qi(e,t){if(!e.isAnonymous||t instanceof dt||t.type!=e)return 1;let n=$m.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof ne)){n=1;break}n+=qi(e,r)}$m.set(t,n)}return n}function Ya(e,t,n,r,i,o,a,c,d){let l=0;for(let w=r;w<i;w++)l+=qi(e,t[w]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(w,k,h,y,P){for(let S=h;S<y;){let Q=S,x=k[S],v=qi(e,w[S]);for(S++;S<y;S++){let b=qi(e,w[S]);if(v+b>=f)break;v+=b}if(S==Q+1){if(v>f){let b=w[Q];g(b.children,b.positions,0,b.children.length,k[Q]+P);continue}u.push(w[Q])}else{let b=k[S-1]+w[S-1].length-x;u.push(Ya(e,w,k,Q,S,x,b,null,d))}m.push(x+P-o)}}return s(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var lx,sr,j,Ct,ux,Oe,zi,Li,Em,z,ne,La,dt,Ui,Ie,za,cr,Ua,dr,$m,Vi,Va,mY,Ga=p(()=>{lx=0,sr=class{static{s(this,"Range")}constructor(t,n){this.from=t,this.to=n}},j=class{static{s(this,"NodeProp")}constructor(t={}){this.id=lx++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=Oe.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};j.closedBy=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.openedBy=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.group=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.isolate=new j({deserialize:s(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});Ct=class{static{s(this,"MountedTree")}constructor(t,n,r,i=!1){this.tree=t,this.overlay=n,this.parser=r,this.bracketed=i}static get(t){return t&&t.props&&t.props[j.mounted.id]}},ux=Object.create(null),Oe=class e{static{s(this,"NodeType")}constructor(t,n,r,i=0){this.name=t,this.props=n,this.id=r,this.flags=i}static define(t){let n=t.props&&t.props.length?Object.create(null):ux,r=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||"",n,t.id,r);if(t.props){for(let o of t.props)if(Array.isArray(o)||(o=o(i)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[o[0].id]=o[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let n=this.prop(j.group);return n?n.indexOf(t)>-1:!1}return this.id==t}static match(t){let n=Object.create(null);for(let r in t)for(let i of r.split(" "))n[i]=t[r];return r=>{for(let i=r.prop(j.group),o=-1;o<(i?i.length:0);o++){let a=n[o<0?r.name:i[o]];if(a)return a}}}};Oe.none=new Oe("",Object.create(null),0,8);zi=class e{static{s(this,"NodeSet")}constructor(t){this.types=t;for(let n=0;n<t.length;n++)if(t[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let n=[];for(let r of this.types){let i=null;for(let o of t){let a=o(r);if(a){i||(i=Object.assign({},r.props));let c=a[1],d=a[0];d.combine&&d.id in i&&(c=d.combine(i[d.id],c)),i[d.id]=c}}n.push(i?new Oe(r.name,i,r.id,r.flags):r)}return new e(n)}},Li=new WeakMap,Em=new WeakMap;(function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"})(z||(z={}));ne=class e{static{s(this,"Tree")}constructor(t,n,r,i,o){if(this.type=t,this.children=n,this.positions=r,this.length=i,this.props=null,o&&o.length){this.props=Object.create(null);for(let[a,c]of o)this.props[typeof a=="number"?a:a.id]=c}}toString(){let t=Ct.get(this);if(t&&!t.overlay)return t.tree.toString();let n="";for(let r of this.children){let i=r.toString();i&&(n&&(n+=","),n+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(t=0){return new dr(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Li.get(this)||this.topNode,o=new dr(i);return o.moveTo(t,n),Li.set(this,o._tree),o}get topNode(){return new Ie(this,0,0,null)}resolve(t,n=0){let r=ar(Li.get(this)||this.topNode,t,n,!1);return Li.set(this,r),r}resolveInner(t,n=0){let r=ar(Em.get(this)||this.topNode,t,n,!0);return Em.set(this,r),r}resolveStack(t,n=0){return fx(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:o=this.length}=t,a=t.mode||0,c=(a&z.IncludeAnonymous)>0;for(let d=this.cursor(a|z.IncludeAnonymous);;){let l=!1;if(d.from<=o&&d.to>=i&&(!c&&d.type.isAnonymous||n(d)!==!1)){if(d.firstChild())continue;l=!0}for(;l&&r&&(c||!d.type.isAnonymous)&&r(d),!d.nextSibling();){if(!d.parent())return;l=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let n in this.props)t.push([+n,this.props[n]]);return t}balance(t={}){return this.children.length<=8?this:Ya(Oe.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,i)=>new e(this.type,n,r,i,this.propValues),t.makeTree||((n,r,i)=>new e(Oe.none,n,r,i)))}static build(t){return px(t)}};ne.empty=new ne(Oe.none,[],[],0);La=class e{static{s(this,"FlatBufferCursor")}constructor(t,n){this.buffer=t,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},dt=class e{static{s(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return Oe.none}toString(){let t=[];for(let n=0;n<this.buffer.length;)t.push(this.childString(n)),n=this.buffer[n+3];return t.join(",")}childString(t){let n=this.buffer[t],r=this.buffer[t+3],i=this.set.types[n],o=i.name;if(/\W/.test(o)&&!i.isError&&(o=JSON.stringify(o)),t+=4,r==t)return o;let a=[];for(;t<r;)a.push(this.childString(t)),t=this.buffer[t+3];return o+"("+a.join(",")+")"}findChild(t,n,r,i,o){let{buffer:a}=this,c=-1;for(let d=t;d!=n&&!(Cm(o,i,a[d+1],a[d+2])&&(c=d,r>0));d=a[d+3]);return c}slice(t,n,r){let i=this.buffer,o=new Uint16Array(n-t),a=0;for(let c=t,d=0;c<n;){o[d++]=i[c++],o[d++]=i[c++]-r;let l=o[d++]=i[c++]-r;o[d++]=i[c++]-t,a=Math.max(a,l)}return new e(o,a,this.set)}};s(Cm,"checkSide");s(ar,"resolveNode");Ui=class{static{s(this,"BaseNode")}cursor(t=0){return new dr(this,t)}getChild(t,n=null,r=null){let i=Im(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return Im(this,t,n,r)}resolve(t,n=0){return ar(this,t,n,!1)}resolveInner(t,n=0){return ar(this,t,n,!0)}matchContext(t){return qa(this.parent,t)}enterUnfinishedNodesBefore(t){let n=this.childBefore(t),r=this;for(;n;){let i=n.lastChild;if(!i||i.to!=n.to)break;i.type.isError&&i.from==i.to?(r=n,n=i.prevSibling):n=i}return r}get node(){return this}get next(){return this.parent}},Ie=class e extends Ui{static{s(this,"TreeNode")}constructor(t,n,r,i){super(),this._tree=t,this.from=n,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,o=0){for(let a=this;;){for(let{children:c,positions:d}=a._tree,l=n>0?c.length:-1;t!=l;t+=n){let f=c[t],u=d[t]+a.from,m;if(!(!(o&z.EnterBracketed&&f instanceof ne&&(m=Ct.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!Cm(i,r,u,u+f.length))){if(f instanceof dt){if(o&z.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new cr(new za(a,f,t,u),null,g)}else if(o&z.IncludeAnonymous||!f.type.isAnonymous||Ka(f)){let g;if(!(o&z.IgnoreMounts)&&(g=Ct.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let w=new e(f,u,t,a);return o&z.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(n<0?f.children.length-1:0,n,r,i,o)}}}if(o&z.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?t=a.index+n:t=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,n,r=0){let i;if(!(r&z.IgnoreOverlays)&&(i=Ct.get(this._tree))&&i.overlay){let o=t-this.from,a=r&z.EnterBracketed&&i.bracketed;for(let{from:c,to:d}of i.overlay)if((n>0||a?c<=o:c<o)&&(n<0||a?d>=o:d>o))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};s(Im,"getChildren");s(qa,"matchNodeContext");za=class{static{s(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},cr=class e extends Ui{static{s(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,n,r){super(),this.context=t,this._parent=n,this.index=r,this.type=t.buffer.set.types[t.buffer.buffer[r]]}child(t,n,r){let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return o<0?null:new e(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,n,r=0){if(r&z.ExcludeBuffers)return null;let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return o<0?null:new e(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],n=[],{buffer:r}=this.context,i=this.index+4,o=r.buffer[this.index+3];if(o>i){let a=r.buffer[this.index+1];t.push(r.slice(i,o,a)),n.push(0)}return new ne(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};s(Am,"iterStack");Ua=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return Am(this.heads)}};s(fx,"stackIterator");dr=class{static{s(this,"TreeCursor")}get name(){return this.type.name}constructor(t,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~z.EnterBracketed,t instanceof Ie)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let r=t._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,n){this.index=t;let{start:r,buffer:i}=this.buffer;return this.type=n||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}yield(t){return t?t instanceof Ie?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,n,r,this.mode));let{buffer:i}=this.buffer,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.buffer.start,r);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,n,r=this.mode){return this.buffer?r&z.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&z.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&z.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(t<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(n.findChild(i,this.index,-1,0,4))}else{let i=n.buffer[this.index+3];if(i<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let n,r,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let o=0;o<this.index;o++)if(i.buffer.buffer[o+3]<this.index)return!1;({index:n,parent:r}=i)}else({index:n,_parent:r}=this._tree);for(;r;{index:n,_parent:r}=r)if(n>-1)for(let o=n+t,a=t<0?-1:r._tree.children.length;o!=a;o+=t){let c=r._tree.children[o];if(this.mode&z.IncludeAnonymous||c instanceof dt||!c.type.isAnonymous||Ka(c))return!1}return!0}move(t,n){if(n&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,n=0){for(;(this.from==this.to||(n<1?this.from>=t:this.from>t)||(n>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,n););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,n=null,r=0;if(t&&t.context==this.buffer)e:for(let i=this.index,o=this.stack.length;o>=0;){for(let a=t;a;a=a._parent)if(a.index==i){if(i==this.index)return a;n=a,r=o+1;break e}i=this.stack[--o]}for(let i=r;i<this.stack.length;i++)n=new cr(this.buffer,n,this.stack[i]);return this.bufferNode=new cr(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,n){for(let r=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&n&&n(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(t){if(!this.buffer)return qa(this.node.parent,t);let{buffer:n}=this.buffer,{types:r}=n.set;for(let i=t.length-1,o=this.stack.length-1;i>=0;o--){if(o<0)return qa(this._tree,t,i);let a=r[n.buffer[this.stack[o]]];if(!a.isAnonymous){if(t[i]&&t[i]!=a.name)return!1;i--}}return!0}};s(Ka,"hasChild");s(px,"buildTree");$m=new WeakMap;s(qi,"nodeSize");s(Ya,"balanceRange");Vi=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Va(t)),r=r?r.length?r.map(i=>new sr(i.from,i.to)):[new sr(0,0)]:[new sr(0,t.length)],this.createParse(t,n||[],r)}parse(t,n,r){let i=this.startParse(t,n,r);for(;;){let o=i.advance();if(o)return o}}},Va=class{static{s(this,"StringInput")}constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,n){return this.string.slice(t,n)}},mY=new j({perNode:!0})});function lr(e,t=Uint16Array){if(typeof e!="string")return e;let n=null;for(let r=0,i=0;r<e.length;){let o=0;for(;;){let a=e.charCodeAt(r++),c=!1;if(a==126){o=65535;break}a>=92&&a--,a>=34&&a--;let d=a-32;if(d>=46&&(d-=46,c=!0),o+=d,c)break;o*=46}n?n[i++]=o:n=new t(o)}return n}function Dm(e,t,n,r,i,o){let a=0,c=1<<r,{dialect:d}=n.p.parser;e:for(;(c&e[a])!=0;){let l=e[a+1];for(let g=a+3;g<l;g+=2)if((e[g+1]&c)>0){let w=e[g];if(d.allows(w)&&(t.token.value==-1||t.token.value==w||hx(w,t.token.value,i,o))){t.acceptToken(w);break}}let f=t.next,u=0,m=e[a+2];if(t.next<0&&m>u&&e[l+m*3-3]==65535){a=e[l+m*3-1];continue e}for(;u<m;){let g=u+m>>1,w=l+g+(g<<1),k=e[w],h=e[w+1]||65536;if(f<k)m=g;else if(f>=h)u=g+1;else{a=e[w+2],t.advance();continue e}}break}}function Mm(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function hx(e,t,n,r){let i=Mm(n,r,t);return i<0||Mm(n,r,e)<i}function jm(e,t,n){let r=e.cursor(z.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function Wm(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function Ue(e,t){return e[t]|e[t+1]<<16}function Ox(e){let t=null;for(let n of e){let r=n.p.stoppedAt;(n.pos==n.p.stream.end||r!=null&&n.pos>r)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function Fm(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Ha,Ki,Ja,ec,rn,Xm,tc,lt,ur,me,pe,Ba,nc,rc,ic,oc,Za,on,ut,Yi=p(()=>{Ga();Ha=class e{static{s(this,"Stack")}constructor(t,n,r,i,o,a,c,d,l,f=0,u){this.p=t,this.stack=n,this.state=r,this.reducePos=i,this.pos=o,this.score=a,this.buffer=c,this.bufferBase=d,this.curContext=l,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((t,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Ki(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var n;let r=t>>19,i=t&65535,{parser:o}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),c=o.dynamicPrecedence(i);if(c&&(this.score+=c),r==0){i<o.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(o.getGoto(this.state,i,!0),this.reducePos),i<o.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(i,this.reducePos);return}let d=this.stack.length-(r-1)*3-(t&262144?6:0),l=d?this.stack[d-2]:this.p.ranges[0].from;i<o.minRepeatTerm&&l==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let f=this.reducePos-l;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[i])===null||n===void 0)&&n.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=f));let u=d?this.stack[d-1]:0,m=this.bufferBase+this.buffer.length-u;if(i<o.minRepeatTerm||t&131072){let g=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,g,m+4,!0)}if(t&262144)this.state=this.stack[d];else{let g=this.stack[d-3];this.state=o.getGoto(g,i,!0)}for(;this.stack.length>d;)this.stack.pop();this.reduceContext(i,l)}storeNode(t,n,r,i=4,o=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this.buffer.length;if(a>0&&this.buffer[a-4]==0&&this.buffer[a-1]>-1){if(n==r)return;if(this.buffer[a-2]>=n){this.buffer[a-2]=r;return}}}if(!o||this.pos==r)this.buffer.push(t,n,r,i);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let c=!1;for(let d=a;d>0&&this.buffer[d-2]>r;d-=4)if(this.buffer[d-1]>=0){c=!0;break}if(c)for(;a>0&&this.buffer[a-2]>r;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,i>4&&(i-=4)}this.buffer[a]=t,this.buffer[a+1]=n,this.buffer[a+2]=r,this.buffer[a+3]=i}}shift(t,n,r,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let o=t,{parser:a}=this.p;this.pos=i;let c=a.stateFlag(o,1);!c&&(i>r||n<=a.maxNode)&&(this.reducePos=i),this.pushState(o,c?r:Math.min(r,this.reducePos)),this.shiftContext(n,r),n<=a.maxNode&&this.buffer.push(n,r,i,4)}else this.pos=i,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,i,4)}apply(t,n,r,i){t&65536?this.reduce(t):this.shift(t,n,r,i)}useNode(t,n){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=t)&&(this.p.reused.push(t),r++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(n,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,n){let r=t<=this.p.parser.maxNode;r&&this.storeNode(t,this.pos,n,4),this.storeNode(0,this.pos,n,r?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(t){for(let n=new Ja(this);;){let r=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,t);if(r==0)return!1;if((r&65536)==0)return!0;n.reduce(r)}}recoverByInsert(t){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let i=[];for(let o=0,a;o<n.length;o+=2)(a=n[o+1])!=this.state&&this.p.parser.hasAction(a,t)&&i.push(n[o],a);if(this.stack.length<120)for(let o=0;i.length<8&&o<n.length;o+=2){let a=n[o+1];i.some((c,d)=>d&1&&c==a)||i.push(n[o],a)}n=i}let r=[];for(let i=0;i<n.length&&r.length<4;i+=2){let o=n[i+1];if(o==this.state)continue;let a=this.split();a.pushState(o,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[i],this.pos),a.reducePos=this.pos,a.score-=200,r.push(a)}return r}forceReduce(){let{parser:t}=this.p,n=t.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!t.validAction(this.state,n)){let r=n>>19,i=n&65535,o=this.stack.length-r*3;if(o<0||t.getGoto(this.stack[o],i,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:t}=this.p,n=[],r=s((i,o)=>{if(!n.includes(i))return n.push(i),t.allActions(i,a=>{if(!(a&393216))if(a&65536){let c=(a>>19)-o;if(c>1){let d=a&65535,l=this.stack.length-c*3;if(l>=0&&t.getGoto(this.stack[l],d,!1)>=0)return c<<19|65536|d}}else{let c=r(a,o+1);if(c!=null)return c}})},"explore");return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=t.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(n)))}reduceContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(n)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let n=new Ki(this.curContext.tracker,t);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ki=class{static{s(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},Ja=class{static{s(this,"SimulatedStack")}constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let n=t&65535,r=t>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=i}},ec=class e{static{s(this,"StackBufferCursor")}constructor(t,n,r){this.stack=t,this.pos=n,this.index=r,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};s(lr,"decodeArray");rn=class{static{s(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Xm=new rn,tc=class{static{s(this,"InputStream")}constructor(t,n){this.input=t,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Xm,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(t,n){let r=this.range,i=this.rangeIndex,o=this.pos+t;for(;o<r.from;){if(!i)return null;let a=this.ranges[--i];o-=r.from-a.to,r=a}for(;n<0?o>r.to:o>=r.to;){if(i==this.ranges.length-1)return null;let a=this.ranges[++i];o+=a.from-r.to,r=a}return o}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let n of this.ranges)if(n.to>t)return Math.max(t,n.from);return this.end}peek(t){let n=this.chunkOff+t,r,i;if(n>=0&&n<this.chunk.length)r=this.pos+t,i=this.chunk.charCodeAt(n);else{let o=this.resolveOffset(t,1);if(o==null)return-1;if(r=o,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let a=this.rangeIndex,c=this.range;for(;c.to<=r;)c=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>c.to&&(this.chunk2=this.chunk2.slice(0,c.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(t,n=0){let r=n?this.resolveOffset(n,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=r}acceptTokenTo(t,n){this.token.value=t,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),n=this.pos+t.length;this.chunk=n>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,n){if(n?(this.token=n,n.start=t,n.lookAhead=t+1,n.value=n.extended=-1):this.token=Xm,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,n){if(t>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,n-this.chunkPos);if(t>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,n-this.chunk2Pos);if(t>=this.range.from&&n<=this.range.to)return this.input.read(t,n);let r="";for(let i of this.ranges){if(i.from>=n)break;i.to>t&&(r+=this.input.read(Math.max(i.from,t),Math.min(i.to,n)))}return r}},lt=class{static{s(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;Dm(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};lt.prototype.contextual=lt.prototype.fallback=lt.prototype.extend=!1;ur=class{static{s(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?lr(t):t}token(t,n){let r=t.pos,i=0;for(;;){let o=t.next<0,a=t.resolveOffset(1,1);if(Dm(this.data,t,n,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(o||i++,a==null)break;t.reset(a,t.token)}i&&(t.reset(r,t.token),t.acceptToken(this.elseToken,i))}};ur.prototype.contextual=lt.prototype.fallback=lt.prototype.extend=!1;me=class{static{s(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};s(Dm,"readToken");s(Mm,"findOffset");s(hx,"overrides");pe=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Ba=null;s(jm,"cutAt");nc=class{static{s(this,"FragmentCursor")}constructor(t,n){this.fragments=t,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?jm(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?jm(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let r=this.trees[n],i=this.index[n];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=r.children[i],a=this.start[n]+r.positions[i];if(a>t)return this.nextStart=a,null;if(o instanceof ne){if(a==t){if(a<this.safeFrom)return null;let c=a+o.length;if(c<=this.safeTo){let d=o.prop(j.lookAhead);if(!d||c+d<this.fragment.to)return o}}this.index[n]++,a+o.length>=Math.max(this.safeFrom,t)&&(this.trees.push(o),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+o.length}}},rc=class{static{s(this,"TokenCache")}constructor(t,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(r=>new rn)}getActions(t){let n=0,r=null,{parser:i}=t.p,{tokenizers:o}=i,a=i.stateSlot(t.state,3),c=t.curContext?t.curContext.hash:0,d=0;for(let l=0;l<o.length;l++){if((1<<l&a)==0)continue;let f=o[l],u=this.tokens[l];if(!(r&&!f.fallback)&&((f.contextual||u.start!=t.pos||u.mask!=a||u.context!=c)&&(this.updateCachedToken(u,f,t),u.mask=a,u.context=c),u.lookAhead>u.end+25&&(d=Math.max(u.lookAhead,d)),u.value!=0)){let m=n;if(u.extended>-1&&(n=this.addActions(t,u.extended,u.end,n)),n=this.addActions(t,u.value,u.end,n),!f.extend&&(r=u,n>m))break}}for(;this.actions.length>n;)this.actions.pop();return d&&t.setLookAhead(d),!r&&t.pos==this.stream.end&&(r=new rn,r.value=t.p.parser.eofTerm,r.start=r.end=t.pos,n=this.addActions(t,r.value,r.end,n)),this.mainToken=r,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let n=new rn,{pos:r,p:i}=t;return n.start=r,n.end=Math.min(r+1,i.stream.end),n.value=r==i.stream.end?i.parser.eofTerm:0,n}updateCachedToken(t,n,r){let i=this.stream.clipPos(r.pos);if(n.token(this.stream.reset(i,t),r),t.value>-1){let{parser:o}=r.p;for(let a=0;a<o.specialized.length;a++)if(o.specialized[a]==t.value){let c=o.specializers[a](this.stream.read(t.start,t.end),r);if(c>=0&&r.p.parser.dialect.allows(c>>1)){(c&1)==0?t.value=c>>1:t.extended=c>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,n,r,i){for(let o=0;o<i;o+=3)if(this.actions[o]==t)return i;return this.actions[i++]=t,this.actions[i++]=n,this.actions[i++]=r,i}addActions(t,n,r,i){let{state:o}=t,{parser:a}=t.p,{data:c}=a;for(let d=0;d<2;d++)for(let l=a.stateSlot(o,d?2:1);;l+=3){if(c[l]==65535)if(c[l+1]==1)l=Ue(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Ue(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Ue(c,l+1),n,r,i))}return i}},ic=class{static{s(this,"Parse")}constructor(t,n,r,i){this.parser=t,this.input=n,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new tc(n,i),this.tokens=new rc(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Ha.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new nc(r,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,n=this.minStackPos,r=this.stacks=[],i,o;if(this.bigReductionCount>300&&t.length==1){let[a]=t;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<t.length;a++){let c=t[a];for(;;){if(this.tokens.mainToken=null,c.pos>n)r.push(c);else{if(this.advanceStack(c,r,t))continue;{i||(i=[],o=[]),i.push(c);let d=this.tokens.getMainToken(c);o.push(d.value,d.end)}}break}}if(!r.length){let a=i&&Ox(i);if(a)return pe&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw pe&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&i){let a=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,o,r);if(a)return pe&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(r.length>a)for(r.sort((c,d)=>d.score-c.score);r.length>a;)r.pop();r.some(c=>c.reducePos>n)&&this.recovering--}else if(r.length>1){e:for(let a=0;a<r.length-1;a++){let c=r[a];for(let d=a+1;d<r.length;d++){let l=r[d];if(c.sameState(l)||c.buffer.length>500&&l.buffer.length>500)if((c.score-l.score||c.buffer.length-l.buffer.length)>0)r.splice(d--,1);else{r.splice(a--,1);continue e}}}r.length>12&&(r.sort((a,c)=>c.score-a.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let a=1;a<r.length;a++)r[a].pos<this.minStackPos&&(this.minStackPos=r[a].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,n,r){let i=t.pos,{parser:o}=this,a=pe?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,f=l?t.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let m=this.parser.nodeSet.types[u.type.id]==u.type?o.getGoto(t.state,u.type.id):-1;if(m>-1&&u.length&&(!l||(u.prop(j.contextHash)||0)==f))return t.useNode(u,m),pe&&console.log(a+this.stackID(t)+` (via reuse of ${o.getName(u.type.id)})`),!0;if(!(u instanceof ne)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof ne&&u.positions[0]==0)u=g;else break}}let c=o.stateSlot(t.state,4);if(c>0)return t.reduce(c),pe&&console.log(a+this.stackID(t)+` (via always-reduce ${o.getName(c&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let d=this.tokens.getActions(t);for(let l=0;l<d.length;){let f=d[l++],u=d[l++],m=d[l++],g=l==d.length||!r,w=g?t:t.split(),k=this.tokens.mainToken;if(w.apply(f,u,k?k.start:w.pos,m),pe&&console.log(a+this.stackID(w)+` (via ${(f&65536)==0?"shift":`reduce of ${o.getName(f&65535)}`} for ${o.getName(u)} @ ${i}${w==t?"":", split"})`),g)return!0;w.pos>i?n.push(w):r.push(w)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return Wm(t,n),!0}}runRecovery(t,n,r){let i=null,o=!1;for(let a=0;a<t.length;a++){let c=t[a],d=n[a<<1],l=n[(a<<1)+1],f=pe?this.stackID(c)+" -> ":"";if(c.deadEnd&&(o||(o=!0,c.restart(),pe&&console.log(f+this.stackID(c)+" (restarted)"),this.advanceFully(c,r))))continue;let u=c.split(),m=f;for(let g=0;g<10&&u.forceReduce()&&(pe&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)pe&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))pe&&console.log(f+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>c.pos?(l==c.pos&&(l++,d=0),c.recoverByDelete(d,l),pe&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),Wm(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ne.build({buffer:ec.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let n=(Ba||(Ba=new WeakMap)).get(t);return n||Ba.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s(Wm,"pushStackDedup");oc=class{static{s(this,"Dialect")}constructor(t,n,r){this.source=t,this.flags=n,this.disabled=r}allows(t){return!this.disabled||this.disabled[t]==0}},Za=s(e=>e,"id"),on=class{static{s(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Za,this.reduce=t.reduce||Za,this.reuse=t.reuse||Za,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},ut=class e extends Vi{static{s(this,"LRParser")}constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let n=t.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let c=0;c<t.repeatNodeCount;c++)n.push("");let r=Object.keys(t.topRules).map(c=>t.topRules[c][1]),i=[];for(let c=0;c<n.length;c++)i.push([]);function o(c,d,l){i[c].push([d,d.deserialize(String(l))])}if(s(o,"setProp"),t.nodeProps)for(let c of t.nodeProps){let d=c[0];typeof d=="string"&&(d=j[d]);for(let l=1;l<c.length;){let f=c[l++];if(f>=0)o(f,d,c[l++]);else{let u=c[l+-f];for(let m=-f;m>0;m--)o(c[l++],d,u);l++}}}this.nodeSet=new zi(n.map((c,d)=>Oe.define({name:d>=this.minRepeatTerm?void 0:c,id:d,props:i[d],top:r.indexOf(d)>-1,error:d==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(d)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let a=lr(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let c=0;c<this.specializerSpecs.length;c++)this.specialized[c]=this.specializerSpecs[c].term;this.specializers=this.specializerSpecs.map(Fm),this.states=lr(t.states,Uint32Array),this.data=lr(t.stateData),this.goto=lr(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new lt(a,c):c),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,n,r){let i=new ic(this,t,n,r);for(let o of this.wrappers)i=o(i,t,n,r);return i}getGoto(t,n,r=!1){let i=this.goto;if(n>=i[0])return-1;for(let o=i[n+1];;){let a=i[o++],c=a&1,d=i[o++];if(c&&r)return d;for(let l=o+(a>>1);o<l;o++)if(i[o]==t)return d;if(c)return-1}}hasAction(t,n){let r=this.data;for(let i=0;i<2;i++)for(let o=this.stateSlot(t,i?2:1),a;;o+=3){if((a=r[o])==65535)if(r[o+1]==1)a=r[o=Ue(r,o+2)];else{if(r[o+1]==2)return Ue(r,o+2);break}if(a==n||a==0)return Ue(r,o+1)}return 0}stateSlot(t,n){return this.states[t*6+n]}stateFlag(t,n){return(this.stateSlot(t,0)&n)>0}validAction(t,n){return!!this.allActions(t,r=>r==n?!0:null)}allActions(t,n){let r=this.stateSlot(t,4),i=r?n(r):void 0;for(let o=this.stateSlot(t,1);i==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=Ue(this.data,o+2);else break;i=n(Ue(this.data,o+1))}return i}nextStates(t){let n=[];for(let r=this.stateSlot(t,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Ue(this.data,r+2);else break;if((this.data[r+2]&1)==0){let i=this.data[r+1];n.some((o,a)=>a&1&&o==i)||n.push(this.data[r],i)}}return n}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let r=this.topRules[t.top];if(!r)throw new RangeError(`Invalid top rule name ${t.top}`);n.top=r}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(r=>{let i=t.tokenizers.find(o=>o.from==r);return i?i.to:r})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((r,i)=>{let o=t.specializers.find(c=>c.from==r.external);if(!o)return r;let a=Object.assign(Object.assign({},r),{external:o.to});return n.specializers[i]=Fm(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let n=this.dynamicPrecedences;return n==null?0:n[t]||0}parseDialect(t){let n=Object.keys(this.dialects),r=n.map(()=>!1);if(t)for(let o of t.split(" ")){let a=n.indexOf(o);a>=0&&(r[a]=!0)}let i=null;for(let o=0;o<n.length;o++)if(!r[o])for(let a=this.dialects[n[o]],c;(c=this.data[a++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[c]=1;return new oc(t,r,i)}static deserialize(t){return new e(t)}};s(Ue,"pair");s(Ox,"findFinished");s(Fm,"getSpecializer")});function wx(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function Sx(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((n,r)=>r.length-n.length)}function an(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let i of n.split(" "))if(i){let o=[],a=2,c=i;for(let u=0;;){if(c=="..."&&u>0&&u+3==i.length){a=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(c);if(!m)throw new RangeError("Invalid path: "+i);if(o.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]),u+=m[0].length,u==i.length)break;let g=i[u++];if(u==i.length&&g=="!"){a=0;break}if(g!="/")throw new RangeError("Invalid path: "+i);c=i.slice(u)}let d=o.length-1,l=o[d];if(!l)throw new RangeError("Invalid path: "+i);let f=new sn(r,a,d>0?o.slice(0,d):null);t[l]=f.sort(t[l])}}return bx.add(t)}function Px(e,t){let n=Object.create(null);for(let o of e)if(!Array.isArray(o.tag))n[o.tag.id]=o.class;else for(let a of o.tag)n[a.id]=o.class;let{scope:r,all:i=null}=t||{};return{style:s(o=>{let a=i;for(let c of o)for(let d of c.set){let l=n[d.id];if(l){a=a?a+" "+l:l;break}}return a},"style"),scope:r}}var gx,Pe,yx,Hi,bx,sn,T,Gi,ft,Nm,Lm,pt,Bi,sc,Ae,At,$e,Ce,ac,fr,Zi,O,bY,Ji=p(()=>{Ga();gx=0,Pe=class e{static{s(this,"Tag")}constructor(t,n,r,i){this.name=t,this.set=n,this.base=r,this.modified=i,this.id=gx++}toString(){let{name:t}=this;for(let n of this.modified)n.name&&(t=`${n.name}(${t})`);return t}static define(t,n){let r=typeof t=="string"?t:"?";if(t instanceof e&&(n=t),n?.base)throw new Error("Can not derive from a modified tag");let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let o of n.set)i.set.push(o);return i}static defineModifier(t){let n=new Hi(t);return r=>r.modified.indexOf(n)>-1?r:Hi.get(r.base||r,r.modified.concat(n).sort((i,o)=>i.id-o.id))}},yx=0,Hi=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=yx++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&wx(n,c.modified));if(r)return r;let i=[],o=new Pe(t.name,i,t,n);for(let c of n)c.instances.push(o);let a=Sx(n);for(let c of t.set)if(!c.modified.length)for(let d of a)i.push(e.get(c,d));return o}};s(wx,"sameArray");s(Sx,"powerSet");s(an,"styleTags");bx=new j({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let o=new sn(i.tags,i.mode,i.context);n?n.next=o:r=o,n=o}return r}}),sn=class{static{s(this,"Rule")}constructor(t,n,r,i){this.tags=t,this.mode=n,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}};sn.empty=new sn([],2,null);s(Px,"tagHighlighter");T=Pe.define,Gi=T(),ft=T(),Nm=T(ft),Lm=T(ft),pt=T(),Bi=T(pt),sc=T(pt),Ae=T(),At=T(Ae),$e=T(),Ce=T(),ac=T(),fr=T(ac),Zi=T(),O={comment:Gi,lineComment:T(Gi),blockComment:T(Gi),docComment:T(Gi),name:ft,variableName:T(ft),typeName:Nm,tagName:T(Nm),propertyName:Lm,attributeName:T(Lm),className:T(ft),labelName:T(ft),namespace:T(ft),macroName:T(ft),literal:pt,string:Bi,docString:T(Bi),character:T(Bi),attributeValue:T(Bi),number:sc,integer:T(sc),float:T(sc),bool:T(pt),regexp:T(pt),escape:T(pt),color:T(pt),url:T(pt),keyword:$e,self:T($e),null:T($e),atom:T($e),unit:T($e),modifier:T($e),operatorKeyword:T($e),controlKeyword:T($e),definitionKeyword:T($e),moduleKeyword:T($e),operator:Ce,derefOperator:T(Ce),arithmeticOperator:T(Ce),logicOperator:T(Ce),bitwiseOperator:T(Ce),compareOperator:T(Ce),updateOperator:T(Ce),definitionOperator:T(Ce),typeOperator:T(Ce),controlOperator:T(Ce),punctuation:ac,separator:T(ac),bracket:fr,angleBracket:T(fr),squareBracket:T(fr),paren:T(fr),brace:T(fr),content:Ae,heading:At,heading1:T(At),heading2:T(At),heading3:T(At),heading4:T(At),heading5:T(At),heading6:T(At),contentSeparator:T(Ae),list:T(Ae),quote:T(Ae),emphasis:T(Ae),strong:T(Ae),link:T(Ae),monospace:T(Ae),strikethrough:T(Ae),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:Zi,documentMeta:T(Zi),annotation:T(Zi),processingInstruction:T(Zi),definition:Pe.defineModifier("definition"),constant:Pe.defineModifier("constant"),function:Pe.defineModifier("function"),standard:Pe.defineModifier("standard"),local:Pe.defineModifier("local"),special:Pe.defineModifier("special")};for(let e in O){let t=O[e];t instanceof Pe&&(t.name=e)}bY=Px([{tag:O.link,class:"tok-link"},{tag:O.heading,class:"tok-heading"},{tag:O.emphasis,class:"tok-emphasis"},{tag:O.strong,class:"tok-strong"},{tag:O.keyword,class:"tok-keyword"},{tag:O.atom,class:"tok-atom"},{tag:O.bool,class:"tok-bool"},{tag:O.url,class:"tok-url"},{tag:O.labelName,class:"tok-labelName"},{tag:O.inserted,class:"tok-inserted"},{tag:O.deleted,class:"tok-deleted"},{tag:O.literal,class:"tok-literal"},{tag:O.string,class:"tok-string"},{tag:O.number,class:"tok-number"},{tag:[O.regexp,O.escape,O.special(O.string)],class:"tok-string2"},{tag:O.variableName,class:"tok-variableName"},{tag:O.local(O.variableName),class:"tok-variableName tok-local"},{tag:O.definition(O.variableName),class:"tok-variableName tok-definition"},{tag:O.special(O.variableName),class:"tok-variableName2"},{tag:O.definition(O.propertyName),class:"tok-propertyName tok-definition"},{tag:O.typeName,class:"tok-typeName"},{tag:O.namespace,class:"tok-namespace"},{tag:O.className,class:"tok-className"},{tag:O.macroName,class:"tok-macroName"},{tag:O.propertyName,class:"tok-propertyName"},{tag:O.operator,class:"tok-operator"},{tag:O.comment,class:"tok-comment"},{tag:O.meta,class:"tok-meta"},{tag:O.invalid,class:"tok-invalid"},{tag:O.punctuation,class:"tok-punctuation"}])});var vx,kx,xx,Tx,Rx,_x,Qx,Ex,Ix,$x,Cx,Ax,Xx,Mx,jx,Wx,Fx,Dx,qm,Nx,Lx,qx,zx,Ux,Vx,Kx,zm,Um=p(()=>{Yi();Ji();vx=177,kx=179,xx=184,Tx=12,Rx=13,_x=17,Qx=20,Ex=25,Ix=53,$x=95,Cx=142,Ax=144,Xx=145,Mx=148,jx=10,Wx=13,Fx=32,Dx=9,qm=47,Nx=41,Lx=125,qx=new me((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==jx||r==Wx||r==qm&&e.peek(n+1)==qm)||r==Nx||r==Lx)&&e.acceptToken(vx),!(r!=Fx&&r!=Dx);)r=e.peek(++n)},{contextual:!0}),zx=new Set([$x,xx,Qx,Tx,_x,Ax,Xx,Cx,Mx,Rx,Ix,Ex]),Ux=new on({start:!1,shift:s((e,t)=>t==kx?e:zx.has(t),"shift")}),Vx=an({"func interface struct chan map const type var":O.definitionKeyword,"import package":O.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":O.controlKeyword,range:O.keyword,Bool:O.bool,String:O.string,Rune:O.character,Number:O.number,Nil:O.null,VariableName:O.variableName,DefName:O.definition(O.variableName),TypeName:O.typeName,LabelName:O.labelName,FieldName:O.propertyName,"FunctionDecl/DefName":O.function(O.definition(O.variableName)),"TypeSpec/DefName":O.definition(O.typeName),"CallExpr/VariableName":O.function(O.variableName),LineComment:O.lineComment,BlockComment:O.blockComment,LogicOp:O.logicOperator,ArithOp:O.arithmeticOperator,BitOp:O.bitwiseOperator,"DerefOp .":O.derefOperator,"UpdateOp IncDecOp":O.updateOperator,CompareOp:O.compareOperator,"= :=":O.definitionOperator,"<-":O.operator,'~ "*"':O.modifier,"; ,":O.separator,"... :":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace}),Kx={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},zm=ut.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26A0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:Ux,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[Vx],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[qx,1,2,new ur("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:s(e=>Kx[e]||-1,"get")}],tokenPrec:5451})});function cc(e){return e==Xt||e==pr}function dc(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function to(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}function BT(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==no?8-t%8:1;return t}function eR(e,t){if(t==NT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==LT)for(let n=0;n<2&&dc(e.next);n++)e.advance();else if(t==zT)for(let n=0;n<4&&dc(e.next);n++)e.advance();else if(t==UT)for(let n=0;n<8&&dc(e.next);n++)e.advance();else if(t==qT&&e.next==lc){for(e.advance();e.next>=0&&e.next!=Ym&&e.next!=th&&e.next!=nh&&e.next!=Xt;)e.advance();e.next==Ym&&e.advance()}}var Yx,Zm,Hm,Gx,Vm,Bx,Zx,Hx,Jx,Jm,Km,eT,tT,nT,rT,iT,oT,sT,aT,cT,dT,lT,uT,fT,pT,mT,hT,OT,gT,yT,wT,ST,bT,PT,eh,vT,kT,xT,TT,RT,_T,QT,ET,IT,$T,CT,AT,XT,MT,jT,WT,Xt,pr,uc,no,fc,FT,DT,lc,Ym,th,nh,Gm,NT,LT,qT,zT,UT,VT,KT,YT,eo,rh,Ve,Ke,Ye,Ge,GT,Bm,ZT,HT,JT,tR,nR,ih,oh=p(()=>{Yi();Ji();Yx=1,Zm=194,Hm=195,Gx=196,Vm=197,Bx=198,Zx=199,Hx=200,Jx=2,Jm=3,Km=201,eT=24,tT=25,nT=49,rT=50,iT=55,oT=56,sT=57,aT=59,cT=60,dT=61,lT=62,uT=63,fT=65,pT=238,mT=71,hT=241,OT=242,gT=243,yT=244,wT=245,ST=246,bT=247,PT=248,eh=72,vT=249,kT=250,xT=251,TT=252,RT=253,_T=254,QT=255,ET=256,IT=73,$T=77,CT=263,AT=112,XT=130,MT=151,jT=152,WT=155,Xt=10,pr=13,uc=32,no=9,fc=35,FT=40,DT=46,lc=123,Ym=125,th=39,nh=34,Gm=92,NT=111,LT=120,qT=78,zT=117,UT=85,VT=new Set([tT,nT,rT,CT,fT,XT,oT,sT,pT,lT,uT,eh,IT,$T,cT,dT,MT,jT,WT,AT]);s(cc,"isLineBreak");s(dc,"isHex");KT=new me((e,t)=>{let n;if(e.next<0)e.acceptToken(Zx);else if(t.context.flags&eo)cc(e.next)&&e.acceptToken(Bx,1);else if(((n=e.peek(-1))<0||cc(n))&&t.canShift(Vm)){let r=0;for(;e.next==uc||e.next==no;)e.advance(),r++;(e.next==Xt||e.next==pr||e.next==fc)&&e.acceptToken(Vm,-r)}else cc(e.next)&&e.acceptToken(Gx,1)},{contextual:!0}),YT=new me((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==Xt||r==pr){let i=0,o=0;for(;;){if(e.next==uc)i++;else if(e.next==no)i+=8-i%8;else break;e.advance(),o++}i!=n.indent&&e.next!=Xt&&e.next!=pr&&e.next!=fc&&(i<n.indent?e.acceptToken(Hm,-o):e.acceptToken(Zm))}}),eo=1,rh=2,Ve=4,Ke=8,Ye=16,Ge=32;s(to,"Context");GT=new to(null,0,0);s(BT,"countIndent");Bm=new Map([[hT,0],[OT,Ve],[gT,Ke],[yT,Ke|Ve],[wT,Ye],[ST,Ye|Ve],[bT,Ye|Ke],[PT,Ye|Ke|Ve],[vT,Ge],[kT,Ge|Ve],[xT,Ge|Ke],[TT,Ge|Ke|Ve],[RT,Ge|Ye],[_T,Ge|Ye|Ve],[QT,Ge|Ye|Ke],[ET,Ge|Ye|Ke|Ve]].map(([e,t])=>[e,t|rh])),ZT=new on({start:GT,reduce(e,t,n,r){return e.flags&eo&&VT.has(t)||(t==mT||t==eh)&&e.flags&rh?e.parent:e},shift(e,t,n,r){return t==Zm?new to(e,BT(r.read(r.pos,n.pos)),0):t==Hm?e.parent:t==eT||t==iT||t==aT||t==Jm?new to(e,0,eo):Bm.has(t)?new to(e,0,Bm.get(t)|e.flags&eo):e},hash(e){return e.hash}}),HT=new me(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==uc||n==no)){n!=FT&&n!=DT&&n!=Xt&&n!=pr&&n!=fc&&e.acceptToken(Yx);return}}}),JT=new me((e,t)=>{let{flags:n}=t.context,r=n&Ve?nh:th,i=(n&Ke)>0,o=!(n&Ye),a=(n&Ge)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==lc)if(e.peek(1)==lc)e.advance(2);else{if(e.pos==c){e.acceptToken(Jm,1);return}break}else if(o&&e.next==Gm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),eR(e,d)),e.acceptToken(Jx);return}break}else if(e.next==Gm&&!o&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!i||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==c){e.acceptToken(Km,i?3:1);return}break}else if(e.next==Xt){if(i)e.advance();else if(e.pos==c){e.acceptToken(Km);return}break}else e.advance();e.pos>c&&e.acceptToken(Hx)});s(eR,"skipEscape");tR=an({'async "*" "**" FormatConversion FormatSpec':O.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":O.controlKeyword,"in not and or is del":O.operatorKeyword,"from def class global nonlocal lambda":O.definitionKeyword,import:O.moduleKeyword,"with as print":O.keyword,Boolean:O.bool,None:O.null,VariableName:O.variableName,"CallExpression/VariableName":O.function(O.variableName),"FunctionDefinition/VariableName":O.function(O.definition(O.variableName)),"ClassDefinition/VariableName":O.definition(O.className),PropertyName:O.propertyName,"CallExpression/MemberExpression/PropertyName":O.function(O.propertyName),Comment:O.lineComment,Number:O.number,String:O.string,FormatString:O.special(O.string),Escape:O.escape,UpdateOp:O.updateOperator,"ArithOp!":O.arithmeticOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,Ellipsis:O.punctuation,At:O.meta,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),nR={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},ih=ut.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:ZT,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[tR],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[HT,YT,KT,JT,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>nR[e]||-1,"get")}],tokenPrec:7668})});function pc(e){return e>=48&&e<=57}function io(e){return pc(e)||e==95}var rR,iR,oR,sR,aR,sh,cR,dR,ah,lR,ro,ch,uR,fR,dh,lh,pR,mR,hR,OR,gR,yR,wR,SR,uh,fh=p(()=>{Yi();Ji();rR=1,iR=2,oR=3,sR=4,aR=5,sh=98,cR=101,dR=102,ah=114,lR=69,ro=48,ch=46,uR=43,fR=45,dh=35,lh=34,pR=124,mR=60,hR=62;s(pc,"isNum");s(io,"isNum_");OR=new me((e,t)=>{if(pc(e.next)){let n=!1;do e.advance();while(io(e.next));if(e.next==ch){if(n=!0,e.advance(),pc(e.next))do e.advance();while(io(e.next));else if(e.next==ch||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==cR||e.next==lR){if(n=!0,e.advance(),(e.next==uR||e.next==fR)&&e.advance(),!io(e.next))return;do e.advance();while(io(e.next))}if(e.next==dR){let r=e.peek(1);if(r==ro+3&&e.peek(2)==ro+2||r==ro+6&&e.peek(2)==ro+4)e.advance(3),n=!0;else return}n&&e.acceptToken(aR)}else if(e.next==sh||e.next==ah){if(e.next==sh&&e.advance(),e.next!=ah)return;e.advance();let n=0;for(;e.next==dh;)n++,e.advance();if(e.next!=lh)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==lh;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=dh)continue e;e.advance()}e.acceptToken(sR);return}}}}),gR=new me(e=>{e.next==pR&&e.acceptToken(rR,1)}),yR=new me(e=>{e.next==mR?e.acceptToken(iR,1):e.next==hR&&e.acceptToken(oR,1)}),wR=an({"const macro_rules struct union enum type fn impl trait let static":O.definitionKeyword,"mod use crate":O.moduleKeyword,"pub unsafe async mut extern default move":O.modifier,"for if else loop while match continue break return await":O.controlKeyword,"as in ref":O.operatorKeyword,"where _ crate super dyn":O.keyword,self:O.self,String:O.string,Char:O.character,RawString:O.special(O.string),Boolean:O.bool,Identifier:O.variableName,"CallExpression/Identifier":O.function(O.variableName),BoundIdentifier:O.definition(O.variableName),"FunctionItem/BoundIdentifier":O.function(O.definition(O.variableName)),LoopLabel:O.labelName,FieldIdentifier:O.propertyName,"CallExpression/FieldExpression/FieldIdentifier":O.function(O.propertyName),Lifetime:O.special(O.variableName),ScopeIdentifier:O.namespace,TypeIdentifier:O.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":O.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":O.macroName,'"!"':O.macroName,UpdateOp:O.updateOperator,LineComment:O.lineComment,BlockComment:O.blockComment,Integer:O.integer,Float:O.float,ArithOp:O.arithmeticOperator,LogicOp:O.logicOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,"=":O.definitionOperator,".. ... => ->":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,". DerefOp":O.derefOperator,"&":O.operator,", ; ::":O.separator,"Attribute/...":O.meta}),SR={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},uh=ut.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5<g,5<gO!9SQWO'#CoO!9jQWO'#CoO!9oQWO'#I`O! yQWO'#JuO!9yQWO'#J`O!:aQWO,5;VOOQO'#In'#InO!0zQWO'#DaO!<aQWO'#DcO!<iQWO,5;ZO.YQ_O,5;ZOOQO,5;[,5;[OOQV'#Er'#ErOOQV'#Es'#EsOOQV'#Et'#EtOOQV'#Eu'#EuOOQV'#Ev'#EvOOQV'#Ew'#EwOOQV'#Ex'#ExOOQV'#Ey'#EyO.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;fO!=PQ_O,5;kO!@gQ_O'#FROOQO,5;l,5;lO!BrQWO,5;pO.YQ_O,5;wOKlQYO,5;gO!D_QWO,5;kO!EOQWO,5;xOOQO,5;x,5;xO!E]QWO,5;xO!EbQ_O,5;xO!GmQWO'#CfO!GrQWO,5<QO!G|Q_O,5<QOOQO,5;{,5;{O!JjQXO'#CnO!K{QXO'#I`OOQS'#Dk'#DkOOQP'#Ir'#IrO!LuQ[O'#IrO!L}QXO'#DjO!M{QWO'#DnO!M{QWO'#DnO!N^QWO'#DnOOQP'#It'#ItO!NcQXO'#ItO# ^Q^O'#DoO# hQWO'#DrO# pQ^O'#DzO# zQ^O'#D|O#!RQWO'#EPO#!^QXO'#FdOOQP'#ES'#ESOOQP'#Iq'#IqO#!lQXO'#JfOOQP'#Je'#JeO#!tQXO,5;}O#!yQXO'#I`O!1PQ^O'#DyO!1PQ^O'#FdO##sQWO,5;|OOQO,5;|,5;|OKlQYO,5;|O#$ZQWO'#FhOOQO,5<R,5<ROOQV,5=l,5=lO#&`QYO'#FzOOQV,5<h,5<hO#&gQWO,5<hO#&nQWO,5=SO!1WQWO,59rO!1dQWO,5<dO#&uQWO,5=iO!2_QWO,5<jO!2_QWO,5<zO!2_QWO,5<|O!2_QWO,5=QO#&|QWO,5=]O#'TQWO,5=SO!2_QWO,5=]O!3|QWO,5=aO#']QWO,5=jOOQO-E;|-E;|O#'hQWO'#JjOOQV-E;h-E;hO#(PQWO'#HRO#(WQ_O,59pOOQV,59p,59pO#(_QWO,59pO#(dQ_O,59pO#)SQZO'#CuO#+[QZO'#CvOOQV'#C|'#C|O#-wQWO'#HTO#.OQYO'#IdOOQO'#Hh'#HhO#.WQWO'#CwO#.WQWO'#CwO#.iQWO'#CwOOQR'#Ic'#IcO#.nQZO'#IbO#1TQYO'#HTO#1qQYO'#H[O#2}QYO'#H_OKlQYO'#H`OOQR'#Hb'#HbO#4ZQWO'#HeO#4`QYO,59]OOQR'#Ib'#IbO#5PQZO'#CtO#7[QYO'#HUO#7aQWO'#HTO#7fQYO'#CrO#8VQWO'#H]O#7fQYO'#HcOOQV-E;e-E;eO#8_QWO,59sOOQV,59{,59{O#8mQYO,5=[OOQV,59},59}O!0zQWO,59}O#;aQWO'#IpOOQO'#Ip'#IpO!1PQ^O'#DhO!0zQWO,5:QO#;hQWO,5;iO#<OQWO,5;rO#<fQ_O,5;rOOQO,5;u,5;uO#@PQ_O,5;|O#BXQWO,5;PO!0zQWO,5<XO#B`QWO,5<ZOOQV,5<Z,5<ZO#BkQWO,5<]O!1PQ^O'#EOOOQQ'#D_'#D_O#BsQWO,59rO#BxQWO,5<`O#B}QWO,5<dOOQO,5@U,5@UO#CVQWO,5=iOOQQ'#Cv'#CvO#C[QYO,5<jO#CmQYO,5<zO#CxQYO,5<|O#DTQYO,5=_O#DcQYO,5=SO#E{QYO'#GQO#FYQYO,5=[O#FmQWO,5=[O#F{QYO,5=[O#HUQYO,5=]O#HdQWO,5=`O!1PQ^O,5=`O#HrQWO'#CnO#ITQWO'#I`OOQO'#Jy'#JyO#IfQWO'#IQO#IkQWO'#GwOOQO'#Jz'#JzO#JSQWO'#GzOOQO'#G|'#G|OOQO'#Jx'#JxO#IkQWO'#GwO#JZQWO'#GxO#J`QWO,5=aO#JeQWO,5=jO!1dQWO,5=jO#'`QWO,5=jPOOO'#Hf'#HfP#JjOpO,58}POOO,58},58}OOOO-E;g-E;gOOQV1G/T1G/TO#JuQWO1G4{O#JzQ^O'#CyPOQQ'#Cx'#CxOOQO1G/v1G/vOOQP1G.u1G.uO)xQWO1G/vO#NTQ!fO'#ETO#N[Q!fO'#EaO#NcQ!fO'#EbO$ kQWO1G1yO$!_Q_O1G1yOOQP1G5V1G5VOOQO1G1]1G1]O$&RQWO1G0oO$&WQWO'#CiO!7xQXO'#I`O!6PQYO1G.lO!5oQWO,5<_O!9SQWO,59ZO!9SQWO,59ZO!5oQWO,5?kO$&iQWO1G0uO$(vQWO1G0wO$*nQWO1G0wO$+UQWO1G0wO$-YQWO1G0wO$-aQWO1G0wO$/bQWO1G0wO$/iQWO1G0wO$1jQWO1G0wO$1qQWO1G0wO$3YQWO1G1QO$5ZQWO1G1VO$5zQ_O'#JcO$8SQWO'#JcOOQO'#Jb'#JbO$8^QWO,5;mOOQO'#Dw'#DwOOQO1G1[1G1[OOQO1G1Y1G1YO$8cQWO1G1cOOQO1G1R1G1RO$8jQ_O'#HrO$:xQWO,5@OO.YQ_O1G1dOOQO1G1d1G1dO$;QQWO1G1dO$;_QWO1G1dO$;dQWO1G1eOOQO1G1l1G1lO$;lQWO1G1lOOQP,5?^,5?^O$;vQ^O,5:kO$<aQXO,5:YO!M{QWO,5:YO!M{QWO,5:YO!1PQ^O,5:gO$=bQWO'#IyOOQO'#Ix'#IxO$=pQWO,5:ZO# ^Q^O,5:ZO$=uQWO'#DsOOQP,5:^,5:^O$>WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5<OO$>gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5<OO$?[QWO1G1hO$?dQWO'#CnO$?oQWO'#FiOOQO'#Fi'#FiO$?wQWO'#FjO.YQ_O'#FkOOQO'#Ji'#JiO$?|QWO'#JhOOQO'#Jg'#JgO$@UQWO,5<SOOQQ'#Hv'#HvO$@ZQYO,5<fOOQV,5<f,5<fO$@bQYO,5<fOOQV1G2S1G2SO$@iQWO1G2nO$@qQWO1G/^O$@vQWO1G2OO#CVQWO1G3TO$AOQYO1G2UO#CmQYO1G2fO#CxQYO1G2hO$AaQYO1G2lO!2_QWO1G2wO#DcQYO1G2nO#HUQYO1G2wO$AiQWO1G2{O$AnQWO1G3UO!1dQWO1G3UO$AsQWO1G3UOOQV1G/[1G/[O$A{QWO1G/[O$BQQ_O1G/[O#7aQWO,5=oO$BXQYO,5?OO$BmQWO,5?OO$BrQZO'#IeOOQO-E;f-E;fOOQR,59c,59cO#.WQWO,59cO#.WQWO,59cOOQR,5=n,5=nO$E_QYO'#HVO$FwQZO,5=oO!5oQWO,5={O$IZQWO,5=oO$IbQZO,5=vO$KqQYO,5=vO$>]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5<lO%4[QYO,5<lO%4jQYO,5<lO%5XQYO,5<lOOQQ,5<l,5<lO!1WQWO'#JuO%5dQYO,5<lO%5lQWO1G2vOOQV1G2v1G2vO%5tQWO1G2vO$>]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E<O-E<OOOQO,5=c,5=cOOQO,5=e,5=eOOQO,5=g,5=gOOQO,5=h,5=hO%6aQWO'#J|OOQO'#J{'#J{O%6iQWO,5=fO%6nQWO,5=cO!1dQWO,5=dOOQV1G2{1G2{O$>]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5<T,5<TO%ErQWO,5<UO.YQ_O,5<UO%EwQWO,5<VO%FRQWO'#HtO%FdQWO,5@SOOQO1G1n1G1nOOQQ-E;t-E;tOOQV1G2Q1G2QO%FlQYO1G2QO#DcQYO7+(YO$>]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5<lO&'nQYO,5<lO!1dQWO'#GWO&'|QWO'#JpO&([QWO'#G^O!BxQWO'#G^O&(aQWO'#JpOOQO'#Jo'#JoO&(iQWO,5<wOOQO'#DX'#DXO&(nQYO'#JrO&)}QWO'#JrO$>]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5<yO&*_QWO'#GZO#D^QWO'#G[O&*gQWO'#G[O&*oQWO'#JmOOQO'#Jl'#JlO&*zQYO'#GTOOQO,5<s,5<sO&+PQWO7+'pO&+UQWO'#JtO&+dQWO'#GeO#BxQWO'#GeO&+uQWO'#JtOOQO'#Js'#JsO&+}QWO,5=OO$>]QYO'#GUO&,SQYO'#JkOOQQ,5<n,5<nO&,kQWO7+(WOOQV7+(e7+(eO&.TQ^O'#D|O&._QWO'#GlO&.gQ^O'#JwOOQO'#Gn'#GnO&.nQWO'#JwOOQO'#Jv'#JvO&.vQWO,5=VO&.{QWO'#I`O&/]Q^O'#GmO&/dQWO'#IqO&/rQWO'#GmOOQV7+(Y7+(YO&/zQWO7+(YO$>]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5<m,5<mO$>]QYO,5<qO&0pQWO,5<rO&0uQWO7+(bO&1QQWO7+(fO&1XQWO7+(fOOQV7+(f7+(fO.YQ_O7+(fO$>]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<<Gr<<GrO&3iQWO1G5iO$5zQ_O,5>]O&3qQWO,5>]OOQO-E;o-E;oOOQO<<Jj<<JjO&3{QWO<<JjOOQO<<Jk<<JkO&4SQXO7+%`O&5TQWO,5>WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5<PO&6UQXO,5<PO&6dQXO7+'UO.YQ_O1G1pO&6oQWO1G1pOOQO,5>`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<<KtO#DfQWO<<KtO&7XQWO<<HdOOQV<<LZ<<LZO!1dQWO<<LZOOQV<<K[<<K[O&7dQWO<<K[O%/wQWO<<K[O&7iQWO<<K[OOQV<<Kl<<KlO%/wQWO<<KlOOQV<<Kn<<KnO%0gQWO<<KnO&7qQWO<<KrO$>]QYO<<KrOOQV<<K}<<K}O%5tQWO<<K}O%5yQWO<<K}O#HXQWO<<K}OOQV<<Kt<<KtO&7yQWO<<KtO$>]QYO<<KtO&8RQWO<<L[O$>]QYO<<L[O&8^QWO<<L[OOQV<<Hb<<HbO$>]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&<RQZO7+(uO&>eQZO7+(|O&@tQWO,5>qOOQO-E<T-E<TO&APQWO7+)QOOQO<<G}<<G}O&AWQYO'#ITO&AcQYO,5@jOOQQ7+(v7+(vOOQQ<<He<<HeO$>]QYO<<K|OOQV<<K|<<K|O&0uQWO<<K|O&AkQWO<<K|O%5tQWO<<K|O&AsQWO7+%YOOQV<<Hr<<HrOOQO<<Jn<<JnO.YQ_O,5;SO&AzQWO,5;SO.YQ_O'#EjO&BPQWO,5;SOOQU-E;m-E;mO&B[QWO1G0mOOQV1G0m1G0mO&%{Q^O1G0mOOQV<<Jy<<JyO!.cQ_O<<J}OOQV<<J}<<J}OOQV<<Hd<<HdO.YQ_O<<HdO&BaQWO'#FvO&BfQWO<<KQO&BnQ!fO<<KQO&BuQWO<<KQO&BzQWO<<KQO&CSQ!fO<<KQOOQV<<KQ<<KQO&CZQWO<<LZO&C`QWO,5@[O$>]QYO,5<xO&ChQWO,5<xO&CmQWO'#H{O&C`QWO,5@[OOQV1G2c1G2cO&DRQWO,5@^O$>]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5<uOOQO,5<v,5<vO&E{QYO'#HzO&G_QWO,5@XO%,bQYO,5=pO$>]QYO,5<oO&GjQWO,5@`O.YQ_O,5=PO&GrQWO,5=PO&G}QWO,5=PO&H`QWO'#H}O&GjQWO,5@`OOQV1G2j1G2jO&HtQYO,5<pO%0lQYO,5>PO&I]QYO,5@VOOQV<<Kr<<KrO&ItQWO,5=XO&KfQ^O,5:hO&KmQWO,5=XO$>]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<<KtO&NkQYO,5>oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<<LQ<<LQO.YQ_O<<LQO' lQWO<<LQO' sQWO<<LQOOQO,5>m,5>mOOQO-E<P-E<POOQV<<L[<<L[O.YQ_O<<L[O'!OQYO1G/QO'!ZQYO,5>nOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-E<Q-E<QOOQS1G0[1G0[O'$tQ!fO1G0^O'%RQ!fO1G0^O'%YQWO1G3wOOQOAN@UAN@UO'%dQWO1G/zOOQO,5>X,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<<La<<LaO''nQWO1G6WO%JkQWO,5>pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E<S-E<SO'(RQYO1G2sO'(]QWO1G2sOOQO1G2s1G2sO$>]QYO<<LaOOQR<<Ll<<LlOOQQ,5>o,5>oOOQQ-E<R-E<RO&0uQWOANAhOOQVANAhANAhO%5tQWOANAhO$>]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5<bOOQS,5>a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5<lO'-gQYO1G2ZO'.RQWO1G5zO'.ZQWO1G2kO.YQ_O1G2kO'.eQWO1G2kO&+UQWO,5>iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<<Is<<IsOOQVG26TG26TOOQVG23jG23jOOQO1G1|1G1|OOQVG26WG26WO'6aQWOG26WP&B}QWO'#HuO'6fQWO7+(OOOQO1G4R1G4RO'6qQWO7++dO'6yQWO1G4SO$>]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<<Id<<IdO'8`QWO<<IdO'8kQWO<<IQOOQVLD,fLD,fO'8vQWOLD,fO'9OQWOLD,fOOQVLD)ULD)UOOQVLD,oLD,oOOQVLD,|LD,|O'9^QWOLD,|O.YQ_OLD,|OOQVLD,nLD,nO%5tQWOLD,nO'9eQ^O<<ItO';OQWO<<JxO';rQ^O<<ItP'=OQWO1G0nP'=oQ^O1G0nP.YQ_O1G0nP'?bQWO1G0nOOQVLD+rLD+rO'?gQWO7+)nOOQO,5>e,5>eOOQO-E;w-E;wO'?rQWO<<KqOOQVLD,rLD,rOOQSAN?OAN?OOOQV!$(!Q!$(!QO'?|QWO!$(!QOOQV!$(!h!$(!hO'@UQWO!$(!hOOQV!$(!Y!$(!YO'@]Q^OAN?`POQU7+&Y7+&YP'AvQWO7+&YP'BgQ^O7+&YP.YQ_O7+&YOOQV!)9El!)9ElOOQV!)9FS!)9FSPOQU<<It<<ItP'DYQWO<<ItP'DyQ^O<<ItPOQUAN?`AN?`O'FlQWO'#CnO'FsQXO'#CnO'GlQWO'#I`O'IRQXO'#I`O'IxQWO'#DpO'IxQWO'#DpO!.cQ_O'#EkO'JZQ_O'#EoO'JbQ_O'#FPO'MfQ_O'#FbO'MmQXO'#I`O'NdQ_O'#E}O( gQ_O'#FWO'IxQWO,5:[O'IxQWO,5:[O!.cQ_O,5;ZO!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;fO(!jQ_O,5;kO(%nQWO,5;kO(&OQWO,5;|O(&VQYO'#CuO(&bQYO'#CvO(&mQWO'#CwO(&mQWO'#CwO('OQYO'#CtO('ZQWO,5;iO('bQWO,5;rO('iQ_O,5;rO((oQ_O,5;|O'IxQWO1G/vO((vQWO1G0uO(*eQWO1G0wO(*oQWO1G0wO(,dQWO1G0wO(,kQWO1G0wO(.]QWO1G0wO(.dQWO1G0wO(0UQWO1G0wO(0]QWO1G0wO(0dQWO1G1QO(0tQWO1G1VO(1UQYO'#IeO(&mQWO,59cO(&mQWO,59cO(1aQWO1G1^O(1hQWO1G1hO(&mQWO1G.}O(1oQWO'#DpO!.^QXO'#FbO(1tQWO,5;ZO(1{QWO'#Cw",stateData:"(2_~O&|OSUOS&}PQ~OPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'TQO'ZkO'^UO'gcO'qiO(QdO~O&}!sO~OZbX[bXdbXdlXobXwjX}bX!lbX!qbX!tbX#ObX#PbX#pbX'gbX'qbX'rbX'xbX'ybX'zbX'{bX'|bX'}bX(ObX(PbX(QbX(RbX(TbX~OybXXbX!ebX!PbXvbX#RbX~P$|OZ'SX['SXd'SXd'XXo'SXw'kXy'SX}'SX!l'SX!q'SX!t'SX#O'SX#P'SX#p'SX'g'SX'q'SX'r'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SXv'SX~OX'SX!e'SX!P'SX#R'SX~P'ZOr!uO']!wO'_!uO~Od!xO~O^RO_RO`ROaRO'TQO~Od!}O~Od#PO[(SXo(SXy(SX}(SX!l(SX!q(SX!t(SX#O(SX#P(SX#p(SX'g(SX'q(SX'r(SX'x(SX'y(SX'z(SX'{(SX'|(SX'}(SX(O(SX(P(SX(Q(SX(R(SX(T(SXv(SX~OZ#OO~P*`OZ#RO[#QO~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'T#SO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!j#eO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xO[#}Oo#xO}#zO!l#yO!q#jO!t#yO#O#xO#P#uO#p$OO'g#gO'q#yO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~OPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXy#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sXX#sX!e#sX!P#sXv#sX#R#sX~P)xOX(SX!e(SX!P(SXw(SX#R(SX~P*`OPoOQ!QOSVOTVOX$ROZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!P$XO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOQ!QOSVOTVO[$gO^$pO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j$rOP(XP~P<cOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q$uO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw$vO~Oo'bX#O'bX#P'bX#p'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(R'bX(T'bX~OP%tXQ%tXS%tXT%tXZ%tX[%tX^%tX_%tX`%tXa%tXd%tXg%tXs%tXt%tXu%tXw%tXy%tX|%tX}%tX!Q%tX!U%tX!W%tX!X%tX!Z%tX!]%tX!l%tX!q%tX!t%tX#Y%tX#r%tX#{%tX$O%tX$b%tX$d%tX$f%tX$i%tX$m%tX$q%tX$s%tX%T%tX%V%tX%Z%tX%]%tX%^%tX%f%tX%j%tX%s%tX&z%tX'Q%tX'T%tX'Z%tX'^%tX'g%tX'q%tX(Q%tXv%tX~P@[Oy$xO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bXv'bX~P@[Ow$yO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Oy$zO~PEsO!Q$}O!U%UO!W!lO$m%OO$q%PO$s%QO%T%RO%V%SO%Z%TO%]!lO%^%VO%f%WO%j%XO%s%YO~O!Q!lO!U!lO!W!lO$q%[O%]!lO~O%^%VO~PGaOPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'TQO'ZkO'^UO'gcO'qiO(QdO~Ov%`O~P]OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~P'ZO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~O}%}O'T{XQ{XZ{X[{X^{X_{X`{Xa{Xd{Xg{X!q{X$f{X&W{X'Z{X(Q{X~PMuOg&PO%f%WO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Ow!PO~P! yOw!PO!X&RO~PEvOPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!]&UO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#qXy#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qXX#qX!e#qX!P#qXv#qX#R#qX~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zXy#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zXX#zX!e#zX!P#zXv#zX#R#zX~P)xO'ZkO[#}Xo#}Xy#}X}#}X!l#}X!q#}X!t#}X#O#}X#P#}X#p#}X'g#}X'q#}X'r#}X'x#}X'y#}X'z#}X'{#}X'|#}X'}#}X(O#}X(P#}X(Q#}X(R#}X(T#}XX#}X!e#}X!P#}Xv#}Xw#}X#R#}X~OPoO~OPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~O!S&_O~Ow!PO~O!j&bO~P<cO'T&cO~PEvOZ&eO~O'T&cO~O'^UOw(^Xy(^X!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Oa&hO~P!1iO'T&iO~O_&nO'T&cO~OQ&oOZ&pO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!j&uO~P<cO^&wO_&wO`&wOa&wOd'POw&|O'T&vO(Q&}O~O!i'UO!j'TO'T&cO~O&}!sO'O'VO'P'XO~Or!uO']'ZO'_!uO~OQ']O^'ia_'ia`'iaa'ia'T'ia~O['cOw'dO}'bO~OQ']O~OQ!QO^#TO_#TO`#TOa'kOd#ZO'T#SO~O['lO~OZbXdlXXbXobXPbX!SbX!ebX'rbX!PbX!ObXybX!ZbX#RbXvbX~O[bXwbX}bX~P!6mOZ'SXd'XXX'SX['SXo'SXw'SX}'SX#p'SXP'SX!S'SX!e'SX'r'SX!P'SX!O'SXy'SX!Z'SX#R'SXv'SX~O^#TO_#TO`#TOa'kO'T#SO~OZ'mO~Od'oO~OZ'SXd'XX~PMuOZ'pOX(SX!e(SX!P(SXw(SX#R(SX~P*`O[#}O}#zO(O#|O(R#fOo#_ay#_a!l#_a!q#_a!t#_a#O#_a#P#_a#p#_a'g#_a'q#_a'r#_a'x#_a'y#_a'z#_a'{#_a'|#_a'}#_a(P#_a(Q#_a(T#_aX#_a!e#_a!P#_av#_aw#_a#R#_a~Ow!PO!X&RO~Oy#caX#ca!e#ca!P#cav#ca#R#ca~P2gOPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#say#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#saX#sa!e#sa!P#sav#sa#R#sa~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P(UP~P)xOu(SO#w(TO'T(RO~O[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#sa!t#sa#p#sa'q#sa~Oo#xO#O#xO#P#uOy#saX#sa!e#sa!P#sav#sa#R#sa~P!B}Oy(YO!e(WOX(WX~P2gOX(ZO~OPoOQ!QOSVOTVOX(ZOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZ#RO~O!P(_O!e(WO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZbXdlXwjX}jX!tbX'qbX~OP!RX!S!RX!e!RX'p!RX'r!RX!O!RXo!RXy!RX!P!RXX!RX!Z!RX#R!RXv!RX~P!JUOZ'SXd'XXw'kX}'kX!t'SX'q'SX~OP!`X!S!`X!e!`X'r!`X!O!`Xo!`Xy!`X!P!`XX!`X!Z!`X#R!`Xv!`X~P!KgOT(aOu(aO~O!t(bO'q(bOP!^X!S!^X!e!^X'r!^X!O!^Xo!^Xy!^X!P!^XX!^X!Z!^X#R!^Xv!^X~O^9rO_9rO`9yOa9yO'T9pO~Od(eO~O'p(fOP'hX!S'hX!e'hX'r'hX!O'hXo'hXy'hX!P'hXX'hX!Z'hX#R'hXv'hX~O!j&bO!P'lP~P<cOw(kO}(jO~O!j&bOX'lP~P<cO!j(oO~P<cOZ'pO!t(bO'q(bO~O!S(qO'r(pOP$WX!e$WX~O!e(rOP(YX~OP(tO~OP!aX!S!aX!e!aX'r!aX!O!aXo!aXy!aX!P!aXX!aX!Z!aX#R!aXv!aX~P!KgOy$UaX$Ua!e$Ua!P$Uav$Ua#R$Ua~P2gO!l(|O'Q#VO'T(xOv(ZP~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'T#SO~Ov)TO~P#$iOy)VO~PEsO%^)WO~PGaOa)ZO~P!1iO%f)`O~PEvO_)aO'T&cO~O!i)fO!j)eO'T&cO~O'^UO!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Ov%uX~P2gOv)gO~PGyOv)gO~Ov)gO~P]OQiXQ'XXZiXd'XX}iX#piX(PiX~ORiXwiX$fiX$|iX[iXoiXyiX!liX!qiX!tiX#OiX#PiX'giX'qiX'riX'xiX'yiX'ziX'{iX'|iX'}iX(OiX(QiX(RiX(TiX!PiX!eiXXiXPiXviX!SiX#RiX~P#(kOQjXQlXRjXZjXdlX}jX#pjX(PjXwjX$fjX$|jX[jXojXyjX!ljX!qjX!tjX#OjX#PjX'gjX'qjX'rjX'xjX'yjX'zjX'{jX'|jX'}jX(OjX(QjX(RjX(TjX!PjX!ejXXjX!SjXPjXvjX#RjX~O%^)jO~PGaOQ']Od)kO~O^)mO_)mO`)mOa)mO'T%dO~Od)qO~OQ']OZ)uO})sOR'UX#p'UX(P'UXw'UX$f'UX$|'UX['UXo'UXy'UX!l'UX!q'UX!t'UX#O'UX#P'UX'g'UX'q'UX'r'UX'x'UX'y'UX'z'UX'{'UX'|'UX'}'UX(O'UX(Q'UX(R'UX(T'UX!P'UX!e'UXX'UXP'UXv'UX!S'UX#R'UX~OQ!QO^:bO_:^O`TOaTOd:aO%^)jO'T:_O~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!j)yO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!P)|O!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO(P*OO~OR*QO#p*RO(P*PO~OQhXQ'XXZhXd'XX}hX(PhX~ORhX#phXwhX$fhX$|hX[hXohXyhX!lhX!qhX!thX#OhX#PhX'ghX'qhX'rhX'xhX'yhX'zhX'{hX'|hX'}hX(OhX(QhX(RhX(ThX!PhX!ehXXhXPhXvhX!ShX#RhX~P#4kOQ*SO~O})sO~OQ!QO^%vO_%cO`TOaTOd%jO$f%wO%^%xO'T%dO~PGaO!Q*VO!j*VO~O^*YO`*YOa*YO!O*ZO~OQ&oOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO[#}Oo:YO}#zO!l:ZO!q#jO!t:ZO#O:YO#P:VO#p$OO'g#gO'q:ZO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~Ow'dX~P#9vOy#qaX#qa!e#qa!P#qav#qa#R#qa~P2gOy#zaX#za!e#za!P#zav#za#R#za~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!S&_O!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zay#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#zaX#za!e#za!P#zav#za#R#za~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q*eO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw*fO~P#9vO$b*iO$d*jO$f*kO~O!O*lO'r(pO~O!S*nO~O'T*oO~Ow$yOy*qO~O'T*rO~OQ*uOw*vOy*yO}*wO$|*xO~OQ*uOw*vO$|*xO~OQ*uOw+QO$|*xO~OQ*uOo+VOy+XO!S+UO~OQ*uO}+ZO~OQ!QOZ%rO[%qO^%vO`TOaTOd%jOg%yO}%pO!U!lO!W!lO!q%oO$f%wO$q%[O%]!lO%^%xO&W%{O'T%dO'Z%eO(Q%zO~OR+bO_+^O!Q+cO~P#DkO_%cO!Q!lOw&UX$|&UX(P&UX~P#DkOw$yO$f+hO$|*xO(P*PO~OQ!QOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ*uOw$yO!S+UO$|*xO~Oo+nOy+mO!S+oO'r(pO~OdlXy!RX#pbXv!RX!e!RX~Od'XXy(mX#p'SXv(mX!e(mX~Od+qO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q+vO~Ov(oP~P!3|O#p+{O~Oy+|O~O!S+}O~O&}!sO'O'VO'P,PO~Od,QO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UO~P#DkOS,^OT,^OZ,^O['cO_,YOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~O!P,dO~P#KkOX,gO~P#KkOv,iO~P#KkOo'tX#O'tX#P'tX#p'tX'r'tX'x'tX'y'tX'z'tX'{'tX'|'tX'}'tX(O'tX(P'tX(R'tX(T'tX~Oy,jO['tX}'tX!l'tX!q'tX!t'tX'g'tX'q'tX(Q'tXv'tX~P#NjOP$giQ$giS$giT$giZ$gi[$gi^$gi_$gi`$gia$gid$gig$gis$git$giu$giw$giy$gi|$gi}$gi!Q$gi!U$gi!W$gi!X$gi!Z$gi!]$gi!l$gi!q$gi!t$gi#Y$gi#r$gi#{$gi$O$gi$b$gi$d$gi$f$gi$i$gi$m$gi$q$gi$s$gi%T$gi%V$gi%Z$gi%]$gi%^$gi%f$gi%j$gi%s$gi&z$gi'Q$gi'T$gi'Z$gi'^$gi'g$gi'q$gi(Q$giv$gi~P#NjOX,kO~O['cOo,lOw'dO}'bOX]X~Oy#ciX#ci!e#ci!P#civ#ci#R#ci~P2gO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei(P#ei~P$'PO[#}O}#zO(O#|O(R#fOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei'x#ei(P#ei(Q#ei(T#eiw#ei~P$)QO'g#gO(P#gO~P$'PO[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O!q#ei~P$+`O!q#jO~P$+`O[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'r#ei~P$-hO'r#lO~P$-hO[#}O}#zO!q#jO#P#uO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#eiX#ei!e#ei!P#eiv#ei#R#ei~O'}#ei~P$/pO'}#mO~P$/pO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#ni!t#ni#p#ni'q#ni~Oo#xO#O#xO#P#uOy#niX#ni!e#ni!P#niv#ni#R#ni~P$1xO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#si!t#si#p#si'q#si~Oo#xO#O#xO#P#uOy#siX#si!e#si!P#siv#si#R#si~P$3yOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO~P)xO!e,sO!P(VX~P2gO!P,uO~OX,vO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOX&fX!e&fX!P&fX~P)xO!e(WOX(Wa~Oy,zO!e(WOX(WX~P2gOX,{O~O!P,|O!e(WO~O!P-OO!e(WO~P2gOSVOTVOsVOtVOuVO'^UO'g$[O~P!6POP!baZca!S!ba!e!ba!tca'qca'r!ba!O!bao!bay!ba!P!baX!ba!Z!ba#R!bav!ba~O!e-TO'r(pO!P'mXX'mX~O!P-VO~O!i-`O!j-_O!l-[O'T-XOv'nP~OX-aO~O_%cO!Q!lO~P#DkO!j-gOP&gX!e&gX~P<cO!e(rOP(Ya~O!S-iO'r(pOP$Wa!e$Wa~Ow!PO(P*PO~OvbX!S!kX!ebX~O'Q#VO'T(xO~O!S-mO~O!e-oOv([X~Ov-qO~Ov-sO~P,cOv-sO~P#$iO_-uO'T&cO~O!S-vO~Ow$yOy-wO~OQ*uOw*vOy-zO}*wO$|*xO~OQ*uOo.UO~Oy._O~O!S.`O~O!j.bO'T&cO~Ov.cO~Ov.cO~PGyOQ']O^'Wa_'Wa`'Waa'Wa'T'Wa~Od.gO~OQ'XXQ'kXR'kXZ'kXd'XX}'kX#p'kX(P'kXw'kX$f'kX$|'kX['kXo'kXy'kX!l'kX!q'kX!t'kX#O'kX#P'kX'g'kX'q'kX'r'kX'x'kX'y'kX'z'kX'{'kX'|'kX'}'kX(O'kX(Q'kX(R'kX(T'kX!P'kX!e'kXX'kXP'kXv'kX!S'kX#R'kX~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t.kO#V.mO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(sP~PGaO#Q.tOR%wa#p%wa(P%waw%wa$f%wa$|%wa[%wao%way%wa}%wa!l%wa!q%wa!t%wa#O%wa#P%wa'g%wa'q%wa'r%wa'x%wa'y%wa'z%wa'{%wa'|%wa'}%wa(O%wa(Q%wa(R%wa(T%wa!P%wa!e%waX%waP%wav%wa!S%wa#R%wa~O%^.vO~PGaO(P*POR&Oa#p&Oaw&Oa$f&Oa$|&Oa[&Oao&Oay&Oa}&Oa!l&Oa!q&Oa!t&Oa#O&Oa#P&Oa'g&Oa'q&Oa'r&Oa'x&Oa'y&Oa'z&Oa'{&Oa'|&Oa'}&Oa(O&Oa(Q&Oa(R&Oa(T&Oa!P&Oa!e&OaX&OaP&Oav&Oa!S&Oa#R&Oa~O_%cO!Q!lO!j.xO(P*OO~P#DkO!e.yO(P*PO!P(uX~O!P.{O~OX.|Oy.}O(P*PO~O'Z%eOR(qP~OQ']O})sORfa#pfa(Pfawfa$ffa$|fa[faofayfa!lfa!qfa!tfa#Ofa#Pfa'gfa'qfa'rfa'xfa'yfa'zfa'{fa'|fa'}fa(Ofa(Qfa(Rfa(Tfa!Pfa!efaXfaPfavfa!Sfa#Rfa~OQ']O})sOR&Va#p&Va(P&Vaw&Va$f&Va$|&Va[&Vao&Vay&Va!l&Va!q&Va!t&Va#O&Va#P&Va'g&Va'q&Va'r&Va'x&Va'y&Va'z&Va'{&Va'|&Va'}&Va(O&Va(Q&Va(R&Va(T&Va!P&Va!e&VaX&VaP&Vav&Va!S&Va#R&Va~O!P/UO~Ow$yO$f/ZO$|*xO(P*PO~OQ!QOZ/[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOo/^O'r(pO~O#W/_OP!YiQ!YiS!YiT!YiZ!Yi[!Yi^!Yi_!Yi`!Yia!Yid!Yig!Yio!Yis!Yit!Yiu!Yiw!Yiy!Yi|!Yi}!Yi!Q!Yi!U!Yi!W!Yi!X!Yi!Z!Yi!]!Yi!l!Yi!q!Yi!t!Yi#O!Yi#P!Yi#Y!Yi#p!Yi#r!Yi#{!Yi$O!Yi$b!Yi$d!Yi$f!Yi$i!Yi$m!Yi$q!Yi$s!Yi%T!Yi%V!Yi%Z!Yi%]!Yi%^!Yi%f!Yi%j!Yi%s!Yi&z!Yi'Q!Yi'T!Yi'Z!Yi'^!Yi'g!Yi'q!Yi'r!Yi'x!Yi'y!Yi'z!Yi'{!Yi'|!Yi'}!Yi(O!Yi(P!Yi(Q!Yi(R!Yi(T!YiX!Yi!e!Yi!P!Yiv!Yi!i!Yi!j!Yi#V!Yi#R!Yi~Oy#ziX#zi!e#zi!P#ziv#zi#R#zi~P2gOy$UiX$Ui!e$Ui!P$Uiv$Ui#R$Ui~P2gOv/eO!j&bO'Q`O~P<cOw/nO}/mO~Oy!RX#pbX~Oy/oO~O#p/pO~OR+bO_+dO!Q/sO'T&iO'Z%eO~Oa/zO|!VO'Q#VO'T(ROv(cP~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(eP~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw(`Py(`P~PGaOw*vO~Oy-zO$|*xO~Oa/zO|!VO'Q#VO'T*oOv(gP~Ow+QO~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zO(R0`O~PGaOy0dO~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t0hO'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V0nO!P(jP~P%1}Ow!POy0pO#Q0rO$|*xO~OR0uO!e0sO~P#(kOR0uO!S+UO!e0sO(P*OO~OR0uOo0wO!S+UO!e0sOQ'VXZ'VX}'VX#p'VX(P'VX~OR0uOo0wO!e0sO~OR0uO!e0sO~O$f/ZO(P*PO~Ow$yO~Ow$yO$|*xO~Oo0}Oy0|O!S1OO'r(pO~O!e1POv(pX~Ov1RO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q1VO~Oo1YOQ'VXR'VXZ'VX}'VX!e'VX(P'VX~O!e1ZO(P*POR'YX~O!e1ZOR'YX~O!e1ZO(P*OOR'YX~OR1]O~O!S1^OS'wXT'wXZ'wX['wX_'wXd'wXo'wXs'wXu'wXw'wXy'wX}'wX!P'wX!e'wX!l'wX!q'wX!t'wX!y'wX#O'wX#P'wX#Q'wX#R'wX'Q'wX'Z'wX'^'wX'g'wX'r'wX'v'wX'x'wX'y'wX'z'wX'{'wX'|'wX'}'wX(O'wX(P'wX(Q'wX(R'wXX'wXv'wX~O}1_O~O!P1aO~P#KkOX1bO~P#KkOv1cO~P#KkOS,^OT,^OZ,^O['cO_1dOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~OX1fO~Oy,jO~O!e,sO!P(Va~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P&eX!e&eX~P)xO!e,sO!P(Va~OX&fa!e&fa!P&fa~P2gOX1kO~P2gO!P1mO!e(WO~OP!biZci!S!bi!e!bi!tci'qci'r!bi!O!bio!biy!bi!P!biX!bi!Z!bi#R!biv!bi~O'r(pOP!oi!S!oi!e!oi!O!oio!oiy!oi!P!oiX!oi!Z!oi#R!oiv!oi~O!j&bO!P&`X!e&`XX&`X~P<cO!e-TO!P'maX'ma~O!P1qO~Ov!RX!S!kX!e!RX~O!S1rO~O!e1sOv'oX~Ov1uO~O'T-XO~O!j1xO'T-XO~O(P*POP$Wi!e$Wi~O!S1yO'r(pOP$XX!e$XX~O!S1|O~Ov$_a!e$_a~P2gO!l(|O'Q#VO'T(xOv&hX!e&hX~O!e-oOv([a~Ov2QO~P,cOy2UO~O#p2VO~Oy2WO$|*xO~Ow*vOy2WO}*wO$|*xO~Oo2aO~Ow!POy2fO#Q2hO$|*xO~O!S2jO~Ov2lO~O#Q2mOR%wi#p%wi(P%wiw%wi$f%wi$|%wi[%wio%wiy%wi}%wi!l%wi!q%wi!t%wi#O%wi#P%wi'g%wi'q%wi'r%wi'x%wi'y%wi'z%wi'{%wi'|%wi'}%wi(O%wi(Q%wi(R%wi(T%wi!P%wi!e%wiX%wiP%wiv%wi!S%wi#R%wi~Od2nO~O^2qO!j.sO!q2rO'Q#VO'Z%eO~O(P*PO!P%{X!e%{X~O!e2sO!P(tX~O!P2uO~OQ!QOZ%rO[%qO^2wO_%cO`TOaTOd%jOg%yO}%pO!j2xO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO^2yO!j2xO(P*OO~O!P%aX!e%aX~P#4kO^2yO~O(P*POR&Oi#p&Oiw&Oi$f&Oi$|&Oi[&Oio&Oiy&Oi}&Oi!l&Oi!q&Oi!t&Oi#O&Oi#P&Oi'g&Oi'q&Oi'r&Oi'x&Oi'y&Oi'z&Oi'{&Oi'|&Oi'}&Oi(O&Oi(Q&Oi(R&Oi(T&Oi!P&Oi!e&OiX&OiP&Oiv&Oi!S&Oi#R&Oi~O_%cO!Q!lO!P&yX!e&yX~P#DkO!e.yO!P(ua~OR3QO(P*PO~O!e3ROR(rX~OR3TO~O(P*POR&Pi#p&Piw&Pi$f&Pi$|&Pi[&Pio&Piy&Pi}&Pi!l&Pi!q&Pi!t&Pi#O&Pi#P&Pi'g&Pi'q&Pi'r&Pi'x&Pi'y&Pi'z&Pi'{&Pi'|&Pi'}&Pi(O&Pi(Q&Pi(R&Pi(T&Pi!P&Pi!e&PiX&PiP&Piv&Pi!S&Pi#R&Pi~O!P3UO~O$f3VO(P*PO~Ow$yO$f3VO$|*xO(P*PO~Ow!PO!Z!YO~O!Z3aO#R3_O'r(pO~O!j&bO'Q#VO~P<cOv3eO~Ov3eO!j&bO'Q`O~P<cO!O3hO'r(pO~Ow!PO~P#9vOo3kOy3jO(P*PO~O!P3oO~P%;pOv3rO~P%;pOR0uO!S+UO!e0sO~OR0uOo0wO!S+UO!e0sO~Oa/zO|!VO'Q#VO'T(RO~O!S3uO~O!e3wOv(dX~Ov3yO~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO~PGaO!e3|O(P*PO!P(fX~O!P4OO~O!S4PO(P*OO~O!S+UO(P*PO~O!e4ROw(aXy(aX~OQ4TO~Oy2WO~Oa/zO|!VO'Q#VO'T*oO~Oo4WOw*vO}*wOv%XX!e%XX~O!e4ZOv(hX~Ov4]O~O(P4_Oy(_Xw(_X$|(_XR(_Xo(_X!e(_X~Oy4aO(P*PO~OQ!QOSVOTVO[$gO^4bO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j4cO'Z%eO~P&,sO!S4eO'r(pO~O#V4gO~P%1}O!e4hO!P(kX~O!P4jO~O!P%aX!S!aX!e%aX'r!aX~P!KgO!j&bO~P&,sO!e4hO!P(kX!S'eX'r'eX~O^2yO!j2xO~Ow!POy2fO~O_4pO!Q/sO'T&iO'Z%eOR&lX!e&lX~OR4rO!e0sO~O!S4tO~Ow$yO$|*xO(P*PO~Oy4uO~P2gOo4vOy4uO(P*PO~Ov&uX!e&uX~P!3|O!e1POv(pa~Oo4|Oy4{O(P*PO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UOR&vX!e&vX~P#DkO!e1ZOR'Ya~O!y5SO~O!P5TO~P#KkO!S1^OX'wX#R'wX~O!e,sO!P(Vi~O!P&ea!e&ea~P2gOX5WO~P2gOP!bqZcq!S!bq!e!bq!tcq'qcq'r!bq!O!bqo!bqy!bq!P!bqX!bq!Z!bq#R!bqv!bq~O'r(pO!P&`a!e&`aX&`a~O!i-`O!j-_O!l5YO'T-XOv&aX!e&aX~O!e1sOv'oa~O!S5[O~O!S5`O'r(pOP$Xa!e$Xa~O(P*POP$Wq!e$Wq~Ov$^i!e$^i~P2gOw!POy5bO#Q5dO$|*xO~Oo5gOy5fO(P*PO~Oy5iO~Oy5iO$|*xO~Oy5mO(P*PO~Ow!POy5bO~Oo5tOy5sO(P*PO~O!S5vO~O!e2sO!P(ta~O^2yO!j2xO'Z%eO~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t5zO#V5|O$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&xX!e&xX~PGaOQ!QOZ%rO[%qO^6OO_%cO`TOaTOd%jOg%yO}%pO!j6PO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(P*OO(Q%zO~PGaO!P%aa!e%aa~P#4kO^6QO~O#Q6ROR%wq#p%wq(P%wqw%wq$f%wq$|%wq[%wqo%wqy%wq}%wq!l%wq!q%wq!t%wq#O%wq#P%wq'g%wq'q%wq'r%wq'x%wq'y%wq'z%wq'{%wq'|%wq'}%wq(O%wq(Q%wq(R%wq(T%wq!P%wq!e%wqX%wqP%wqv%wq!S%wq#R%wq~O(P*POR&Oq#p&Oqw&Oq$f&Oq$|&Oq[&Oqo&Oqy&Oq}&Oq!l&Oq!q&Oq!t&Oq#O&Oq#P&Oq'g&Oq'q&Oq'r&Oq'x&Oq'y&Oq'z&Oq'{&Oq'|&Oq'}&Oq(O&Oq(Q&Oq(R&Oq(T&Oq!P&Oq!e&OqX&OqP&Oqv&Oq!S&Oq#R&Oq~O(P*PO!P&ya!e&ya~OX6SO~P2gO'Z%eOR&wX!e&wX~O!e3ROR(ra~O$f6YO(P*PO~Ow![q~P#9vO#R6]O~O!Z3aO#R6]O'r(pO~Ov6bO~O#R6fO~Oy6gO!P6hO~O!P6hO~P%;pOy6kO~Ov6kOy6gO~Ov6kO~P%;pOy6mO~O!e3wOv(da~O!S6pO~Oa/zO|!VO'Q#VO'T(ROv&oX!e&oX~O!e3|O(P*PO!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&pX!e&pX~PGaO!e3|O!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw&nX!e&nXy&nX~PGaO!e4ROw(aay(aa~O!e4ZOv(ha~Oo7SOv%Xa!e%Xa~Oo7SOw*vO}*wOv%Xa!e%Xa~Oa/zO|!VO'Q#VO'T*oOv&qX!e&qX~O(P*POy$xaw$xa$|$xaR$xao$xa!e$xa~O(P4_Oy(_aw(_a$|(_aR(_ao(_a!e(_a~O!P%aa!S!aX!e%aa'r!aX~P!KgOQ!QOSVOTVO[$gO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j&bO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O^7ZO~P&JUO^6QO!j6PO~O!e4hO!P(ka~O!e4hO!P(ka!S'eX'r'eX~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t7_O'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V7aO!P&sX!e&sX~P&L]O!S7cO'r(pO~Ow!POy5bO$|*xO(P*PO~O!S+UOR&la!e&la~Oo0wO!S+UOR&la!e&la~Oo0wOR&la!e&la~O(P*POR$yi!e$yi~Oy7fO~P2gOo7gOy7fO(P*PO~O(P*PORni!eni~O(P*POR&va!e&va~O(P*OOR&va!e&va~OS,^OT,^OZ,^O_,^Od,^Oo,^Os,^Ou,^Oy,^O!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O~O(P7iO(Q7iO(R7iO~P'!qO!P7kO~P#KkO!P&ei!e&ei~P2gO'r(pOv!hi!e!hi~O!S7mO~O(P*POP$Xi!e$Xi~Ov$^q!e$^q~P2gOw!POy7oO~Ow!POy7oO#Q7rO$|*xO~Oy7tO~Oy7uO~Oy7vO(P*PO~Ow!POy7oO$|*xO(P*PO~Oo7{Oy7zO(P*PO~O!e2sO!P(ti~O(P*PO!P%}X!e%}X~O!P%ai!e%ai~P#4kO^8OO~O!e8TO['bXv$`i}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[iv$`i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R#^a~P2gO#R8WO~O!Z3aO#R8XO'r(pO~Ov8[O~Oy8^O~P2gOy8`O~Oy6gO!P8aO~Ov8`Oy6gO~O!e3wOv(di~O(P*POv%Qi!e%Qi~O!e3|O!P(fi~O!e3|O(P*PO!P(fi~O(P*PO!P&pa!e&pa~O(P8hOw(bX!e(bXy(bX~O(P*PO!S$wiy$wiw$wi$|$wiR$wio$wi!e$wi~O!e4ZOv(hi~Ov%Xi!e%Xi~P2gOo8kOv%Xi!e%Xi~O!P%ai!S!aX!e%ai'r!aX~P!KgO(P*PO!P%`i!e%`i~O!e4hO!P(ki~O#V8nO~P&L]O!P&sa!S'eX!e&sa'r'eX~O(P*POR$zq!e$zq~Oy8pO~P2gOy7zO~P2gO(P8rO(Q8rO(R8rO~O(P8rO(Q8rO(R8rO~P'!qO'r(pOv!hq!e!hq~O(P*POP$Xq!e$Xq~Ow!POy8uO$|*xO(P*PO~Ow!POy8uO~Oy8xO~P2gOy8zO~P2gOo8|Oy8zO(P*PO~OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[qv$`q}#[q!i#[q!j#[q!l#[q!q#[q#V#[q'Q#[q'T#[q'^#[q'g#[q~O!e9PO['bXv$`q}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'2fO#R9UO~O!Z3aO#R9UO'r(pO~Oy9WO~O(P*POv%Qq!e%Qq~O!e3|O!P(fq~O(P*PO!P&pi!e&pi~O(P8hOw(ba!e(bay(ba~Ov%Xq!e%Xq~P2gO!P&si!S'eX!e&si'r'eX~O(P*PO!P%`q!e%`q~Oy9]O~P2gO(P9^O(Q9^O(R9^O~O'r(pOv!hy!e!hy~Ow!POy9_O~Ow!POy9_O$|*xO(P*PO~Oy9aO~P2gOQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[yv$`y}#[y!i#[y!j#[y!l#[y!q#[y#V#[y'Q#[y'T#[y'^#[y'g#[y~O!e9dO['bXv$`y}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'9eO!e9eO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R9hO~O(P*PO!P&pq!e&pq~Ov%Xy!e%Xy~P2gOw!POy9iO~Oy9jO~P2gOQ#[!RS#[!RT#[!R[#[!R^#[!R_#[!R`#[!Ra#[!Rd#[!Rs#[!Rt#[!Ru#[!Rv$`!R}#[!R!i#[!R!j#[!R!l#[!R!q#[!R#V#[!R'Q#[!R'T#[!R'^#[!R'g#[!R~O!e9kO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[q}#[q!i#[q!j#[q!l#[q!q#[q!t'bX#V#[q'Q#[q'T#[q'^#[q'g#[q'q'bX(Q'bX~P@[O!e9nO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[y}#[y!i#[y!j#[y!l#[y!q#[y!t'bX#V#[y'Q#[y'T#[y'^#[y'g#[y'q'bX(Q'bX~P@[OwbX~P$|OwjX}jX!tbX'qbX~P!6mOZ'SXd'XXo'SXw'kX!t'SX'q'SX'r'SX~O['SXd'SXw'SX}'SX!l'SX!q'SX#O'SX#P'SX#p'SX'g'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SX~P'GTOP'SX}'kX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTO^9qO_9qO`9qOa9qO'T9oO~O!j:OO~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXw#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sX~P'IxO#Q$uO~P!.cO}'kXP'SX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTOo#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qX~P!.cOo#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zX~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#saw#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#sa~P'IxOo:YO#O:YO#P:VOw#sa~P!B}Ow$Ua~P#9vOQ'XXd'XX}iX~OQlXdlX}jX~O^:sO_:sO`:sOa:sO'T:_O~OQ'XXd'XX}hX~Ow#qa~P#9vOw#za~P#9vO!S&_Oo#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#za~P!.cO#Q*eO~P!.cOw#ci~P#9vO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#ei~O'g#ei(P#ei~P((}O'g#gO(P#gO~P((}O[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#ei~O!q#ei~P(*yO!q#jO~P(*yO[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#ei~O'r#ei~P(,rO'r#lO~P(,rO[#}O}#zO!q#jO#P:VO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#ei~O'}#ei~P(.kO'}#mO~P(.kOo:YO#O:YO#P:VOw#ni~P$1xOo:YO#O:YO#P:VOw#si~P$3yOQ'XXd'XX}'kX~Ow#zi~P#9vOw$Ui~P#9vOd9}O~Ow#ca~P#9vOd:uO~OU'x_'v'P'O'^s!y'^'T'Z~",goto:"$Ku(vPPPPPPP(wPP)OPP)^PPPP)d-hP0f5aP7R7R8v7R>wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"\u26A0 | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[wR],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O_!<Z]'_QUX'PS'OSOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O]!=]XUX'PS'OSOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!=}XUXOY!>jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!<O_!CQjuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#U$n#U#V#!}#V#]$n#]#^!FZ#^#c$n#c#d#%u#d#i$n#i#j!FZ#j#l$n#l#m#(g#m;'S$n;'S;=`4s<%lO$n_!D{duX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_!Fbg'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R$n!R!S!Gy!S!T$n!T!U!K_!U!W$n!W!X!Le!X!Y$n!Y!Z!J]!Z#O$n#O#P&[#P#g$n#g#h!Mk#h;'S$n;'S;=`4s<%lO$n_!HQa'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!IV!T!W$n!W!X!J]!X#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!I^_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y$n!Y!Z!J]!Z#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Jf]uX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Kf_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!J]!T#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Ll_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!U$n!U!V!J]!V#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Mr_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#]$n#]#^!Nq#^;'S$n;'S;=`4s<%lO$n_!Nx_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#n$n#n#o# w#o;'S$n;'S;=`4s<%lO$n_#!O_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#X$n#X#Y!J]#Y;'S$n;'S;=`4s<%lO$n_##Ua'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S;'S$n;'S;=`4s<%lO$n_#$deuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#%|`'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S;'S$n;'S;=`4s<%lO$n_#'XduX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#(nd'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z;'S$n;'S;=`4s<%lO$n_#*VhuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#+z_!SX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![$n![!]#,y!]#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#-S]dX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#.U]yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#/W`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!^$n!^!_#0Y!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#0c_'yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#1k`oX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#2m!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#2v]#RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#3x`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#4z!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#5T_'zX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#6]](RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV#7_]'pP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#8cj'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n_#:^][X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU#;[Z'OSOz#;}z{#<k{!P#;}!P!Q#=V!Q#i#;}#i#j#=n#j#l#;}#l#m#?j#m;'S#;};'S;=`#C[<%lO#;}U#<UVrQ'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[U#<pVrQOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`U#=[UrQOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`U#=s^'OSOz&[z{&v{!P&[!P!Q'x!Q![#>o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[gR,yR,OR,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>SR[e]||-1,"get")}],tokenPrec:15596})});import dn from"fs/promises";import Oc from"path";function mh(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function gc(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function G(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function ve(e,t){return e.slice(t.from,t.to)}function Be(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function Ze(e,t){return e[t-1]?.trim()||"<unknown>"}function bR(e,t){let n=[];return G(t,r=>{if(r.type.name!=="ImportStatement")return;let i=ve(e,r).trim(),o=/^from\s+([.\w]+)\s+import\b/.exec(i);if(o?.[1]){n.push(o[1]);return}o=/^import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+as\s+/i)[0]??"").filter(Boolean))}),fe(n,12)}function hc(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return ve(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return G(t,i=>{let o=hc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?hc(e,n):null}function ph(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?hc(e,o):null;a&&!Ee.has(a)&&n.add(a)}G(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function hh(e,t,n){let r=[];for(let i of t){let o=Oc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=ih.parse(c).topNode,u=te(i),m=de(u),g=ze(m),w=bR(c,f),k=[],h=be(i,n).id;G(f,y=>{if(y.type.name==="FunctionDefinition"){let v=null;if(G(y,A=>{A.type.name==="VariableName"&&!v&&(v=ve(c,A).trim())}),!v)return;let b=v,I=Be(c,y);k.push({id:`${i}#${b}:${I}`,name:b,qualifiedName:`${i}:${b}`,kind:"function",filePath:i,moduleId:h,language:u,capabilityTier:m,line:I,signature:Ze(d,I),exported:!b.startsWith("_"),calls:ph(c,y),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let P=null,S=null;if(G(y,v=>{v.type.name==="VariableName"&&!P?P=ve(c,v).trim():v.type.name==="Body"&&(S=v)}),!P)return;let Q=P,x=Be(c,y);k.push({id:`${i}#${Q}:${x}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"class",filePath:i,moduleId:h,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:!Q.startsWith("_"),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.99,g+.08)}),S&&G(S,v=>{if(v.type.name!=="FunctionDefinition")return;let b=null;if(G(v,R=>{R.type.name==="VariableName"&&!b&&(b=ve(c,R).trim())}),!b)return;let I=b,A=Be(c,v);k.push({id:`${i}#${Q}.${I}:${A}`,name:I,qualifiedName:`${i}:${Q}.${I}`,kind:"method",filePath:i,moduleId:h,language:u,capabilityTier:m,line:A,signature:Ze(d,A),exported:!I.startsWith("_"),calls:ph(c,v),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:h,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}function mr(e,t){let n=null;return G(e,r=>{!n&&t(r)&&(n=r)}),n}function PR(e,t){let n=null;return G(e,r=>{t(r)&&(n=r)}),n}function Oh(e,t){if(t(e))return e;let n=null;return G(e,r=>{n||(n=Oh(r,t))}),n}function oo(e,t,n){let r=new Set,i=s(o=>{if(o.type.name==="CallExpr"||o.type.name==="CallExpression"){let a=o.firstChild,c=a?n(e,a):null;c&&!Ee.has(c)&&r.add(c)}G(o,i)},"walk");return i(t),Array.from(r).slice(0,24)}function so(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return ve(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return G(t,i=>{let o=so(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?so(e,n):null}function ao(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return ve(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return G(t,i=>{let o=ao(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?ao(e,n):null}function cn(e,t,n){let r=mr(t,i=>i.type.name===n);return r?ve(e,r).trim():null}function mc(e,t){return/^pub(?:\([^)]*\))?\s/.test(ve(e,t).trimStart())}async function gh(e,t,n){let r=[];for(let i of t){let o=Oc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=zm.parse(c),f=be(i,n).id,u=te(i),m=de(u),g=ze(m),w=ir(c,u),k=[];G(l.topNode,h=>{if(h.type.name==="TypeDecl"){let v=mr(h,R=>R.type.name==="TypeSpec"),b=v?cn(c,v,"DefName"):null;if(!v||!b)return;let I=mr(v,R=>R.type.name==="InterfaceType")?"interface":"struct",A=Be(c,v);k.push({id:`${i}#${b}:${A}`,name:b,qualifiedName:`${i}:${b}`,kind:I,filePath:i,moduleId:f,language:u,capabilityTier:m,line:A,signature:Ze(d,A),exported:/^[A-Z]/.test(b),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name==="FunctionDecl"){let v=cn(c,h,"DefName");if(!v)return;let b=Be(c,h);k.push({id:`${i}#${v}:${b}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:b,signature:Ze(d,b),exported:/^[A-Z]/.test(v),calls:oo(c,h,so),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name!=="MethodDecl")return;let y=mr(h,v=>v.type.name==="Parameters"),P=cn(c,h,"FieldName"),S=y?Oh(y,v=>v.type.name==="TypeName"):null,Q=S?ve(c,S).trim():void 0;if(!P)return;let x=Be(c,h);k.push({id:`${i}#${Q?`${Q}.`:""}${P}:${x}`,name:P,qualifiedName:`${i}:${Q?`${Q}.`:""}${P}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:/^[A-Z]/.test(P),calls:oo(c,h,so),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}async function yh(e,t,n){let r=[];for(let i of t){let o=Oc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=uh.parse(c),f=be(i,n).id,u=te(i),m=de(u),g=ze(m),w=ir(c,u),k=[];G(l.topNode,h=>{if(h.type.name==="StructItem"||h.type.name==="TraitItem"||h.type.name==="EnumItem"){let Q=cn(c,h,"TypeIdentifier");if(!Q)return;let x=h.type.name==="TraitItem"?"trait":h.type.name==="EnumItem"?"enum":"struct",v=Be(c,h);k.push({id:`${i}#${Q}:${v}`,name:Q,qualifiedName:`${i}:${Q}`,kind:x,filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ze(d,v),exported:mc(c,h),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name==="FunctionItem"){let Q=cn(c,h,"BoundIdentifier");if(!Q)return;let x=Be(c,h);k.push({id:`${i}#${Q}:${x}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:mc(c,h),calls:oo(c,h,ao),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name!=="ImplItem")return;let y=PR(h,Q=>Q.type.name==="TypeIdentifier"),P=y?gc(ve(c,y).trim()):void 0,S=mr(h,Q=>Q.type.name==="DeclarationList");!P||!S||G(S,Q=>{if(Q.type.name!=="FunctionItem")return;let x=cn(c,Q,"BoundIdentifier");if(!x)return;let v=Be(c,Q);k.push({id:`${i}#${P}.${x}:${v}`,name:x,qualifiedName:`${i}:${P}.${x}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ze(d,v),exported:mc(c,Q),calls:oo(c,Q,ao),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}var yc=p(()=>{"use strict";Um();oh();fh();ct();s(mh,"extractGoReceiverQualifier");s(gc,"normalizeRustQualifier");s(G,"forEachSyntaxChild");s(ve,"getSyntaxNodeText");s(Be,"getPythonNodeLine");s(Ze,"getPythonSignature");s(bR,"collectPythonImports");s(hc,"getPythonCallName");s(ph,"collectPythonCallNames");s(hh,"analyzePythonFiles");s(mr,"findFirstSyntaxChild");s(PR,"findLastSyntaxChild");s(Oh,"findSyntaxDescendant");s(oo,"collectLezerCallNames");s(so,"getGoCallName");s(ao,"getRustCallName");s(cn,"findSyntaxNodeText");s(mc,"isRustExported");s(gh,"analyzeGoFiles");s(yh,"analyzeRustFiles")});import wh from"fs/promises";import mt from"path";function Sh(e,t){return Array.from(e.matchAll(t)).length}function ke(e){return Sh(e,/\{/g)-Sh(e,/\}/g)}function vR(e,t,n,r,i){let o=Math.max(0,n.line-1),a=Math.max(n.line,(r[i+1]?.line??e.length+1)-1);if(t==="python"){let u=e[o]?.match(/^\s*/)?.[0]?.length??0,m=o+1;for(;m<e.length;){let g=e[m]??"",w=g.trim();if(!w){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!w.startsWith("#"))break;m+=1}return e.slice(o,m).join(`
802
+ `)}let c=0,d=!1,l=o;for(let u=o;u<e.length;u+=1){let m=e[u]??"";if(c+=ke(m),m.includes("{")&&(d=!0),l=u,d&&c<=0&&u>o||!d&&u+1>=a)break}let f=d?l+1:a;return e.slice(o,f).join(`
803
+ `)}function kR(e){let t=new Set,n=[/\b([A-Za-z_][A-Za-z0-9_]*)\s*\(/g,/\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/g];for(let r of n){let i=null;for(;(i=r.exec(e))!==null;){let o=i[1];if(!(!o||Ee.has(o))&&(t.add(o),t.size>=24))break}}return Array.from(t)}function re(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function xR(e,t){let n=[],r=new Set,i=[],o=[],a=[],c=0;for(let[d,l]of e.entries()){let f=l.trim();if(!f)continue;let u=null;if(t==="typescript"||t==="javascript"){if(u=/^(export\s+)?(?:async\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(/.exec(f),u){re(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08});continue}if(u=/^(export\s+)?(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*(?:async\s*)?(?:\([^=]*\)|[A-Za-z_$][A-Za-z0-9_$]*)\s*=>/.exec(f),u){re(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.06});continue}if(u=/^(export\s+)?class\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?interface\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?type\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=/.exec(f)??/^(export\s+)?enum\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f),u){let m=f.includes("interface")?"interface":f.includes("type ")?"type":f.includes("enum ")?"enum":"class";re(n,r,{name:u[2],kind:m,line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08})}continue}if(t==="python"){if(u=/^def\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}u=/^class\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&re(n,r,{name:u[1],kind:"class",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}if(t==="go"){if(u=/^func\s+\(([^)]+)\)\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:mh(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}u=/^type\s+([A-Za-z_][A-Za-z0-9_]*)\s+(?:struct|interface)/.exec(f),u&&re(n,r,{name:u[1],kind:f.includes("interface")?"interface":"struct",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}if(t==="rust"){let m=a[a.length-1];if(u=/^impl(?:<[^>]+>)?\s+(?:[A-Za-z0-9_:<&>\[\]]+\s+for\s+)?([A-Za-z_][A-Za-z0-9_:<>]*)/.exec(f),u){let g=gc(u[1]);a.push({name:g,depth:c+ke(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(re(n,r,{name:u[1],kind:m?.name?"method":"function",line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:m?.name?.07:.06,qualifier:m?.name}),c+=ke(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}for(u=/^(?:pub\s+)?(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&re(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=ke(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}if(t==="java"){if(u=/^(?:public\s+)?(class|interface|enum)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(re(n,r,{name:u[2],kind:u[1]==="interface"?"interface":u[1]==="enum"?"enum":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.05}),i.push({name:u[2],depth:c+ke(l)}),c+=ke(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(u=/^(?:public|protected|private|static|final|synchronized|abstract|\s)+[\w<>\[\], ?]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*\([^;]*\)\s*\{?$/.exec(f),u&&!Ee.has(u[1])){let m=i[i.length-1]?.name;re(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=ke(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(t==="cpp"){if(u=/^(class|struct|enum)(?:\s+(?:class|struct))?\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(re(n,r,{name:u[2],kind:u[1]==="enum"?"enum":u[1]==="struct"?"struct":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.03}),u[1]!=="enum"&&o.push({name:u[2],depth:c+ke(l)}),c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)::([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ee.has(u[2])){for(re(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ee.has(u[1])){let m=o[o.length-1]?.name;re(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop()}}return n.slice(0,st)}async function bh(e,t,n){let r=mt.join(e,t);if((await wh.stat(r)).size>Ht)return null;let o=await wh.readFile(r,"utf8"),a=o.split(/\r?\n/),c=te(t),d=de(c),l=ir(o,c),f=xR(a,c),u=ze(d),m=f.map((g,w,k)=>{let h=vR(a,c,g,k,w),y=g.calls??kR(h);return{id:`${t}#${g.qualifier?`${g.qualifier}.`:""}${g.name}:${g.line}`,name:g.name,qualifiedName:`${t}:${g.qualifier?`${g.qualifier}.`:""}${g.name}`,kind:g.kind,filePath:t,moduleId:n,language:c,capabilityTier:d,line:g.line,signature:g.signature,exported:g.exported,calls:y,callTargets:[],importPaths:l,confidence:Math.min(.97,u+g.confidenceBoost)}});return{filePath:t,moduleId:n,language:c,capabilityTier:d,importPaths:l,symbols:m}}function Ph(e){let t=new Map;for(let n of e)t.set(n.id.toLowerCase(),n.id),t.set(n.label.toLowerCase(),n.id),t.set(mt.posix.basename(n.root).toLowerCase(),n.id);return t}function TR(e,t,n){if(!e.startsWith("."))return null;let r=mt.posix.dirname(t),i;if(e.includes("/"))i=K(mt.posix.join(r,e));else{let a=e.match(/^\.+/)?.[0]?.length??0,c=e.slice(a).replace(/\./g,"/"),d=r;for(let l=1;l<a;l+=1)d=mt.posix.dirname(d);i=K(mt.posix.join(d,c))}let o=[i];for(let a of Jt)o.push(`${i}${a}`),o.push(`${i}/index${a}`);for(let a of o)if(n.has(a))return a;return null}function hr(e,t,n,r,i){let o=TR(e,t,n);if(o)return be(o,r).id;let a=e.toLowerCase();for(let[c,d]of i.entries())if(a===c||a.startsWith(`${c}/`)||a.endsWith(`/${c}`))return d;return null}function co(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function vh(e,t){let n=new Map(t.map(o=>[o.id,o])),r=new Map;for(let o of t){let a=r.get(o.moduleId)??[];a.push(o),r.set(o.moduleId,a)}let i=[];for(let o of e){let a=r.get(o.moduleId)??[],c=o.entryFiles.length>0?o.entryFiles:o.sampleFiles;for(let d of c.slice(0,2)){let l=a.find(h=>h.filePath===d&&h.exported)??a.find(h=>h.filePath===d)??a[0];if(!l)continue;let f=[{kind:"entry",symbolName:l.name,symbolId:l.id,filePath:l.filePath,line:l.line,note:`Entry symbol ${l.name} in ${l.filePath}`}];for(let h of l.importPaths.slice(0,3))f.push({kind:"imports",symbolName:h,filePath:l.filePath,note:`Imports ${h}`});let u=l.callTargets.slice(0,3);for(let h of u){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Calls ${h.name} (${h.reason})`})}let m=u.map(h=>n.get(h.symbolId)).filter(h=>h!==void 0).flatMap(h=>h.callTargets.slice(0,2)).slice(0,2);for(let h of m){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Then reaches ${h.name} (${h.reason})`})}let g=f.slice(0,mm),w=fe(g.map(h=>n.get(h.symbolId??"")?.moduleId).filter(h=>typeof h=="string"),4),k=`${o.moduleId}::${mt.posix.basename(d)}`;i.push({id:k,label:`${o.label} entry via ${mt.posix.basename(d)}`,moduleId:o.moduleId,entryFile:d,entrySymbol:l.name,summary:w.length>0?`${l.name} fans into ${fe(u.map(h=>h.name),4).join(", ")||"local work"} and touches modules ${w.join(", ")}.`:`${l.name} starts the main path for ${o.label}.`,steps:g,confidence:Math.min(.95,l.confidence-.02+u.length*.03)})}}return i}var wc=p(()=>{"use strict";ct();yc();s(Sh,"countOccurrences");s(ke,"countBraceDelta");s(vR,"extractSymbolBody");s(kR,"extractCallNames");s(re,"pushSymbol");s(xR,"extractSymbolsFromLines");s(bh,"analyzeSourceFile");s(Ph,"buildModuleAliases");s(TR,"resolveRelativeImport");s(hr,"resolveImportToModule");s(co,"rankReferenceReason");s(vh,"buildProcessCapsules")});var Qh={};Nc(Qh,{analyzeTypeScriptFiles:()=>_R,collectTypeScriptImportPaths:()=>Rh,getCallExpressionName:()=>Th,getDeclarationKey:()=>bc,getNodeLine:()=>kh,getPropertyNameText:()=>lo,getSignatureSnippet:()=>xh,hasModifier:()=>Sc,isExportedDeclaration:()=>Ot,registerTypeScriptSymbol:()=>ht,resolveTypeScriptCallSymbol:()=>_h,scriptKindFromFilePath:()=>RR});import uo from"path";import E from"typescript";function RR(e){switch(uo.extname(e).toLowerCase()){case".ts":return E.ScriptKind.TS;case".tsx":return E.ScriptKind.TSX;case".jsx":return E.ScriptKind.JSX;default:return E.ScriptKind.JS}}function kh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function bc(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${K(uo.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function xh(e,t){let n=t.getStart(e),r=e.text.indexOf(`
804
+ `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function Sc(e,t){return E.canHaveModifiers(e)?!!E.getModifiers(e)?.some(n=>n.kind===t):!1}function Ot(e){return Sc(e,E.SyntaxKind.ExportKeyword)||Sc(e,E.SyntaxKind.DefaultKeyword)?!0:E.isVariableDeclaration(e)&&E.isVariableDeclarationList(e.parent)&&E.isVariableStatement(e.parent.parent)?Ot(e.parent.parent):!1}function lo(e){return e&&(E.isIdentifier(e)||E.isPrivateIdentifier(e)||E.isStringLiteral(e)||E.isNumericLiteral(e))?e.text:null}function Th(e){return E.isIdentifier(e)?e.text:E.isPropertyAccessExpression(e)?e.name.text:E.isElementAccessExpression(e)&&E.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function Rh(e){let t=new Set,n=s(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=s(i=>{if(E.isImportDeclaration(i)||E.isExportDeclaration(i))i.moduleSpecifier&&E.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(E.isImportEqualsDeclaration(i)){let o=i.moduleReference;E.isExternalModuleReference(o)&&o.expression&&E.isStringLiteralLike(o.expression)&&n(o.expression.text)}else E.isCallExpression(i)&&E.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&E.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);E.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function ht(e,t,n,r,i,o,a,c,d,l,f){if(!o.trim())return;let u=kh(r,i),m=f?`${n.filePath}:${f}.${o}`:`${n.filePath}:${o}`,g={id:`${n.filePath}#${f?`${f}.`:""}${o}:${u}`,name:o,qualifiedName:m,kind:a,filePath:n.filePath,moduleId:n.moduleId,language:n.language,capabilityTier:n.capabilityTier,line:u,signature:xh(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,ze(n.capabilityTier)+d)};if(n.symbols.find(h=>h.id===g.id)||n.symbols.length>=st)return;n.symbols.push(g);let k;E.isFunctionDeclaration(i)||E.isMethodDeclaration(i)||E.isGetAccessorDeclaration(i)||E.isSetAccessorDeclaration(i)||E.isFunctionExpression(i)||E.isArrowFunction(i)?k=i.body??void 0:E.isVariableDeclaration(i)?k=i.initializer??void 0:(E.isClassDeclaration(i)||E.isClassExpression(i))&&(k=i),t.push({record:g,declaration:i,body:k}),l.set(bc(e,i),g)}function _h(e,t){return E.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):E.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function _R(e,t,n,r,i){let o={allowJs:!0,checkJs:!1,target:E.ScriptTarget.Latest,module:E.ModuleKind.ESNext,moduleResolution:E.ModuleResolutionKind.NodeNext,jsx:E.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>uo.join(e,m)),c=E.createProgram(a,o),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=te(m);if(!$t(g))continue;let w=c.getSourceFile(uo.join(e,m));if(!w)continue;let k={filePath:m,moduleId:be(m,n).id,language:g,capabilityTier:de(g),importPaths:Rh(w),symbols:[]};l.set(m,k);for(let h of w.statements){if(E.isFunctionDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"function",Ot(h),.1,f);continue}if(E.isVariableStatement(h)){for(let y of h.declarationList.declarations){let P=lo(y.name);P&&y.initializer&&(E.isArrowFunction(y.initializer)||E.isFunctionExpression(y.initializer))&&ht(e,u,k,w,y,P,"function",Ot(y),.08,f)}continue}if(E.isClassDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"class",Ot(h),.1,f);for(let y of h.members)(E.isMethodDeclaration(y)||E.isGetAccessorDeclaration(y)||E.isSetAccessorDeclaration(y))&&lo(y.name)&&ht(e,u,k,w,y,lo(y.name),"method",!1,.05,f,h.name.text);continue}if(E.isInterfaceDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"interface",Ot(h),.09,f);continue}if(E.isTypeAliasDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"type",Ot(h),.09,f);continue}E.isEnumDeclaration(h)&&h.name&&ht(e,u,k,w,h,h.name.text,"enum",Ot(h),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let P=hr(y,m.record.filePath,r,n,i);P&&g.add(P)}let w=new Set,k=new Map,h=s(y=>{if(E.isCallExpression(y)||E.isNewExpression(y)){let P=Th(y.expression);P&&!Ee.has(P)&&w.add(P);let Q=_h(d,y.expression)?.declarations?.[0];if(Q){let x=f.get(bc(e,Q));x&&x.id!==m.record.id&&k.set(x.id,{symbolId:x.id,name:x.name,filePath:x.filePath,moduleId:x.moduleId,reason:co(m.record.moduleId,x.moduleId,g)})}}E.forEachChild(y,h)},"visit");h(m.body??m.declaration),m.record.calls=Array.from(w).slice(0,24),m.record.callTargets=Array.from(k.values()).slice(0,Se),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var Eh=p(()=>{"use strict";ct();or();wc();s(RR,"scriptKindFromFilePath");s(kh,"getNodeLine");s(bc,"getDeclarationKey");s(xh,"getSignatureSnippet");s(Sc,"hasModifier");s(Ot,"isExportedDeclaration");s(lo,"getPropertyNameText");s(Th,"getCallExpressionName");s(Rh,"collectTypeScriptImportPaths");s(ht,"registerTypeScriptSymbol");s(_h,"resolveTypeScriptCallSymbol");s(_R,"analyzeTypeScriptFiles")});import He from"path";function QR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function ER(e){let t=new Map;for(let n of e)t.set(n.language,(t.get(n.language)??0)+1);return Array.from(t.entries()).map(([n,r])=>({language:n,capabilityTier:de(n),fileCount:r}))}function IR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function $R(e,t){return e.map(n=>IR(n,t))}async function fo(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",o=t.preflight,a=o?.storageRoot??await Wi(r,i),c=e.inventory,d=c?null:await tr(r,n.source),l=o?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(v=>K(v)));if(l&&l.length>0)for(let v of l){let b=He.join(r,v);await ji(b)?f.add(v):f.delete(v)}let u=Array.from(f).sort((v,b)=>v.localeCompare(b)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k}=Tm(u,n.areas),h=u.filter(v=>Jt.has(He.extname(v).toLowerCase())),y=new Set(h),P=o?.dirtyPathsFingerprint??(l?rr(l):void 0),S=o?.dirtySourcePaths?o.dirtySourcePaths.filter(v=>y.has(v)):l?l.filter(v=>y.has(v)):[],Q=o?.dirtySourceStateMap??(S.length>0?await nn(r,S,m,n.areas,i):void 0),x=o?.dirtySourceFingerprint??(l?tn(Q?Array.from(Q.values()).sort((v,b)=>v.filePath.localeCompare(b.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Fi(n,u),workspaceSnapshot:o?.workspaceSnapshot??Di(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k,sourceFiles:h,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:P,dirtySourceFingerprint:x,dirtySourceStateMap:Q,moduleAliases:Ph(n.areas),buckets:Na(h)}}function Pc(e,t){return{...e,sourceStates:t,sourceFingerprint:tn(t)}}async function vc(e,t){let n=new Map(t.map(o=>[o,null])),r=Na(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(Eh(),Qh)),a=await o(e.workspaceRoot,r.typeScriptFiles,e.overview.areas,e.sourceFileSet,e.moduleAliases);for(let c of a)n.set(c.filePath,c)}if(r.pythonFiles.length>0){let o=await hh(e.workspaceRoot,r.pythonFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.goFiles.length>0){let o=await gh(e.workspaceRoot,r.goFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.rustFiles.length>0){let o=await yh(e.workspaceRoot,r.rustFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}let i=e.analysisProfile==="light"?[...r.typeScriptFiles,...r.fallbackFiles]:r.fallbackFiles;if(i.length>0){let o=await Promise.all(i.map(a=>bh(e.workspaceRoot,a,e.areaByFile.get(a)?.id??e.overview.areas[0].id)));for(let[a,c]of o.entries())n.set(i[a],c??null)}return n}function CR(e,t){return QR(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function po(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=CR(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let P=y.name.toLowerCase(),S=i.get(P)??[];S.push(y),i.set(P,S)}let o=r.map(y=>{let P=new Set;for(let x of y.importPaths){let v=hr(x,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&P.add(v)}let S=y.calls.flatMap(x=>(i.get(x.toLowerCase())??[]).map(v=>({candidate:v,reason:co(y.moduleId,v.moduleId,P)}))).filter(({candidate:x})=>x.id!==y.id).sort((x,v)=>{if(x.reason!==v.reason){let b=["same-module","imported-module","name-match"];return b.indexOf(x.reason)-b.indexOf(v.reason)}return x.candidate.filePath.localeCompare(v.candidate.filePath)}),Q=new Map;for(let{candidate:x,reason:v}of S)if(Q.has(x.id)||Q.set(x.id,{symbolId:x.id,name:x.name,filePath:x.filePath,moduleId:x.moduleId,reason:v}),Q.size>=Se)break;return{...y,callTargets:Array.from(Q.values())}}),a=$R(o,e.analysisProfile),c=new Map;for(let y of e.overview.areas)c.set(y.id,{dependencies:new Set,dependents:new Set,languageCounts:new Map,sourceFileCount:0,symbolCount:0,entryFiles:[]});for(let y of n){let P=c.get(y.moduleId);if(!P)continue;let S=new Map(P.languageCounts);S.set(y.language,(S.get(y.language)??0)+1);let Q=new Set(P.dependencies),x=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?fe([...P.entryFiles,y.filePath],4):P.entryFiles;for(let v of y.importPaths){let b=hr(v,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);b&&b!==y.moduleId&&Q.add(b)}c.set(y.moduleId,{...P,sourceFileCount:P.sourceFileCount+1,symbolCount:P.symbolCount+y.symbols.length,languageCounts:S,dependencies:Q,entryFiles:x})}for(let[y,P]of c.entries())for(let S of P.dependencies){let Q=c.get(S);Q&&c.set(S,{...Q,dependents:new Set([...Q.dependents,y])})}let d=Array.from(c.entries()).map(([y,P])=>{let S=e.overview.areas.find(I=>I.id===y);if(!S)return null;let Q=Array.from(P.dependencies).sort((I,A)=>I.localeCompare(A)),x=Array.from(P.dependents).sort((I,A)=>I.localeCompare(A)),v=Array.from(P.languageCounts.entries()).map(([I,A])=>({language:I,capabilityTier:de(I),fileCount:A})).sort((I,A)=>A.fileCount-I.fileCount),b=a.filter(I=>I.moduleId===y);return{moduleId:S.id,label:S.label,kind:S.kind,root:S.root,fileCount:e.filesByAreaId.get(S.id)?.length??0,sourceFileCount:P.sourceFileCount,symbolCount:P.symbolCount,languages:v,topSymbols:b.sort((I,A)=>Number(A.exported)-Number(I.exported)||A.confidence-I.confidence).slice(0,6).map(I=>I.name),dependencies:Q,dependents:x,entryFiles:P.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:S.sampleFiles.slice(0,5),processIds:[],confidence:Sm(b,v)}}).filter(y=>y!==null).sort((y,P)=>P.symbolCount-y.symbolCount||y.moduleId.localeCompare(P.moduleId)),l=vh(d,a),f=new Map;for(let y of l){let P=f.get(y.moduleId)??[];P.push(y.id),f.set(y.moduleId,P)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:ER(n),modules:u,symbols:a,processes:l},g={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:e.overviewFingerprint,workspaceSnapshot:e.workspaceSnapshot,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languageBreakdown:m.languages,sourceStates:e.sourceStates},w={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,_m(t.get(y)??null)]))},k=vm(e),h={schemaVersion:J,workspaceRoot:e.workspaceRoot,branch:e.workspaceSnapshot.branch,head:e.workspaceSnapshot.head,queryGeneratedAt:m.generatedAt,overviewFingerprint:e.overviewFingerprint,sourceFingerprint:e.sourceFingerprint,sourceFileCount:e.sourceFiles.length,dirtyPathsFingerprint:e.dirtyPathsFingerprint??rr(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??tn([]),dirtySourcePaths:k};return await at(He.join(e.storageRoot,um),u),await at(He.join(e.storageRoot,fm),a),await at(He.join(e.storageRoot,pm),l),await at(He.join(e.storageRoot,ot),m),await at(He.join(e.storageRoot,Mi),h),Pm(e)&&(await at(He.join(e.storageRoot,Ai),g),await at(He.join(e.storageRoot,Xi),w)),m}var Ih=p(()=>{"use strict";$i();yc();wc();or();ct();or();s(QR,"orderedSourceFilesForBuild");s(ER,"collectLanguageBreakdown");s(IR,"calibrateSymbolConfidenceForProfile");s($R,"calibrateSymbolsForProfile");s(fo,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(Pc,"finalizeRepoIntelligenceBuildInputs");s(vc,"analyzeSourceFilesForBuild");s(CR,"collectOrderedAnalyses");s(po,"materializeRepoIntelligenceIndex")});import gt from"path";async function xc(e){let t=await Da(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=Pc(e,t),r=await vc(n,n.sourceFiles);return po(n,r)}async function Tc(e){return ae(gt.join(e,Ai),Om)}async function $h(e){return ae(gt.join(e,Xi),gm)}async function mo(e){return ae(gt.join(e,Mi),ym)}function Ch(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ah(e,t,n){return t.schemaVersion===J&&n.schemaVersion===J&&t.workspaceRoot===e.workspaceRoot&&n.workspaceRoot===e.workspaceRoot&&t.workspaceSnapshot.source===e.workspaceSnapshot.source&&t.sourceStates.length===t.sourceFileCount&&n.sourceFingerprint===t.sourceFingerprint}async function AR(e,t){let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Xh(e,t){return Ni(e.workspaceSnapshot)&&Wa(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Mh(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===J&&t.workspaceRoot===e.workspaceRoot&&t.head===e.workspaceSnapshot.head&&t.branch===e.workspaceSnapshot.branch&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length&&t.dirtyPathsFingerprint===e.dirtyPathsFingerprint&&t.dirtySourceFingerprint===e.dirtySourceFingerprint)}async function jh(e){if(!Ni(e.workspaceSnapshot))return null;let t=await Tc(e.storageRoot);if(!t||t.schemaVersion!==J||t.workspaceRoot!==e.workspaceRoot||!Wa(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function Wh(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await mo(e.storageRoot);if(!t||t.schemaVersion!==J||t.workspaceRoot!==e.workspaceRoot||t.head!==e.workspaceSnapshot.head||t.branch!==e.workspaceSnapshot.branch||t.overviewFingerprint!==e.overviewFingerprint||t.dirtyPathsFingerprint!==e.dirtyPathsFingerprint||t.dirtySourceFingerprint!==e.dirtySourceFingerprint)return null;let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function ho(e){return new Map(e.map(t=>[t.filePath,t]))}function Rc(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:Pc(e,n)}function _c(e,t){let n=new Set;for(let r of e){let i=t.get(r.filePath);if(!i){n.add(r.filePath);continue}if(i.analyzerVersion!==r.analyzerVersion)return null;(i.fileFingerprint!==r.fileFingerprint||i.language!==r.language||i.moduleId!==r.moduleId)&&n.add(r.filePath)}return n}async function Qc(e,t,n,r){if(!e.sourceStates)return null;let i=ho(e.sourceStates),o=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?$t(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(o&&$t(d.language)){a.add(d.filePath);continue}r.has(d.filePath)&&a.add(d.filePath)}let c=new Map;for(let d of e.sourceStates)if(!a.has(d.filePath)){if(!Ch(n.analyses,d.filePath))return null;c.set(d.filePath,Qm(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await vc(e,e.sourceFiles.filter(l=>a.has(l)));for(let l of a)c.set(l,d.get(l)??null)}for(let d of e.sourceStates){if(!c.has(d.filePath))return null;let l=c.get(d.filePath)??null;if(l&&(l.filePath!==d.filePath||l.moduleId!==d.moduleId||l.language!==d.language)||t.get(d.filePath)?.analyzerVersion!==void 0&&t.get(d.filePath)?.analyzerVersion!==d.analyzerVersion)return null}return c}async function Fh(e,t,n){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0||t.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.head!==t.workspaceSnapshot.head||e.workspaceSnapshot.branch!==t.workspaceSnapshot.branch)return null;let r=new Set(e.dirtyPaths??[]),i=await mo(e.storageRoot),o=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=ho(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let w=a.get(g);if(!w){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||o.has(g)){d.add(g);continue}c.set(g,w)}if(d.size>0){let g=new Set;for(let w of d){let k=l.get(w);if(k){c.set(w,k);continue}g.add(w)}if(g.size>0){let w=await nn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[k,h]of w.entries())c.set(k,h)}}let f=Rc(e,c);if(!f?.sourceStates)return null;let u=_c(f.sourceStates,a);if(!u)return null;let m=await Qc(f,a,n,u);return m?po(f,m):null}async function Dh(e,t,n){let r=await nn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Rc(e,r);if(!i?.sourceStates)return null;let o=ho(t.sourceStates),a=_c(i.sourceStates,o);if(!a)return null;if(a.size===0)return AR(i,t);let c=await Qc(i,o,n,a);return c?po(i,c):null}async function Nh(e,t){if(!t)return null;let n=await $h(e.storageRoot);if(!n||!Ah(e,t,n))return null;let r=await Fh(e,t,n);return r||Dh(e,t,n)}async function kc(e,t=!1){let n=t?null:await Tc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await mo(e.storageRoot):null;if(n&&Xh(e,n)){let i=await ae(gt.join(e.storageRoot,ot),en);if(i?.schemaVersion===J&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(Mh(e,r)){let i=await ae(gt.join(e.storageRoot,ot),en);if(i?.schemaVersion===J&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await Nh(e,n);if(i)return i}return xc(e)}async function Or(e,t=!1,n="full"){if(t){let c=await fo(e,{profile:n});return kc(c,!0)}let r=await Rm(e,n),i=await jh(r);if(i)return i;let o=await Wh(r);if(o)return o;let a=await fo(e,{preflight:r});return kc(a,!1)}async function XR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await fo(n,{profile:t.profile??"full"});return xc(r)}async function gr(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh});return Or(n,t.refresh===!0,t.profile??"full")}var Ec=p(()=>{"use strict";$i();or();Ih();ct();s(xc,"buildRepoIntelligenceIndexFromInputs");s(Tc,"readRepoIntelligenceManifest");s($h,"readFileAnalysisIndex");s(mo,"readDirtySourceHint");s(Ch,"hasOwnAnalysisEntry");s(Ah,"hasCompatibleIncrementalCache");s(AR,"readCompatibleCachedQueryIndex");s(Xh,"canDirectReuseCleanCachedQueryIndex");s(Mh,"canDirectReuseDirtyCachedQueryIndex");s(jh,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s(Wh,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(ho,"mapSourceStatesByFile");s(Rc,"buildCompleteInputsFromSourceStates");s(_c,"classifyChangedOrNewSourceFiles");s(Qc,"buildIncrementalAnalysisEntries");s(Fh,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Dh,"tryStatBasedIncrementalRepoIntelligenceBuild");s(Nh,"tryIncrementalRepoIntelligenceBuild");s(kc,"getRepoIntelligenceIndexFromInputs");s(Or,"getRepoIntelligenceIndexFromSnapshot");s(XR,"buildRepoIntelligenceIndex");s(gr,"getRepoIntelligenceIndex")});import MR from"path";function Lh(e,t,n,r){return e>=20||t>=4e3||n>=5||r>=5?"systemic":e>=8||t>=1200||n>=3||r>=3?"complex":e>=3||t>=250||n>=2||r>=2?"moderate":"simple"}function qh(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function ln(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function yr(e,t,n){if(n){let i=K(n),o=e.modules.find(a=>i===a.root||i.startsWith(`${a.root}/`)||a.sampleFiles.includes(i));if(o)return o}let r=t?.trim().toLowerCase();return r?e.modules.slice().sort((i,o)=>o.symbolCount-i.symbolCount).find(i=>i.moduleId.toLowerCase()===r||i.label.toLowerCase()===r||i.root.toLowerCase()===r||MR.posix.basename(i.root).toLowerCase()===r)??e.modules.find(i=>i.moduleId.toLowerCase().includes(r)||i.label.toLowerCase().includes(r)||i.root.toLowerCase().includes(r))??null:e.modules.find(i=>i.moduleId!==".")??e.modules[0]??null}function zh(e,t,n){let r=t.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.symbols.filter(o=>o.name.toLowerCase()===r||o.qualifiedName.toLowerCase()===r||o.filePath.toLowerCase()===r).sort((o,a)=>{let c=i&&(o.moduleId.toLowerCase().includes(i)||o.filePath.toLowerCase().includes(i))?1:0,d=i&&(a.moduleId.toLowerCase().includes(i)||a.filePath.toLowerCase().includes(i))?1:0;return d!==c?d-c:Number(a.exported)-Number(o.exported)||a.confidence-o.confidence})}function Uh(e,t,n){let r=t?.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.processes.filter(o=>{let a=!r||o.label.toLowerCase().includes(r)||o.entryFile.toLowerCase().includes(r)||(o.entrySymbol?.toLowerCase().includes(r)??!1),c=!i||o.moduleId.toLowerCase().includes(i);return a&&c}).sort((o,a)=>a.confidence-o.confidence||o.label.localeCompare(a.label))}function Oo(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,Se)}function Ic(e,t){let n=yr(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:ln(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function $c(e,t){let n=zh(e,t.symbol,t.module);if(n.length===0)throw new Error(`No symbol matched "${t.symbol}".`);let[r,...i]=n;return{symbol:r,alternatives:i.slice(0,4),callers:Oo(e,r.id),freshness:ln(e),confidence:r.confidence}}function Vh(e,t){let n=Uh(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let o=yr(e,t.module,t.targetPath);if(o?.processIds[0]){let a=e.processes.find(c=>c.id===o.processIds[0]);if(a)return{process:a,alternatives:[],freshness:ln(e),confidence:a.confidence}}}let[r,...i]=n;if(!r)throw new Error(`No process matched "${t.entry??t.module??t.targetPath??"request"}".`);return{process:r,alternatives:i.slice(0,4),freshness:ln(e),confidence:r.confidence}}function Cc(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=$c(e,{symbol:t.symbol,module:t.module}),f=fe([l.symbol.moduleId,...l.symbol.callTargets.map(u=>u.moduleId),...l.callers.map(u=>u.moduleId)]);r={kind:"symbol",label:l.symbol.name,moduleId:l.symbol.moduleId,filePath:l.symbol.filePath},i=e.modules.filter(u=>f.includes(u.moduleId)),o=fe([l.symbol.id,...l.symbol.callTargets.map(u=>u.symbolId),...l.callers.map(u=>u.id)]).map(u=>e.symbols.find(m=>m.id===u)).filter(u=>u!==void 0),a=l.callers,c=l.confidence}else if(t.path){let l=K(t.path),f=yr(e,void 0,l),u=e.symbols.filter(m=>m.filePath===l);r={kind:"path",label:l,moduleId:f?.moduleId,filePath:l},i=f?[f,...e.modules.filter(m=>f.dependents.includes(m.moduleId))]:[],o=u,a=u.flatMap(m=>Oo(e,m.id)).slice(0,Se),c=f?.confidence??.62}else{let l=yr(e,t.module,t.targetPath);if(!l)throw new Error("impact_estimate requires one of symbol, path, or module.");r={kind:"module",label:l.label,moduleId:l.moduleId},i=[l,...e.modules.filter(f=>l.dependents.includes(f.moduleId))],o=e.symbols.filter(f=>f.moduleId===l.moduleId).slice(0,Se),a=o.flatMap(f=>Oo(e,f.id)).slice(0,Se),c=l.confidence}let d=n?n.files.filter(l=>i.some(f=>l.areaId===f.moduleId)||o.some(f=>l.path===f.filePath)).length:0;return{target:r,summary:d>0?`${r.label} overlaps with ${d} currently changed file(s); validate blast radius before editing.`:`${r.label} primarily affects ${fe(i.map(l=>l.label),4).join(", ")||"its local module"} and ${o.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:o.slice(0,Se),callers:a.slice(0,Se),changedScope:n,freshness:ln(e),confidence:c}}async function jR(e,t={}){let n=await gr(e,t);return Ic(n,t)}async function WR(e,t){let n=await gr(e,t);return $c(n,t)}async function FR(e,t){let n=await gr(e,t);return Vh(n,t)}async function DR(e,t){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await Or(n,t.refresh===!0,t.profile??"full"),i;try{i=await Ei(n,{scope:"all"})}catch(o){we("impact_estimate could not load changed scope.",o),i=void 0}return Cc(r,t,i)}async function NR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,o]=await Promise.all([Or(n,t.refresh===!0,t.profile??"full"),Ei(n,{scope:"all"}).catch(b=>(we("Routing signals could not load changed scope.",b),null))]),a=null,c=null;try{a=Ic(i,{targetPath:r})}catch(b){we("Routing signals could not resolve module context.",b)}try{c=Cc(i,{targetPath:r},o??void 0)}catch(b){we("Routing signals could not resolve impact estimate.",b)}let d=o?.areasTouched.map(b=>b.areaId).slice(0,8)??[],l=o?.totalChangedFiles??0,f=o?.changedLineCount??0,u=o?.addedLineCount??0,m=o?.deletedLineCount??0,g=o?.areasTouched.length??0,w=c?.impactedModules.length??(a?1:0),k=Lh(l,f,g,w),h=qh(l,f,g),y=a?.confidence,P=c?.confidence,S=(y??1)<.72||(P??1)<.72,Q=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",x=k==="complex"||k==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,v=S||(o?.riskHints.length??0)>0||(c?.changedScope?.riskHints.length??0)>0;return{workspaceRoot:i.workspaceRoot,changedFileCount:l,changedLineCount:f,addedLineCount:u,deletedLineCount:m,touchedModuleCount:g,changedModules:d,crossModule:g>1||w>1,reviewScale:h,riskHints:fe([...S?["Light repo routing uses heuristic static analysis; validate low-confidence edges before editing."]:[],...o?.riskHints??[],...c?.changedScope?.riskHints??[]],4),activeModuleId:a?.module.moduleId,activeModuleConfidence:y,activeImpactConfidence:P,impactedModuleCount:w,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:Q,suggestedComplexity:k,plannerBias:x,investigationBias:v,lowConfidence:S}}var Kh=p(()=>{"use strict";$i();Ec();ct();s(Lh,"deriveRoutingComplexity");s(qh,"deriveReviewScale");s(ln,"buildFreshnessLabel");s(yr,"findModuleMatch");s(zh,"findSymbolMatches");s(Uh,"findProcessMatches");s(Oo,"collectCallers");s(Ic,"resolveModuleContextFromIndex");s($c,"resolveSymbolContextFromIndex");s(Vh,"resolveProcessContextFromIndex");s(Cc,"resolveImpactEstimateFromIndex");s(jR,"getModuleContext");s(WR,"getSymbolContext");s(FR,"getProcessContext");s(DR,"getImpactEstimate");s(NR,"getRepoRoutingSignals")});var Yh=p(()=>{"use strict";Ec();Kh()});function Ac(e,...t){let n=e.trim().toLowerCase(),r=0;for(let i of t){if(!i)continue;let o=i.toLowerCase();if(o===n){r=Math.max(r,1);continue}if(o.startsWith(n)){r=Math.max(r,.92);continue}if(o.includes(n)){r=Math.max(r,.78);continue}let a=n.split(/\s+/).filter(Boolean);a.length>0&&a.every(c=>o.includes(c))&&(r=Math.max(r,.66))}return r}function LR(e,t){return{item:{title:`${e.name} (${e.kind})`,locator:`${e.filePath}:${e.line}`,snippet:e.signature,score:t,metadata:{kind:"symbol",moduleId:e.moduleId,exported:e.exported,confidence:e.confidence}},artifact:{kind:"symbol",label:e.qualifiedName,value:`${e.filePath}:${e.line}`}}}function qR(e,t){return{item:{title:e.label,locator:e.root,snippet:`Module ${e.moduleId} with ${e.symbolCount} symbols and ${e.sourceFileCount} source files.`,score:t,metadata:{kind:"module",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"module",label:e.label,value:e.root}}}function zR(e,t){return{item:{title:e.label,locator:e.entryFile,snippet:e.summary,score:t,metadata:{kind:"process",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"process",label:e.label,value:e.entryFile}}}function UR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Ac(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...LR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Ac(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...qR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Ac(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...zR(a,c)})}i.sort((a,c)=>c.score!==a.score?c.score-a.score:a.item.title.localeCompare(c.item.title));let o=i.slice(0,r);return{items:o.map(a=>a.item),artifacts:o.map(a=>a.artifact),generatedAt:e.generatedAt,sourceFileCount:e.sourceFileCount,capabilityEngine:e.capability?.engine}}var Gh=p(()=>{"use strict";s(Ac,"scoreCandidate");s(LR,"buildSymbolItem");s(qR,"buildModuleItem");s(zR,"buildProcessItem");s(UR,"collectSemanticLookupItems")});function go(e){return e>=.8?"high":e>=.65?"medium":"low"}function yo(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function VR(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Files: ${t.fileCount} total | ${t.sourceFileCount} source | ${t.symbolCount} symbols`,`Languages: ${t.languages.map(n=>`${n.language}/${n.capabilityTier}:${n.fileCount}`).join(" | ")||"none"}`,`Dependencies: ${t.dependencies.join(" | ")||"none"}`,`Dependents: ${t.dependents.join(" | ")||"none"}`,`Entry files: ${t.entryFiles.join(" | ")||"none"}`,`Top symbols: ${t.topSymbols.join(" | ")||"none"}`,`Tests: ${t.keyTests.join(" | ")||"none"}`,`Docs: ${t.keyDocs.join(" | ")||"none"}`,`Processes: ${t.processIds.join(" | ")||"none"}`,`Evidence: ${e.evidence.join(" | ")||"none"}`,...yo(e.capability)].join(`
805
+ `)}function KR(e){let{symbol:t}=e;return[`Symbol context for ${t.name}`,`Definition: ${t.filePath}:${t.line}`,`Module: ${t.moduleId} | Kind: ${t.kind} | Exported: ${t.exported?"yes":"no"}`,`Language: ${t.language}/${t.capabilityTier}`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Signature: ${t.signature}`,`Possible callees: ${t.callTargets.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Imports: ${t.importPaths.join(" | ")||"none"}`,e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>`${n.name} @ ${n.filePath}:${n.line}`).join(" | ")}`:"Alternatives: none",...yo(e.capability)].join(`
806
+ `)}function YR(e){let{process:t}=e;return[`Process context for ${t.label}`,`Module: ${t.moduleId}`,`Entry: ${t.entryFile}${t.entrySymbol?` -> ${t.entrySymbol}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${t.summary}`,"Steps:",...t.steps.map(n=>`- ${n.kind} ${n.symbolName} @ ${n.filePath}${n.line?`:${n.line}`:""} | ${n.note}`),e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>n.label).join(" | ")}`:"Alternatives: none",...yo(e.capability)].join(`
807
+ `)}function GR(e){return[`Impact estimate for ${e.target.label}`,`Target: ${e.target.kind}${e.target.moduleId?` | module=${e.target.moduleId}`:""}${e.target.filePath?` | file=${e.target.filePath}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${e.summary}`,`Impacted modules: ${e.impactedModules.map(t=>`${t.label}(${t.moduleId})`).join(" | ")||"none"}`,`Impacted symbols: ${e.impactedSymbols.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,e.changedScope?`Changed-scope overlap: ${e.changedScope.files.filter(t=>e.impactedModules.some(n=>n.moduleId===t.areaId)||e.impactedSymbols.some(n=>n.filePath===t.path)).length} file(s)`:"Changed-scope overlap: unavailable",...yo(e.capability)].join(`
808
+ `)}var Bh=p(()=>{"use strict";s(go,"confidenceLabel");s(yo,"capabilityLines");s(VR,"renderModuleContext");s(KR,"renderSymbolContext");s(YR,"renderProcessContext");s(GR,"renderImpactEstimate")});function BR(e){let t=0,n=new Map,r=new Map,i=new Set,o=[],a=[],c=s(d=>{n.set(d,t),r.set(d,t),t++,o.push(d),i.add(d);for(let l of e.get(d)??[])n.has(l)?i.has(l)&&r.set(d,Math.min(r.get(d)??0,n.get(l)??0)):(c(l),r.set(d,Math.min(r.get(d)??0,r.get(l)??0)));if((r.get(d)??0)===(n.get(d)??0)){let l=[],f="";do f=o.pop()??"",i.delete(f),l.push(f);while(f!==d&&o.length>=0&&f!=="");a.push(l)}},"strongconnect");for(let d of e.keys())n.has(d)||c(d);return a}function ZR(e){return e>=4?"high":e===3?"medium":"low"}function HR(e){let t=e.modules??[],n=new Set(t.map(d=>d.moduleId)),r=new Map,i=0;for(let d of t){let l=(d.dependencies??[]).filter(f=>n.has(f)&&f!==d.moduleId);r.set(d.moduleId,l),i+=l.length}let o=BR(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:ZR(d.length)}}).sort((d,l)=>l.hopCount-d.hopCount),a=o.filter(d=>d.severity==="high").length,c=o.length===0?"No circular dependencies found.":`${o.length} cycle(s) found, ${a} high-severity.`;return{cycles:o,scanned:{modules:t.length,edges:i},summary:c}}function JR(e){let t=[e.summary,`Scanned ${e.scanned.modules} modules, ${e.scanned.edges} edges.`];for(let n of e.cycles)t.push(`- [${n.severity}] ${n.hopCount}-hop: ${n.chain.join(" -> ")}`);return t.join(`
809
+ `)}var Zh=p(()=>{"use strict";s(BR,"tarjanScc");s(ZR,"severityFor");s(HR,"findCyclicDependencies");s(JR,"renderCycleAnalysis")});var Hh={};Nc(Hh,{buildCompleteInputsFromSourceStates:()=>Rc,buildFreshnessLabel:()=>ln,buildIncrementalAnalysisEntries:()=>Qc,buildRepoIntelligenceIndex:()=>XR,buildRepoIntelligenceIndexFromInputs:()=>xc,canDirectReuseCleanCachedQueryIndex:()=>Xh,canDirectReuseDirtyCachedQueryIndex:()=>Mh,classifyChangedOrNewSourceFiles:()=>_c,collectCallers:()=>Oo,collectSemanticLookupItems:()=>UR,deriveReviewScale:()=>qh,deriveRoutingComplexity:()=>Lh,findCyclicDependencies:()=>HR,findModuleMatch:()=>yr,findProcessMatches:()=>Uh,findSymbolMatches:()=>zh,getImpactEstimate:()=>DR,getModuleContext:()=>jR,getProcessContext:()=>FR,getRepoIntelligenceIndex:()=>gr,getRepoIntelligenceIndexFromInputs:()=>kc,getRepoIntelligenceIndexFromSnapshot:()=>Or,getRepoRoutingSignals:()=>NR,getSymbolContext:()=>WR,hasCompatibleIncrementalCache:()=>Ah,hasOwnAnalysisEntry:()=>Ch,mapSourceStatesByFile:()=>ho,readDirtySourceHint:()=>mo,readFileAnalysisIndex:()=>$h,readRepoIntelligenceManifest:()=>Tc,renderCycleAnalysis:()=>JR,renderImpactEstimate:()=>GR,renderModuleContext:()=>VR,renderProcessContext:()=>YR,renderSymbolContext:()=>KR,resolveImpactEstimateFromIndex:()=>Cc,resolveModuleContextFromIndex:()=>Ic,resolveProcessContextFromIndex:()=>Vh,resolveSymbolContextFromIndex:()=>$c,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>jh,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>Wh,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Fh,tryIncrementalRepoIntelligenceBuild:()=>Nh,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Dh});var Jh=p(()=>{"use strict";Yh();Gh();Bh();Zh()});import{parentPort as jc}from"node:worker_threads";if(!jc)throw new Error("semantic-worker must run inside a worker thread.");function Xc(e){return typeof e=="object"&&e!==null}s(Xc,"isRecord");function e_(e){return Xc(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Xc(e.context)&&Xc(e.options)}s(e_,"isRequest");function t_(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(t_,"serializeError");async function n_(e){let t=await r_();switch(e.kind){case"buildIndex":return t.buildRepoIntelligenceIndex(e.context,e.options);case"getIndex":return t.getRepoIntelligenceIndex(e.context,e.options);case"module":return t.getModuleContext(e.context,e.options);case"symbol":return t.getSymbolContext(e.context,e.options);case"process":return t.getProcessContext(e.context,e.options);case"impact":return t.getImpactEstimate(e.context,e.options);case"routing":return t.getRepoRoutingSignals(e.context,e.options);case"semanticLookup":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.collectSemanticLookupItems(n,e.options.query,e.options.lookupKind,e.options.limit)}case"cyclicDeps":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.findCyclicDependencies(n)}}}s(n_,"runRequest");function eO(e){jc?.postMessage(e)}s(eO,"post");var tO=Promise.resolve(),Mc;function r_(){return Mc||(Mc=import.meta.url.endsWith(".ts")?i_():Promise.resolve().then(()=>(Jh(),Hh))),Mc}s(r_,"loadSemanticIndex");async function i_(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(i_,"loadDevSemanticIndex");jc.on("message",e=>{tO=tO.then(async()=>{if(e_(e))try{eO({id:e.id,ok:!0,result:await n_(e)})}catch(n){eO({id:e.id,ok:!1,error:t_(n)})}}).catch(()=>{})});