@kodax-ai/kodax 0.7.89 → 0.7.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +103 -0
- package/README.md +33 -0
- package/README_CN.md +15 -0
- package/dist/chunks/{agent-AKCXT573.js → agent-YLYM2UIQ.js} +1 -1
- package/dist/chunks/argument-completer-4WND7KNM.js +2 -0
- package/dist/chunks/{chunk-SOIIBADK.js → chunk-3SVR6PC4.js} +2 -2
- package/dist/chunks/{chunk-72H6JNPN.js → chunk-4R4QTBO6.js} +131 -131
- package/dist/chunks/chunk-4S5ZAR6N.js +383 -0
- package/dist/chunks/{chunk-W5RPVR3O.js → chunk-7RF2XYFK.js} +1 -1
- package/dist/chunks/{chunk-BOMSVUJS.js → chunk-7YQT4RAW.js} +2 -2
- package/dist/chunks/chunk-FBL7IVMK.js +123 -0
- package/dist/chunks/{chunk-4Y6OSDZE.js → chunk-G5XXC7ON.js} +1 -1
- package/dist/chunks/{chunk-IFD6TUQU.js → chunk-HXORFXTH.js} +1 -1
- package/dist/chunks/{chunk-CQHLFQSU.js → chunk-MGM5SUKU.js} +2 -2
- package/dist/chunks/chunk-P7AW3CQW.js +415 -0
- package/dist/chunks/{chunk-5247AKGN.js → chunk-QFV6YCIH.js} +2 -2
- package/dist/chunks/{chunk-5UBP47VJ.js → chunk-UNTT2ZKN.js} +88 -88
- package/dist/chunks/{chunk-O2ZV775M.js → chunk-X75UGXP3.js} +1 -1
- package/dist/chunks/chunk-XC2GKTSX.js +519 -0
- package/dist/chunks/chunk-XQWPHL6U.js +408 -0
- package/dist/chunks/chunk-YQSQEF6J.js +320 -0
- package/dist/chunks/{chunk-PROPMIT4.js → chunk-ZNH2MKN5.js} +1 -1
- package/dist/chunks/{client-ZXBSEDS4.js → client-SKLNEU3G.js} +1 -1
- package/dist/chunks/compaction-config-UEGW2ZBT.js +2 -0
- package/dist/chunks/{construction-bootstrap-WF6KQ7XV.js → construction-bootstrap-OUKXVNUQ.js} +1 -1
- package/dist/chunks/dist-7EWVACPM.js +2 -0
- package/dist/chunks/{dist-WILA35IA.js → dist-WNMK42WE.js} +1 -1
- package/dist/chunks/host-GDDQKQKH.js +2 -0
- package/dist/chunks/run-manager-J4WO55J2.js +2 -0
- package/dist/chunks/{utils-BEWYGEMB.js → utils-NZXGH43M.js} +1 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.js +5 -5
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1539 -1542
- package/dist/runtime-worker.js +1407 -1410
- package/dist/sandbox-workspace-session.js +213 -213
- package/dist/sdk-a2a.d.ts +12 -12
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +15 -13
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +14 -14
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +3 -3
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +1 -1
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +9 -9
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +108 -8
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +5 -5
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +59 -59
- package/dist/types-chunks/{bash-prefix-extractor.d-BLlhCRI-.d.ts → bash-prefix-extractor.d-BMi_TJIY.d.ts} +54 -7
- package/dist/types-chunks/{capsule.d-Cw4UlPTC.d.ts → capsule.d-nYbM4MNL.d.ts} +2 -2
- package/dist/types-chunks/{controller.d-1tydJm7c.d.ts → controller.d-Bm1i9RVj.d.ts} +14 -6
- package/dist/types-chunks/{controller.d-BvwWz6yP.d.ts → controller.d-CTvvOy_V.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-DqWHIgt6.d.ts → guardrail.d-CKkoea7y.d.ts} +2 -2
- package/dist/types-chunks/{history-retrieval.d-ia-4iJpw.d.ts → history-retrieval.d-D0LNyBED.d.ts} +1 -1
- package/dist/types-chunks/{public-api.d-CMZa4JPa.d.ts → public-api.d-ItHKrP7K.d.ts} +4 -4
- package/dist/types-chunks/{repl.d-Byu2osV-.d.ts → repl.d-Beg6tiSz.d.ts} +11 -6
- package/dist/types-chunks/{resolver.d-bKttRr1V.d.ts → resolver.d-DparsV6Y.d.ts} +6 -4
- package/dist/types-chunks/{review-inbox.d-D3T-RxRs.d.ts → review-inbox.d-dAtGH3g2.d.ts} +1 -1
- package/dist/types-chunks/{run-manager.d-D0aKe12e.d.ts → run-manager.d-BeSEc2OL.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-BEM7yvJB.d.ts → sdk-session-C7aoqrIR.d.ts} +2 -2
- package/dist/types-chunks/{shell-command-sets.d-_SHjU3KP.d.ts → shell-command-sets.d-C2cc9Hwi.d.ts} +1 -1
- package/dist/types-chunks/{types.d-B_IFJlti.d.ts → types.d-Dc3kwcjC.d.ts} +1 -1
- package/dist/types-chunks/{types.d-BqK7eZ5u.d.ts → types.d-DrtP1ceI.d.ts} +2 -2
- package/dist/types-chunks/{types.d-DeokRBs7.d.ts → types.d-EjZTEEVu.d.ts} +2 -1
- package/dist/types-chunks/{utils.d-0h1NTEsX.d.ts → utils.d-Qa_Z1w2Q.d.ts} +5 -5
- package/package.json +4 -2
- package/dist/chunks/argument-completer-BJGY57H2.js +0 -2
- package/dist/chunks/chunk-A63MGLH6.js +0 -415
- package/dist/chunks/chunk-GL6GVYF4.js +0 -320
- package/dist/chunks/chunk-QQBFQCMF.js +0 -519
- package/dist/chunks/chunk-S74F7MFN.js +0 -412
- package/dist/chunks/chunk-UNEC2WXJ.js +0 -123
- package/dist/chunks/chunk-W2LRTZBJ.js +0 -382
- package/dist/chunks/compaction-config-HVHPJ6CS.js +0 -2
- package/dist/chunks/dist-BCT3UNMA.js +0 -2
- package/dist/chunks/host-V6ENYZAQ.js +0 -2
- package/dist/chunks/run-manager-ZOV7EKTZ.js +0 -2
package/dist/semantic-worker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
var
|
|
2
|
+
var Xc=Object.defineProperty;var s=(e,t)=>Xc(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Mc=(e,t)=>{for(var n in t)Xc(e,n,{get:t[n],enumerable:!0})};import Zh from"path";function jc(e){return Zh.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var Wc=p(()=>{"use strict";s(jc,"resolveExecutionCwd")});var Fc=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var un=p(()=>{"use strict"});import{AsyncLocalStorage as Hh}from"node:async_hooks";function yr(e){let t=Jh.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 Jh,wr=p(()=>{"use strict";Jh=new Hh;s(yr,"redactScopedProviderCredential");s(fn,"redactCredentialValue")});var Wt=p(()=>{"use strict"});var Oo=p(()=>{"use strict"});var Dc=p(()=>{"use strict"});var go=p(()=>{"use strict"});var gt=p(()=>{"use strict"});var Nc=p(()=>{"use strict"});var yo=p(()=>{"use strict"});import{AsyncLocalStorage as eO}from"node:async_hooks";var v_,pn=p(()=>{"use strict";v_=new eO});var mn,Lc,Sr,qc,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"},Lc={...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"},qc={...Sr,multimodalSupport:"image-input"}});var hn=p(()=>{"use strict";Wt();Nc();wr();yo();Oo();pn();yt();gt()});import{parse as N_}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"});var Tr=p(()=>{"use strict";hn();vr();On();Wt();kr();gt();gn();wo();pn()});var Rr=p(()=>{"use strict";hn();Wt();vr();On();kr();gt();gn();wo();pn()});var xQ,TQ,RQ,_Q,bo=p(()=>{"use strict";xQ=Object.freeze({status:"terminated"}),TQ=Object.freeze({status:"already-exited"}),RQ=Object.freeze({status:"unknown"}),_Q=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
|
|
91
|
-
`),t=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,windowsHide:!0});if(!t.error&&t.status===0){let o=
|
|
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
|
|
93
|
-
`),i=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function
|
|
89
|
+
}`});var Bc=p(()=>{"use strict";bo()});var _r=p(()=>{"use strict";hn();Bc();yt();gn()});var Po=p(()=>{"use strict";bo()});var vo=p(()=>{"use strict"});var Zc=p(()=>{"use strict";Po();vo()});var ko=p(()=>{"use strict"});import Hc from"node:fs";import Jc from"node:os";import ed from"node:path";function td(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 RO(){let e=ed.join(Jc.homedir(),".codex","config.toml");try{return Hc.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function _O(){let e=ed.join(Jc.homedir(),".gemini","settings.json");try{let t=JSON.parse(Hc.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 RO()||vO}function Dt(){return _O()||kO}function yn(){return td([Ft(),...xO])}function wn(){return td([Dt(),...TO])}var vO,kO,xO,TO,Sn=p(()=>{"use strict";vO="gpt-5.4",kO="auto-gemini-3",xO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],TO=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(td,"dedupePreserveOrder");s(RO,"readCodexConfiguredModel");s(_O,"readGeminiConfiguredModel");s(Ft,"getCodexCliDefaultModel");s(Dt,"getGeminiCliDefaultModel");s(yn,"getCodexCliKnownModels");s(wn,"getGeminiCliKnownModels")});var lE,uE,nd=p(()=>{"use strict";_r();Zc();ko();Sn();yt();lE=Dt(),uE=wn()});var rd=p(()=>{"use strict";Po();vo()});var vE,kE,id=p(()=>{"use strict";_r();rd();ko();Sn();vE=Ft(),kE=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 md(e,t){if(e!==void 0){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 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 fd(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 EO(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 IO(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 To(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 $O(e,t){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 CO(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 pd(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=$O(e.effortStrategy,`${t}.effortStrategy`),r=IO(e.reasoningPreset,`${t}.reasoningPreset`),i=CO(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Nt(e.defaultEffort,`${t}.defaultEffort`),a=EO(e.effortAliases,`${t}.effortAliases`),c=fd(e.disabledEfforts,`${t}.disabledEfforts`),d=fd(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 hd(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?pd(n,`${t}.reasoningProfile`):pd(r,`${t}.reasoningCapabilityV2`)}function AO(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 XO(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 MO(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=md(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=hd(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 jO(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 WO(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=hd(e,`providers.${t}`),a=AO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=XO(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=md(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Ze(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=K(e.supportsThinking,`providers.${t}.supportsThinking`),g=jO(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)=>MO(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 Od(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]=WO(i,r);return{version:1,updatedAt:t,providers:n}}var od,sd,ad,cd,dd,ld,ud,gd=p(()=>{"use strict";od=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],sd=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],ad=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],cd=["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"],dd=["max_tokens","max_completion_tokens"],ld=["native","image-input-native","cli-bridge","image-input-cli-bridge"],ud=["count-tokens","models-list","minimal-message","unsupported"];s(Ce,"isPlainObject");s(wt,"requireString");s(Nt,"optionalString");s(md,"optionalMaxOutputTokensField");s(Ze,"optionalNumber");s(K,"optionalBoolean");s(fd,"optionalStringArray");s(EO,"optionalStringMap");s(IO,"optionalReasoningPreset");s(To,"requireReasoningCapability");s($O,"requireEffortStrategy");s(CO,"optionalThinkingStrategy");s(pd,"validateReasoningProfile");s(hd,"validateReasoningProfileField");s(AO,"requireProfileName");s(XO,"requireVerifyStrategy");s(MO,"validateModelDescriptor");s(jO,"validateModelReasoningCapabilities");s(WO,"validateProviderEntry");s(Od,"validateProviderCapabilitiesJson")});import{existsSync as FO,readFileSync as DO}from"node:fs";import Lt from"node:path";import{fileURLToPath as NO}from"node:url";function qO(){if(process.env.KODAX_BUNDLED==="true")return Lt.join(Lt.dirname(process.execPath),"provider-capabilities.json");let e=Lt.dirname(NO(import.meta.url)),t=[Lt.join(e,"provider-capabilities.json"),Lt.join(Lt.dirname(e),"provider-capabilities.json")];for(let n of t)if(FO(n))return n;return t[0]}function zO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&yd(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&yd(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function yd(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 UO(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 VO(e,t){let n=LO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=UO(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 wd(){if(Qr)return Qr;let e=qO(),t;try{let i=DO(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=Od(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=zO(VO(i,o));return Qr=Object.freeze(r),Qr}var LO,Qr,Sd=p(()=>{"use strict";yt();Sn();gd();LO=Object.freeze({native:mn,"image-input-native":Lc,"cli-bridge":Sr,"image-input-cli-bridge":qc}),Qr=null;s(qO,"resolveJsonPath");s(zO,"deepFreezeSnapshot");s(yd,"freezeReasoningProfile");s(UO,"resolveCliBridgeModels");s(VO,"buildSnapshot");s(wd,"getProviderSnapshots")});var Er,bd,bn=p(()=>{"use strict";Tr();Rr();nd();id();Wt();wr();yt();Sd();Er=wd(),bd=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 Md=p(()=>{"use strict";bn();Ir();Ao()});var Xo=p(()=>{"use strict";hn();Tr();Rr();_r();bn();Eo();Ir();Ao();Md();kr()});var Fd=p(()=>{"use strict";Xo();gt();go()});var Mo=p(()=>{"use strict"});var jo=p(()=>{"use strict";Mo()});var Dd=p(()=>{"use strict";jo();On()});var Pn=p(()=>{"use strict";wr();Wt();Oo();Dc();go();gt();Fd();Xo();Sn();vr();On();pn();Mo();jo();Dd();yo();gn()});function q(e){let t=yr(e),n=kg.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Nd(t)}
|
|
90
|
+
`)}catch{}}function Nd(e){let t=yr(e),n=xg(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function xg(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 kg,pe=p(()=>{"use strict";Pn();kg=[];s(q,"emitKodaXDiagnostic");s(Nd,"formatKodaXDiagnostic");s(xg,"formatDiagnosticDetail")});var Ld=p(()=>{"use strict"});var qd=p(()=>{"use strict"});var zd=p(()=>{"use strict"});function Tg(){Ud+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${Ud}-${e}`}var vn,Ud,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??Tg,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))}},Ud=0;s(Tg,"defaultNextSpanId")});function Rg(){Vd+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Vd}-${e}`}function Fo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??Rg)(),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 Vd,Do=p(()=>{"use strict";Wo();Vd=0;s(Rg,"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,Kd,Yd=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})}},Kd=new $r});var Gd=p(()=>{"use strict"});var Bd=p(()=>{"use strict"});var Vo=p(()=>{"use strict";Wo();Do();Yd();Uo();Gd();Bd()});var kn=p(()=>{"use strict"});var Cr=p(()=>{"use strict"});var Cg,A0,Ko=p(()=>{"use strict";pe();kn();Cr();Cg=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],A0=new Set(Cg)});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 Jd=p(()=>{"use strict"});var el=p(()=>{"use strict"});var tl=p(()=>{"use strict"});var nl=p(()=>{"use strict";kn();Jd();el();tl()});import{homedir as ey}from"node:os";import{isAbsolute as wC,normalize as ty,resolve as ny,sep as rl}from"node:path";import{join as ol}from"node:path";function St(){if(il)return il;let e=process.env[iy];return e&&e.length>0?e:ol(ey(),ry)}function Y(...e){return ol(St(),...e)}function xn(e,t){let n=s(a=>{let c=ty(ny(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(rl)?i:`${i}${rl}`;return r===i||r.startsWith(o)}var ry,iy,il,G=p(()=>{"use strict";ry=".kodax",iy="KODAX_HOME";s(St,"getAgentConfigHome");s(Y,"getAgentConfigPath");s(xn,"isPathInsideDirectory")});var sl=p(()=>{"use strict";Pn();G()});var Jo=p(()=>{"use strict"});import{spawnSync as Tn}from"node:child_process";import{readFileSync as oy}from"node:fs";function dl(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 ll(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 sy(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 ay(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 cy(){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=sy(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:ay(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 dy(){let e=["$source = @'",ml,"'@","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 dy()??cy()}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=oy(`/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 ly(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)||!uy(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 uy(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function fy(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 ul(e){let t=Xr();if(t===void 0)return;let n=fy([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 py(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(es)}async function fl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!py(e))return ul(e)===!0;await new Promise(r=>setTimeout(r,50))}return ul(e)===!0}function pl(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 = @'",ml,"'@","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 my(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=ly(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 hy(e,t,n){let r=[e.root,...e.descendants],i=pl(r,t);return e.completeTree?await fl(e,n)?Ar:i?(pl(r,t),await fl(e,n)?Ar:He):He:He}function Oy(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??al,o=t.expectedProcessStartIdentity;if(o===void 0)return He;let a=Oy(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=my(e,o)??a;return d===void 0||d===null?He:hy(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return ts(e)?He:cl;let n=t.forceMs??al;return dl(e,"SIGTERM")?await ll(e,n)?Ar:(dl(e,"SIGKILL"),await ll(e,n)?Ar:He):cl}var al,Rn,IC,$C,ml,Ar,cl,He,_n=p(()=>{"use strict";al=2e3,Rn=5e3,IC=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
|
-
}
|
|
160
|
+
}`,$C=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
|
-
}`,
|
|
168
|
+
}`,ml=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(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/&/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
|
+
}`,Ar=Object.freeze({status:"terminated"}),cl=Object.freeze({status:"already-exited"}),He=Object.freeze({status:"unknown"});s(dl,"signalPosixPidTree");s(es,"signalTargetExists");s(ts,"isPosixPidTreeAlive");s(ll,"waitForPosixPidTreeExit");s(sy,"parseWindowsProcessSnapshotJson");s(ay,"parseWmicCreationTime");s(cy,"readWindowsProcessSnapshotFallback");s(dy,"readWindowsProcessSnapshotNative");s(Xr,"readWindowsProcessSnapshot");s(Ae,"readProcessStartIdentity");s(ly,"collectDescendantIdentities");s(uy,"windowsCreationAtLeast");s(fy,"currentCapturedWindowsPids");s(ul,"capturedWindowsProcessesGone");s(py,"capturedWindowsPidMayBeAlive");s(fl,"waitForCapturedWindowsProcessesExit");s(pl,"terminateCapturedWindowsProcesses");s(my,"captureWindowsProcessTree");s(hy,"killCapturedWindowsTree");s(Oy,"retainedWindowsProcessTree");s(Mr,"killPidTree")});import{spawnSync as In}from"node:child_process";import{lstatSync as gy,mkdirSync as yy,realpathSync as hl,renameSync as wy,readdirSync as Sy,readFileSync as vl,rmSync as Fr,writeFileSync as FC}from"node:fs";import Z from"node:path";function Nr(){return Y("runtime","processes","children")}function Py(){return Y("processes","children")}function vy(){let e=Py(),t=Z.dirname(Z.dirname(e));try{let n=hl.native(t),r=t;for(let i of["processes","children"]){r=Z.join(r,i);let o=gy(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=hl.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 kl(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 yy(t,{recursive:!0}),wy(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 Ol(e,t){let n=Dr.get(e),r=kl(e,t),i=Tl(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 ky(e){return Z.basename(e).toLowerCase()}function gl(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 xy(e){return e.length>3&&!e.startsWith("-")}function yl(e,t){let n=t.toLowerCase();if(!gl(e.command,n)&&!n.includes(ky(e.command)))return!1;let r=e.args?.filter(xy)??[];return r.length===0||r.some(i=>gl(i,n))}function Ty(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function Ry(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&&Ty(t.record.args,e.args)&&t.record.cwd===e.cwd}function _y(e){if(process.platform==="win32"){let r=xl(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=vl(`/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 wl(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 Qy(e){return e.replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")}function Ey(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=Qy(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=Ey(t.stdout);return n?{status:"found",info:n}:{status:"missing"}}function xl(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 Iy(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 $y(e){if(process.platform==="win32"){let n=xl(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!yl(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=Iy(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:yl(e,t.commandLine)}function Tl(e){try{let t=JSON.parse(vl(e,"utf8"));return My(t)?t.version!==by?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 Cy(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 Ay(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:Cy(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 Xy(e){return process.platform!=="win32"?new Map(e.map(t=>[t,_y(t)])):new Map([...Ay(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 My(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 jy(e);t+=l.killed,n+=l.pruned,r+=l.skipped,i+=l.unresolved;let f=vy(),u=[{directory:Nr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...Sy(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:Tl(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&jr(h.record.ownerPid)?[h.record.ownerPid]:[]),w=Xy(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}wl(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&&wl(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?Ry(S)?!0:$y(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 jy(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(kl(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){Ol(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"||!Ol(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 by,$n,Dr,is=p(()=>{"use strict";pe();G();_n();by=4,$n=5e3,Dr=new Map;s(Nr,"registryDir");s(Py,"legacyRegistryDir");s(vy,"verifiedLegacyRegistryDir");s(kl,"registryPath");s(Qn,"quarantineRecord");s(Ol,"removeRecord");s(En,"removePersistedRecord");s(jr,"isPidAlive");s(ky,"commandNeedle");s(gl,"tokenMatches");s(xy,"significantArg");s(yl,"commandMatches");s(Ty,"argsMatch");s(Ry,"activeChildMatchesRecord");s(_y,"processStartIdentity");s(wl,"managedOwnerState");s(ns,"parseWindowsDate");s(Qy,"decodeWmicValue");s(Ey,"parseWmicListOutput");s(Wr,"getWindowsProcessInfoViaWmic");s(xl,"getWindowsProcessInfo");s(Iy,"getPosixCommandLine");s($y,"isConfirmedRecord");s(Tl,"readRecord");s(Cy,"parseWindowsProcessInfoRows");s(Ay,"getWindowsProcessInfos");s(Xy,"processStartIdentities");s(My,"isManagedChildRecordBase");s(rs,"cleanupRegisteredManagedChildren");s(jy,"cleanupActiveCurrentOwnerChildren")});var Rl,Wy,Fy,VC,_l=p(()=>{"use strict";Rl="KODAX_EFFECT_JOB_PAYLOAD",Wy=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
|
-
}`,
|
|
415
|
+
}`,Fy=String.raw`
|
|
416
416
|
$ErrorActionPreference = 'Stop'
|
|
417
417
|
try {
|
|
418
418
|
$payload = [Text.Encoding]::UTF8.GetString(
|
|
419
|
-
[Convert]::FromBase64String($env:${
|
|
420
|
-
Remove-Item Env:${
|
|
419
|
+
[Convert]::FromBase64String($env:${Rl})) | ConvertFrom-Json
|
|
420
|
+
Remove-Item Env:${Rl} -ErrorAction SilentlyContinue
|
|
421
421
|
$source = @'
|
|
422
|
-
${
|
|
422
|
+
${Wy}
|
|
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
|
-
}`,
|
|
434
|
+
}`,VC=Buffer.from(Fy,"utf16le").toString("base64")});var Ql=p(()=>{"use strict"});var os=p(()=>{"use strict"});var El=p(()=>{"use strict"});var Il=p(()=>{"use strict";os()});var as=p(()=>{"use strict";os();El();Il()});var qt=p(()=>{"use strict"});var Al=p(()=>{"use strict";qt()});var Yy,ds=p(()=>{"use strict";qt();Yy=Math.floor(3.75*1024*1024)});var Xl=p(()=>{"use strict";qt();ds()});var By,Ml=p(()=>{"use strict";By=1440*60*1e3});var ls=p(()=>{"use strict";Pn()});var us=p(()=>{"use strict";qt();ls()});var jl=p(()=>{"use strict";as();us()});var Wl=p(()=>{"use strict";qt();Al();ds();Xl();Ml();ls();us();jl()});var Cn=p(()=>{"use strict"});var Ll=p(()=>{"use strict";Ho();Cn();Cn();Cn()});var ql=p(()=>{"use strict"});var zl=p(()=>{"use strict";Cn();Ll();ql()});var fs=p(()=>{"use strict";G()});var ps=p(()=>{"use strict";G()});var Ul=p(()=>{"use strict"});var ms=p(()=>{"use strict"});var Vl=p(()=>{"use strict";ms();ps();fs()});var Kl=p(()=>{"use strict";pe()});var Yl=p(()=>{"use strict"});var hs=p(()=>{"use strict";Kl();Yl()});var Lr=p(()=>{"use strict"});var Gl=p(()=>{"use strict"});var qr=p(()=>{"use strict";G();Lr();Lr()});var Zl=p(()=>{"use strict"});var Hl=p(()=>{"use strict"});var zr=p(()=>{"use strict";Lr();Gl();qr();Zl();Hl()});var nu=p(()=>{"use strict"});var gs=p(()=>{"use strict"});import{fileURLToPath as vw}from"url";import{dirname as kw}from"path";var xw,gM,ys=p(()=>{"use strict";gs();xw=vw(import.meta.url),gM=kw(xw)});import ru from"yaml";function Rw(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
|
|
436
|
+
`)}function iu(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=
|
|
443
|
-
`,"utf8")}catch(i){r=i}try{await Pt(e)}catch(i){if(r===void 0&&
|
|
444
|
-
`,"utf8")}catch(r){if(H(r,"ENOENT"))return;n=r}try{await Pt(e)}catch(r){if(n===void 0&&
|
|
445
|
-
`}function
|
|
446
|
-
`)}async function
|
|
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=ru.parse(i)??{}}catch{a=ru.parse(Rw(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 ou(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 _w(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 Qw(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>_w(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function su(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of Tw){let i=Qw(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var Tw,au=p(()=>{"use strict";Tw=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s(Rw,"sanitizeYaml");s(iu,"parseYamlFrontmatter");s(ou,"normalizeAllowedToolsString");s(_w,"normalizeYamlHookEntry");s(Qw,"normalizeYamlHookEntryList");s(su,"normalizeYamlHookMap")});import{readFile as Ew,readdir as Iw}from"fs/promises";import{join as bt,relative as $w}from"path";function cu(e){let[t,n]=iu(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:ou(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:su(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 Ew(n,"utf-8"),{frontmatter:i,body:o}=cu(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 Iw(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:$w(t,o).replace(/\\/g,"/")})}}catch{}return n}var An=p(()=>{"use strict";pe();au();s(cu,"parseSkillMarkdown");s(Ur,"loadFullSkill");s(zt,"loadSkillFiles")});var ws=p(()=>{"use strict"});var Ss=p(()=>{"use strict"});var du,lu,Vr=p(()=>{"use strict";du=64*1024,lu=256*1024});import{randomUUID as hu}from"node:crypto";import{mkdir as Ou,open as gu,readFile as vt,readdir as vs,rm as Cw,stat as Br,writeFile as yu}from"node:fs/promises";import{dirname as Aw,join as bs}from"node:path";function jw(){return pu||(fu=Ae(process.pid),pu=!0),fu}async function ks(e,t=Xw){await Ou(Aw(e),{recursive:!0});let n=await Ww(e,t),r=!1;return async()=>{if(!r){r=!0;try{await n.handle.close()}finally{await Pu(e,n.token)}}}}async function Ww(e,t){let n=Date.now()+t,r=await Fw(e),i,o=!1;try{for(await Dw(r,n,e);;){await Su(r);try{return i=await Uw(e),i}catch(a){let c=await Yw(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 Vw(e);if(d!==void 0&&await Kw(e,d))continue;if(Date.now()>=n)throw Tu(e);await Gr(Yr)}}}finally{try{await vu(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 Pu(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Fw(e){let t=`${e}.queue`,n=hu(),r=ku(n),i=bs(t,`choosing-${n}.lock`);await Ou(t,{recursive:!0}),await mu(i,r);try{await bu(t);let o=await Nw(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(Mw,"0")}-${n}.lock`,d=bs(t,c);return await mu(d,r),{queuePath:t,path:d,name:c,raw:r}}finally{await vu(i,r)}}async function Dw(e,t,n){for(;;){await bu(e.queuePath),await Su(e);let r=await vs(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(xs).filter(a=>a!==void 0).sort(Lw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw Tu(n);await Gr(Yr)}}async function mu(e,t){let n=await gu(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await Pt(e),r}}async function Su(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 Nw(e){return(await vs(e)).map(xs).filter(t=>t!==void 0)}function xs(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 Lw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function bu(e){let t=await vs(e);await Promise.all(t.filter(qw).map(async n=>{let r=bs(e,n);await zw(r)&&await Pt(r)}))}function qw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||xs(e)!==void 0}async function zw(e){try{let t=await Br(e),n=Ts(await vt(e,"utf8"));return n?.released===!0?!0:Date.now()-t.mtimeMs<=wu?!1:n===void 0||!xu(n)}catch(t){if(H(t,"ENOENT")||["EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return!1;throw t}}async function Uw(e){let t=await gu(e,"wx"),n=hu();try{return await t.writeFile(ku(n),"utf8"),{handle:t,token:n}}catch(r){throw await t.close(),await Pt(e),r}}async function Vw(e){try{let t=await Br(e),n=await vt(e,"utf8"),r=Ts(n),i=r?.token!==void 0&&await Gw(e,r.token);return!i&&Date.now()-t.mtimeMs<=wu?void 0:i||r!==void 0&&!xu(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 Kw(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 Yw(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 Pu(e,t){try{if(Ts(await vt(e,"utf8"))?.token!==t)return;let r;try{await yu(Kr(e,t),`${t}
|
|
443
|
+
`,"utf8")}catch(i){r=i}try{await Pt(e)}catch(i){if(r===void 0&&Rs(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 vu(e,t){let n;try{if(await vt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await yu(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&&Rs(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function Gw(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 ku(e){let t=jw(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
|
|
445
|
+
`}function Ts(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 Bw(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 xu(e){if(!Bw(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=Ae(e.pid);return t===void 0||t===e.processStartIdentity}function Rs(e){return["EPERM","EACCES","EBUSY"].some(t=>H(e,t))}async function Pt(e){for(let t=1;t<=uu;t+=1)try{await Cw(e,{force:!0});return}catch(n){if(H(n,"ENOENT"))return;if(!Rs(n)||t===uu)throw n;await Gr(Yr)}}function Tu(e){return new Ps(`learning store lock timed out: ${e}`)}async function Gr(e){await new Promise(t=>setTimeout(t,e))}var Xw,Yr,wu,Mw,uu,fu,pu,Ps,kt=p(()=>{"use strict";pe();_n();Xw=5e3,Yr=10,wu=3e4,Mw=16,uu=8,pu=!1;s(jw,"getCurrentProcessStartIdentity");Ps=class extends Error{static{s(this,"LearningFileLockTimeoutError")}};s(ks,"acquireLearningFileLock");s(Ww,"acquireLock");s(Fw,"createLockTicket");s(Dw,"waitForTicketTurn");s(mu,"createOwnerFile");s(Su,"assertTicketOwned");s(Nw,"listQueueTickets");s(xs,"parseQueueTicket");s(Lw,"compareQueueTickets");s(bu,"cleanupAbandonedQueueEntries");s(qw,"isQueueEntryName");s(zw,"isAbandonedQueueEntry");s(Uw,"createLock");s(Vw,"observeStaleLock");s(Kw,"removeObservedStaleLock");s(Yw,"classifyExistingLockContention");s(Pu,"releaseLock");s(vu,"releaseQueueEntry");s(Gw,"hasReleaseMarker");s(Kr,"releaseMarkerPath");s(ku,"lockOwnerRecord");s(Ts,"parseOwner");s(Bw,"isProcessAlive");s(H,"isFileError");s(xu,"isRecordedOwnerAlive");s(Rs,"isTransientFileContention");s(Pt,"removeFileWithTransientRetry");s(Tu,"lockTimeout");s(Gr,"delay")});var xt=p(()=>{"use strict";G();qr();kt()});var _s=p(()=>{"use strict";Vr();Ss()});var Qs=p(()=>{"use strict";_s();Vr();xt()});var Is=p(()=>{"use strict";ws();xt()});var Iu=p(()=>{"use strict";G();qr()});var u1,$u=p(()=>{"use strict";u1=1024*1024});var Au=p(()=>{"use strict";Is()});var ve=p(()=>{"use strict"});var Hr=p(()=>{"use strict";ve();kt();G()});var $s=p(()=>{"use strict";xt();ve()});var Fu=p(()=>{"use strict";G();ve();Hr();$s();Qs();xt()});var Du=p(()=>{"use strict";ve()});var L1,Wn=p(()=>{"use strict";ve();L1=16*1024});var Nu=p(()=>{"use strict";ve();Wn()});var Z1,Lu=p(()=>{"use strict";ve();Hr();Z1=16*1024});var Vu=p(()=>{"use strict";ve();pe();Wn()});var ti=p(()=>{"use strict";ws();Ss();Vr();xt();_s();Qs();Is();Iu();$u();Au();ve();Fu();Hr();$s();Du();Nu();Lu();Vu();Wn()});var As=p(()=>{"use strict";ti();ys();An()});import{execSync as $S}from"child_process";import CS from"path";function Gu(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of AS)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 XS(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&CS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Gu(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!Gu(o))return!1}return!0}function Bu(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 AS,ni,Dn=p(()=>{"use strict";AS=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(Gu,"isSingleSafeDynamicContextCommand");s(XS,"isSafeDynamicContextCommand");s(Bu,"parseArguments");ni=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Bu(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(!XS(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return $S(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 Xs=p(()=>{"use strict";pe();As();An();Dn()});var Zu=p(()=>{"use strict";Xs();Dn()});function Hu(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ri(e){return e.replace(/\\/g,"/")}function WS(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 FS(e){let t=WS(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,Ms))r.push(`- ${i}/${o.relativePath}: ${ri(o.path)}`);return t.length>Ms&&r.push(`- ... ${t.length-Ms} more files under ${ri(e.path)}`),r}function DS(e,t,n){let r=[];r.push(`<skill name="${Hu(e.name)}" location="${Hu(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=FS(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 js(e,t,n){let r=await Fn(e.content,t,n);return{content:DS(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var Ms,Ws=p(()=>{"use strict";Dn();s(Hu,"escapeXml");Ms=120;s(ri,"formatDisplayPath");s(WS,"collectSupportFiles");s(FS,"buildSupportFileContext");s(DS,"buildSkillBlock");s(js,"expandSkillForLLM")});import{existsSync as NS}from"node:fs";import{mkdir as LS,readFile as Fs,readdir as qS,stat as ef,writeFile as Gj}from"node:fs/promises";import zS from"node:os";import Xe from"node:path";import{fileURLToPath as tf,pathToFileURL as US}from"node:url";import VS from"yaml";async function Je(){if(Ut)return Ut;let e=Xe.dirname(tf(import.meta.url)),t=[],n=Xe.resolve(e,"../../../index.js");if(NS(n))return Ut=await import(US(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}.
|
|
447
447
|
Attempted:
|
|
448
448
|
- ${t.join(`
|
|
449
|
-
- `)}`)}function
|
|
449
|
+
- `)}`)}function KS(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}=
|
|
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}=KS(e),r=VS.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 ef(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Fs(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 ef(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 Ju(e){try{return JSON.parse(e)}catch{return null}}function Vt(e){let t=Ju(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:Ju(e.slice(n,r+1))}async function ke(e,t=null){try{return JSON.parse(await Fs(e,"utf8"))}catch{return t}}async function Kt(e,t){let n=Xe.dirname(tf(e));return Fs(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)}
|
|
455
455
|
|
|
456
|
-
[truncated ${r} chars]`}function
|
|
456
|
+
[truncated ${r} chars]`}function nf(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 Ds(e,t=e,n=[]){let r=await qS(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 Ds(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:Xe.relative(e,o).replace(/\\/g,"/")})}return n}function zn(){return Xe.join(zS.homedir(),".kodax","skills")}async function re(e){return await LS(e,{recursive:!0}),e}var Ut,he=p(()=>{"use strict";Ut=null;s(Je,"loadKodaXSDK");s(KS,"extractFrontmatter");s(ii,"parseSkillMarkdown");s(Ln,"loadSkill");s(qn,"pathExists");s(oi,"calculateStats");s(Nn,"roundNumber");s(si,"formatDelta");s(Ju,"safeJsonParse");s(Vt,"extractJsonObject");s(ke,"readJsonFile");s(Kt,"loadRelativeText");s(ne,"truncateText");s(nf,"computePassSummary");s(Ds,"collectFiles");s(zn,"getDefaultSkillsDir");s(re,"ensureDirectory")});import{writeFile as rf}from"node:fs/promises";import et from"node:path";function YS(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function GS(e,t){let n=YS(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
|
|
486
|
-
`,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function
|
|
485
|
+
`}function BS(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 ZS(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 rf(et.join(n,"SKILL.md"),GS(e.name,r),"utf8"),e.includeEvals!==!1&&(await re(et.join(n,"evals")),await rf(et.join(n,"evals","evals.json"),`${BS(e.name)}
|
|
486
|
+
`,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function HS(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 of(e=process.argv){let t=HS(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 ZS(t);console.log(`Initialized ${n.skillDir}`)}var JS,sf=p(()=>{"use strict";he();s(YS,"titleFromSlug");s(GS,"renderSkillTemplate");s(BS,"renderEvalTemplate");s(ZS,"initSkill");s(HS,"parseArgs");s(of,"main");JS=!1;JS&&of().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import af 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=>!eb.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=af.basename(af.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 cf(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 eb,tb,ai=p(()=>{"use strict";he();eb=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(Un,"validateSkillDirectory");s(cf,"main");tb=!1;tb&&cf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Ns,writeFile as Me}from"node:fs/promises";import W from"node:path";function nb(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function rb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function ib(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 ob(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
|
|
488
|
+
`}async function sb(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 Ns(a,"utf8")}catch{d=await Ns(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
|
|
498
|
+
`}async function ab(e,t){let n=String(e.prompt??e.query??"").trim();return`${await sb(e.files,t)}${n}`.trim()}async function cb(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 db(e,t,n,r){return e==="with_skill"?(await js(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function lb(e,t,n,r,i){let o=W.join(e,"outputs");await re(o);let a={total_tool_calls:rb(i.result.messages),errors_encountered:ib(i.result.messages),output_chars:i.result.lastText.length};await Me(W.join(o,"result.md"),`${i.result.lastText}
|
|
499
499
|
`,"utf8"),await Me(W.join(o,"prompt.txt"),`${r}
|
|
500
|
-
`,"utf8"),await Me(W.join(e,"transcript.md"),
|
|
500
|
+
`,"utf8"),await Me(W.join(e,"transcript.md"),ob(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
501
|
`,"utf8"),await Me(W.join(o,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
|
|
502
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
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
|
|
505
|
-
`,"utf8");let m=await
|
|
506
|
-
`;t.output?(await Me(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var
|
|
504
|
+
`,"utf8")}async function ub(e,t=cb){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 Ns(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(nb).filter(Boolean)},null,2)}
|
|
505
|
+
`,"utf8");let m=await ab(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 db(w,n,m,e),S=await t(b,{...e,configName:w,evalItem:f,runIndex:h});await lb(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 fb(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 df(e=process.argv){let t=fb(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 ub(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 pb,lf=p(()=>{"use strict";Ws();An();he();s(nb,"normalizeAssertion");s(rb,"countToolCalls");s(ib,"countToolErrors");s(ob,"renderTranscript");s(sb,"readInputFiles");s(ab,"buildEvalPrompt");s(cb,"defaultRunAgent");s(db,"prepareConfigPrompt");s(lb,"writeRunArtifacts");s(ub,"runEvalWorkspace");s(fb,"parseArgs");s(df,"main");pb=!1;pb&&df().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as mb,readFile as Ls,writeFile as ff}from"node:fs/promises";import F from"node:path";function Rt(e){return String(e??"").trim()}function pf(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 qs(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function uf(e,t){return{text:Rt(e?.text??t),passed:e?.passed===!0,evidence:Rt(e?.evidence)}}function hb(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(uf(r[c],a))}if(t.length===0)for(let a of r){let c=uf(a,"");c.text&&i.push(c)}return{overall_summary:Rt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:qs(n.user_notes_summary?.uncertainties),needs_review:qs(n.user_notes_summary?.needs_review),workarounds:qs(n.user_notes_summary?.workarounds)}}}async function zs(e){return(await mb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>F.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function Ob(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 Ls(F.join(o,"result.md"),"utf8").catch(()=>""),d=await Ls(F.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await Ls(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 gb(e){let t=pf(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:
|
|
@@ -549,12 +549,12 @@ ${JSON.stringify({total_tool_calls:e.metrics.total_tool_calls??e.result.executio
|
|
|
549
549
|
|
|
550
550
|
## Transcript Excerpt
|
|
551
551
|
${ne(e.transcript,5e3)}
|
|
552
|
-
`}async function
|
|
553
|
-
`,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function
|
|
554
|
-
`,"utf8"),a}function
|
|
555
|
-
`)}var
|
|
556
|
-
`)}function
|
|
557
|
-
`),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var
|
|
552
|
+
`}async function mf(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 yb(e,t,n=mf){let r=await Ob(F.resolve(e)),i=pf(r.evalMetadata),o=await Kt(import.meta.url,"../agents/grader.md"),a=gb({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=hb(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:nf(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 ff(F.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
|
|
553
|
+
`,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function wb(e,t=mf){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 zs(n))if(F.basename(c).startsWith("eval-"))for(let d of await zs(c)){let l=F.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await zs(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 yb(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 ff(F.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
|
|
554
|
+
`,"utf8"),a}function Sb(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 hf(e=process.argv){let t=Sb(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 wb(t);process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
555
|
+
`)}var bb,Of=p(()=>{"use strict";he();s(Rt,"normalizeExpectationText");s(pf,"normalizeExpectedRubric");s(qs,"normalizeStringArray");s(uf,"normalizeExpectationEntry");s(hb,"normalizeParsedGrading");s(zs,"listDirectories");s(Ob,"loadRunContext");s(gb,"buildGradingPrompt");s(mf,"defaultRunJudge");s(yb,"gradeRun");s(wb,"gradeWorkspace");s(Sb,"parseArgs");s(hf,"main");bb=!1;bb&&hf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Pb,readdir as vb,stat as kb,writeFile as gf}from"node:fs/promises";import ie from"node:path";async function Us(e){return JSON.parse(await Pb(e,"utf8"))}async function xb(e){try{return await kb(e),!0}catch{return!1}}async function Vs(e){return(await vb(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 xb(ie.join(e,"runs"))?ie.join(e,"runs"):e,n=(await Vs(t)).filter(i=>ie.basename(i).startsWith("eval-")),r={};for(let i of n){let o=ie.join(i,"eval_metadata.json"),c=(await Us(o).catch(()=>({}))).eval_id??ie.basename(i);for(let d of await Vs(i)){let l=ie.basename(d),f=(await Vs(d)).filter(u=>ie.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await Us(ie.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await Us(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 Tb(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 Ks(e,t,n){let r=Tb(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:ie.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function Rb(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 _b(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 Qb(){let{iterationDir:e,skillName:t}=_b(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=Ks(e,t,n),i=ie.join(e,"benchmark.json"),o=ie.join(e,"benchmark.md");await gf(i,JSON.stringify(r,null,2)),await gf(o,`${Rb(r)}
|
|
557
|
+
`),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var Eb,yf=p(()=>{"use strict";he();s(Us,"readJson");s(xb,"pathExists");s(Vs,"listDirectories");s(ci,"loadRunResults");s(Tb,"summarizeConfigs");s(Ks,"buildBenchmarkDocument");s(Rb,"renderBenchmarkMarkdown");s(_b,"parseArgs");s(Qb,"main");Eb=!1;Eb&&Qb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Ys}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 Ib(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 $b(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 Cb(e){return`${e.agentInstructions.trim()}
|
|
558
558
|
|
|
559
559
|
Return JSON with this shape:
|
|
560
560
|
{
|
|
@@ -572,12 +572,12 @@ ${ne(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.confi
|
|
|
572
572
|
|
|
573
573
|
## Failure Clusters
|
|
574
574
|
${ne(JSON.stringify(e.failureClusters,null,2),8e3)}
|
|
575
|
-
`}async function
|
|
575
|
+
`}async function Ab(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 Xb(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
|
|
578
|
-
`,"utf8")}let o=await ci(n),a
|
|
579
|
-
`,"utf8"),await
|
|
580
|
-
`)}var
|
|
577
|
+
`}async function Mb(e,t=Ab){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=Ks(n,e.skillName??je.basename(n),g),await Ys(r,`${JSON.stringify(i,null,2)}
|
|
578
|
+
`,"utf8")}let o=await ci(n),a=Ib(o),c=await Kt(import.meta.url,"../agents/analyzer.md"),d=Cb({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=$b(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 Ys(u,`${JSON.stringify(f,null,2)}
|
|
579
|
+
`,"utf8"),await Ys(m,Xb(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function jb(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 wf(e=process.argv){let t=jb(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 Mb(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
|
|
580
|
+
`)}var Wb,Sf=p(()=>{"use strict";yf();he();s(di,"normalizeStringArray");s(Ib,"summarizeFailureClusters");s($b,"normalizeAnalysisResult");s(Cb,"buildAnalysisPrompt");s(Ab,"defaultRunAnalyst");s(Xb,"renderAnalysisMarkdown");s(Mb,"analyzeBenchmark");s(jb,"parseArgs");s(wf,"main");Wb=!1;Wb&&wf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Fb,readFile as bf,writeFile as Pf}from"node:fs/promises";import z from"node:path";async function Bs(e){return(await Fb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>z.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Gs(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Db(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:Gs(t.strengths_a),strengths_b:Gs(t.strengths_b),risks:Gs(t.risks)}}async function Nb(e,t,n,r){let i=(await Bs(z.join(e,t))).filter(u=>z.basename(u).startsWith("run-")),o=(await Bs(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 bf(z.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await bf(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 Lb(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
|
{
|
|
@@ -605,15 +605,15 @@ ${ne(t.A.output,12e3)}
|
|
|
605
605
|
|
|
606
606
|
## Candidate B
|
|
607
607
|
${ne(t.B.output,12e3)}
|
|
608
|
-
`}async function
|
|
608
|
+
`}async function qb(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 zb(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function Ub(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
|
|
611
|
-
`,"utf8"),await
|
|
612
|
-
`)}var
|
|
610
|
+
`}async function Vb(e,t=qb){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 Bs(n))if(z.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Nb(u,r,i,m);if(!g)break;let w=c.length%2===0,x=Lb({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=Db(h),b=zb(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 Pf(l,`${JSON.stringify(d,null,2)}
|
|
611
|
+
`,"utf8"),await Pf(f,Ub(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function Kb(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 vf(e=process.argv){let t=Kb(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 Vb(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
|
|
612
|
+
`)}var Yb,kf=p(()=>{"use strict";he();s(Bs,"listDirectories");s(Gs,"normalizeStringArray");s(Db,"normalizeComparisonResult");s(Nb,"loadComparisonPair");s(Lb,"buildComparisonPrompt");s(qb,"defaultRunComparator");s(zb,"mapWinnerToConfig");s(Ub,"renderComparisonMarkdown");s(Vb,"compareWorkspace");s(Kb,"parseArgs");s(vf,"main");Yb=!1;Yb&&vf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Gb,writeFile as Bb}from"node:fs/promises";import{createHash as Zb}from"node:crypto";import Zs from"node:path";import{zipSync as Hb,strToU8 as Jb}from"fflate";function tP(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function nP(e){return Zb("sha256").update(e).digest("hex")}function rP(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 iP(e,t={}){let n=await Un(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
|
|
613
613
|
- ${n.errors.join(`
|
|
614
|
-
- `)}`);let r=await Ln(e),i=await
|
|
614
|
+
- `)}`);let r=await Ln(e),i=await Ds(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=tP(await Gb(d.absolutePath));o.push({...d,bytes:l,sha256:nP(l)})}let a=rP(r,o,t),c={[eP]:Jb(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:Hb(c,{level:6})}}async function oP(e,t,n={}){let r=await iP(e,n);return await Bb(t,r.bytes),{...r,outputPath:Zs.resolve(t)}}function sP(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 xf(e=process.argv){let t=sP(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??Zs.join(Zs.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await oP(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var eP,aP,Tf=p(()=>{"use strict";ai();he();eP=".kodax-package.json";s(tP,"toUint8Array");s(nP,"sha256");s(rP,"createPackageManifest");s(iP,"buildSkillPackage");s(oP,"writeSkillPackage");s(sP,"parseArgs");s(xf,"main");aP=!1;aP&&xf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as cP,mkdir as Hs,readFile as Qf,rm as Ef,stat as dP,writeFile as lP}from"node:fs/promises";import xe from"node:path";import{strFromU8 as Rf,unzipSync as uP}from"fflate";function fP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function pP(e){let t=fP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function mP(e){return/\.(skill|zip)$/i.test(e)}function hP(e){let t=uP(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=ii(Rf(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(Rf(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==_f)}}async function OP(e,t){if(await qn(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Ef(e,{recursive:!0,force:!0})}await Hs(e,{recursive:!0})}async function gP(e,t={}){let n=xe.resolve(t.skillsDir??zn()),r=hP(await Qf(e)),i=xe.join(n,r.skillName);await OP(i,t.force===!0);for(let o of r.entries){let a=xe.join(i,o.relativePath);await Hs(xe.dirname(a),{recursive:!0}),await lP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:xe.resolve(e),manifest:r.manifest}}async function yP(e,t={}){let n=await Un(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
|
|
616
|
+
- `)}`);let r=xe.join(e,"SKILL.md"),i=ii(await Qf(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 Ef(a,{recursive:!0,force:!0})}return await Hs(o,{recursive:!0}),await cP(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:xe.resolve(e),manifest:null}}async function wP(e,t={}){let n=xe.resolve(e),r=await dP(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return yP(n,t);if(r.isFile()&&mP(n))return gP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function SP(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 If(e=process.argv){let t=SP(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 wP(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var _f,bP,$f=p(()=>{"use strict";ai();he();_f=".kodax-package.json";s(fP,"normalizeArchivePath");s(pP,"assertSafeArchivePath");s(mP,"isZipLike");s(hP,"readSkillPackageBuffer");s(OP,"ensureInstallTarget");s(gP,"installSkillArchive");s(yP,"installSkillDirectory");s(wP,"installSkill");s(SP,"parseArgs");s(If,"main");bP=!1;bP&&If().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var Cf=p(()=>{"use strict";sf();ai();lf();Of();Sf();kf();Tf();$f();he()});var Js=p(()=>{"use strict";ys();gs();An();As();Dn();Xs();Zu();Ws();Cf()});var ea=p(()=>{"use strict"});var ta=p(()=>{"use strict"});var li=p(()=>{"use strict"});var Af=p(()=>{"use strict";kt()});var oD,Mf=p(()=>{"use strict";Js();zr();xt();kt();ea();ta();li();Af();oD=1440*60*1e3});var fD,Vn=p(()=>{"use strict";zr();pe();kt();G();fD=5*6e4});var jf=p(()=>{"use strict";Wn();li();Vn()});var Wf=p(()=>{"use strict";nu();Mf();li();ea();ta();Vn();Vn();Vn();jf()});var rN,Kn=p(()=>{"use strict";G();rN=new Intl.Segmenter("zh-CN",{granularity:"word"})});var na=p(()=>{"use strict";Jo();_n();is()});var ra=p(()=>{"use strict";pe();G()});var ui=p(()=>{"use strict"});var ia=p(()=>{"use strict";G();ra();ui()});var oa=p(()=>{"use strict"});var sa=p(()=>{"use strict";Kn();na();ra();ia();pe();ui();oa()});var aa=p(()=>{"use strict";jt();Kn();sa()});var Nf=p(()=>{"use strict";aa()});var sL,Lf=p(()=>{"use strict";Kn();sL=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,16 @@ 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
|
|
796
|
+
`});var qf=p(()=>{"use strict";Kn();sa();aa();oa();na();ui();ia();Nf();Lf()});async function UP(e,t,n){let r=Uf("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function VP(e,t,n){let r=Uf("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function KP(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 zf,qP,zP,Uf,YP,Vf=p(()=>{"use strict";zf=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),qP=0,zP=0,Uf=s(e=>{let t=e==="label"?++qP:++zP,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(UP,"appendLabel");s(VP,"appendArtifact");s(KP,"buildLineageTree");YP=Object.freeze({name:"lineage",entryTypes:zf,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return UP(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return VP(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>KP(e),"buildLineageTree")})})});var Kf=p(()=>{"use strict"});var fi=p(()=>{"use strict"});var pi=p(()=>{"use strict";fi()});var ca=p(()=>{"use strict"});var da=p(()=>{"use strict";ca()});var Yf=p(()=>{"use strict"});var mi=p(()=>{"use strict"});var hi=p(()=>{"use strict"});var rv,ua,Oi,Yt=p(()=>{"use strict";jt();pi();da();Yf();fi();un();mi();hi();rv=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"]),ua=rv,Oi=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
|
|
797
797
|
|
|
798
|
-
`});var
|
|
799
|
-
`,"utf8");try{await
|
|
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(`
|
|
798
|
+
`});var fa=p(()=>{"use strict";jt()});var Gt=p(()=>{"use strict";Yt();fa()});var ep=p(()=>{"use strict";Gt()});var tp=p(()=>{"use strict"});var kq,xq,np=p(()=>{"use strict";Yt();Gt();kq=Oi.trimEnd(),xq=16*1024});var rp=p(()=>{"use strict";pi();Gt()});var ip=p(()=>{"use strict";Gt()});var cv,op=p(()=>{"use strict";Yt();fi();cv={enabled:!1,maxAge:20,protectedTools:Array.from(ua)}});var sp=p(()=>{"use strict"});var ap=p(()=>{"use strict";G()});var cp=p(()=>{"use strict";Yt()});var dp=p(()=>{"use strict";jt();un();mi();hi()});var lp=p(()=>{"use strict"});var up=p(()=>{"use strict";cp();dp();lp()});var fp=p(()=>{"use strict";Vf();Kf();ep();tp();Gt();np();rp();ip();mi();hi();pi();ca();da();Yt();op();fa();sp();ap();up()});var pp=p(()=>{"use strict"});var ma=p(()=>{"use strict"});var ha=p(()=>{"use strict"});var gi=p(()=>{"use strict"});import{createRequire as mv}from"node:module";var hv,mp,CU,Oa=p(()=>{"use strict";hv=mv(import.meta.url),CU=new Proxy({},{get(e,t){return mp??=hv("typescript"),Reflect.get(mp,t)}})});var ga=p(()=>{"use strict";gi();Oa()});var Op=p(()=>{"use strict";gi();ga()});var ya=p(()=>{"use strict";Pn();ma()});var gp=p(()=>{"use strict";ha();ya()});var yp=p(()=>{"use strict";pp();ma();ha();gi();ga();Oa();Op();ya();gp()});var wp=p(()=>{"use strict"});var wa=p(()=>{"use strict"});var Sp=p(()=>{"use strict";wa();wa()});var bp=p(()=>{"use strict"});var Pp=p(()=>{"use strict";wp();Sp();bp()});var yi=p(()=>{"use strict"});var Sa=p(()=>{"use strict";yi()});var G5,vp=p(()=>{"use strict";yi();Sa();G5=new Intl.Segmenter("en",{granularity:"grapheme"})});var kp=p(()=>{"use strict";vp();yi();Sa()});var wi=p(()=>{"use strict";Fc();jt();un();pe();Ld();qd();zd();Ho();Go();Zo();Bo();kn();Ko();Yo();Cr();nl();G();sl();Jo();_n();is();_l();Ql();as();Wl();zl();fs();ps();Ul();Vl();ms();hs();hs();zr();Wf();ti();ti();kt();qf();Js();Vo();fp();yp();Pp();kp()});import xp from"node:fs";import ba from"node:os";import We from"node:path";function _p(e){return(e==="~"?ba.homedir():/^~[\\/]/.test(e)?We.join(ba.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,ba.homedir())}function Pa(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=We.resolve(t,n);for(;;){try{xp.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(xp.realpathSync.native(i),...r)}catch{return}}}function Tp(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 Qp(e,t=process.cwd()){let n;try{n=St()}catch{return!1}let r=We.resolve(n),i=We.resolve(t,_p(e));if(xn(i,r)){let d=Tp(i,r);if(Rp(d))return!0}let o=Pa(n)??r,a=Pa(e,t);if(a===void 0)return xn(i,r);if(!xn(a,o))return!1;let c=Tp(a,o);return Rp(c)}function Rp(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Ep=p(()=>{"use strict";wi();s(_p,"expandHome");s(Pa,"canonicalizeAgentHomePolicyPath");s(Tp,"normalizedRelative");s(Qp,"isAgentHomeHardMutationTarget");s(Rp,"isHardAgentHomeRelativePath")});import{randomUUID as Mp}from"node:crypto";import{mkdir as $v,readFile as Cv,rename as Av,rm as Ip,writeFile as Xv}from"node:fs/promises";import vi from"node:path";function jp(){return Cp||($p=Ae(process.pid),Cp=!0),$p}function Xp(e,t){return vi.join(e,"runtime",...Ap===void 0?[]:[`test-filesystem-effects-${Ap}`],t)}function Nv(){let e=process.platform==="win32"?vi.join(vi.resolve(process.env.PROGRAMDATA??"C:\\ProgramData"),"KodaX","sandbox-runtime"):St();return{coordinatorPath:Xp(e,Dv),statePath:Xp(e,Fv)}}function va(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 Cv(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(va))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(va))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(va))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function Lv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function Wp(e){if(!Lv(e.pid))return!1;let t=e.pid===process.pid?jp():Ae(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function qv(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 zv(e,t){let n=new Map;for(let i of[...e.direct,...e.namespaces,...e.shells])n.set(i,Wp(i));let r=s(i=>n.get(i)===!0||qv(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 Uv(e){return await Gn(e,async()=>{let r=await Yn(e);return[...r.namespaces,...r.shells].some(i=>!Wp(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 Ip(n,{force:!0});return}await $v(vi.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${Mp()}.tmp`;await Xv(r,`${JSON.stringify(t)}
|
|
799
|
+
`,"utf8");try{await Av(r,n)}catch(i){try{await Ip(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 ks(e.coordinatorPath,Mv);try{return await t()}finally{await n()}}function Vv(e,t){return e.sandboxPolicyKey===void 0||t===void 0?!0:e.sandboxPolicyKey!==t}function ka(e,t){return t===void 0||e.sandboxPolicyKey===void 0?!0:e.sandboxPolicyKey!==t}async function Kv(e,t){let n=Nv(),r=Mp(),i=jp(),o={pid:process.pid,token:r,...i===void 0?{}:{processStartIdentity:i},...t===void 0?{}:{sandboxPolicyKey:t}},a=Date.now()+jv,c=Date.now()+Wv,d=await Uv(n);for(;;){let k=await Gn(n,async()=>{let R=zv(await Yn(n),d);return(e==="shell"?R.direct.length>0||R.namespaces.some($=>Vv($,t)):e==="direct"?R.shells.length>0||R.namespaces.length>0:R.direct.length>0||R.namespaces.length>0||R.shells.some($=>ka($,t)))?t!==void 0&&(e==="namespace"?R.namespaces.some(A=>A.sandboxPolicyKey!==t)||R.shells.some(A=>ka(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=>!ka(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 Yv(){return Kv("direct")}async function Gv(e){let t=await Yv();try{return await e()}finally{await t()}}function Bv(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function Zv(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,"/"),Bv()?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 xa(e,t){let n=Zv(e),i=(Si.get(n)??Promise.resolve()).catch(()=>{}).then(async()=>Gv(async()=>{if(Qp(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,Mv,jv,Wv,bi,Fv,Dv,$p,Cp,Ap,Fp=p(()=>{"use strict";wi();Ep();Si=new Map,Mv=3e4,jv=1e3,Wv=3e4,bi=3,Fv="model-filesystem-effects.json",Dv="model-filesystem-effects.lock",Cp=!1;s(jp,"getEffectOwnerStartIdentity");Ap=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Xp,"effectRuntimePath");s(Nv,"captureEffectLeaseStorage");s(va,"isEffectLeaseOwner");s(Yn,"readEffectLeaseState");s(Lv,"isProcessAlive");s(Wp,"isEffectLeaseOwnerAlive");s(qv,"modelEffectTreeState");s(zv,"removeStaleEffectLeases");s(Uv,"reconcileAbandonedManagedEffects");s(Pi,"writeEffectLeaseState");s(Gn,"withEffectLeaseCoordinator");s(Vv,"namespaceConflictsWithShell");s(ka,"shellConflictsWithNamespace");s(Kv,"acquireEffectLease");s(Yv,"acquireDirectFileMutationLease");s(Gv,"withHostFileSystemMutation");s(Bv,"isWindowsPathPlatform");s(Zv,"normalizePathForKey");s(xa,"withFileMutation")});import{AsyncLocalStorage as Hv}from"node:async_hooks";import Fe from"fs/promises";import Ra 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 Jv.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function nk(e){return Ta=(Ta+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${Ta}.tmp`}async function ik(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||!rk.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function De(e,t){await xa(e,async()=>{let n=Ra.dirname(e);await Fe.mkdir(n,{recursive:!0});let r=nk(e);try{await Fe.writeFile(r,`${JSON.stringify(t,null,2)}
|
|
800
|
+
`,"utf8"),await ik(r,e)}catch(i){throw await Fe.rm(r,{force:!0}).catch(()=>{}),i}await ok(n,Ra.basename(e)).catch(()=>{})})}async function ki(e){await xa(e,async()=>{await Fe.mkdir(e,{recursive:!0})})}async function ok(e,t){let n=`${t}.`,r=Date.now(),i=await Fe.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&tk.test(o.slice(n.length))).map(async o=>{let a=Ra.join(e,o);try{let c=await Fe.stat(a);r-c.mtimeMs>=ek&&await Fe.rm(a,{force:!0})}catch{}}))}var Jv,ek,tk,Ta,rk,xi=p(()=>{"use strict";wi();Fp();Jv=new Hv;s(oe,"safeReadJson");s(Oe,"debugLogRepoIntelligence");s(Bn,"resolveRepoIntelligenceStorageDir");ek=3600*1e3,tk=/^\d+\.\d+(?:\.\d+)?\.tmp$/,Ta=0;s(nk,"nextAtomicTempPath");rk=new Set(["EPERM","EBUSY","EACCES"]);s(ik,"renameWithRetry");s(De,"writeJsonFileAtomic");s(ki,"ensureRepoIntelligenceStorageDir");s(ok,"sweepStaleTempFiles")});import _t from"fs/promises";import X from"path";import{createHash as Qa}from"node:crypto";import{execFile as sk}from"child_process";import{promisify as ak}from"util";function Qt(e){return typeof e=="object"&&e!==null}function Sk(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 bk(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=>Sk(t))}function Pk(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 vk(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 kk(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||vk(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 ck("git",e,{cwd:t,timeout:uk,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function Zn(e){try{return await _t.access(e),!0}catch{return!1}}async function $a(e){let t=_i(e);return await ki(t),t}function N(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Jp(e){let t=Qa("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 xk(e){return gk.has(X.posix.basename(N(e)))}function Tk(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"||fk.some(n=>t.startsWith(n))}async function Rk(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 _k(e){try{return(await _t.stat(e)).isDirectory()?e:X.dirname(e)}catch{return e}}async function Qk(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 Dp(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(wk.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 Ek(e){let t=N(e).toLowerCase();return t.split("/").some(r=>mk.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 Ia.has(r)?"config":t.startsWith("docs/")||Hp.has(t)||Zp.has(n)?"docs":Ek(t)?"tests":pk.has(n)?"source":"other"}async function em(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 Ik(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(Ok.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=hk.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("/")&&Ia.has(X.posix.basename(l)));r.push({id:i,label:await em(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,Ea),sampleFiles:c.slice(0,Ea)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Np(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 Qk(e)}catch{return Dp(e)}return Dp(e)}async function Ti(e,t){let n=await nm(e,Yp);return!n||n.schemaVersion!==ce||t&&n.overviewGeneratedAt!==t?null:n}async function Lp(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 tm(e,t){return oe(_i(e,t),bk)}async function nm(e,t){return oe(_i(e,t),Pk)}async function $k(e){return oe(_i(e,Vp),kk)}async function Ck(e,t){let n=Qa("sha256");n.update(Jp(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:"),xk(r)){let o=await _t.readFile(i,"utf8");n.update(Qa("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 qp(e,t){let n=t.map(r=>N(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:Jp(n),dirtySemanticFingerprint:await Ck(e,n)}}async function Ak(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 rm(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=>Ia.has(X.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>Hp.has(c)||/^README/i.test(X.posix.basename(c))&&Zp.has(X.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>yk.includes(X.posix.basename(c))).slice(0,8),areas:await Ik(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 im(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,Vp),i),await De(X.join(e,Kp),t),await De(X.join(e,Yp),n),r.writeBaseline===!0&&(await De(X.join(e,Gp),t),await De(X.join(e,Bp),n))}function Xk(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 Mk(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 jk(e,t,n){let r=await tm(e,Gp),i=await nm(e,Bp);if(!Xk(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 rm(e,"git",u,f,t),w=await $a(e);return await im(w,m,g,{dirtyIdentity:n}),m}async function Wk(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(!Tk(n.allFiles,o))return!1;for(let a of t.areas)if(await em(e,a.root)!==a.label)return!1;return!0}async function _a(e,t,n,r,i){let{files:o,truncated:a}=i??await Hn(e,t),c=t==="git"&&r?.dirtyPaths.length?await Ak(e,o,r.dirtyPaths):o.map(g=>N(g)),d=a||c.length>tt,l=d?c.slice(0,tt):c,f=await $a(e),{overview:u,inventory:m}=await rm(e,t,l,d,n);return await im(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=jc(e),r=await _k(t.targetPath?X.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await Rk(r),a=await tm(i,Kp),c=await $k(i),d,l;if(!t.refresh){if(d=await Np(i,o),o!=="git"){let u=a?.schemaVersion===ce?await Ti(i,a.generatedAt):null,m=await Hn(i,o);return await Wk(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:_a(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 Lp(i).catch(m=>(Oe("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await qp(i,u),Mk(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await Ti(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await jk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await Ti(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return _a(i,o,d,l)}if(d=await Np(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await Lp(i).catch(u=>(Oe("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await qp(i,f))}return _a(i,o,d,l)}function zp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function Fk(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 Dk(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Up(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 Nk(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 Lk(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:zp(l??"M")}}).filter(d=>!Et(d.path))}let i=(await se(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(Fk).filter(a=>a!==null).filter(a=>Dk(a,t)),o=new Map;for(let a of i)Et(a.path)||o.set(a.path,{path:a.path,status:zp(a.status)});return Array.from(o.values())}async function qk(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 Lk(r.workspaceRoot,n,t.baseRef),o=await qk(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=Up(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=Up(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<Ea?[...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:Nk(a,Array.from(c.values()))},f=await $a(r.workspaceRoot);return await De(X.join(f,lk),l),l}function zk(){return Bn(dk)}function _i(e,...t){let n=zk(),r=X.isAbsolute(n)?n:X.join(e,n);return X.join(r,...t)}var ck,dk,Vp,Kp,Yp,Gp,Bp,lk,ce,tt,Ea,uk,fk,pk,Zp,mk,hk,Ok,Ia,gk,Hp,yk,wk,om=p(()=>{"use strict";Wc();xi();ck=ak(sk),dk=X.join(".agent","repo-intelligence"),Vp="manifest.json",Kp="repo-overview.json",Yp="repo-overview-inventory.json",Gp="repo-overview-baseline.json",Bp="repo-overview-inventory-baseline.json",lk="changed-scope.json",ce=3,tt=12e3,Ea=3,uk=5e3,fk=[".agent/",".kodax/"],pk=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"]),Zp=new Set([".md",".mdx",".rst",".txt"]),mk=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),hk=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"]]),Ok=new Set(["packages","apps","libs","services"]),Ia=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"]),gk=new Set(["package.json","pyproject.toml","Cargo.toml"]),Hp=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"]),yk=["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"],wk=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(Qt,"isRecord");s(Sk,"isRepoAreaOverview");s(bk,"isRepoOverviewPayload");s(Pk,"isRepoOverviewInventoryPayload");s(vk,"isGitSummaryPayload");s(kk,"isRepoOverviewManifestPayload");s(se,"runGit");s(Zn,"exists");s($a,"ensureStorageDir");s(N,"normalizeRelativePath");s(Jp,"computePathFingerprint");s(xk,"isAreaLabelSensitiveManifestPath");s(Tk,"sameNormalizedPathList");s(Et,"isManagedMetadataPath");s(Rk,"resolveWorkspaceRoot");s(_k,"resolveTargetDirectory");s(Qk,"listGitFiles");s(Dp,"walkFilesystemFiles");s(Ek,"isTestFile");s(Bt,"classifyFileCategory");s(em,"readAreaLabel");s(Ik,"buildAreas");s(Np,"getGitSummary");s(Hn,"collectWorkspaceFilesForSource");s(Ti,"readRepoOverviewInventory");s(Lp,"collectWorkspaceDirtyPaths");s(tm,"readStoredRepoOverview");s(nm,"readStoredRepoOverviewInventory");s($k,"readStoredRepoOverviewManifest");s(Ck,"computeDirtySemanticFingerprint");s(qp,"buildDirtyOverviewIdentity");s(Ak,"applyDirtyPathPatchToFiles");s(rm,"buildRepoOverviewArtifacts");s(im,"writeRepoOverviewArtifacts");s(Xk,"canUseOverviewBaseline");s(Mk,"canDirectReuseDirtyOverview");s(jk,"tryBuildDirtyRepoOverviewFromBaseline");s(Wk,"canDirectReuseFilesystemOverview");s(_a,"buildRepoOverviewSnapshotForWorkspace");s(It,"resolveRepoOverviewSnapshot");s(zp,"resolveChangedStatus");s(Fk,"parsePorcelainLine");s(Dk,"includesCandidate");s(Up,"findAreaForFile");s(Nk,"buildRiskHints");s(Lk,"collectChangedFiles");s(qk,"collectChangedLineStats");s(Ri,"analyzeChangedScopeFromSnapshot");s(zk,"getRepoIntelligenceDir");s(_i,"resolveRepoIntelligencePath")});var Qi=p(()=>{"use strict";om();xi()});import Uk 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 lm(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function Kk(e){return e==="high"||e==="medium"||e==="low"}function Yk(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function Gk(e){return Te(e)&&lm(e.language)&&Kk(e.capabilityTier)&&typeof e.fileCount=="number"}function Bk(e){return Te(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&lm(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function Zk(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 um(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&Zk(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>Gk(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>Bk(t))}function Hk(e){return Te(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&Yk(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 Jk(e){return Te(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>Hk(t))}function fm(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||Jk(t))}function pm(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 mm(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 hm(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 Uk.access(e),!0}catch{return!1}}async function Xi(e,t="full"){let n=ex(),r=Jn.isAbsolute(n)?n:Jn.join(e,n),i=t==="light"?Jn.join(r,"light"):r;return await ki(i),i}function Om(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 Ca(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function gm(e){return e.workspaceSnapshot.source!=="git"||Wi(e.workspaceSnapshot)}function ym(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 wm(e){let t=U(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function Sm(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 ex(){return Bn(Vk)}var Vk,nt,Ii,$i,Ci,sm,am,cm,B,Zt,rt,dm,ge,Ht,Re,ot=p(()=>{"use strict";xi();Vk=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",sm="module-index.json",am="symbol-index.json",cm="process-index.json",B=9,Zt=512*1024,rt=40,dm=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(lm,"isRepoLanguageId");s(Kk,"isLanguageCapabilityTier");s(Yk,"isRepoSymbolKind");s(Gk,"isRepoLanguageSupportPayload");s(Bk,"isRepoSourceFileStatePayload");s(Zk,"isRepoWorkspaceSnapshotPayload");s(um,"isRepoIntelligenceManifestPayload");s(Hk,"isCachedRepoSymbolRecordPayload");s(Jk,"isCachedFileAnalysisEntryPayload");s(fm,"isFileAnalysisIndexPayload");s(pm,"isDirtySourceHintPayload");s(U,"normalizeRelativePath");s(J,"languageFromFile");s(ae,"capabilityTierForLanguage");s(mm,"analyzerVersionForLanguage");s(Ne,"baseConfidenceForTier");s(hm,"computeModuleConfidence");s(Ai,"exists");s(Xi,"ensureStorageDir");s(Om,"computeFileFingerprint");s(en,"computeSourceFingerprint");s(Mi,"computeOverviewFingerprint");s(er,"computePathFingerprint");s(ji,"workspaceSnapshotFromOverview");s(Wi,"isCleanGitSnapshot");s(Ca,"sameWorkspaceSnapshot");s(gm,"shouldPersistRepoIntelligenceBaseline");s(ym,"getDirtySourcePathsForInputs");s(it,"writeJsonFileAtomic");s(wm,"isTestFile");s(Sm,"isDocFile");s(ye,"findAreaForFile");s(de,"dedupeStrings");s(tr,"extractImports");s(ex,"getRepoIntelligenceDir")});import Aa from"path";import tx from"fs/promises";function bm(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),wm(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(Sm(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 Pm(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(Aa.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await Ai(Aa.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 Xa(e,t,n,r,i="full"){let o=[];for(let a of t){let c=U(a),d=await tx.stat(Aa.join(e,c)),l=J(c);o.push({filePath:c,fileFingerprint:Om(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??ye(c,r).id,analyzerVersion:mm(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 Xa(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function vm(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 km(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 Ma(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(bm,"buildAreaFileLookups");s(Pm,"buildRepoIntelligencePreflight");s(Xa,"collectSourceFileStates");s(tn,"collectSourceFileStateMap");s(vm,"serializeCachedFileAnalysisEntry");s(km,"hydrateCachedFileAnalysis");s(Ma,"bucketSourceFiles");s($t,"isTypeScriptLikeLanguage")});function _m(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 Tm(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 Wa(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 Qm(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 Da(i,n)}function ix(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?Qm(i):r}function La(e){return e.children.some(t=>t instanceof st||!t.type.isAnonymous||La(t))}function ox(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new ja(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,Cc=$-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),Cc=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 Ac=g(ln,Be);Or=qa(ln,fe,Pe,0,fe.length,0,j-$,Ac,Ac)}else Or=x(ln,fe,Pe,j-$,D-j,Be)}P.push(Or),k.push(Cc)}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=Rm.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)}Rm.set(t,n)}return n}function qa(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(qa(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 nx,rr,M,Ct,rx,me,Ni,Fi,xm,L,ee,ja,st,Li,_e,Fa,or,Da,sr,Rm,qi,Na,aY,za=p(()=>{nx=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=nx++,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]}},rx=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):rx,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,xm=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(xm.get(this)||this.topNode,t,n,!0);return xm.set(this,r),r}resolveStack(t,n=0){return ix(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:qa(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 ox(t)}};ee.empty=new ee(me.none,[],[],0);ja=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&&!(_m(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(_m,"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=Tm(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return Tm(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 Wa(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)&&!_m(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 Fa(a,f,t,u),null,g)}else if(o&L.IncludeAnonymous||!f.type.isAnonymous||La(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(Tm,"getChildren");s(Wa,"matchNodeContext");Fa=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(Qm,"iterStack");Da=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return Qm(this.heads)}};s(ix,"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||La(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 Wa(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 Wa(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(La,"hasChild");s(ox,"buildTree");Rm=new WeakMap;s(Di,"nodeSize");s(qa,"balanceRange");qi=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Na(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}}},Na=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)}},aY=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 Xm(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||ax(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 Im(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function ax(e,t,n,r){let i=Im(n,r,t);return i<0||Im(n,r,e)<i}function $m(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 Cm(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 cx(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 Am(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Ka,zi,Ya,Ga,nn,Em,Ba,at,cr,ue,le,Ua,Za,Ha,Ja,ec,Va,rn,ct,Ui=p(()=>{za();Ka=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 Ya(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}},Ya=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}},Ga=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}},Em=new nn,Ba=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=Em,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=Em,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;Xm(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(Xm(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(Xm,"readToken");s(Im,"findOffset");s(ax,"overrides");le=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Ua=null;s($m,"cutAt");Za=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?$m(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?$m(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}}},Ha=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}},Ja=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 Ba(n,i),this.tokens=new Ha(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Ka.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new Za(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&&cx(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 Cm(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)})`),Cm(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ee.build({buffer:Ga.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=(Ua||(Ua=new WeakMap)).get(t);return n||Ua.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s(Cm,"pushStackDedup");ec=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}},Va=s(e=>e,"id"),rn=class{static{s(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Va,this.reduce=t.reduce||Va,this.reuse=t.reuse||Va,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(Am),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 Ja(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]=Am(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 ec(t,r,i)}static deserialize(t){return new e(t)}};s(Le,"pair");s(cx,"findFinished");s(Am,"getSpecializer")});function ux(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function fx(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 px.add(t)}function mx(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 dx,we,lx,Gi,px,on,_,Vi,dt,Mm,jm,lt,Ki,tc,Ie,At,Qe,Ee,nc,dr,Yi,O,mY,Bi=p(()=>{za();dx=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=dx++}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))}},lx=0,Gi=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=lx++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&ux(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=fx(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(ux,"sameArray");s(fx,"powerSet");s(sn,"styleTags");px=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(mx,"tagHighlighter");_=we.define,Vi=_(),dt=_(),Mm=_(dt),jm=_(dt),lt=_(),Ki=_(lt),tc=_(lt),Ie=_(),At=_(Ie),Qe=_(),Ee=_(),nc=_(),dr=_(nc),Yi=_(),O={comment:Vi,lineComment:_(Vi),blockComment:_(Vi),docComment:_(Vi),name:dt,variableName:_(dt),typeName:Mm,tagName:_(Mm),propertyName:jm,attributeName:_(jm),className:_(dt),labelName:_(dt),namespace:_(dt),macroName:_(dt),literal:lt,string:Ki,docString:_(Ki),character:_(Ki),attributeValue:_(Ki),number:tc,integer:_(tc),float:_(tc),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:nc,separator:_(nc),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)}mY=mx([{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 hx,Ox,gx,yx,wx,Sx,bx,Px,vx,kx,xx,Tx,Rx,_x,Qx,Ex,Ix,$x,Wm,Cx,Ax,Xx,Mx,jx,Wx,Fx,Fm,Dm=p(()=>{Ui();Bi();hx=177,Ox=179,gx=184,yx=12,wx=13,Sx=17,bx=20,Px=25,vx=53,kx=95,xx=142,Tx=144,Rx=145,_x=148,Qx=10,Ex=13,Ix=32,$x=9,Wm=47,Cx=41,Ax=125,Xx=new ue((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==Qx||r==Ex||r==Wm&&e.peek(n+1)==Wm)||r==Cx||r==Ax)&&e.acceptToken(hx),!(r!=Ix&&r!=$x);)r=e.peek(++n)},{contextual:!0}),Mx=new Set([kx,gx,bx,yx,Sx,Tx,Rx,xx,_x,wx,vx,Px]),jx=new rn({start:!1,shift:s((e,t)=>t==Ox?e:Mx.has(t),"shift")}),Wx=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}),Fx={__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},Fm=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:jx,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:[Wx],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:[Xx,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=>Fx[e]||-1,"get")}],tokenPrec:5451})});function rc(e){return e==Xt||e==lr}function ic(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 LT(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==Ji?8-t%8:1;return t}function VT(e,t){if(t==CT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==AT)for(let n=0;n<2&&ic(e.next);n++)e.advance();else if(t==MT)for(let n=0;n<4&&ic(e.next);n++)e.advance();else if(t==jT)for(let n=0;n<8&&ic(e.next);n++)e.advance();else if(t==XT&&e.next==oc){for(e.advance();e.next>=0&&e.next!=qm&&e.next!=Bm&&e.next!=Zm&&e.next!=Xt;)e.advance();e.next==qm&&e.advance()}}var Dx,Vm,Km,Nx,Nm,Lx,qx,zx,Ux,Ym,Lm,Vx,Kx,Yx,Gx,Bx,Zx,Hx,Jx,eT,tT,nT,rT,iT,oT,sT,aT,cT,dT,lT,uT,fT,pT,mT,Gm,hT,OT,gT,yT,wT,ST,bT,PT,vT,kT,xT,TT,RT,_T,QT,ET,Xt,lr,sc,Ji,ac,IT,$T,oc,qm,Bm,Zm,zm,CT,AT,XT,MT,jT,WT,FT,DT,Zi,Hm,qe,ze,Ue,Ve,NT,Um,qT,zT,UT,KT,YT,Jm,eh=p(()=>{Ui();Bi();Dx=1,Vm=194,Km=195,Nx=196,Nm=197,Lx=198,qx=199,zx=200,Ux=2,Ym=3,Lm=201,Vx=24,Kx=25,Yx=49,Gx=50,Bx=55,Zx=56,Hx=57,Jx=59,eT=60,tT=61,nT=62,rT=63,iT=65,oT=238,sT=71,aT=241,cT=242,dT=243,lT=244,uT=245,fT=246,pT=247,mT=248,Gm=72,hT=249,OT=250,gT=251,yT=252,wT=253,ST=254,bT=255,PT=256,vT=73,kT=77,xT=263,TT=112,RT=130,_T=151,QT=152,ET=155,Xt=10,lr=13,sc=32,Ji=9,ac=35,IT=40,$T=46,oc=123,qm=125,Bm=39,Zm=34,zm=92,CT=111,AT=120,XT=78,MT=117,jT=85,WT=new Set([Kx,Yx,Gx,xT,iT,RT,Zx,Hx,oT,nT,rT,Gm,vT,kT,eT,tT,_T,QT,ET,TT]);s(rc,"isLineBreak");s(ic,"isHex");FT=new ue((e,t)=>{let n;if(e.next<0)e.acceptToken(qx);else if(t.context.flags&Zi)rc(e.next)&&e.acceptToken(Lx,1);else if(((n=e.peek(-1))<0||rc(n))&&t.canShift(Nm)){let r=0;for(;e.next==sc||e.next==Ji;)e.advance(),r++;(e.next==Xt||e.next==lr||e.next==ac)&&e.acceptToken(Nm,-r)}else rc(e.next)&&e.acceptToken(Nx,1)},{contextual:!0}),DT=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==sc)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!=ac&&(i<n.indent?e.acceptToken(Km,-o):e.acceptToken(Vm))}}),Zi=1,Hm=2,qe=4,ze=8,Ue=16,Ve=32;s(Hi,"Context");NT=new Hi(null,0,0);s(LT,"countIndent");Um=new Map([[aT,0],[cT,qe],[dT,ze],[lT,ze|qe],[uT,Ue],[fT,Ue|qe],[pT,Ue|ze],[mT,Ue|ze|qe],[hT,Ve],[OT,Ve|qe],[gT,Ve|ze],[yT,Ve|ze|qe],[wT,Ve|Ue],[ST,Ve|Ue|qe],[bT,Ve|Ue|ze],[PT,Ve|Ue|ze|qe]].map(([e,t])=>[e,t|Hm])),qT=new rn({start:NT,reduce(e,t,n,r){return e.flags&Zi&&WT.has(t)||(t==sT||t==Gm)&&e.flags&Hm?e.parent:e},shift(e,t,n,r){return t==Vm?new Hi(e,LT(r.read(r.pos,n.pos)),0):t==Km?e.parent:t==Vx||t==Bx||t==Jx||t==Ym?new Hi(e,0,Zi):Um.has(t)?new Hi(e,0,Um.get(t)|e.flags&Zi):e},hash(e){return e.hash}}),zT=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==sc||n==Ji)){n!=IT&&n!=$T&&n!=Xt&&n!=lr&&n!=ac&&e.acceptToken(Dx);return}}}),UT=new ue((e,t)=>{let{flags:n}=t.context,r=n&qe?Zm:Bm,i=(n&ze)>0,o=!(n&Ue),a=(n&Ve)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==oc)if(e.peek(1)==oc)e.advance(2);else{if(e.pos==c){e.acceptToken(Ym,1);return}break}else if(o&&e.next==zm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),VT(e,d)),e.acceptToken(Ux);return}break}else if(e.next==zm&&!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(Lm,i?3:1);return}break}else if(e.next==Xt){if(i)e.advance();else if(e.pos==c){e.acceptToken(Lm);return}break}else e.advance();e.pos>c&&e.acceptToken(zx)});s(VT,"skipEscape");KT=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}),YT={__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},Jm=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:qT,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:[KT],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:[zT,DT,FT,UT,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>YT[e]||-1,"get")}],tokenPrec:7668})});function cc(e){return e>=48&&e<=57}function to(e){return cc(e)||e==95}var GT,BT,ZT,HT,JT,th,eR,tR,nh,nR,eo,rh,rR,iR,ih,oh,oR,sR,aR,cR,dR,lR,uR,fR,sh,ah=p(()=>{Ui();Bi();GT=1,BT=2,ZT=3,HT=4,JT=5,th=98,eR=101,tR=102,nh=114,nR=69,eo=48,rh=46,rR=43,iR=45,ih=35,oh=34,oR=124,sR=60,aR=62;s(cc,"isNum");s(to,"isNum_");cR=new ue((e,t)=>{if(cc(e.next)){let n=!1;do e.advance();while(to(e.next));if(e.next==rh){if(n=!0,e.advance(),cc(e.next))do e.advance();while(to(e.next));else if(e.next==rh||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==eR||e.next==nR){if(n=!0,e.advance(),(e.next==rR||e.next==iR)&&e.advance(),!to(e.next))return;do e.advance();while(to(e.next))}if(e.next==tR){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(JT)}else if(e.next==th||e.next==nh){if(e.next==th&&e.advance(),e.next!=nh)return;e.advance();let n=0;for(;e.next==ih;)n++,e.advance();if(e.next!=oh)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==oh;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=ih)continue e;e.advance()}e.acceptToken(HT);return}}}}),dR=new ue(e=>{e.next==oR&&e.acceptToken(GT,1)}),lR=new ue(e=>{e.next==sR?e.acceptToken(BT,1):e.next==aR&&e.acceptToken(ZT,1)}),uR=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}),fR={__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},sh=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:[uR],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:[dR,lR,cR,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>fR[e]||-1,"get")}],tokenPrec:15596})});import cn from"fs/promises";import uc from"path";function dh(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function fc(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 pR(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 lc(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=lc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?lc(e,n):null}function ch(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?lc(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 lh(e,t,n){let r=[];for(let i of t){let o=uc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=Jm.parse(c).topNode,u=J(i),m=ae(u),g=Ne(m),w=pR(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:ch(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:ch(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 mR(e,t){let n=null;return V(e,r=>{t(r)&&(n=r)}),n}function uh(e,t){if(t(e))return e;let n=null;return V(e,r=>{n||(n=uh(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 dc(e,t){return/^pub(?:\([^)]*\))?\s/.test(Se(e,t).trimStart())}async function fh(e,t,n){let r=[];for(let i of t){let o=uc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=Fm.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?uh(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 ph(e,t,n){let r=[];for(let i of t){let o=uc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=sh.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:dc(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:dc(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=mR(h,Q=>Q.type.name==="TypeIdentifier"),b=y?fc(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:dc(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 pc=p(()=>{"use strict";Dm();eh();ah();ot();s(dh,"extractGoReceiverQualifier");s(fc,"normalizeRustQualifier");s(V,"forEachSyntaxChild");s(Se,"getSyntaxNodeText");s(Ke,"getPythonNodeLine");s(Ye,"getPythonSignature");s(pR,"collectPythonImports");s(lc,"getPythonCallName");s(ch,"collectPythonCallNames");s(lh,"analyzePythonFiles");s(ur,"findFirstSyntaxChild");s(mR,"findLastSyntaxChild");s(uh,"findSyntaxDescendant");s(no,"collectLezerCallNames");s(ro,"getGoCallName");s(io,"getRustCallName");s(an,"findSyntaxNodeText");s(dc,"isRustExported");s(fh,"analyzeGoFiles");s(ph,"analyzeRustFiles")});import mh from"fs/promises";import ut from"path";function hh(e,t){return Array.from(e.matchAll(t)).length}function be(e){return hh(e,/\{/g)-hh(e,/\}/g)}function hR(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
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
|
|
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
|
|
805
|
-
`)}function
|
|
806
|
-
`)}function
|
|
807
|
-
`)}var
|
|
808
|
-
`)}var
|
|
802
|
+
`)}function OR(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 gR(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:dh(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=fc(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 Oh(e,t,n){let r=ut.join(e,t);if((await mh.stat(r)).size>Zt)return null;let o=await mh.readFile(r,"utf8"),a=o.split(/\r?\n/),c=J(t),d=ae(c),l=tr(o,c),f=gR(a,c),u=Ne(d),m=f.map((g,w,x)=>{let h=hR(a,c,g,x,w),y=g.calls??OR(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 gh(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 yR(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=yR(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 yh(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,dm),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 mc=p(()=>{"use strict";ot();pc();s(hh,"countOccurrences");s(be,"countBraceDelta");s(hR,"extractSymbolBody");s(OR,"extractCallNames");s(te,"pushSymbol");s(gR,"extractSymbolsFromLines");s(Oh,"analyzeSourceFile");s(gh,"buildModuleAliases");s(yR,"resolveRelativeImport");s(fr,"resolveImportToModule");s(oo,"rankReferenceReason");s(yh,"buildProcessCapsules")});var kh={};Mc(kh,{analyzeTypeScriptFiles:()=>SR,collectTypeScriptImportPaths:()=>Ph,getCallExpressionName:()=>bh,getDeclarationKey:()=>Oc,getNodeLine:()=>wh,getPropertyNameText:()=>so,getSignatureSnippet:()=>Sh,hasModifier:()=>hc,isExportedDeclaration:()=>pt,registerTypeScriptSymbol:()=>ft,resolveTypeScriptCallSymbol:()=>vh,scriptKindFromFilePath:()=>wR});import ao from"path";import I from"typescript";function wR(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 wh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function Oc(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 Sh(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 hc(e,t){return I.canHaveModifiers(e)?!!I.getModifiers(e)?.some(n=>n.kind===t):!1}function pt(e){return hc(e,I.SyntaxKind.ExportKeyword)||hc(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 bh(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 Ph(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=wh(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:Sh(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(Oc(e,i),g)}function vh(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 SR(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:Ph(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=bh(y.expression);b&&!Re.has(b)&&w.add(b);let Q=vh(d,y.expression)?.declarations?.[0];if(Q){let T=f.get(Oc(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 xh=p(()=>{"use strict";ot();nr();mc();s(wR,"scriptKindFromFilePath");s(wh,"getNodeLine");s(Oc,"getDeclarationKey");s(Sh,"getSignatureSnippet");s(hc,"hasModifier");s(pt,"isExportedDeclaration");s(so,"getPropertyNameText");s(bh,"getCallExpressionName");s(Ph,"collectTypeScriptImportPaths");s(ft,"registerTypeScriptSymbol");s(vh,"resolveTypeScriptCallSymbol");s(SR,"analyzeTypeScriptFiles")});import Ge from"path";function bR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function PR(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 vR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function kR(e,t){return e.map(n=>vR(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}=bm(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:gh(n.areas),buckets:Ma(h)}}function gc(e,t){return{...e,sourceStates:t,sourceFingerprint:en(t)}}async function yc(e,t){let n=new Map(t.map(o=>[o,null])),r=Ma(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(xh(),kh)),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 lh(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 fh(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 ph(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=>Oh(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 xR(e,t){return bR(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=xR(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=kR(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:hm(P,v)}}).filter(y=>y!==null).sort((y,b)=>b.symbolCount-y.symbolCount||y.moduleId.localeCompare(b.moduleId)),l=yh(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:PR(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,vm(t.get(y)??null)]))},x=ym(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,sm),u),await it(Ge.join(e.storageRoot,am),a),await it(Ge.join(e.storageRoot,cm),l),await it(Ge.join(e.storageRoot,nt),m),await it(Ge.join(e.storageRoot,Ci),h),gm(e)&&(await it(Ge.join(e.storageRoot,Ii),g),await it(Ge.join(e.storageRoot,$i),w)),m}var Th=p(()=>{"use strict";Qi();pc();mc();nr();ot();nr();s(bR,"orderedSourceFilesForBuild");s(PR,"collectLanguageBreakdown");s(vR,"calibrateSymbolConfidenceForProfile");s(kR,"calibrateSymbolsForProfile");s(co,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(gc,"finalizeRepoIntelligenceBuildInputs");s(yc,"analyzeSourceFilesForBuild");s(xR,"collectOrderedAnalyses");s(lo,"materializeRepoIntelligenceIndex")});import mt from"path";async function Sc(e){let t=await Xa(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=gc(e,t),r=await yc(n,n.sourceFiles);return lo(n,r)}async function bc(e){return oe(mt.join(e,Ii),um)}async function Rh(e){return oe(mt.join(e,$i),fm)}async function uo(e){return oe(mt.join(e,Ci),pm)}function _h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qh(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 TR(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 Eh(e,t){return Wi(e.workspaceSnapshot)&&Ca(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Ih(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 $h(e){if(!Wi(e.workspaceSnapshot))return null;let t=await bc(e.storageRoot);if(!t||t.schemaVersion!==B||t.workspaceRoot!==e.workspaceRoot||!Ca(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 Ch(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 Pc(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:gc(e,n)}function vc(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 kc(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(!_h(n.analyses,d.filePath))return null;c.set(d.filePath,km(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await yc(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 Ah(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=Pc(e,c);if(!f?.sourceStates)return null;let u=vc(f.sourceStates,a);if(!u)return null;let m=await kc(f,a,n,u);return m?lo(f,m):null}async function Xh(e,t,n){let r=await tn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Pc(e,r);if(!i?.sourceStates)return null;let o=fo(t.sourceStates),a=vc(i.sourceStates,o);if(!a)return null;if(a.size===0)return TR(i,t);let c=await kc(i,o,n,a);return c?lo(i,c):null}async function Mh(e,t){if(!t)return null;let n=await Rh(e.storageRoot);if(!n||!Qh(e,t,n))return null;let r=await Ah(e,t,n);return r||Xh(e,t,n)}async function wc(e,t=!1){let n=t?null:await bc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await uo(e.storageRoot):null;if(n&&Eh(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(Ih(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 Mh(e,n);if(i)return i}return Sc(e)}async function pr(e,t=!1,n="full"){if(t){let c=await co(e,{profile:n});return wc(c,!0)}let r=await Pm(e,n),i=await $h(r);if(i)return i;let o=await Ch(r);if(o)return o;let a=await co(e,{preflight:r});return wc(a,!1)}async function RR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await co(n,{profile:t.profile??"full"});return Sc(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 xc=p(()=>{"use strict";Qi();nr();Th();ot();s(Sc,"buildRepoIntelligenceIndexFromInputs");s(bc,"readRepoIntelligenceManifest");s(Rh,"readFileAnalysisIndex");s(uo,"readDirtySourceHint");s(_h,"hasOwnAnalysisEntry");s(Qh,"hasCompatibleIncrementalCache");s(TR,"readCompatibleCachedQueryIndex");s(Eh,"canDirectReuseCleanCachedQueryIndex");s(Ih,"canDirectReuseDirtyCachedQueryIndex");s($h,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s(Ch,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(fo,"mapSourceStatesByFile");s(Pc,"buildCompleteInputsFromSourceStates");s(vc,"classifyChangedOrNewSourceFiles");s(kc,"buildIncrementalAnalysisEntries");s(Ah,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Xh,"tryStatBasedIncrementalRepoIntelligenceBuild");s(Mh,"tryIncrementalRepoIntelligenceBuild");s(wc,"getRepoIntelligenceIndexFromInputs");s(pr,"getRepoIntelligenceIndexFromSnapshot");s(RR,"buildRepoIntelligenceIndex");s(mr,"getRepoIntelligenceIndex")});import _R from"path";function jh(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 Wh(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||_R.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 Fh(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 Dh(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 Tc(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 Rc(e,t){let n=Fh(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 Nh(e,t){let n=Dh(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 _c(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=Rc(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 QR(e,t={}){let n=await mr(e,t);return Tc(n,t)}async function ER(e,t){let n=await mr(e,t);return Rc(n,t)}async function IR(e,t){let n=await mr(e,t);return Nh(n,t)}async function $R(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 _c(r,t,i)}async function CR(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=Tc(i,{targetPath:r})}catch(P){Oe("Routing signals could not resolve module context.",P)}try{c=_c(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=jh(l,f,g,w),h=Wh(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 Lh=p(()=>{"use strict";Qi();xc();ot();s(jh,"deriveRoutingComplexity");s(Wh,"deriveReviewScale");s(dn,"buildFreshnessLabel");s(hr,"findModuleMatch");s(Fh,"findSymbolMatches");s(Dh,"findProcessMatches");s(po,"collectCallers");s(Tc,"resolveModuleContextFromIndex");s(Rc,"resolveSymbolContextFromIndex");s(Nh,"resolveProcessContextFromIndex");s(_c,"resolveImpactEstimateFromIndex");s(QR,"getModuleContext");s(ER,"getSymbolContext");s(IR,"getProcessContext");s($R,"getImpactEstimate");s(CR,"getRepoRoutingSignals")});var qh=p(()=>{"use strict";xc();Lh()});function Qc(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 AR(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 XR(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 MR(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 jR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Qc(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...AR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Qc(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...XR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Qc(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...MR(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 zh=p(()=>{"use strict";s(Qc,"scoreCandidate");s(AR,"buildSymbolItem");s(XR,"buildModuleItem");s(MR,"buildProcessItem");s(jR,"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 WR(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 FR(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 DR(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 NR(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 Uh=p(()=>{"use strict";s(mo,"confidenceLabel");s(ho,"capabilityLines");s(WR,"renderModuleContext");s(FR,"renderSymbolContext");s(DR,"renderProcessContext");s(NR,"renderImpactEstimate")});function LR(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 qR(e){return e>=4?"high":e===3?"medium":"low"}function zR(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=LR(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:qR(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 UR(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 Vh=p(()=>{"use strict";s(LR,"tarjanScc");s(qR,"severityFor");s(zR,"findCyclicDependencies");s(UR,"renderCycleAnalysis")});var Kh={};Mc(Kh,{buildCompleteInputsFromSourceStates:()=>Pc,buildFreshnessLabel:()=>dn,buildIncrementalAnalysisEntries:()=>kc,buildRepoIntelligenceIndex:()=>RR,buildRepoIntelligenceIndexFromInputs:()=>Sc,canDirectReuseCleanCachedQueryIndex:()=>Eh,canDirectReuseDirtyCachedQueryIndex:()=>Ih,classifyChangedOrNewSourceFiles:()=>vc,collectCallers:()=>po,collectSemanticLookupItems:()=>jR,deriveReviewScale:()=>Wh,deriveRoutingComplexity:()=>jh,findCyclicDependencies:()=>zR,findModuleMatch:()=>hr,findProcessMatches:()=>Dh,findSymbolMatches:()=>Fh,getImpactEstimate:()=>$R,getModuleContext:()=>QR,getProcessContext:()=>IR,getRepoIntelligenceIndex:()=>mr,getRepoIntelligenceIndexFromInputs:()=>wc,getRepoIntelligenceIndexFromSnapshot:()=>pr,getRepoRoutingSignals:()=>CR,getSymbolContext:()=>ER,hasCompatibleIncrementalCache:()=>Qh,hasOwnAnalysisEntry:()=>_h,mapSourceStatesByFile:()=>fo,readDirtySourceHint:()=>uo,readFileAnalysisIndex:()=>Rh,readRepoIntelligenceManifest:()=>bc,renderCycleAnalysis:()=>UR,renderImpactEstimate:()=>NR,renderModuleContext:()=>WR,renderProcessContext:()=>DR,renderSymbolContext:()=>FR,resolveImpactEstimateFromIndex:()=>_c,resolveModuleContextFromIndex:()=>Tc,resolveProcessContextFromIndex:()=>Nh,resolveSymbolContextFromIndex:()=>Rc,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>$h,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>Ch,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Ah,tryIncrementalRepoIntelligenceBuild:()=>Mh,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Xh});var Yh=p(()=>{"use strict";qh();zh();Uh();Vh()});import{parentPort as $c}from"node:worker_threads";if(!$c)throw new Error("semantic-worker must run inside a worker thread.");function Ec(e){return typeof e=="object"&&e!==null}s(Ec,"isRecord");function VR(e){return Ec(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Ec(e.context)&&Ec(e.options)}s(VR,"isRequest");function KR(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(KR,"serializeError");async function YR(e){let t=await GR();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(YR,"runRequest");function Gh(e){$c?.postMessage(e)}s(Gh,"post");var Bh=Promise.resolve(),Ic;function GR(){return Ic||(Ic=import.meta.url.endsWith(".ts")?BR():Promise.resolve().then(()=>(Yh(),Kh))),Ic}s(GR,"loadSemanticIndex");async function BR(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(BR,"loadDevSemanticIndex");$c.on("message",e=>{Bh=Bh.then(async()=>{if(VR(e))try{Gh({id:e.id,ok:!0,result:await YR(e)})}catch(n){Gh({id:e.id,ok:!1,error:KR(n)})}}).catch(()=>{})});
|