@sourcegraph/amp 0.0.1753229049-g457e52 → 0.0.1753248131-gd8bc00
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/dist/main.js +8 -7
- package/package.json +1 -1
package/dist/main.js
CHANGED
@@ -977,7 +977,7 @@ ${Q.comment}`:Q.comment}this.doc.range[2]=Q.offset;break}default:this.errors.pus
|
|
977
977
|
`)+1;while(Q!==0)this.onNewLine(this.offset+Q),Q=this.source.indexOf(`
|
978
978
|
`,Q)+1}return{type:A,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(A){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let Q=To(A),B=HT(Q);return B.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:B,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let Q=To(A),B=HT(Q);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:B,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(A,Q){if(this.type!=="comment")return!1;if(this.indent<=Q)return!1;return A.every((B)=>B.type==="newline"||B.type==="space")}*documentEnd(A){if(this.type!=="doc-mode"){if(A.end)A.end.push(this.sourceToken);else A.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(A){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if(A.end)A.end.push(this.sourceToken);else A.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}voA.Parser=zD0});var YD0=t((uoA)=>{var ZD0=sH1(),foA=Ub(),Ib=Fb(),yoA=ZH1(),boA=q9(),goA=Zw1(),GD0=Gw1();function XD0(A){let Q=A.prettyErrors!==!1;return{lineCounter:A.lineCounter||Q&&new goA.LineCounter||null,prettyErrors:Q}}function xoA(A,Q={}){let{lineCounter:B,prettyErrors:J}=XD0(Q),D=new GD0.Parser(B?.addNewLine),z=new ZD0.Composer(Q),Z=Array.from(z.compose(D.parse(A)));if(J&&B)for(let G of Z)G.errors.forEach(Ib.prettifyError(A,B)),G.warnings.forEach(Ib.prettifyError(A,B));if(Z.length>0)return Z;return Object.assign([],{empty:!0},z.streamInfo())}function KD0(A,Q={}){let{lineCounter:B,prettyErrors:J}=XD0(Q),D=new GD0.Parser(B?.addNewLine),z=new ZD0.Composer(Q),Z=null;for(let G of z.compose(D.parse(A),!0,A.length))if(!Z)Z=G;else if(Z.options.logLevel!=="silent"){Z.errors.push(new Ib.YAMLParseError(G.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(J&&B)Z.errors.forEach(Ib.prettifyError(A,B)),Z.warnings.forEach(Ib.prettifyError(A,B));return Z}function hoA(A,Q,B){let J=void 0;if(typeof Q==="function")J=Q;else if(B===void 0&&Q&&typeof Q==="object")B=Q;let D=KD0(A,B);if(!D)return null;if(D.warnings.forEach((z)=>yoA.warn(D.options.logLevel,z)),D.errors.length>0)if(D.options.logLevel!=="silent")throw D.errors[0];else D.errors=[];return D.toJS(Object.assign({reviver:J},B))}function moA(A,Q,B){let J=null;if(typeof Q==="function"||Array.isArray(Q))J=Q;else if(B===void 0&&Q)B=Q;if(typeof B==="string")B=B.length;if(typeof B==="number"){let D=Math.round(B);B=D<1?void 0:D>8?{indent:8}:{indent:D}}if(A===void 0){let{keepUndefined:D}=B??Q??{};if(!D)return}if(boA.isDocument(A)&&!J)return A.toString(B);return new foA.Document(A,J,B).toString(B)}uoA.parse=hoA;uoA.parseAllDocuments=xoA;uoA.parseDocument=KD0;uoA.stringify=moA});var UD0=t((DtA)=>{var ioA=sH1(),aoA=Ub(),roA=fH1(),Xw1=Fb(),noA=oy(),yw=q9(),soA=Sw(),ooA=y7(),toA=vw(),eoA=kw(),AtA=Ro(),QtA=zw1(),BtA=Zw1(),JtA=Gw1(),jo=YD0(),qD0=ny();DtA.Composer=ioA.Composer;DtA.Document=aoA.Document;DtA.Schema=roA.Schema;DtA.YAMLError=Xw1.YAMLError;DtA.YAMLParseError=Xw1.YAMLParseError;DtA.YAMLWarning=Xw1.YAMLWarning;DtA.Alias=noA.Alias;DtA.isAlias=yw.isAlias;DtA.isCollection=yw.isCollection;DtA.isDocument=yw.isDocument;DtA.isMap=yw.isMap;DtA.isNode=yw.isNode;DtA.isPair=yw.isPair;DtA.isScalar=yw.isScalar;DtA.isSeq=yw.isSeq;DtA.Pair=soA.Pair;DtA.Scalar=ooA.Scalar;DtA.YAMLMap=toA.YAMLMap;DtA.YAMLSeq=eoA.YAMLSeq;DtA.CST=AtA;DtA.Lexer=QtA.Lexer;DtA.LineCounter=BtA.LineCounter;DtA.Parser=JtA.Parser;DtA.parse=jo.parse;DtA.parseAllDocuments=jo.parseAllDocuments;DtA.parseDocument=jo.parseDocument;DtA.stringify=jo.stringify;DtA.visit=qD0.visit;DtA.visitAsync=qD0.visitAsync});function ED0(A,Q){if(A.status==="done"){if(A.result!==null&&typeof A.result==="object"&&"output"in A.result&&typeof A.result.output==="string"){if(Q.detail==="full"&&"hidden_truncatedOutput"in A.result&&typeof A.result.hidden_truncatedOutput==="string")return A.result.hidden_truncatedOutput+A.result.output.split(`
|
979
979
|
`).slice(1).join(`
|
980
|
-
`);return A.result.output}}return FD0.default.stringify(A)}var FD0;var HD0=k1(()=>{FD0=hA(UD0(),1)});function Mb(A,Q){return{...Q,interactionState:A&&Q?.state==="active"?ftA(A,Q.inferenceState):!1}}function ftA(A,Q){if(Q==="running")return!1;let B=A.messages.at(-1);if(!B)return"user-message-initial";if(B.role==="assistant")return B.state.type==="complete"&&B.state.stopReason==="end_turn"?"user-message-reply":!1;if(B.content.some((J)=>J.type==="tool_result"&&J.run.status==="blocked-on-user"))return"user-tool-approval";if(B.content.some((J)=>J.type==="tool_result"&&J.run.status==="in-progress"))return"tool-running";return!1}function wD0(A,Q){if(A){let B=()=>{A.removeEventListener("abort",B),Q()};return A.addEventListener("abort",B),()=>A.removeEventListener("abort",B)}return}function wT(A){return A instanceof DOMException&&A.name==="AbortError"}function WD0(A){return A instanceof Error&&A.message===Kw1.USER_CANCELLED}var Kw1;var Yw1=k1(()=>{Kw1={USER_CANCELLED:"User cancelled"}});async function*Po(A,Q){if(Q.aborted)throw new Error("Aborted");let B=new Promise((J,D)=>{Q.addEventListener("abort",()=>{D(new Error("Aborted"))})});while(!0){let J=await Promise.race([A.next(),B]);if(J.done)return J.value;yield J.value}}function ID0(A){if(A===59999)return"59.99s";if(A===3599999)return"59m 59.99s";let Q=A/1000,B=Q/60,J=B/60,D=J/24,z=Math.floor(D),Z=Math.floor(J)%24,G=Math.floor(B)%60,X=Math.floor(Q)%60,K=(Q-Math.floor(Q)).toFixed(2).substring(1);if(z>0)return`${z}d ${Z}h`;if(Z>0)return`${Z}h ${G}m`;if(G>0)return`${G}m ${X}${K}s`;return`${Math.floor(Q)}${K}s`}function U2(A,Q,B,J,D){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!D)throw new TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?A!==Q||!D:!Q.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?D.call(A,B):D?D.value=B:Q.set(A,B),B}function x0(A,Q,B,J){if(B==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?A!==Q||!J:!Q.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return B==="m"?J:B==="a"?J.call(A):J?J.value:Q.get(A)}var fY=()=>{};var qw1=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return qw1=A.randomUUID.bind(A),A.randomUUID();let Q=new Uint8Array(1),B=A?()=>A.getRandomValues(Q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(J)=>(+J^B()&15>>+J/4).toString(16))};function Nb(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var Cb=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let Q=new Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)Q.stack=A.stack;if(A.cause&&!Q.cause)Q.cause=A.cause;if(A.name)Q.name=A.name;return Q}}catch{}try{return new Error(JSON.stringify(A))}catch{}}return new Error(A)};var x6,b7,YQ,iN,aN,Vb,Ob,Rb,Lb,Tb,jb,Pb,_b,Sb,$b;var yY=k1(()=>{x6=class x6 extends Error{};b7=class b7 extends x6{constructor(A,Q,B,J){super(`${b7.makeMessage(A,Q,B)}`);this.status=A,this.headers=J,this.requestID=J?.get("x-request-id"),this.error=Q;let D=Q;this.code=D?.code,this.param=D?.param,this.type=D?.type}static makeMessage(A,Q,B){let J=Q?.message?typeof Q.message==="string"?Q.message:JSON.stringify(Q.message):Q?JSON.stringify(Q):B;if(A&&J)return`${A} ${J}`;if(A)return`${A} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate(A,Q,B,J){if(!A||!J)return new iN({message:B,cause:Cb(Q)});let D=Q?.error;if(A===400)return new Vb(A,D,B,J);if(A===401)return new Ob(A,D,B,J);if(A===403)return new Rb(A,D,B,J);if(A===404)return new Lb(A,D,B,J);if(A===409)return new Tb(A,D,B,J);if(A===422)return new jb(A,D,B,J);if(A===429)return new Pb(A,D,B,J);if(A>=500)return new _b(A,D,B,J);return new b7(A,D,B,J)}};YQ=class YQ extends b7{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}};iN=class iN extends b7{constructor({message:A,cause:Q}){super(void 0,void 0,A||"Connection error.",void 0);if(Q)this.cause=Q}};aN=class aN extends iN{constructor({message:A}={}){super({message:A??"Request timed out."})}};Vb=class Vb extends b7{};Ob=class Ob extends b7{};Rb=class Rb extends b7{};Lb=class Lb extends b7{};Tb=class Tb extends b7{};jb=class jb extends b7{};Pb=class Pb extends b7{};_b=class _b extends b7{};Sb=class Sb extends x6{constructor(){super("Could not parse response content as the length limit was reached")}};$b=class $b extends x6{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}});function ND0(A){if(typeof A!=="object")return{};return A??{}}function CD0(A){if(!A)return!0;for(let Q in A)return!1;return!0}function VD0(A,Q){return Object.prototype.hasOwnProperty.call(A,Q)}function vb(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var btA,MD0=(A)=>{return btA.test(A)},OD0=(A,Q)=>{if(typeof Q!=="number"||!Number.isInteger(Q))throw new x6(`${A} must be an integer`);if(Q<0)throw new x6(`${A} must be a positive integer`);return Q},RD0=(A)=>{try{return JSON.parse(A)}catch(Q){return}};var WT=k1(()=>{yY();btA=/^[a-z][a-z0-9+.-]*:/i});var bY=(A)=>new Promise((Q)=>setTimeout(Q,A));function kb(){}function _o(A,Q,B){if(!Q||So[A]>So[B])return kb;else return Q[A].bind(Q)}function qQ(A){let Q=A.logger,B=A.logLevel??"off";if(!Q)return gtA;let J=LD0.get(Q);if(J&&J[0]===B)return J[1];let D={error:_o("error",Q,B),warn:_o("warn",Q,B),info:_o("info",Q,B),debug:_o("debug",Q,B)};return LD0.set(Q,[B,D]),D}var So,Uw1=(A,Q,B)=>{if(!A)return;if(VD0(So,A))return A;qQ(B).warn(`${Q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(So))}`);return},gtA,LD0,VF=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([Q,B])=>[Q,Q.toLowerCase()==="authorization"||Q.toLowerCase()==="cookie"||Q.toLowerCase()==="set-cookie"?"***":B]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var fb=k1(()=>{WT();So={off:0,error:200,warn:300,info:400,debug:500};gtA={error:kb,warn:kb,info:kb,debug:kb},LD0=new WeakMap});var bw="5.3.0";function xtA(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}function mtA(){if(typeof navigator==="undefined"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:Q,pattern:B}of A){let J=B.exec(navigator.userAgent);if(J){let D=J[1]||0,z=J[2]||0,Z=J[3]||0;return{browser:Q,version:`${D}.${z}.${Z}`}}}return null}var _D0=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},htA=()=>{let A=xtA();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":jD0(Deno.build.os),"X-Stainless-Arch":TD0(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":jD0(globalThis.process.platform??"unknown"),"X-Stainless-Arch":TD0(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Q=mtA();if(Q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${Q.browser}`,"X-Stainless-Runtime-Version":Q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}},TD0=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},jD0=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},PD0,SD0=()=>{return PD0??(PD0=htA())};var Fw1=()=>{};function $D0(){if(typeof fetch!=="undefined")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Ew1(...A){let Q=globalThis.ReadableStream;if(typeof Q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new Q(...A)}function $o(A){let Q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return Ew1({start(){},async pull(B){let{done:J,value:D}=await Q.next();if(J)B.close();else B.enqueue(D)},async cancel(){await Q.return?.()}})}function Hw1(A){if(A[Symbol.asyncIterator])return A;let Q=A.getReader();return{async next(){try{let B=await Q.read();if(B?.done)Q.releaseLock();return B}catch(B){throw Q.releaseLock(),B}},async return(){let B=Q.cancel();return Q.releaseLock(),await B,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function vD0(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let Q=A.getReader(),B=Q.cancel();Q.releaseLock(),await B}var kD0=({headers:A,body:Q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Q)}};var yb="RFC3986",bb,ww1="RFC1738";var vo=k1(()=>{bb={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:(A)=>String(A)}});function yD0(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function Iw1(A,Q){if(ctA(A)){let B=[];for(let J=0;J<A.length;J+=1)B.push(Q(A[J]));return B}return Q(A)}var ctA,gY,Ww1=1024,fD0=(A,Q,B,J,D)=>{if(A.length===0)return A;let z=A;if(typeof A==="symbol")z=Symbol.prototype.toString.call(A);else if(typeof A!=="string")z=String(A);if(B==="iso-8859-1")return escape(z).replace(/%u[0-9a-f]{4}/gi,function(G){return"%26%23"+parseInt(G.slice(2),16)+"%3B"});let Z="";for(let G=0;G<z.length;G+=Ww1){let X=z.length>=Ww1?z.slice(G,G+Ww1):z,K=[];for(let Y=0;Y<X.length;++Y){let q=X.charCodeAt(Y);if(q===45||q===46||q===95||q===126||q>=48&&q<=57||q>=65&&q<=90||q>=97&&q<=122||D===ww1&&(q===40||q===41)){K[K.length]=X.charAt(Y);continue}if(q<128){K[K.length]=gY[q];continue}if(q<2048){K[K.length]=gY[192|q>>6]+gY[128|q&63];continue}if(q<55296||q>=57344){K[K.length]=gY[224|q>>12]+gY[128|q>>6&63]+gY[128|q&63];continue}Y+=1,q=65536+((q&1023)<<10|X.charCodeAt(Y)&1023),K[K.length]=gY[240|q>>18]+gY[128|q>>12&63]+gY[128|q>>6&63]+gY[128|q&63]}Z+=K.join("")}return Z};var bD0=k1(()=>{vo();ctA=Array.isArray,gY=(()=>{let A=[];for(let Q=0;Q<256;++Q)A.push("%"+((Q<16?"0":"")+Q.toString(16)).toUpperCase());return A})()});function atA(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}function hD0(A,Q,B,J,D,z,Z,G,X,K,Y,q,F,E,H,w,W,I){let M=A,N=I,V=0,L=!1;while((N=N.get(Mw1))!==void 0&&!L){let $=N.get(A);if(V+=1,typeof $!=="undefined")if($===V)throw new RangeError("Cyclic object value");else L=!0;if(typeof N.get(Mw1)==="undefined")V=0}if(typeof K==="function")M=K(Q,M);else if(M instanceof Date)M=F?.(M);else if(B==="comma"&&xY(M))M=Iw1(M,function($){if($ instanceof Date)return F?.($);return $});if(M===null){if(z)return X&&!w?X(Q,UQ.encoder,W,"key",E):Q;M=""}if(atA(M)||yD0(M)){if(X){let $=w?Q:X(Q,UQ.encoder,W,"key",E);return[H?.($)+"="+H?.(X(M,UQ.encoder,W,"value",E))]}return[H?.(Q)+"="+H?.(String(M))]}let T=[];if(typeof M==="undefined")return T;let R;if(B==="comma"&&xY(M)){if(w&&X)M=Iw1(M,X);R=[{value:M.length>0?M.join(",")||null:void 0}]}else if(xY(K))R=K;else{let $=Object.keys(M);R=Y?$.sort(Y):$}let j=G?String(Q).replace(/\./g,"%2E"):String(Q),P=J&&xY(M)&&M.length===1?j+"[]":j;if(D&&xY(M)&&M.length===0)return P+"[]";for(let $=0;$<R.length;++$){let S=R[$],x=typeof S==="object"&&typeof S.value!=="undefined"?S.value:M[S];if(Z&&x===null)continue;let u=q&&G?S.replace(/\./g,"%2E"):S,_=xY(M)?typeof B==="function"?B(P,u):P:P+(q?"."+u:"["+u+"]");I.set(A,V);let f=new WeakMap;f.set(Mw1,I),xD0(T,hD0(x,_,B,J,D,z,Z,G,B==="comma"&&w&&xY(M)?null:X,K,Y,q,F,E,H,w,W,f))}return T}function rtA(A=UQ){if(typeof A.allowEmptyArrays!=="undefined"&&typeof A.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys!=="undefined"&&typeof A.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder!=="undefined"&&typeof A.encoder!=="function")throw new TypeError("Encoder has to be a function.");let Q=A.charset||UQ.charset;if(typeof A.charset!=="undefined"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let B=yb;if(typeof A.format!=="undefined"){if(!ltA.call(bb,A.format))throw new TypeError("Unknown format option provided.");B=A.format}let J=bb[B],D=UQ.filter;if(typeof A.filter==="function"||xY(A.filter))D=A.filter;let z;if(A.arrayFormat&&A.arrayFormat in gD0)z=A.arrayFormat;else if("indices"in A)z=A.indices?"indices":"repeat";else z=UQ.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots==="undefined"?!!A.encodeDotInKeys===!0?!0:UQ.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:UQ.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:UQ.allowEmptyArrays,arrayFormat:z,charset:Q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:UQ.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter==="undefined"?UQ.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:UQ.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:UQ.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:UQ.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:UQ.encodeValuesOnly,filter:D,format:B,formatter:J,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:UQ.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:UQ.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:UQ.strictNullHandling}}function Nw1(A,Q={}){let B=A,J=rtA(Q),D,z;if(typeof J.filter==="function")z=J.filter,B=z("",B);else if(xY(J.filter))z=J.filter,D=z;let Z=[];if(typeof B!=="object"||B===null)return"";let G=gD0[J.arrayFormat],X=G==="comma"&&J.commaRoundTrip;if(!D)D=Object.keys(B);if(J.sort)D.sort(J.sort);let K=new WeakMap;for(let F=0;F<D.length;++F){let E=D[F];if(J.skipNulls&&B[E]===null)continue;xD0(Z,hD0(B[E],E,G,X,J.allowEmptyArrays,J.strictNullHandling,J.skipNulls,J.encodeDotInKeys,J.encode?J.encoder:null,J.filter,J.sort,J.allowDots,J.serializeDate,J.format,J.formatter,J.encodeValuesOnly,J.charset,K))}let Y=Z.join(J.delimiter),q=J.addQueryPrefix===!0?"?":"";if(J.charsetSentinel)if(J.charset==="iso-8859-1")q+="utf8=%26%2310003%3B&";else q+="utf8=%E2%9C%93&";return Y.length>0?q+Y:""}var ltA,gD0,xY,dtA,xD0=function(A,Q){dtA.apply(A,xY(Q)?Q:[Q])},itA,UQ,Mw1;var mD0=k1(()=>{bD0();vo();ltA=Object.prototype.hasOwnProperty,gD0={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,Q){return String(A)+"["+Q+"]"},repeat(A){return String(A)}},xY=Array.isArray,dtA=Array.prototype.push,itA=Date.prototype.toISOString,UQ={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:fD0,encodeValuesOnly:!1,format:yb,formatter:bb[yb],indices:!1,serializeDate(A){return itA.call(A)},skipNulls:!1,strictNullHandling:!1};Mw1={}});var uD0=k1(()=>{vo();mD0()});function lD0(A){let Q=0;for(let D of A)Q+=D.length;let B=new Uint8Array(Q),J=0;for(let D of A)B.set(D,J),J+=D.length;return B}function IT(A){let Q;return(pD0??(Q=new globalThis.TextEncoder,pD0=Q.encode.bind(Q)))(A)}function Cw1(A){let Q;return(cD0??(Q=new globalThis.TextDecoder,cD0=Q.decode.bind(Q)))(A)}var pD0,cD0;class MT{constructor(){iz.set(this,void 0),az.set(this,void 0),U2(this,iz,new Uint8Array,"f"),U2(this,az,null,"f")}decode(A){if(A==null)return[];let Q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?IT(A):A;U2(this,iz,lD0([x0(this,iz,"f"),Q]),"f");let B=[],J;while((J=stA(x0(this,iz,"f"),x0(this,az,"f")))!=null){if(J.carriage&&x0(this,az,"f")==null){U2(this,az,J.index,"f");continue}if(x0(this,az,"f")!=null&&(J.index!==x0(this,az,"f")+1||J.carriage)){B.push(Cw1(x0(this,iz,"f").subarray(0,x0(this,az,"f")-1))),U2(this,iz,x0(this,iz,"f").subarray(x0(this,az,"f")),"f"),U2(this,az,null,"f");continue}let D=x0(this,az,"f")!==null?J.preceding-1:J.preceding,z=Cw1(x0(this,iz,"f").subarray(0,D));B.push(z),U2(this,iz,x0(this,iz,"f").subarray(J.index),"f"),U2(this,az,null,"f")}return B}flush(){if(!x0(this,iz,"f").length)return[];return this.decode(`
|
980
|
+
`);return A.result.output}}return FD0.default.stringify(A)}var FD0;var HD0=k1(()=>{FD0=hA(UD0(),1)});function Mb(A,Q){return{...Q,interactionState:A&&Q?.state==="active"?ftA(A,Q.inferenceState):!1}}function ftA(A,Q){if(Q==="running")return!1;let B=A.messages.at(-1);if(!B)return"user-message-initial";if(B.role==="assistant")return B.state.type==="complete"&&B.state.stopReason==="end_turn"?"user-message-reply":!1;if(B.content.some((J)=>J.type==="tool_result"&&J.run.status==="blocked-on-user"))return"user-tool-approval";if(B.content.some((J)=>J.type==="tool_result"&&J.run.status==="in-progress"))return"tool-running";return!1}function wD0(A,Q){if(A){let B=()=>{A.removeEventListener("abort",B),Q()};return A.addEventListener("abort",B),()=>A.removeEventListener("abort",B)}return}function wT(A){return A instanceof DOMException&&A.name==="AbortError"}function WD0(A){return A instanceof Error&&A.message===Kw1.USER_CANCELLED}var Kw1;var Yw1=k1(()=>{Kw1={USER_CANCELLED:"User cancelled"}});async function*Po(A,Q){if(Q.aborted)throw new DOMException("Aborted","AbortError");let B=new Promise((J,D)=>{Q.addEventListener("abort",()=>{D(new DOMException("Aborted","AbortError"))})});while(!0){let J=await Promise.race([A.next(),B]);if(J.done)return J.value;yield J.value}}function ID0(A){if(A===59999)return"59.99s";if(A===3599999)return"59m 59.99s";let Q=A/1000,B=Q/60,J=B/60,D=J/24,z=Math.floor(D),Z=Math.floor(J)%24,G=Math.floor(B)%60,X=Math.floor(Q)%60,K=(Q-Math.floor(Q)).toFixed(2).substring(1);if(z>0)return`${z}d ${Z}h`;if(Z>0)return`${Z}h ${G}m`;if(G>0)return`${G}m ${X}${K}s`;return`${Math.floor(Q)}${K}s`}function U2(A,Q,B,J,D){if(J==="m")throw new TypeError("Private method is not writable");if(J==="a"&&!D)throw new TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?A!==Q||!D:!Q.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?D.call(A,B):D?D.value=B:Q.set(A,B),B}function x0(A,Q,B,J){if(B==="a"&&!J)throw new TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?A!==Q||!J:!Q.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return B==="m"?J:B==="a"?J.call(A):J?J.value:Q.get(A)}var fY=()=>{};var qw1=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return qw1=A.randomUUID.bind(A),A.randomUUID();let Q=new Uint8Array(1),B=A?()=>A.getRandomValues(Q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(J)=>(+J^B()&15>>+J/4).toString(16))};function Nb(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var Cb=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let Q=new Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)Q.stack=A.stack;if(A.cause&&!Q.cause)Q.cause=A.cause;if(A.name)Q.name=A.name;return Q}}catch{}try{return new Error(JSON.stringify(A))}catch{}}return new Error(A)};var x6,b7,YQ,iN,aN,Vb,Ob,Rb,Lb,Tb,jb,Pb,_b,Sb,$b;var yY=k1(()=>{x6=class x6 extends Error{};b7=class b7 extends x6{constructor(A,Q,B,J){super(`${b7.makeMessage(A,Q,B)}`);this.status=A,this.headers=J,this.requestID=J?.get("x-request-id"),this.error=Q;let D=Q;this.code=D?.code,this.param=D?.param,this.type=D?.type}static makeMessage(A,Q,B){let J=Q?.message?typeof Q.message==="string"?Q.message:JSON.stringify(Q.message):Q?JSON.stringify(Q):B;if(A&&J)return`${A} ${J}`;if(A)return`${A} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate(A,Q,B,J){if(!A||!J)return new iN({message:B,cause:Cb(Q)});let D=Q?.error;if(A===400)return new Vb(A,D,B,J);if(A===401)return new Ob(A,D,B,J);if(A===403)return new Rb(A,D,B,J);if(A===404)return new Lb(A,D,B,J);if(A===409)return new Tb(A,D,B,J);if(A===422)return new jb(A,D,B,J);if(A===429)return new Pb(A,D,B,J);if(A>=500)return new _b(A,D,B,J);return new b7(A,D,B,J)}};YQ=class YQ extends b7{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}};iN=class iN extends b7{constructor({message:A,cause:Q}){super(void 0,void 0,A||"Connection error.",void 0);if(Q)this.cause=Q}};aN=class aN extends iN{constructor({message:A}={}){super({message:A??"Request timed out."})}};Vb=class Vb extends b7{};Ob=class Ob extends b7{};Rb=class Rb extends b7{};Lb=class Lb extends b7{};Tb=class Tb extends b7{};jb=class jb extends b7{};Pb=class Pb extends b7{};_b=class _b extends b7{};Sb=class Sb extends x6{constructor(){super("Could not parse response content as the length limit was reached")}};$b=class $b extends x6{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}});function ND0(A){if(typeof A!=="object")return{};return A??{}}function CD0(A){if(!A)return!0;for(let Q in A)return!1;return!0}function VD0(A,Q){return Object.prototype.hasOwnProperty.call(A,Q)}function vb(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var btA,MD0=(A)=>{return btA.test(A)},OD0=(A,Q)=>{if(typeof Q!=="number"||!Number.isInteger(Q))throw new x6(`${A} must be an integer`);if(Q<0)throw new x6(`${A} must be a positive integer`);return Q},RD0=(A)=>{try{return JSON.parse(A)}catch(Q){return}};var WT=k1(()=>{yY();btA=/^[a-z][a-z0-9+.-]*:/i});var bY=(A)=>new Promise((Q)=>setTimeout(Q,A));function kb(){}function _o(A,Q,B){if(!Q||So[A]>So[B])return kb;else return Q[A].bind(Q)}function qQ(A){let Q=A.logger,B=A.logLevel??"off";if(!Q)return gtA;let J=LD0.get(Q);if(J&&J[0]===B)return J[1];let D={error:_o("error",Q,B),warn:_o("warn",Q,B),info:_o("info",Q,B),debug:_o("debug",Q,B)};return LD0.set(Q,[B,D]),D}var So,Uw1=(A,Q,B)=>{if(!A)return;if(VD0(So,A))return A;qQ(B).warn(`${Q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(So))}`);return},gtA,LD0,VF=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([Q,B])=>[Q,Q.toLowerCase()==="authorization"||Q.toLowerCase()==="cookie"||Q.toLowerCase()==="set-cookie"?"***":B]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var fb=k1(()=>{WT();So={off:0,error:200,warn:300,info:400,debug:500};gtA={error:kb,warn:kb,info:kb,debug:kb},LD0=new WeakMap});var bw="5.3.0";function xtA(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}function mtA(){if(typeof navigator==="undefined"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:Q,pattern:B}of A){let J=B.exec(navigator.userAgent);if(J){let D=J[1]||0,z=J[2]||0,Z=J[3]||0;return{browser:Q,version:`${D}.${z}.${Z}`}}}return null}var _D0=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},htA=()=>{let A=xtA();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":jD0(Deno.build.os),"X-Stainless-Arch":TD0(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":jD0(globalThis.process.platform??"unknown"),"X-Stainless-Arch":TD0(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Q=mtA();if(Q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${Q.browser}`,"X-Stainless-Runtime-Version":Q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":bw,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}},TD0=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},jD0=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},PD0,SD0=()=>{return PD0??(PD0=htA())};var Fw1=()=>{};function $D0(){if(typeof fetch!=="undefined")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Ew1(...A){let Q=globalThis.ReadableStream;if(typeof Q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new Q(...A)}function $o(A){let Q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return Ew1({start(){},async pull(B){let{done:J,value:D}=await Q.next();if(J)B.close();else B.enqueue(D)},async cancel(){await Q.return?.()}})}function Hw1(A){if(A[Symbol.asyncIterator])return A;let Q=A.getReader();return{async next(){try{let B=await Q.read();if(B?.done)Q.releaseLock();return B}catch(B){throw Q.releaseLock(),B}},async return(){let B=Q.cancel();return Q.releaseLock(),await B,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function vD0(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let Q=A.getReader(),B=Q.cancel();Q.releaseLock(),await B}var kD0=({headers:A,body:Q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Q)}};var yb="RFC3986",bb,ww1="RFC1738";var vo=k1(()=>{bb={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:(A)=>String(A)}});function yD0(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function Iw1(A,Q){if(ctA(A)){let B=[];for(let J=0;J<A.length;J+=1)B.push(Q(A[J]));return B}return Q(A)}var ctA,gY,Ww1=1024,fD0=(A,Q,B,J,D)=>{if(A.length===0)return A;let z=A;if(typeof A==="symbol")z=Symbol.prototype.toString.call(A);else if(typeof A!=="string")z=String(A);if(B==="iso-8859-1")return escape(z).replace(/%u[0-9a-f]{4}/gi,function(G){return"%26%23"+parseInt(G.slice(2),16)+"%3B"});let Z="";for(let G=0;G<z.length;G+=Ww1){let X=z.length>=Ww1?z.slice(G,G+Ww1):z,K=[];for(let Y=0;Y<X.length;++Y){let q=X.charCodeAt(Y);if(q===45||q===46||q===95||q===126||q>=48&&q<=57||q>=65&&q<=90||q>=97&&q<=122||D===ww1&&(q===40||q===41)){K[K.length]=X.charAt(Y);continue}if(q<128){K[K.length]=gY[q];continue}if(q<2048){K[K.length]=gY[192|q>>6]+gY[128|q&63];continue}if(q<55296||q>=57344){K[K.length]=gY[224|q>>12]+gY[128|q>>6&63]+gY[128|q&63];continue}Y+=1,q=65536+((q&1023)<<10|X.charCodeAt(Y)&1023),K[K.length]=gY[240|q>>18]+gY[128|q>>12&63]+gY[128|q>>6&63]+gY[128|q&63]}Z+=K.join("")}return Z};var bD0=k1(()=>{vo();ctA=Array.isArray,gY=(()=>{let A=[];for(let Q=0;Q<256;++Q)A.push("%"+((Q<16?"0":"")+Q.toString(16)).toUpperCase());return A})()});function atA(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}function hD0(A,Q,B,J,D,z,Z,G,X,K,Y,q,F,E,H,w,W,I){let M=A,N=I,V=0,L=!1;while((N=N.get(Mw1))!==void 0&&!L){let $=N.get(A);if(V+=1,typeof $!=="undefined")if($===V)throw new RangeError("Cyclic object value");else L=!0;if(typeof N.get(Mw1)==="undefined")V=0}if(typeof K==="function")M=K(Q,M);else if(M instanceof Date)M=F?.(M);else if(B==="comma"&&xY(M))M=Iw1(M,function($){if($ instanceof Date)return F?.($);return $});if(M===null){if(z)return X&&!w?X(Q,UQ.encoder,W,"key",E):Q;M=""}if(atA(M)||yD0(M)){if(X){let $=w?Q:X(Q,UQ.encoder,W,"key",E);return[H?.($)+"="+H?.(X(M,UQ.encoder,W,"value",E))]}return[H?.(Q)+"="+H?.(String(M))]}let T=[];if(typeof M==="undefined")return T;let R;if(B==="comma"&&xY(M)){if(w&&X)M=Iw1(M,X);R=[{value:M.length>0?M.join(",")||null:void 0}]}else if(xY(K))R=K;else{let $=Object.keys(M);R=Y?$.sort(Y):$}let j=G?String(Q).replace(/\./g,"%2E"):String(Q),P=J&&xY(M)&&M.length===1?j+"[]":j;if(D&&xY(M)&&M.length===0)return P+"[]";for(let $=0;$<R.length;++$){let S=R[$],x=typeof S==="object"&&typeof S.value!=="undefined"?S.value:M[S];if(Z&&x===null)continue;let u=q&&G?S.replace(/\./g,"%2E"):S,_=xY(M)?typeof B==="function"?B(P,u):P:P+(q?"."+u:"["+u+"]");I.set(A,V);let f=new WeakMap;f.set(Mw1,I),xD0(T,hD0(x,_,B,J,D,z,Z,G,B==="comma"&&w&&xY(M)?null:X,K,Y,q,F,E,H,w,W,f))}return T}function rtA(A=UQ){if(typeof A.allowEmptyArrays!=="undefined"&&typeof A.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys!=="undefined"&&typeof A.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder!=="undefined"&&typeof A.encoder!=="function")throw new TypeError("Encoder has to be a function.");let Q=A.charset||UQ.charset;if(typeof A.charset!=="undefined"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let B=yb;if(typeof A.format!=="undefined"){if(!ltA.call(bb,A.format))throw new TypeError("Unknown format option provided.");B=A.format}let J=bb[B],D=UQ.filter;if(typeof A.filter==="function"||xY(A.filter))D=A.filter;let z;if(A.arrayFormat&&A.arrayFormat in gD0)z=A.arrayFormat;else if("indices"in A)z=A.indices?"indices":"repeat";else z=UQ.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots==="undefined"?!!A.encodeDotInKeys===!0?!0:UQ.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:UQ.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:UQ.allowEmptyArrays,arrayFormat:z,charset:Q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:UQ.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter==="undefined"?UQ.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:UQ.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:UQ.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:UQ.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:UQ.encodeValuesOnly,filter:D,format:B,formatter:J,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:UQ.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:UQ.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:UQ.strictNullHandling}}function Nw1(A,Q={}){let B=A,J=rtA(Q),D,z;if(typeof J.filter==="function")z=J.filter,B=z("",B);else if(xY(J.filter))z=J.filter,D=z;let Z=[];if(typeof B!=="object"||B===null)return"";let G=gD0[J.arrayFormat],X=G==="comma"&&J.commaRoundTrip;if(!D)D=Object.keys(B);if(J.sort)D.sort(J.sort);let K=new WeakMap;for(let F=0;F<D.length;++F){let E=D[F];if(J.skipNulls&&B[E]===null)continue;xD0(Z,hD0(B[E],E,G,X,J.allowEmptyArrays,J.strictNullHandling,J.skipNulls,J.encodeDotInKeys,J.encode?J.encoder:null,J.filter,J.sort,J.allowDots,J.serializeDate,J.format,J.formatter,J.encodeValuesOnly,J.charset,K))}let Y=Z.join(J.delimiter),q=J.addQueryPrefix===!0?"?":"";if(J.charsetSentinel)if(J.charset==="iso-8859-1")q+="utf8=%26%2310003%3B&";else q+="utf8=%E2%9C%93&";return Y.length>0?q+Y:""}var ltA,gD0,xY,dtA,xD0=function(A,Q){dtA.apply(A,xY(Q)?Q:[Q])},itA,UQ,Mw1;var mD0=k1(()=>{bD0();vo();ltA=Object.prototype.hasOwnProperty,gD0={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,Q){return String(A)+"["+Q+"]"},repeat(A){return String(A)}},xY=Array.isArray,dtA=Array.prototype.push,itA=Date.prototype.toISOString,UQ={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:fD0,encodeValuesOnly:!1,format:yb,formatter:bb[yb],indices:!1,serializeDate(A){return itA.call(A)},skipNulls:!1,strictNullHandling:!1};Mw1={}});var uD0=k1(()=>{vo();mD0()});function lD0(A){let Q=0;for(let D of A)Q+=D.length;let B=new Uint8Array(Q),J=0;for(let D of A)B.set(D,J),J+=D.length;return B}function IT(A){let Q;return(pD0??(Q=new globalThis.TextEncoder,pD0=Q.encode.bind(Q)))(A)}function Cw1(A){let Q;return(cD0??(Q=new globalThis.TextDecoder,cD0=Q.decode.bind(Q)))(A)}var pD0,cD0;class MT{constructor(){iz.set(this,void 0),az.set(this,void 0),U2(this,iz,new Uint8Array,"f"),U2(this,az,null,"f")}decode(A){if(A==null)return[];let Q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?IT(A):A;U2(this,iz,lD0([x0(this,iz,"f"),Q]),"f");let B=[],J;while((J=stA(x0(this,iz,"f"),x0(this,az,"f")))!=null){if(J.carriage&&x0(this,az,"f")==null){U2(this,az,J.index,"f");continue}if(x0(this,az,"f")!=null&&(J.index!==x0(this,az,"f")+1||J.carriage)){B.push(Cw1(x0(this,iz,"f").subarray(0,x0(this,az,"f")-1))),U2(this,iz,x0(this,iz,"f").subarray(x0(this,az,"f")),"f"),U2(this,az,null,"f");continue}let D=x0(this,az,"f")!==null?J.preceding-1:J.preceding,z=Cw1(x0(this,iz,"f").subarray(0,D));B.push(z),U2(this,iz,x0(this,iz,"f").subarray(J.index),"f"),U2(this,az,null,"f")}return B}flush(){if(!x0(this,iz,"f").length)return[];return this.decode(`
|
981
981
|
`)}}function stA(A,Q){for(let D=Q??0;D<A.length;D++){if(A[D]===10)return{preceding:D,index:D+1,carriage:!1};if(A[D]===13)return{preceding:D,index:D+1,carriage:!0}}return null}function dD0(A){for(let J=0;J<A.length-1;J++){if(A[J]===10&&A[J+1]===10)return J+2;if(A[J]===13&&A[J+1]===13)return J+2;if(A[J]===13&&A[J+1]===10&&J+3<A.length&&A[J+2]===13&&A[J+3]===10)return J+4}return-1}var iz,az;var iD0=k1(()=>{fY();iz=new WeakMap,az=new WeakMap;MT.NEWLINE_CHARS=new Set([`
|
982
982
|
`,"\r"]);MT.NEWLINE_REGEXP=/\r\n|[\n\r]/g});async function*otA(A,Q){if(!A.body){if(Q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new x6("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new x6("Attempted to iterate over a response with no body")}let B=new aD0,J=new MT,D=Hw1(A.body);for await(let z of ttA(D))for(let Z of J.decode(z)){let G=B.decode(Z);if(G)yield G}for(let z of J.flush()){let Z=B.decode(z);if(Z)yield Z}}async function*ttA(A){let Q=new Uint8Array;for await(let B of A){if(B==null)continue;let J=B instanceof ArrayBuffer?new Uint8Array(B):typeof B==="string"?IT(B):B,D=new Uint8Array(Q.length+J.length);D.set(Q),D.set(J,Q.length),Q=D;let z;while((z=dD0(Q))!==-1)yield Q.slice(0,z),Q=Q.slice(z)}if(Q.length>0)yield Q}class aD0{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let D={event:this.event,data:this.data.join(`
|
983
983
|
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],D}if(this.chunks.push(A),A.startsWith(":"))return null;let[Q,B,J]=etA(A,":");if(J.startsWith(" "))J=J.substring(1);if(Q==="event")this.event=J;else if(Q==="data")this.data.push(J);return null}}function etA(A,Q){let B=A.indexOf(Q);if(B!==-1)return[A.substring(0,B),Q,A.substring(B+Q.length)];return[A,"",""]}var rz;var Vw1=k1(()=>{yY();iD0();yY();rz=class rz{constructor(A,Q){this.iterator=A,this.controller=Q}static fromSSEResponse(A,Q){let B=!1;async function*J(){if(B)throw new x6("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");B=!0;let D=!1;try{for await(let z of otA(A,Q)){if(D)continue;if(z.data.startsWith("[DONE]")){D=!0;continue}if(z.event===null||z.event.startsWith("response.")||z.event.startsWith("transcript.")){let Z;try{Z=JSON.parse(z.data)}catch(G){throw console.error("Could not parse message into JSON:",z.data),console.error("From chunk:",z.raw),G}if(Z&&Z.error)throw new b7(void 0,Z.error,void 0,A.headers);yield Z}else{let Z;try{Z=JSON.parse(z.data)}catch(G){throw console.error("Could not parse message into JSON:",z.data),console.error("From chunk:",z.raw),G}if(z.event=="error")throw new b7(void 0,Z.error,Z.message,void 0);yield{event:z.event,data:Z}}}D=!0}catch(z){if(Nb(z))return;throw z}finally{if(!D)Q.abort()}}return new rz(J,Q)}static fromReadableStream(A,Q){let B=!1;async function*J(){let z=new MT,Z=Hw1(A);for await(let G of Z)for(let X of z.decode(G))yield X;for(let G of z.flush())yield G}async function*D(){if(B)throw new x6("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");B=!0;let z=!1;try{for await(let Z of J()){if(z)continue;if(Z)yield JSON.parse(Z)}z=!0}catch(Z){if(Nb(Z))return;throw Z}finally{if(!z)Q.abort()}}return new rz(D,Q)}[Symbol.asyncIterator](){return this.iterator()}tee(){let A=[],Q=[],B=this.iterator(),J=(D)=>{return{next:()=>{if(D.length===0){let z=B.next();A.push(z),Q.push(z)}return D.shift()}}};return[new rz(()=>J(A),this.controller),new rz(()=>J(Q),this.controller)]}toReadableStream(){let A=this,Q;return Ew1({async start(){Q=A[Symbol.asyncIterator]()},async pull(B){try{let{value:J,done:D}=await Q.next();if(D)return B.close();let z=IT(JSON.stringify(J)+`
|
@@ -4541,7 +4541,7 @@ ${B.join(`
|
|
4541
4541
|
`)}function R4A(A,Q,B,J){let D=Q.map((X)=>{let K=X.range?`(L${X.range.type==="full"?X.range.start.line:X.range.start.line})`:"",Y=X.severity||"info",q=Y==="error"?"red":Y==="warning"?"yellow":"gray",F=J&&B.includeFilePaths?as6.relative(J,X.path):X.path,E=B.includeFilePaths?`${F}${K!==""?" ":""}${K}`:K,H=A.print(X.message,{foreground:q});return{location:E,messageFormatted:H,filePathLength:B.includeFilePaths?0:iE(E)}}),Z=Math.max(...D.map((X)=>X.filePathLength),1)+2;return D.map((X)=>{let K=" ".repeat(Math.max(0,Z-X.filePathLength));return`${X.location}${K}${X.messageFormatted}`}).join(`
|
4542
4542
|
`)}Nf();function ss6(A,Q){if(A.state!=="active")return{type:"idle"};let B=dq(Q);if(B)return B;let J=[];for(let D of Q.messages)if(D.role==="user"){for(let z of D.content)if(z.type==="tool_result"&&z.run.status==="in-progress")J.push(z)}if(J.length>0){let D=J[0],z=I4(Q,D.toolUseID);if(z){let Z=J.slice(1).map((G)=>{return I4(Q,G.toolUseID)?.name||"tool"}).filter(Boolean);return U41(z.name,J.length,Date.now(),z.input,Z.length>0?Z:void 0)}}return{type:"idle"}}class ik1{dependencies;subthreads=new Map;nextAgentNumber=1;events=new r2;constructor(A){this.dependencies=A}get events$(){return this.events}async trackSubthread(A,Q,B){if(this.subthreads.has(A))return;try{let J=await XQ.getOrCreateForThread({configService:this.dependencies.configService,threadService:this.dependencies.threadService,toolService:this.dependencies.toolService,getThreadEnvironment:CO,threadSummaryService:this.dependencies.threadSummaryService,createFileSystem:()=>iB,threadHistoryService:this.dependencies.threadHistoryService,mcpService:this.dependencies.mcpService,createFileChangeTrackerForThread:(G)=>{return AN(new FY(iB),iB,G)}},A);await J.resume();let D=this.nextAgentNumber++,z={threadID:A,worker:J,agentNumber:D,printedMessageIndexes:new Set,printedToolRuns:new Set,requestedToolConfirmations:new Set,taskDescription:Q,isCompleted:!1};if(this.subthreads.set(A,z),Q&&B)this.events.next({type:"subagent-started",subThreadID:A,agentNumber:D,taskDescription:Q,taskPrompt:B});J.status.subscribe(async(G)=>{if(!z.isCompleted){if(G.state==="active"&&G.inferenceState==="cancelled"){z.isCompleted=!0,this.events.next({type:"subagent-cancelled",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Task cancelled"});return}if(G.state==="active"&&G.ephemeralError){z.isCompleted=!0,this.events.next({type:"subagent-error",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Task failed",error:G.ephemeralError.message||"Unknown error occurred"});return}try{let X=await E6(this.dependencies.threadService.observe(A)),K=ss6(G,X);if(this.events.next({type:"subagent-status",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Running task",agentState:K}),G.state==="active"){let Y=[];for(let q of X.messages)if(q.role==="user"){for(let F of q.content)if(F.type==="tool_result")Y.push(F)}for(let q of Y){let F=I4(X,q.toolUseID);if(F){let E=`${A}-${F.id}`;if(!z.toolStartTimes)z.toolStartTimes=new Map;if(!z.toolStartTimes.has(E))z.toolStartTimes.set(E,Date.now());let H;switch(q.run.status){case"in-progress":case"blocked-on-user":case"queued":H="running";break;case"done":H="completed";break;case"cancelled":case"rejected-by-user":case"cancellation-requested":H="cancelled";break;case"error":H="error";break}this.events.next({type:"tool-status",toolUse:F,status:H,startTime:z.toolStartTimes.get(E),subthreadID:A})}}}}catch(X){j1.error(`Failed to get thread for status update: ${A}`,X)}}}),CH(this.dependencies.threadService.observe(A)).observable.subscribe((G)=>{let X=P5(G,"assistant");if(Ad(X)&&!z.isCompleted){z.isCompleted=!0,this.events.next({type:"subagent-cancelled",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Task cancelled"});return}if(X?.state.type==="error"&&!z.isCompleted){z.isCompleted=!0,this.events.next({type:"subagent-error",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Task failed",error:X.state.error.message||"Unknown error occurred"});return}for(let F of G.messages)if(F.role==="user"){for(let E of F.content)if(E.type==="tool_result"){let H=I4(G,E.toolUseID);if(H&&!z.printedToolRuns.has(E.toolUseID)){let w=E.run.status==="done"?"completed":E.run.status==="error"?"error":E.run.status==="cancelled"?"cancelled":void 0;if(w){z.printedToolRuns.add(E.toolUseID);let W=`${A}-${H.id}`,I=z.toolStartTimes?.get(W);if(this.events.next({type:"tool-status",toolUse:H,status:w,startTime:I,endTime:Date.now(),subthreadID:A}),z.toolStartTimes)z.toolStartTimes.delete(W)}}}}let Y=P5(G,"user")?.content.filter((F)=>F.type==="tool_result"&&F.run.status==="blocked-on-user")??[];if(Y.length>0&&!z.isCompleted){let F=[];for(let E of Y){let H=I4(G,E.toolUseID);if(H&&H.name===Z4&&E.run.status==="blocked-on-user"&&E.userInput===void 0&&!z.requestedToolConfirmations.has(E.toolUseID))F.push({useBlock:H,toAllow:E.run.toAllow}),z.requestedToolConfirmations.add(E.toolUseID)}if(F.length>0)this.events.next({type:"subthread-tool-request",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Running task",tools:F})}if(X?.state.type==="complete"&&X.state.stopReason==="end_turn"&&!z.isCompleted){z.isCompleted=!0;let F=X.content.filter((E)=>E.type==="text").map((E)=>E.text).join(`
|
4543
4543
|
|
4544
|
-
`);this.events.next({type:"subagent-finished",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Task completed",result:F})}if(!z.isCompleted){let F=KS(G,z.printedMessageIndexes,z.printedToolRuns);if(F.blocks.length>0)this.events.next({type:"subthread-message",subThreadID:A,agentNumber:z.agentNumber,blocks:F.blocks})}}),j1.debug(`Started tracking subthread ${A}`)}catch(J){j1.error(`Failed to track subthread ${A}`,J)}}scanForTaskToolSubthreads(A){for(let Q of A.messages)if(Q.role==="user"){for(let B of Q.content)if(B.type==="tool_result"){let J=I4(A,B.toolUseID);if(J?.name===U5&&(B.run.status==="in-progress"||B.run.status==="done"||B.run.status==="cancelled")){let D="progress"in B.run?B.run.progress:void 0,z=wv(D);if(z)this.trackSubthread(z,J.input?.description,J.input?.prompt).catch((Z)=>{j1.error(`Failed to track Task tool subthread ${z}`,Z)})}}}}async handleToolConfirmations(A,Q){let B=this.subthreads.get(A);if(!B){j1.error(`No tracker found for subthread ${A}`);return}j1.info(`Sending tool confirmations to subthread ${A}`,{toolCount:Q.size,responses:Array.from(Q.entries()).map(([J,D])=>({id:J,accepted:D}))});for(let[J,D]of Q)j1.info("Sending tool confirmation to subthread worker",{subThreadID:A,toolUseID:J,accepted:D}),await B.worker.handle({type:"user:tool-input",toolUse:J,value:{accepted:D}})}dispose(){for(let A of this.subthreads.values())A.worker.dispose();this.subthreads.clear(),this.events.complete()}}l6();vU();Nf();BQ();Tw();P6();l6();Mg();function L4A(A){return!A.some((Q)=>Q.type==="project"||Q.type==="parent")}nW1();import{readdir as os6}from"node:fs/promises";import{homedir as ts6}from"node:os";async function T4A(A,Q){let B=await Zt(A,Q);return j1.debug("guidanceFiles",{guidanceFiles:B.map((D)=>({...D,content:`(${D.content.length} bytes)`}))}),{shouldGenerate:await es6()&&L4A(B)}}async function es6(){let A=process.cwd(),Q=ts6();if(A===Q)return!1;try{return(await os6(A)).length>0}catch{return!1}}async function j4A(A){await A.handle({type:"user:message",message:{content:[{type:"text",text:JZ0}]}})}l6();function np(A,Q){return(B,J)=>{let D=Q(B,J);if(J.type!=="tick")j1.debug("Transition",{name:A,before:B,event:J,after:D});return D}}la();sk1();async function $4A({threadSyncService:A,configService:Q,threadService:B,threadHistoryService:J,mcpService:D,fileWatcher:z,fuzzyServer:Z,threadSummaryService:G,settingsStorage:X,threadStorage:K,toolService:Y,subthreadTracker:q,notificationService:F},{threadID:E,isContinued:H,ui:w}){let W=new Set,I=CH(B.observe(E)),M=new Set,N=new Map;await E6(I.observable);let V=await XQ.getOrCreateForThread({configService:Q,threadService:B,toolService:Y,getThreadEnvironment:CO,threadSummaryService:G,createFileSystem:()=>iB,threadHistoryService:J,mcpService:D,createFileChangeTrackerForThread:(v)=>{return AN(new FY(iB),iB,v)}},E);await V.resume().catch((v)=>{j1.error("Initial resume",v)});let L=V.status.pipe(L6((v)=>{return{type:"worker-state",status:v}})),T=I.observable.pipe(L6((v)=>{return{type:"thread-state",thread:v}})),R=new r2,j=new r2,P=w(DA.from(j)).pipe(L6((v)=>({type:"ui-input",input:v}))),$=q.events$.pipe(L6((v)=>v)),S=eR.pipe(L6((v)=>({type:"jetbrains-status",jetbrainsState:v}))),x=MZ(L,T,MZ(R,P,$,S)),u=new r2;async function _(){j.next({type:"state",state:{type:"shutting-down"}}),await A.sync().catch((v)=>{j1.error("Thread sync error",v,{threadID:E})}),q.dispose(),V.dispose(),A.dispose(),B.dispose(),await D.dispose(),z[Symbol.dispose](),Z.dispose(),F.unsubscribe(),j.complete(),u.next()}let f=x.pipe(NZ(()=>{_()})).pipe(yl(np("threadSession",function(v,y){function k(e){j1.info(`Processing user message: ${e.slice(0,50)}${e.length>50?"...":""}`);let n="tokenUsage"in v?v.tokenUsage:void 0;if(n&&n.used/n.maxAvailable>E41.CRITICAL)return j1.info("Blocking message at worker boundary - critical token usage"),j.next({type:"confirm",confirmation:{type:"compaction",severity:"critical"}}),{type:"confirming-compaction",severity:"critical",tokenUsage:v.tokenUsage,compactionPromptState:"final",updateState:"updateState"in v?v.updateState:"none",toolConfirmationStatus:"toolConfirmationStatus"in v?v.toolConfirmationStatus:new Map,currentAssistantMessageIndex:("currentAssistantMessageIndex"in v?v.currentAssistantMessageIndex:null)??null,hasBeenIdle:"hasBeenIdle"in v?v.hasBeenIdle:!1,threadTitle:"threadTitle"in v?v.threadTitle:null,confirmationQueue:"confirmationQueue"in v?v.confirmationQueue:[]};V.handle({type:"user:message",message:{content:[{type:"text",text:e}]}}).then(()=>{A.sync().catch((o)=>{j1.error("Thread sync after submit error",o,{threadID:E})})}).catch((o)=>{j1.error("Handle user message failed",o)}),j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}});let z1=I.value.last;if(z1){let o=dq(z1);if(o)j.next({type:"state",state:o})}return{...v,type:"awaiting-agent",displayedError:null}}async function m(){j.next({type:"state",state:{type:"compacting"}});let e=await G.summarizeThread(E);await V.handle({type:"summary:created",summary:{type:"internal",summary:e.summary}})}function l(){if(v.type==="awaiting-user-message")return j1.debug("already accepting, ignoring event",{state:v,event:y}),v;let e="tokenUsage"in v?v.tokenUsage:void 0;if(A.sync().catch((n)=>{j1.error("Thread sync error",n,{threadID:E})}),e&&v.type!=="confirming-compaction"&&v.type!=="compacting"){let n=e.used/e.maxAvailable,z1=void 0,o=v.compactionPromptState;if(n>E41.CRITICAL)z1="critical",o="final";else if(n>E41.WARNING&&v.compactionPromptState==="none")z1="moderate",o="first";else if(n>E41.SEVERE&&v.compactionPromptState==="first")z1="severe",o="final";if(z1)return j.next({type:"confirm",confirmation:{type:"compaction",severity:z1}}),{type:"confirming-compaction",severity:z1,tokenUsage:v.tokenUsage,compactionPromptState:o,updateState:v.updateState,toolConfirmationStatus:v.toolConfirmationStatus,currentAssistantMessageIndex:v.currentAssistantMessageIndex,hasBeenIdle:v.hasBeenIdle,threadTitle:v.threadTitle,confirmationQueue:v.confirmationQueue}}if(j.next({type:"accept-message",initial:!v.hasBeenIdle&&!H}),v.type==="awaiting-agent")v.cancelledWithMessage=void 0;if(e)j.next({type:"token-usage",tokenUsage:e});return{...v,type:"awaiting-user-message",hasBeenIdle:!0,tokenUsage:e??null}}async function d(e){if(e.length>0){j1.info(`Updating allowlist with ${e.length} entries`,{entries:e});try{if(await X.get("experimental.commandApproval.enabled","global")===!0){let o=[...await X.get("experimental.commandApproval.allow","global")??[],...e];await X.set("experimental.commandApproval.allow",o,"global"),j1.info("Updated experimental command approval allow list",{newEntries:e,totalEntries:o.length})}else{let o=[...await X.get("commands.allowlist","global")??[],...e];await X.set("commands.allowlist",o,"global"),j1.info("Updated regular commands allowlist",{newEntries:e,totalEntries:o.length})}}catch(n){j1.error("Failed to update allowlist",n)}}}if(v.type==="closing")return v;if(y.type==="thread-state"){let e=y.thread.title||null;if(v.threadTitle!==e&&e!==null)j.next({type:"thread-title",title:e});if(q.scanForTaskToolSubthreads(y.thread),H&&W.size===0&&y.thread.messages.length>0){let o=KS(y.thread,W,M);if(o.blocks.length>0)j.next({type:"messages",blocks:o.blocks})}let n=v.tokenUsage,z1=gR(y.thread);if(z1)n={used:z1.totalInputTokens,maxAvailable:z1.maxInputTokens},j.next({type:"token-usage",tokenUsage:n});if(v.type==="awaiting-user-confirmation")if(y.thread.messages.at(-1)?.content.some((o)=>o.type==="tool_result"&&(o.run.status==="in-progress"||o.run.status==="done"))){let o=dq(y.thread);if(o)j.next({type:"state",state:o});else j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}});return{...v,type:"awaiting-agent",displayedError:null,tokenUsage:n}}else{let o=P5(y.thread,"user")?.content.filter((J1)=>J1.type==="tool_result"&&J1.run.status==="blocked-on-user")??[];if(o.length>0){j1.info(`Found ${o.length} blocked tools in awaiting-user-confirmation`,{toolIDs:o.map((w1)=>w1.toolUseID)});let J1=P5(y.thread,"assistant"),D1=new Set(J1?.content.filter((w1)=>w1.type==="tool_use").map((w1)=>w1.id)??[]);for(let w1 of o){if(!D1.has(w1.toolUseID))continue;let a=I4(y.thread,w1.toolUseID);if(a&&a.name===Z4)return v.toolConfirmationStatus.set(w1.toolUseID,"awaiting"),j1.info("Added blocked tool to confirmation tracking",{toolUseID:w1.toolUseID}),j.next({type:"tool-status",toolUse:a,status:"blocked-on-user",startTime:Date.now()}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:[{useBlock:a,toAllow:w1.run.status==="blocked-on-user"?w1.run.toAllow:void 0}]}}),{...v,type:"collecting-tool-confirmations",currentToolID:w1.toolUseID,tokenUsage:n}}}return{...v,type:"awaiting-user-confirmation",tokenUsage:n}}if(v.type==="awaiting-agent"||v.type==="compacting"){let o=y.thread.messages.at(-1),J1=KS(y.thread,W,M),D1=J1.blocks;if(o?.role==="assistant"&&o.state.type==="streaming"&&J1.blocks.length===0){D1=[{type:"message",data:[y.thread.messages.length-1,o]}];let Y1=dq(y.thread);if(Y1)j.next({type:"state",state:Y1})}if(D1.length>0){for(let X1 of D1)if(X1.type==="toolResult"){let[Y1,L1]=X1.data,N1=L1.run.status==="done"?"completed":L1.run.status==="error"?"error":L1.run.status==="cancelled"?"cancelled":"running";if(N1!=="running")j.next({type:"tool-status",toolUse:Y1,status:N1,startTime:N.get(Y1.id),endTime:Date.now()}),N.delete(Y1.id)}j.next({type:"messages",blocks:D1})}if(y.thread.messages.at(-1)?.content.some((X1)=>X1.type==="summary"))return{...l(),tokenUsage:null,compactionPromptState:"none"};if(o?.role==="assistant"&&o.state.type==="complete"&&o.state.stopReason==="end_turn"){j.next({type:"state",state:{type:"idle"}});let X1=l();return{...X1,tokenUsage:n??X1.tokenUsage}}let w1=P5(y.thread,"assistant"),a=w1?y.thread.messages.indexOf(w1):null;if(a!==null&&a!==v.currentAssistantMessageIndex)j1.info("New assistant message detected, clearing tool confirmations",{oldIndex:v.currentAssistantMessageIndex,newIndex:a,previousToolCount:v.toolConfirmationStatus.size}),v.toolConfirmationStatus.clear(),v.currentAssistantMessageIndex=a;let r=P5(y.thread,"user")?.content.filter((X1)=>X1.type==="tool_result"&&X1.run.status==="blocked-on-user")??[];if(r.length>0)j1.info(`Found ${r.length} blocked tools`,{toolIDs:r.map((X1)=>X1.toolUseID),currentState:v.type});let s=new Set(w1?.content.filter((X1)=>X1.type==="tool_use").map((X1)=>X1.id)??[]),Z1=!1;for(let X1 of r){if(!s.has(X1.toolUseID))continue;let Y1=I4(y.thread,X1.toolUseID),L1=v.toolConfirmationStatus.get(X1.toolUseID);if(Y1&&Y1.name===Z4&&X1.run.status==="blocked-on-user"&&L1===void 0){if(v.toolConfirmationStatus.set(X1.toolUseID,"awaiting"),Z1=!0,j1.info("Added new tool to confirmation tracking",{toolUseID:X1.toolUseID,toolName:Y1.name}),!N.has(Y1.id))N.set(Y1.id,Date.now());j.next({type:"tool-status",toolUse:Y1,status:"blocked-on-user",startTime:N.get(Y1.id)})}}let G1=Array.from(v.toolConfirmationStatus.entries()).filter(([X1,Y1])=>Y1==="awaiting");if(G1.length>0){let[X1]=G1[0],Y1=r.find((N1)=>N1.toolUseID===X1),L1=Y1?I4(y.thread,Y1.toolUseID):null;if(Y1&&L1)return j1.info(`Starting tool confirmation process for ${G1.length} tools (hasNewTools: ${Z1})`,{firstToolID:X1,toolName:L1.name,currentState:v.type}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:[{useBlock:L1,toAllow:Y1.run.status==="blocked-on-user"?Y1.run.toAllow:void 0}]}}),{...v,type:"collecting-tool-confirmations",currentToolID:X1,tokenUsage:n}}}}else if(y.type==="worker-state"){if(v.type==="awaiting-user-confirmation"&&y.status.state==="active"&&y.status.ephemeralError)return v;if(v.type==="collecting-tool-confirmations")return j1.info("Already collecting tool confirmations, ignoring worker-state event"),v;let e=I.value.last?.messages.at(-1),n=v.tokenUsage;if(y.status.state==="active"){let z1=I.value.last;if(z1){let o=gR(z1);if(o)n={used:o.totalInputTokens,maxAvailable:o.maxInputTokens},j.next({type:"token-usage",tokenUsage:n})}}if(v.type==="confirming-compaction"||v.type==="compacting")return{...v,tokenUsage:n};switch(y.status.state){case"initial":if(v.type==="initializing")return v;return l();case"active":if(y.status.ephemeralError)if(y.status.ephemeralError.message.includes(K41)){if(v.type==="out-of-credits")return v;return j.next({type:"confirm",confirmation:{type:"out-of-credits"}}),{...v,type:"out-of-credits",tokenUsage:n}}else if(TO(y.status.ephemeralError))return j1.info("Context limit error, triggering compaction",{error:y.status.ephemeralError,tokenUsage:n}),j.next({type:"confirm",confirmation:{type:"compaction",severity:"critical"}}),{type:"confirming-compaction",severity:"critical",tokenUsage:v.tokenUsage,compactionPromptState:v.compactionPromptState,updateState:v.updateState,toolConfirmationStatus:v.toolConfirmationStatus,currentAssistantMessageIndex:v.currentAssistantMessageIndex,hasBeenIdle:v.hasBeenIdle,threadTitle:v.threadTitle,confirmationQueue:v.confirmationQueue};else if(y.status.ephemeralError.message.includes("401 unauthorized"))return j.next({type:"error",error:{type:"unauthorized"},retryable:!1}),f.unsubscribe(),{...v,type:"closing"};else{let z1=y.status.ephemeralError.message;if(j1.error("Ephemeral error",{error:z1}),v.type==="awaiting-agent"&&v.displayedError!==z1)return j.next({type:"error",error:{type:"other",error:z1},retryable:!1}),{...v,type:"awaiting-user-confirmation",tokenUsage:n};else return v}switch(y.status.inferenceState){case"running":{let z1=I.value.last;if(z1){let o=dq(z1);if(o)j.next({type:"state",state:o});else j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}})}else j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}})}if(v.type==="initializing")return{...v,tokenUsage:n};return{...v,type:"awaiting-agent",displayedError:null,tokenUsage:n};case"cancelled":if(v.type==="initializing")return{...v,tokenUsage:n};if(j.next({type:"cancelled"}),j.next({type:"state",state:{type:"idle"}}),v.type==="awaiting-agent"&&v.cancelledWithMessage)return v.cancelledWithMessage=void 0,{...v,tokenUsage:n};else return{...l(),tokenUsage:n};case"idle":if(v.type==="initializing")return{...v,tokenUsage:n};if(e?.content.some((z1)=>z1.type==="tool_result"&&z1.run.status==="blocked-on-user"))return{...v,type:"awaiting-user-confirmation",tokenUsage:n};else if(I.value.last?.messages.some((z1)=>z1.role==="user"&&z1.content.some((o)=>o.type==="tool_result"&&o.run.status==="in-progress"))??!1){let z1=I.value.last?.messages.flatMap((J1)=>J1.content).filter((J1)=>J1.type==="tool_result"&&("run"in J1)&&("status"in J1.run)&&J1.run.status==="in-progress"),o=z1?.length??0;if(o>0){for(let a of z1||[]){let r=I4(I.value.last,a.toolUseID);if(r){if(!N.has(a.toolUseID))N.set(a.toolUseID,Date.now());j.next({type:"tool-status",toolUse:r,status:"running",startTime:N.get(a.toolUseID)})}}let J1=o===1&&z1?.[0]&&I.value.last?I4(I.value.last,z1[0].toolUseID):void 0,D1=o>1&&z1&&I.value.last?z1.slice(1,Math.min(4,z1.length)).map((a)=>{return I4(I.value.last,a.toolUseID)?.name||"tool"}).filter(Boolean):void 0,w1=J1?U41(J1.name,o,Date.now(),J1.input,D1):{type:"running-tools",toolCount:o,startTime:Date.now(),queuedTools:D1};j.next({type:"state",state:w1})}else{let J1=I.value.last;if(J1){let D1=dq(J1);if(D1)j.next({type:"state",state:D1});else j.next({type:"state",state:{type:"idle"}})}else j.next({type:"state",state:{type:"idle"}})}return{...v,type:"awaiting-agent",displayedError:null,tokenUsage:n}}else if(e?.role==="assistant"&&e.state.type==="complete"&&e.state.stopReason==="end_turn")return j.next({type:"state",state:{type:"idle"}}),{...l(),tokenUsage:n}}}}else if(y.type==="batch-tool-confirmations-complete")if(v.type==="collecting-tool-confirmations"&&v.subthreadContext)return j1.info("Sending batch tool confirmations to subthread",{subThreadID:v.subthreadContext.subThreadID,toolCount:y.responses.size,responses:Array.from(y.responses.entries()).map(([e,n])=>({id:e,accepted:n}))}),q.handleToolConfirmations(v.subthreadContext.subThreadID,y.responses).catch((e)=>{j1.error("Failed to send subthread tool confirmations",e)}),j1.info("Transitioning to awaiting-agent after sending subthread confirmations"),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null};else return j1.info("Sending batch tool confirmations to worker",{toolCount:y.responses.size,responses:Array.from(y.responses.entries()).map(([e,n])=>({id:e,accepted:n}))}),y.responses.forEach((e,n)=>{j1.info("Sending individual tool confirmation to worker",{toolUseID:n,accepted:e}),V.handle({type:"user:tool-input",toolUse:n,value:{accepted:e}}),v.toolConfirmationStatus.set(n,"sent")}),j1.info("Transitioning to awaiting-agent after sending batch confirmations"),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null};else if(y.type==="summary:created"){let e=I.value.last;if(e){let n=gR(e);if(n){let z1={used:n.totalInputTokens,maxAvailable:n.maxInputTokens},o=v.type==="compacting"?v.preCompactionTokenUsage:null;if(o){let J1=o.used,D1=z1.used,w1=J1-D1,a=J1>0?w1/J1*100:0;if(w1<=0)j1.warn("Compaction did not reduce token usage",{preUsed:J1,postUsed:D1,reduction:w1,threadID:E});else if(a<10)j1.warn("Compaction reduction was minimal",{preUsed:J1,postUsed:D1,reduction:w1,reductionPercent:a.toFixed(1),threadID:E});else j1.info("Compaction successful",{preUsed:J1,postUsed:D1,reduction:w1,reductionPercent:a.toFixed(1),threadID:E})}else j1.warn("No pre-compaction token usage available for validation",{threadID:E});j.next({type:"token-usage",tokenUsage:z1})}}return l()}else if(y.type==="compaction-result")if(y.result)return l();else return j.next({type:"error",error:{type:"other",error:"Compaction failed"},retryable:!1}),j.next({type:"confirm",confirmation:{type:"compaction",severity:y.severity}}),{...v,type:"confirming-compaction",severity:y.severity};else if(y.type==="update-start-updating")return{...v,updateState:"updating"};else if(y.type==="update-result")if(y.success)return setTimeout(()=>{R.next({type:"clear-update-status"})},1e4),{...v,updateState:"success"};else return setTimeout(()=>{R.next({type:"clear-update-status"})},1e4),{...v,updateState:"error"};else if(y.type==="clear-update-status")return{...v,updateState:"none"};else if(y.type==="agent-file-check-complete"){if(v.type==="checking-agent-file")if(y.shouldGenerate)return j.next({type:"confirm",confirmation:{type:"agent-file-creation"}}),{...v,type:"confirming-agent-file-creation"};else return l()}else if(y.type==="tool-status")return j.next({type:"tool-status",toolUse:y.toolUse,status:y.status,startTime:y.startTime,endTime:y.endTime,subthreadID:y.subthreadID}),v;else if(y.type==="subagent-started"){if(v.type==="initializing")return v;return j.next({type:"subagent-started",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription}),v}else if(y.type==="subagent-status")return j.next({type:"subagent-status",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,agentState:y.agentState}),v;else if(y.type==="subthread-message"){if(y.blocks.length>0)j.next({type:"subthread-messages",subThreadID:y.subThreadID,blocks:y.blocks});return v}else if(y.type==="historic-thread"){if(v.type!=="initializing")throw new Error(`Historic thread event received in unexpected state: ${v.type}`);if(H&&W.size===0&&y.messages.length>0){let n=KS({id:E,messages:y.messages},W,M);if(n.blocks.length>0)j.next({type:"messages",blocks:n.blocks})}let e={...v,hasThread:!0};if(e.hasUI&&e.hasThread)return l();return e}else if(y.type==="subagent-finished")return j.next({type:"subagent-finished",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,result:y.result}),v;else if(y.type==="subagent-cancelled")return j.next({type:"subagent-cancelled",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription}),v;else if(y.type==="subagent-error")return j.next({type:"subagent-error",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,error:y.error}),v;else if(y.type==="subthread-tool-request"){if(y.tools.length>0){if(j1.info(`Received tool confirmation request from subthread ${y.subThreadID}`,{subThreadID:y.subThreadID,agentNumber:y.agentNumber,toolCount:y.tools.length,tools:y.tools.map((e)=>e.useBlock.name),queueLength:v.confirmationQueue.length}),v.type==="collecting-tool-confirmations"||v.confirmationQueue.length>0)return j1.info("Queueing tool confirmation request",{subThreadID:y.subThreadID,agentNumber:y.agentNumber,currentQueueLength:v.confirmationQueue.length}),{...v,confirmationQueue:[...v.confirmationQueue,{type:"subthread-tool-request",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,tools:y.tools}]};return j.next({type:"confirm",confirmation:{type:"tool-use",tools:y.tools,subthreadID:y.subThreadID,agentNumber:y.agentNumber}}),{...v,type:"collecting-tool-confirmations",currentToolID:y.tools[0]?.useBlock.id||null,subthreadContext:{subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription}}}return v}else if(y.type==="jetbrains-status")return j.next({type:"jetbrains-status",jetbrainsState:y.jetbrainsState}),v;else if(y.input.type==="initialized")if(v.type==="initializing"){let e={...v,hasUI:!0};if(e.hasUI&&e.hasThread)if(I.value.last?.messages.length===0)return j1.info("Checking agent file status"),T4A({filesystem:iB,configService:Q,threadService:B},I.value.last).then((z1)=>{R.next({type:"agent-file-check-complete",shouldGenerate:z1.shouldGenerate})}).catch((z1)=>{j1.error("Agent file check failed",z1),R.next({type:"agent-file-check-complete",shouldGenerate:!1})}),{...v,type:"checking-agent-file"};else return l();return e}else throw new Error(`UI initialized event received in unexpected state: ${v.type}`);else if(y.input.type==="message"){let{message:e}=y.input;return k(e)}else if(y.input.type==="interrupt")if(v.type==="awaiting-agent"){if(j.next({type:"cancelled"}),XQ.cancel(E),y.input.message)v.cancelledWithMessage=y.input.message;return v}else return v;else if(y.input.type==="exit")return f.unsubscribe(),{...v,type:"closing"};else if(y.input.type==="retry")return XQ.retry(E),{...v,type:"awaiting-agent",displayedError:null};else{if(v.type==="out-of-credits"&&y.input.confirmation.type==="out-of-credits")XQ.retry(E);else if(v.type==="confirming-compaction"&&y.input.confirmation.type==="compaction")if(y.input.allow){let e="tokenUsage"in v?v.tokenUsage:void 0;return j.next({type:"state",state:{type:"compacting"}}),m().then(()=>{j1.info("Compaction completed successfully",{preCompactionTokenUsage:e}),R.next({type:"compaction-result",result:!0,severity:v.severity})}).catch((n)=>{j1.error("Compaction failed",n),R.next({type:"compaction-result",result:!1,severity:v.severity})}),{...v,type:"compacting",preCompactionTokenUsage:e}}else return j1.info("Compaction cancelled"),l();else if(v.type==="collecting-tool-confirmations"&&y.input.confirmation.type==="tool-use"){if(!v.currentToolID)return j1.error("No current tool ID in collecting-tool-confirmations state"),v;if(j1.info(`Received confirmation for tool: ${y.input.allow?"accepted":"rejected"}`,{toolUseID:v.currentToolID,subthreadID:y.input.confirmation.subthreadID}),y.input.confirmation.subthreadID&&v.subthreadContext){j1.info("Sending tool confirmation to subthread",{subThreadID:v.subthreadContext.subThreadID,toolUseID:v.currentToolID,accepted:y.input.allow});let o=new Map([[v.currentToolID,y.input.allow]]);if(q.handleToolConfirmations(v.subthreadContext.subThreadID,o).catch((J1)=>{j1.error("Failed to send subthread tool confirmation",J1)}),v.confirmationQueue.length>0){let J1=v.confirmationQueue[0],D1=v.confirmationQueue.slice(1);return j1.info("Processing next queued confirmation request",{subThreadID:J1.subThreadID,agentNumber:J1.agentNumber,remainingQueueLength:D1.length}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:J1.tools,subthreadID:J1.subThreadID,agentNumber:J1.agentNumber}}),{...v,type:"collecting-tool-confirmations",currentToolID:J1.tools[0]?.useBlock.id||null,subthreadContext:{subThreadID:J1.subThreadID,agentNumber:J1.agentNumber,taskDescription:J1.taskDescription},confirmationQueue:D1}}return j1.info("Transitioning to awaiting-agent after sending subthread confirmation"),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null}}v.toolConfirmationStatus.set(v.currentToolID,y.input.allow?"confirmed":"rejected"),d(y.input.confirmation.addToAllowList);let e=Array.from(v.toolConfirmationStatus.entries()).filter(([o,J1])=>J1==="awaiting");if(e.length>0){let[o]=e[0];if(!I.value.isSet)return j1.error("Thread not available for finding next tool"),v;let w1=(I.value.last.messages.at(-1)?.content.filter((r)=>r.type==="tool_result"&&r.run.status==="blocked-on-user")??[]).find((r)=>r.toolUseID===o),a=w1?I4(I.value.last,w1.toolUseID):null;if(w1&&a)return j1.info(`Asking confirmation for next tool: ${a.name}`,{toolUseID:o,remainingCount:e.length}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:[{useBlock:a,toAllow:w1.run.status==="blocked-on-user"?w1.run.toAllow:void 0}]}}),{...v,currentToolID:o}}let n=Array.from(v.toolConfirmationStatus.entries()).filter(([o,J1])=>J1==="confirmed"||J1==="rejected");j1.info("All tool confirmations collected, sending batch response",{totalTools:n.length,responses:n.map(([o,J1])=>({id:o,accepted:J1==="confirmed"}))});let z1=new Map(n.map(([o,J1])=>[o,J1==="confirmed"]));return R.next({type:"batch-tool-confirmations-complete",responses:z1}),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null}}else if(y.input.confirmation.type==="agent-file-creation"&&v.type==="confirming-agent-file-creation")if(y.input.allow)return j4A(V).catch((e)=>{j1.error("Agent file generation failed",e)}),j.next({type:"state",state:{type:"generating-agent-file"}}),{...v,type:"awaiting-agent",displayedError:null};else return l();return v}return v}),{type:"initializing",hasUI:!1,hasThread:!1,tokenUsage:null,compactionPromptState:"none",updateState:"none",toolConfirmationStatus:new Map,currentAssistantMessageIndex:null,hasBeenIdle:!1,threadTitle:null,confirmationQueue:[]})).subscribe({error:(v)=>{j1.error("Error in state machine",v),_()}});if(H)K.get(E).then((v)=>{if(v)j1.info("Sending historic messages for initialization",{threadId:E,messageCount:v.messages.length}),R.next({type:"historic-thread",messages:v.messages});else j1.info("Sending empty messages for continued thread without stored messages",{threadId:E}),R.next({type:"historic-thread",messages:[]})});else j1.info("Sending empty messages for new thread initialization",{threadId:E}),R.next({type:"historic-thread",messages:[]});return zo6(R,Q).catch((v)=>{j1.debug("Update check startup failed",v)}),await E6(u)}async function zo6(A,Q){if(await Q.get("updates.autoUpdate.enabled")===!1)return;try{let J=await l3("0.0.1753229049-g457e52");if(J.hasUpdate&&J.latestVersion)A.next({type:"update-start-updating"}),setTimeout(async()=>{try{await nk1(J.latestVersion),A.next({type:"update-result",success:!0,version:J.latestVersion})}catch(D){j1.info("Update failed",D),A.next({type:"update-result",success:!1,version:J.latestVersion})}},100);else j1.info("No update available")}catch(J){j1.debug("Update check failed",J)}}var E41={WARNING:0.8,SEVERE:0.9,CRITICAL:0.98};import{Stream as xe6}from"node:stream";import B51 from"node:process";var y7A=hA(O8(),1);import ge6 from"node:process";function c4A(A,Q,{signal:B,edges:J}={}){let D=void 0,z=null,Z=J!=null&&J.includes("leading"),G=J==null||J.includes("trailing"),X=()=>{if(z!==null)A.apply(D,z),D=void 0,z=null},K=()=>{if(G)X();E()},Y=null,q=()=>{if(Y!=null)clearTimeout(Y);Y=setTimeout(()=>{Y=null,K()},Q)},F=()=>{if(Y!==null)clearTimeout(Y),Y=null},E=()=>{F(),D=void 0,z=null},H=()=>{F(),X()},w=function(...W){if(B?.aborted)return;D=this,z=W;let I=Y==null;if(q(),Z&&I)X()};return w.schedule=q,w.cancel=E,w.flush=H,B?.addEventListener("abort",E,{once:!0}),w}function l4A(A,Q=0,B={}){if(typeof B!=="object")B={};let{signal:J,leading:D=!1,trailing:z=!0,maxWait:Z}=B,G=Array(2);if(D)G[0]="leading";if(z)G[1]="trailing";let X=void 0,K=null,Y=c4A(function(...E){X=A.apply(this,E),K=null},Q,{signal:J,edges:G}),q=function(...E){if(Z!=null){if(K===null)K=Date.now();if(Date.now()-K>=Z)return X=A.apply(this,E),K=Date.now(),Y.cancel(),Y.schedule(),X}return Y.apply(this,E),X},F=()=>{return Y.flush(),X};return q.cancel=Y.cancel,q.flush=F,q}function w41(A,Q=0,B={}){if(typeof B!=="object")B={};let{leading:J=!0,trailing:D=!0,signal:z}=B;return l4A(A,Q,{leading:J,trailing:D,signal:z,maxWait:Q})}import{env as sp}from"node:process";var Gt6=sp.CI!=="0"&&sp.CI!=="false"&&(("CI"in sp)||("CONTINUOUS_INTEGRATION"in sp)||Object.keys(sp).some((A)=>A.startsWith("CI_"))),PO=Gt6;var Xt6=(A)=>{let Q=new Set;do for(let B of Reflect.ownKeys(A))Q.add([A,B]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return Q};function Jf1(A,{include:Q,exclude:B}={}){let J=(D)=>{let z=(Z)=>typeof Z==="string"?D===Z:Z.test(D);if(Q)return Q.some(z);if(B)return!B.some(z);return!0};for(let[D,z]of Xt6(A.constructor.prototype)){if(z==="constructor"||!J(z))continue;let Z=Reflect.getOwnPropertyDescriptor(D,z);if(Z&&typeof Z.value==="function")A[z]=A[z].bind(A)}return A}var b7A=hA(Zf1(),1);import{PassThrough as s4A}from"node:stream";var o4A=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Gf1={},Kt6=(A)=>{let Q=new s4A,B=new s4A;Q.write=(D)=>{A("stdout",D)},B.write=(D)=>{A("stderr",D)};let J=new console.Console(Q,B);for(let D of o4A)Gf1[D]=console[D],console[D]=J[D];return()=>{for(let D of o4A)console[D]=Gf1[D];Gf1={}}},t4A=Kt6;var Xf1=32;var Kf1=0,C41=0;var Yt6=(()=>{var A=import.meta.url;return function(Q){Q=Q||{};var B;B||(B=typeof Q!=="undefined"?Q:{});var J,D;B.ready=new Promise(function(q1,$1){J=q1,D=$1});var z=Object.assign({},B),Z="";typeof document!="undefined"&&document.currentScript&&(Z=document.currentScript.src),A&&(Z=A),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var G=B.print||console.log.bind(console),X=B.printErr||console.warn.bind(console);Object.assign(B,z),z=null;var K;B.wasmBinary&&(K=B.wasmBinary);var Y=B.noExitRuntime||!0;typeof WebAssembly!="object"&&v("no native wasm support detected");var q,F=!1;function E(q1,$1,W0){W0=$1+W0;for(var N0="";!($1>=W0);){var v0=q1[$1++];if(!v0)break;if(v0&128){var s0=q1[$1++]&63;if((v0&224)==192)N0+=String.fromCharCode((v0&31)<<6|s0);else{var FA=q1[$1++]&63;v0=(v0&240)==224?(v0&15)<<12|s0<<6|FA:(v0&7)<<18|s0<<12|FA<<6|q1[$1++]&63,65536>v0?N0+=String.fromCharCode(v0):(v0-=65536,N0+=String.fromCharCode(55296|v0>>10,56320|v0&1023))}}else N0+=String.fromCharCode(v0)}return N0}var H,w,W,I,M,N,V,L,T;function R(){var q1=q.buffer;H=q1,B.HEAP8=w=new Int8Array(q1),B.HEAP16=I=new Int16Array(q1),B.HEAP32=N=new Int32Array(q1),B.HEAPU8=W=new Uint8Array(q1),B.HEAPU16=M=new Uint16Array(q1),B.HEAPU32=V=new Uint32Array(q1),B.HEAPF32=L=new Float32Array(q1),B.HEAPF64=T=new Float64Array(q1)}var j,P=[],$=[],S=[];function x(){var q1=B.preRun.shift();P.unshift(q1)}var u=0,_=null,f=null;function v(q1){if(B.onAbort)B.onAbort(q1);throw q1="Aborted("+q1+")",X(q1),F=!0,q1=new WebAssembly.RuntimeError(q1+". Build with -sASSERTIONS for more info."),D(q1),q1}function y(q1){return q1.startsWith("data:application/octet-stream;base64,")}var k="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECYLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBXRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBXRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEIkBIhNBAEgNCCAIKAJMIQkLQQAhB0F/IQsCfyAJLQAAQS5HBEAgCSEBQQAMAQsgCS0AAUEqRgRAAn8CQCAJLAACIgEQV0UNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgFQ0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIkBIQsgCCgCTCEBQQELIQ8DQCAHIRFBHCEKIAEiECwAACIHQfsAa0FGSQ0JIBBBAWohASAHIBFBOmxqQf8qai0AACIHQQFrQQhJDQALIAggATYCTAJAAkAgB0EbRwRAIAdFDQsgEkEATgRAIAQgEkECdGogBzYCACAIIAMgEkEDdGopAwA3A0AMAgsgAEUNCCAIQUBrIAcgAiAGEIcBDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQZAvai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQRyENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQY4lIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBApDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEIYBIgpBAEgiDSAKIAsgB2tLckUEQCAJQQRqIQkgCyAHIApqIgdLDQEMAgsLIA0NDQtBPSEKIAdBAEgNCyAAQSAgEyAHIAwQKSAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACINRQ0BIAhBBGogDRCGASINIApqIgogB0sNASAAIAhBBGogDRAmIAlBBGohCSAHIApLDQALCyAAQSAgEyAHIAxBgMAAcxApIBMgByAHIBNIGyEHDAgLIA9BACALQQBIGw0IQT0hCiAAIAgrA0AgEyALIAwgByAFERwAIgdBAE4NBwwJCyAIIAgpA0A8ADdBASELIBchDSAJIQwMBAsgBy0AASEJIAdBAWohBwwACwALIAANByAVRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQhwFBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBApIAAgFiASECYgAEEwIAcgCyAMQYCABHMQKSAAQTAgCSAQQQAQKSAAIA0gEBAmIABBICAHIAsgDEGAwABzECkMAQsLQQAhDgwDC0E9IQoLQfw7IAo2AgALQX8hDgsgCEHQAGokACAOC9kCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEIoBQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEJ0BDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIoBCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfwIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQjAEhACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwsVACAARQRAQQAPC0H8OyAANgIAQX8LzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBxABqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC9EDAEHUO0GoHBAcQdU7QYoWQQFBAUEAEBtB1jtB/RJBAUGAf0H/ABAEQdc7QfYSQQFBgH9B/wAQBEHYO0H0EkEBQQBB/wEQBEHZO0GUCkECQYCAfkH//wEQBEHaO0GLCkECQQBB//8DEARB2ztBsQpBBEGAgICAeEH/////BxAEQdw7QagKQQRBAEF/EARB3TtB+BhBBEGAgICAeEH/////BxAEQd47Qe8YQQRBAEF/EARB3ztBjxBCgICAgICAgICAf0L///////////8AEIQBQeA7QY4QQgBCfxCEAUHhO0GIEEEEEA1B4jtB9BtBCBANQeM7QaQZEA5B5DtBmSIQDkHlO0EEQZcZEAhB5jtBAkGwGRAIQec7QQRBvxkQCEHoO0GPFhAaQek7QQBB1CEQAUHqO0EAQboiEAFB6ztBAUHyIRABQew7QQJB5B4QAUHtO0EDQYMfEAFB7jtBBEGrHxABQe87QQVByB8QAUHwO0EEQd8iEAFB8TtBBUH9IhABQeo7QQBBriAQAUHrO0EBQY0gEAFB7DtBAkHwIBABQe07QQNBziAQAUHuO0EEQbMhEAFB7ztBBUGRIRABQfI7QQZB7h8QAUHzO0EHQaQjEAELJQAgAEH0JjYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAsDAAALJQAgAEHsJzYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEGjOyAAQeI7QfooQcEBIAJB4jtB/ihBwgEgAxAHCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBQALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMACwkAIAEgABEAAAsHACAAEQ4ACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQAACzABAX8jAEEQayICJAAgAiABNgIIIAJBCGogABECACEAIAIoAggQBiACQRBqJAAgAAsMACABIAAoAgARAAALCQAgAEEBOgAEC9coAQJ/QaA7QaE7QaI7QQBBjCZBB0GPJkEAQY8mQQBB2RZBkSZBCBAFQQgQHiIAQoiAgIAQNwMAQaA7QZcbQQZBoCZBuCZBCSAAQQEQAEGkO0GlO0GmO0GgO0GMJkEKQYwmQQtBjCZBDEG4EUGRJkENEAVBBBAeIgBBDjYCAEGkO0HoFEECQcAmQcgmQQ8gAEEAEABBoDtBowxBAkHMJkHUJkEQQREQA0GgO0GAHEEDQaQnQbAnQRJBExADQbg7Qbk7Qbo7QQBBjCZBFEGPJkEAQY8mQQBB6RZBkSZBFRAFQQgQHiIAQoiAgIAQNwMAQbg7QegcQQJBuCdByCZBFiAAQQEQAEG7O0G8O0G9O0G4O0GMJkEXQYwmQRhBjCZBGUHPEUGRJkEaEAVBBBAeIgBBGzYCAEG7O0HoFEECQcAnQcgmQRwgAEEAEABBuDtBowxBAkHIJ0HUJkEdQR4QA0G4O0GAHEEDQaQnQbAnQRJBHxADQb47Qb87QcA7QQBBjCZBIEGPJkEAQY8mQQBB2hpBkSZBIRAFQb47QQFB+CdBjCZBIkEjEA9BvjtBkBtBAUH4J0GMJkEiQSMQA0G+O0HpCEECQfwnQcgmQSRBJRADQQgQHiIAQQA2AgQgAEEmNgIAQb47Qa0cQQRBkChBoChBJyAAQQAQAEEIEB4iAEEANgIEIABBKDYCAEG+O0GkEUEDQagoQbQoQSkgAEEAEABBCBAeIgBBADYCBCAAQSo2AgBBvjtByB1BA0G8KEHIKEErIABBABAAQQgQHiIAQQA2AgQgAEEsNgIAQb47QaYQQQNB0ChByChBLSAAQQAQAEEIEB4iAEEANgIEIABBLjYCAEG+O0HLHEEDQdwoQbAnQS8gAEEAEABBCBAeIgBBADYCBCAAQTA2AgBBvjtB0h1BAkHoKEHUJkExIABBABAAQQgQHiIAQQA2AgQgAEEyNgIAQb47QZcQQQJB8ChB1CZBMyAAQQAQAEHBO0GECkH4KEE0QZEmQTUQCkHiD0EAEEhB6g5BCBBIQYITQRAQSEHxFUEYEEhBgxdBIBBIQfAOQSgQSEHBOxAJQaM7Qf8aQfgoQTZBkSZBNxAKQYMXQQAQkwFB8A5BCBCTAUGjOxAJQcI7QYobQfgoQThBkSZBORAKQQQQHiIAQQg2AgBBBBAeIgFBCDYCAEHCO0GEG0HiO0H6KEE6IABB4jtB/ihBOyABEAdBBBAeIgBBADYCAEEEEB4iAUEANgIAQcI7QeUOQds7QdQmQTwgAEHbO0HIKEE9IAEQB0HCOxAJQcM7QcQ7QcU7QQBBjCZBPkGPJkEAQY8mQQBB+xtBkSZBPxAFQcM7QQFBhClBjCZBwABBwQAQD0HDO0HXDkEBQYQpQYwmQcAAQcEAEANBwztB0BpBAkGIKUHUJkHCAEHDABADQcM7QekIQQJBkClByCZBxABBxQAQA0EIEB4iAEEANgIEIABBxgA2AgBBwztB9w9BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABByAA2AgBBwztB6htBA0GYKUHIKEHJACAAQQAQAEEIEB4iAEEANgIEIABBygA2AgBBwztBnxtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABBzAA2AgBBwztB0BRBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzgA2AgBBwztBiA1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzwA2AgBBwztB3RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0AA2AgBBwztB+QtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0QA2AgBBwztBuBBBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0gA2AgBBwztB5RpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0wA2AgBBwztB/BRBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1AA2AgBBwztBlRNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1QA2AgBBwztBtQpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1gA2AgBBwztBuBVBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB1wA2AgBBwztBmw1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB2AA2AgBBwztB7RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2QA2AgBBwztBxAlBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2gA2AgBBwztB8QhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2wA2AgBBwztBhwlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3QA2AgBBwztB1BBBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3gA2AgBBwztB5gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3wA2AgBBwztBzBNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB4AA2AgBBwztBrAlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4QA2AgBBwztBnxZBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4gA2AgBBwztBoRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4wA2AgBBwztBvw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5AA2AgBBwztB+xNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB5QA2AgBBwztBkQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5gA2AgBBwztBwQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5wA2AgBBwztBvhNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB6AA2AgBBwztBsxdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6QA2AgBBwztBzw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6gA2AgBBwztBpQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6wA2AgBBwztB0gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7AA2AgBBwztBiRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7QA2AgBBwztBrA1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7gA2AgBBwztB9w5BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7wA2AgBBwztBrQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8AA2AgBBwztB/RhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB8QA2AgBBwztBshRBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8gA2AgBBwztBlBJBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB8wA2AgBBwztBzhlBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9AA2AgBBwztB4g1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9QA2AgBBwztBrRNBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9gA2AgBBwztB+gxBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9wA2AgBBwztBnhVBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB+AA2AgBBwztBrxtBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB+gA2AgBBwztB3BRBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABB/AA2AgBBwztBiQxBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/QA2AgBBwztBxhBBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/gA2AgBBwztB8hpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/wA2AgBBwztBjRVBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgAE2AgBBwztBoRNBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgQE2AgBBwztBxwpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBggE2AgBBwztBwhVBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBgwE2AgBBwztB4RBBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBhQE2AgBBwztBuAlBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBhwE2AgBBwztBrRZBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBiAE2AgBBwztBqhdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiQE2AgBBwztBmw9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBigE2AgBBwztBvxdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiwE2AgBBwztBsg9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjAE2AgBBwztBlRdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjQE2AgBBwztBhA9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjgE2AgBBwztBihlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBjwE2AgBBwztBwRRBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBkAE2AgBBwztBnhJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBkgE2AgBBwztB0AlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBkwE2AgBBwztB/AhBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBlAE2AgBBwztB2RlBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBlQE2AgBBwztBtBNBA0GMKkGYKkGWASAAQQAQAEEIEB4iAEEANgIEIABBlwE2AgBBwztBhxxBBEGgKkGgKEGYASAAQQAQAEEIEB4iAEEANgIEIABBmQE2AgBBwztBnBxBA0GwKkHIKEGaASAAQQAQAEEIEB4iAEEANgIEIABBmwE2AgBBwztBmgpBAkG8KkHUJkGcASAAQQAQAEEIEB4iAEEANgIEIABBnQE2AgBBwztBmQxBAkHEKkHUJkGeASAAQQAQAEEIEB4iAEEANgIEIABBnwE2AgBBwztBkxxBA0HMKkGwJ0GgASAAQQAQAEEIEB4iAEEANgIEIABBoQE2AgBBwztBuxZBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBowE2AgBBwztBvxtBAkHkKkHUJkGkASAAQQAQAEEIEB4iAEEANgIEIABBpQE2AgBBwztB0xtBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBpgE2AgBBwztBqB1BA0HsKkHIKEGnASAAQQAQAEEIEB4iAEEANgIEIABBqAE2AgBBwztBph1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBqQE2AgBBwztBuR1BA0H4KkHIKEGqASAAQQAQAEEIEB4iAEEANgIEIABBqwE2AgBBwztBtx1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrAE2AgBBwztB3whBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrQE2AgBBwztB1whBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBrwE2AgBBwztB3hVBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBsAE2AgBBwztB3AlBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBsQE2AgBBwztB6QlBBUGQK0GkK0GyASAAQQAQAEEIEB4iAEEANgIEIABBswE2AgBBwztB5w9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtAE2AgBBwztB0Q9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtQE2AgBBwztBhhNBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtgE2AgBBwztB+BVBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtwE2AgBBwztByxdBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuAE2AgBBwztBvw9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuQE2AgBBwztB+QlBAkGsK0HUJkG6ASAAQQAQAEEIEB4iAEEANgIEIABBuwE2AgBBwztBzBVBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvAE2AgBBwztBqBJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvQE2AgBBwztB5BlBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvgE2AgBBwztBqxVBAkHUKUHUJkH5ACAAQQAQAAtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAtHAAJAIAFBA00EfyAAIAFBAnRqQQRqBSABQQRrIgEgACgCGCIAKAIEIAAoAgAiAGtBAnVPDQEgACABQQJ0agsoAgAPCxACAAs4AQF/IAFBAEgEQBACAAsgAUEBa0EFdkEBaiIBQQJ0EB4hAiAAIAE2AgggAEEANgIEIAAgAjYCAAvSBQEJfyAAIAEvAQA7AQAgACABKQIENwIEIAAgASkCDDcCDCAAIAEoAhQ2AhQCQAJAIAEoAhgiA0UNAEEYEB4iBUEANgIIIAVCADcCACADKAIEIgEgAygCACICRwRAIAEgAmsiAkEASA0CIAUgAhAeIgE2AgAgBSABIAJqNgIIIAMoAgAiAiADKAIEIgZHBEADQCABIAIoAgA2AgAgAUEEaiEBIAJBBGoiAiAGRw0ACwsgBSABNgIECyAFQgA3AgwgBUEANgIUIAMoAhAiAUUNACAFQQxqIAEQnwEgAygCDCEGIAUgBSgCECIEIAMoAhAiAkEfcWogAkFgcWoiATYCEAJAAkAgBEUEQCABQQFrIQMMAQsgAUEBayIDIARBAWtzQSBJDQELIAUoAgwgA0EFdkEAIAFBIU8bQQJ0akEANgIACyAFKAIMIARBA3ZB/P///wFxaiEBIARBH3EiA0UEQCACQQBMDQEgAkEgbSEDIAJBH2pBP08EQCABIAYgA0ECdBAzGgsgAiADQQV0ayICQQBMDQEgASADQQJ0IgNqIgEgASgCAEF/QSAgAmt2IgFBf3NxIAMgBmooAgAgAXFyNgIADAELIAJBAEwNAEF/IAN0IQhBICADayEEIAJBIE4EQCAIQX9zIQkgASgCACEHA0AgASAHIAlxIAYoAgAiByADdHI2AgAgASABKAIEIAhxIAcgBHZyIgc2AgQgBkEEaiEGIAFBBGohASACQT9LIQogAkEgayECIAoNAAsgAkEATA0BCyABIAEoAgBBfyAEIAQgAiACIARKGyIEa3YgCHFBf3NxIAYoAgBBf0EgIAJrdnEiBiADdHI2AgAgAiAEayICQQBMDQAgASADIARqQQN2Qfz///8BcWoiASABKAIAQX9BICACa3ZBf3NxIAYgBHZyNgIACyAAKAIYIQEgACAFNgIYIAEEQCABEFsLDwsQAgALvQMBB38gAARAIwBBIGsiBiQAIAAoAgAiASgC5AMiAwRAIAMgARBvGiABQQA2AuQDCyABKALsAyICIAEoAugDIgNHBEBBASACIANrQQJ1IgIgAkEBTRshBEEAIQIDQCADIAJBAnRqKAIAQQA2AuQDIAJBAWoiAiAERw0ACwsgASADNgLsAwJAIAMgAUHwA2oiAigCAEYNACAGQQhqQQBBACACEEoiAigCBCABKALsAyABKALoAyIEayIFayIDIAQgBRAzIQUgASgC6AMhBCABIAU2AugDIAIgBDYCBCABKALsAyEFIAEgAigCCDYC7AMgAiAFNgIIIAEoAvADIQcgASACKAIMNgLwAyACIAQ2AgAgAiAHNgIMIAQgBUcEQCACIAUgBCAFa0EDakF8cWo2AggLIARFDQAgBBAnIAEoAugDIQMLIAMEQCABIAM2AuwDIAMQJwsgASgClAEhAyABQQA2ApQBIAMEQCADEFsLIAEQJyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgQhASAAQQA2AgQgAQRAIAEgASgCACgCBBEAAAsgBkEgaiQAIAAQIwsLtQEBAX8jAEEQayICJAACfyABBEAgASgCACEBQYgEEB4gARBcIAENARogAkH3GTYCACACEHIQJAALQZQ7LQAARQRAQfg6QQM2AgBBiDtCgICAgICAgMA/NwIAQYA7QgA3AgBBlDtBAToAAEH8OkH8Oi0AAEH+AXE6AABB9DpBADYCAEGQO0EANgIAC0GIBBAeQfQ6EFwLIQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIAIAELBQBBpDsLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQaA7Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHUA2ogAC0AiANBA3FBAkYNAhogAEHMA2oMAgsgAEHMA2ogAC0AiANBA3FBAkYNARogAEHUA2oMAQsgACABQf8BcUECdGpBzANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQdglIAIQLBAkAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBxANqIAAtAIgDQQNxQQJGDQIaIABBvANqDAILIABBvANqIAAtAIgDQQNxQQJGDQEaIABBxANqDAELIAAgAUH/AXFBAnRqQbwDagsqAgAhBCACQRBqJAAgBLsPCyACQe4QNgIAIABBBUHYJSACECwQJAALqgECAn8BfSMAQRBrIgIkACAAKAIAIQAgAUH/AXEiA0EGSQRAAn8CQAJAAkAgA0EEaw4CAAECCyAAQbQDaiAALQCIA0EDcUECRg0CGiAAQawDagwCCyAAQawDaiAALQCIA0EDcUECRg0BGiAAQbQDagwBCyAAIAFB/wFxQQJ0akGsA2oLKgIAIQQgAkEQaiQAIAS7DwsgAkHuEDYCACAAQQVB2CUgAhAsECQAC08AIAAgASgCACIBKgKcA7s5AwAgACABKgKkA7s5AwggACABKgKgA7s5AxAgACABKgKoA7s5AxggACABKgKMA7s5AyAgACABKgKQA7s5AygLDAAgACgCACoCkAO7CwwAIAAoAgAqAowDuwsMACAAKAIAKgKoA7sLDAAgACgCACoCoAO7CwwAIAAoAgAqAqQDuwsMACAAKAIAKgKcA7sL6AMCBH0FfyMAQUBqIgokACAAKAIAIQAgCkEIakEAQTgQKhpB8DpB8DooAgBBAWo2AgAgABB4IAAtABRBA3EiCCADQQEgA0H/AXEbIAgbIQkgAEEUaiEIIAG2IQQgACoC+AMhBQJ9AkACQAJAIAAtAPwDQQFrDgIBAAILIAUgBJRDCtcjPJQhBQsgBUMAAAAAYEUNACAAIAlB/wFxQQAgBCAEEDEgCEECQQEgBBAiIAhBAkEBIAQQIZKSDAELIAggCUH/AXFBACAEIAQQLSIFIAVbBEBBAiELIAggCUH/AXFBACAEIAQQLQwBCyAEIARcIQsgBAshByACtiEFIAAqAoAEIQYgACAHAn0CQAJAAkAgAC0AhARBAWsOAgEAAgsgBiAFlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgCUH/AXFBASAFIAQQMSAIQQBBASAEECIgCEEAQQEgBBAhkpIMAQsgCCAJQf8BcSIJQQEgBSAEEC0iBiAGWwRAQQIhDCAIIAlBASAFIAQQLQwBCyAFIAVcIQwgBQsgA0H/AXEgCyAMIAQgBUEBQQAgCkEIakEAQfA6KAIAED0EQCAAIAAtAIgDQQNxIAQgBRB2IABEAAAAAAAAAABEAAAAAAAAAAAQcwsgCkFAayQACw0AIAAoAgAtAABBAXELFQAgACgCACIAIAAtAABB/gFxOgAACxAAIAAoAgAtAABBBHFBAnYLegECfyMAQRBrIgEkACAAKAIAIgAoAggEQANAIAAtAAAiAkEEcUUEQCAAIAJBBHI6AAAgACgCECICBEAgACACEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyABQRBqJAAPCyABQYAINgIAIABBBUHYJSABECwQJAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCEAsXACAAKAIEKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEFNgIQCz4BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAIgBBADYCCCAAIAAtAABB7wFxOgAAC0kBAX8jAEEQayIGJAAgBiABKAIEKAIEIgEgAiADIAQgBSABKAIAKAIIERAAIAAgBisDALY4AgAgACAGKwMItjgCBCAGQRBqJAALcwECfyMAQRBrIgIkACAAKAIEIQMgACABNgIEIAMEQCADIAMoAgAoAgQRAAALIAAoAgAiACgC6AMgACgC7ANHBEAgAkH5IzYCACAAQQVB2CUgAhAsECQACyAAQQQ2AgggACAALQAAQRByOgAAIAJBEGokAAs8AQF/AkAgACgCACIAKALsAyAAKALoAyIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIEIQILIAILGQAgACgCACgC5AMiAEUEQEEADwsgACgCBAsXACAAKAIAIgAoAuwDIAAoAugDa0ECdQuOAwEDfyMAQdACayICJAACQCAAKAIAIgAoAuwDIAAoAugDRg0AIAEoAgAiAygC5AMhASAAIAMQb0UNACAAIAFGBEAgAkEIakEAQcQCECoaIAJBADoAGCACQgA3AxAgAkGAgID+BzYCDCACQRxqQQBBxAEQKhogAkHgAWohBCACQSBqIQEDQCABQoCAgPyLgIDAv383AhAgAUKBgICAEDcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIARHDQALIAJCgICA/IuAgMC/fzcD8AEgAkKBgICAEDcD6AEgAkKAgID8i4CAwL9/NwPgASACQoCAgP6HgIDg/wA3AoQCIAJCgICA/oeAgOD/ADcC/AEgAiACLQD4AUH4AXE6APgBIAJBjAJqQQBBwAAQKhogA0GYAWogAkEIakHEAhArGiADQQA2AuQDCwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIAJB0AJqJAAL4AcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKALkA0UEQCAAKAIIDQEgCC0AF0EQdEGAgDBxQYCAIEYEQCAAIAAoAuADQQFqNgLgAwsgACgC6AMiASACQQJ0aiEGAkAgACgC7AMiBCAAQfADaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2AuwDDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgLsAyAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDMaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQSiIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDMgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQSiIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQIyADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgC6AMiAWsiAmsgASACEDM2AgQgAygCCCAGIAAoAuwDIAZrIgQQMyEGIAAoAugDIQEgACADKAIENgLoAyADIAE2AgQgACgC7AMhAiAAIAQgBmo2AuwDIAMgAjYCCCAAKALwAyEEIAAgAygCDDYC8AMgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQIwsgCCAANgLkAwNAIAAtAAAiAUEEcUUEQCAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyAHQdAAaiQADwsgB0HEIzYCECAAQQVB2CUgB0EQahAsECQACyAHQckkNgIAIABBBUHYJSAHECwQJAALEAIACxAAIAAoAgAtAABBAnFBAXYLWQIBfwF9IwBBEGsiAiQAIAJBCGogACgCACIAQfwAaiAAIAFB/wFxQQF0ai8BaBAfQwAAwH8hAwJAAkAgAi0ADA4EAQAAAQALIAIqAgghAwsgAkEQaiQAIAMLTgEBfyMAQRBrIgMkACADQQhqIAEoAgAiAUH8AGogASACQf8BcUEBdGovAUQQHyADLQAMIQEgACADKgIIuzkDCCAAIAE2AgAgA0EQaiQAC14CAX8BfCMAQRBrIgIkACACQQhqIAAoAgAiAEH8AGogACABQf8BcUEBdGovAVYQH0QAAAAAAAD4fyEDAkACQCACLQAMDgQBAAABAAsgAioCCLshAwsgAkEQaiQAIAMLJAEBfUMAAMB/IAAoAgAiAEH8AGogAC8BehAgIgEgASABXBu7C0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXgQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXYQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXQQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXIQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXAQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAW4QHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0gCAX8BfQJ9IAAoAgAiAEH8AGoiASAALwEcECAiAiACXARAQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsMAQsgASAALwEcECALuws2AgF/AX0gACgCACIAQfwAaiIBIAAvARoQICICIAJcBEBEAAAAAAAAAAAPCyABIAAvARoQILsLRAEBfyMAQRBrIgIkACACQQhqIAEoAgAiAUH8AGogAS8BHhAfIAItAAwhASAAIAIqAgi7OQMIIAAgATYCACACQRBqJAALEAAgACgCAC0AF0ECdkEDcQsNACAAKAIALQAXQQNxC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEgEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALQAUQQR2QQdxCw0AIAAoAgAvABVBDnYLDQAgACgCAC0AFEEDcQsQACAAKAIALQAUQQJ2QQNxCw0AIAAoAgAvABZBD3ELEAAgACgCAC8AFUEEdkEPcQsNACAAKAIALwAVQQ9xC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEyEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALwAVQQx2QQNxCxAAIAAoAgAtABdBBHZBAXELgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIgBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQiAEgBEEQaiQAC3EBAX8CQCAAKAIAIgAtAAAiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoAAANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC4EBAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxCOASADQRBqJAALeQIBfQJ/IwBBEGsiBCQAIAAoAgAhBSAEAn8gArYiAyADXARAQwAAwH8hA0EADAELQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgAbIQMgAEULOgAMIAQgAzgCCCAEIAQpAwg3AwAgBSABQf8BcSAEEI4BIARBEGokAAv5AQICfQR/IwBBEGsiBSQAIAAoAgAhAAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIGGyEDIAZFCyEGQQEhByAFQQhqIABB/ABqIgggACABQf8BcUEBdGpB1gBqIgEvAQAQHwJAAkAgAyAFKgIIIgRcBH8gBCAEWw0BIAMgA1wFIAcLRQ0AIAUtAAwgBkYNAQsgCCABIAMgBhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgBUEQaiQAC7UBAgN/An0CQCAAKAIAIgBB/ABqIgMgAEH6AGoiAi8BABAgIgYgAbYiBVsNACAFIAVbIgRFIAYgBlxxDQACQCAEIAVDAAAAAFsgBYtDAACAf1tyRXFFBEAgAiACLwEAQfj/A3E7AQAMAQsgAyACIAVBAxBMCwNAIAAtAAAiAkEEcQ0BIAAgAkEEcjoAACAAKAIQIgIEQCAAIAIRAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQVSACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQVSADQRBqJAALfAIDfwF9IwBBEGsiAiQAIAAoAgAhAwJ9IAG2IgUgBVwEQEEAIQBDAADAfwwBC0EAQQIgBUMAAIB/WyAFQwAAgP9bciIEGyEAQwAAwH8gBSAEGwshBSACIAA6AAwgAiAFOAIIIAIgAikDCDcDACADQQAgAhBVIAJBEGokAAt0AgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEQQAgAxBVIANBEGokAAt8AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIANBASACEFYgAkEQaiQAC3QCAX0CfyMAQRBrIgMkACAAKAIAIQQgAwJ/IAG2IgIgAlwEQEMAAMB/IQJBAAwBC0MAAMB/IAIgAkMAAIB/WyACQwAAgP9bciIAGyECIABFCzoADCADIAI4AgggAyADKQMINwMAIARBASADEFYgA0EQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQViACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQViADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBASABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQRiADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBACABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQRiADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRxqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRpqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLPQEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIAAgARBrIAFBEGokAAt6AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIAMgAhBrIAJBEGokAAtyAgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEIAMQayADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRhqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLkAEBAX8CQCAAKAIAIgBBF2otAAAiAkECdkEDcSABQf8BcUYNACAAIAAvABUgAkEQdHIiAjsAFSAAIAJB///PB3EgAUEDcUESdHJBEHY6ABcDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuNAQEBfwJAIAAoAgAiAEEXai0AACICQQNxIAFB/wFxRg0AIAAgAC8AFSACQRB0ciICOwAVIAAgAkH///MHcSABQQNxQRB0ckEQdjoAFwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC0MBAX8jAEEQayICJAAgACgCACEAIAJBAzoADCACQYCAgP4HNgIIIAIgAikDCDcDACAAIAFB/wFxIAIQZSACQRBqJAALgAECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEGUgA0EQaiQAC3gCAX0CfyMAQRBrIgQkACAAKAIAIQUgBAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIAGyEDIABFCzoADCAEIAM4AgggBCAEKQMINwMAIAUgAUH/AXEgBBBlIARBEGokAAt3AQF/AkAgACgCACIALQAUIgJBBHZBB3EgAUH/AXFGDQAgACACQY8BcSABQQR0QfAAcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuJAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSICQQ52Rg0AIABBF2ogAiAALQAXQRB0ciICQRB2OgAAIAAgAkH//wBxIAFBDnRyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLcAEBfwJAIAAoAgAiAC0AFCICQQNxIAFB/wFxRg0AIAAgAkH8AXEgAUEDcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwt2AQF/AkAgACgCACIALQAUIgJBAnZBA3EgAUH/AXFGDQAgACACQfMBcSABQQJ0QQxxcjoAFANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC48BAQF/AkAgACgCACIALwAVIgJBCHZBD3EgAUH/AXFGDQAgAEEXaiACIAAtABdBEHRyIgJBEHY6AAAgACACQf/hA3EgAUEPcUEIdHI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuPAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSAAQRdqLQAAQRB0ciICQfABcUEEdkYNACAAIAJBEHY6ABcgACACQY/+A3EgAUEEdEHwAXFyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLhwEBAX8CQCAAKAIAIgAvABUgAEEXai0AAEEQdHIiAkEPcSABQf8BcUYNACAAIAJBEHY6ABcgACACQfD/A3EgAUEPcXI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwtDAQF/IwBBEGsiAiQAIAAoAgAhACACQQM6AAwgAkGAgID+BzYCCCACIAIpAwg3AwAgACABQf8BcSACEGcgAkEQaiQAC4ABAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxBnIANBEGokAAt4AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQZyAEQRBqJAALjwEBAX8CQCAAKAIAIgAvABUiAkEMdkEDcSABQf8BcUYNACAAQRdqIAIgAC0AF0EQdHIiAkEQdjoAACAAIAJB/58DcSABQQNxQQx0cjsAFQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC5ABAQF/AkAgACgCACIAQRdqLQAAIgJBBHZBAXEgAUH/AXFGDQAgACAALwAVIAJBEHRyIgI7ABUgACACQf//vwdxIAFBAXFBFHRyQRB2OgAXA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsL9g0CCH8CfSMAQRBrIgIkAAJAAkAgASgCACIFLQAUIAAoAgAiAS0AFHNB/wBxDQAgBS8AFSAFLQAXQRB0ciABLwAVIAEtABdBEHRyc0H//z9xDQAgBUH8AGohByABQfwAaiEIAkAgAS8AGCIAQQdxRQRAIAUtABhBB3FFDQELIAggABAgIgogByAFLwAYECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AGiIAQQdxRQRAIAUtABpBB3FFDQELIAggABAgIgogByAFLwAaECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHCIAQQdxRQRAIAUtABxBB3FFDQELIAggABAgIgogByAFLwAcECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHiIAQQdxRQRAIAUtAB5BB3FFDQELIAJBCGogCCAAEB8gAiAHIAUvAB4QH0EBIQAgAioCCCIKIAIqAgAiC1wEfyAKIApbDQIgCyALXAUgAAtFDQEgAi0ADCACLQAERw0BCyAFQSBqIQAgAUEgaiEGA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUEyaiEAIAFBMmohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EJRw0ACyAFQcQAaiEAIAFBxABqIQZBACEDA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUHWAGohACABQdYAaiEGQQAhAwNAAkAgBiADQQF0ai8AACIEQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAEEB8gAiAHIAAvAAAQH0EBIQQgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgBAtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQAgA0EBaiIDQQlHDQALIAVB6ABqIQAgAUHoAGohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EDRw0ACyAFQe4AaiEAIAFB7gBqIQlBACEEQQAhAwNAAkAgCSADQQF0ai8AACIGQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAGEB8gAiAHIAAvAAAQH0EBIQMgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgAwtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQBBASEDIAQhBkEBIQQgBkUNAAsgBUHyAGohACABQfIAaiEJQQAhBEEAIQMDQAJAIAkgA0EBdGovAAAiBkEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBhAfIAIgByAALwAAEB9BASEDIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAMLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAQQEhAyAEIQZBASEEIAZFDQALIAVB9gBqIQAgAUH2AGohCUEAIQRBACEDA0ACQCAJIANBAXRqLwAAIgZBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!y(k)){var m=k;k=B.locateFile?B.locateFile(m,Z):Z+m}function l(){var q1=k;try{if(q1==k&&K)return new Uint8Array(K);if(y(q1))try{var $1=dA(q1.slice(37)),W0=new Uint8Array($1.length);for(q1=0;q1<$1.length;++q1)W0[q1]=$1.charCodeAt(q1);var N0=W0}catch(s0){throw Error("Converting base64 string to bytes failed.")}else N0=void 0;var v0=N0;if(v0)return v0;throw"both async and sync fetching of the wasm failed"}catch(s0){v(s0)}}function d(){return K||typeof fetch!="function"?Promise.resolve().then(function(){return l()}):fetch(k,{credentials:"same-origin"}).then(function(q1){if(!q1.ok)throw"failed to load wasm binary file at '"+k+"'";return q1.arrayBuffer()}).catch(function(){return l()})}function e(q1){for(;0<q1.length;)q1.shift()(B)}function n(q1){if(q1===void 0)return"_unknown";q1=q1.replace(/[^a-zA-Z0-9_]/g,"$");var $1=q1.charCodeAt(0);return 48<=$1&&57>=$1?"_"+q1:q1}function z1(q1,$1){return q1=n(q1),function(){return $1.apply(this,arguments)}}var o=[{},{value:void 0},{value:null},{value:!0},{value:!1}],J1=[];function D1(q1){var $1=Error,W0=z1(q1,function(N0){this.name=q1,this.message=N0,N0=Error(N0).stack,N0!==void 0&&(this.stack=this.toString()+`
|
4544
|
+
`);this.events.next({type:"subagent-finished",subThreadID:A,agentNumber:z.agentNumber,taskDescription:z.taskDescription||"Task completed",result:F})}if(!z.isCompleted){let F=KS(G,z.printedMessageIndexes,z.printedToolRuns);if(F.blocks.length>0)this.events.next({type:"subthread-message",subThreadID:A,agentNumber:z.agentNumber,blocks:F.blocks})}}),j1.debug(`Started tracking subthread ${A}`)}catch(J){j1.error(`Failed to track subthread ${A}`,J)}}scanForTaskToolSubthreads(A){for(let Q of A.messages)if(Q.role==="user"){for(let B of Q.content)if(B.type==="tool_result"){let J=I4(A,B.toolUseID);if(J?.name===U5&&(B.run.status==="in-progress"||B.run.status==="done"||B.run.status==="cancelled")){let D="progress"in B.run?B.run.progress:void 0,z=wv(D);if(z)this.trackSubthread(z,J.input?.description,J.input?.prompt).catch((Z)=>{j1.error(`Failed to track Task tool subthread ${z}`,Z)})}}}}async handleToolConfirmations(A,Q){let B=this.subthreads.get(A);if(!B){j1.error(`No tracker found for subthread ${A}`);return}j1.info(`Sending tool confirmations to subthread ${A}`,{toolCount:Q.size,responses:Array.from(Q.entries()).map(([J,D])=>({id:J,accepted:D}))});for(let[J,D]of Q)j1.info("Sending tool confirmation to subthread worker",{subThreadID:A,toolUseID:J,accepted:D}),await B.worker.handle({type:"user:tool-input",toolUse:J,value:{accepted:D}})}dispose(){for(let A of this.subthreads.values())A.worker.dispose();this.subthreads.clear(),this.events.complete()}}l6();vU();Nf();BQ();Tw();P6();l6();Mg();function L4A(A){return!A.some((Q)=>Q.type==="project"||Q.type==="parent")}nW1();import{readdir as os6}from"node:fs/promises";import{homedir as ts6}from"node:os";async function T4A(A,Q){let B=await Zt(A,Q);return j1.debug("guidanceFiles",{guidanceFiles:B.map((D)=>({...D,content:`(${D.content.length} bytes)`}))}),{shouldGenerate:await es6()&&L4A(B)}}async function es6(){let A=process.cwd(),Q=ts6();if(A===Q)return!1;try{return(await os6(A)).length>0}catch{return!1}}async function j4A(A){await A.handle({type:"user:message",message:{content:[{type:"text",text:JZ0}]}})}l6();function np(A,Q){return(B,J)=>{let D=Q(B,J);if(J.type!=="tick")j1.debug("Transition",{name:A,before:B,event:J,after:D});return D}}la();sk1();async function $4A({threadSyncService:A,configService:Q,threadService:B,threadHistoryService:J,mcpService:D,fileWatcher:z,fuzzyServer:Z,threadSummaryService:G,settingsStorage:X,threadStorage:K,toolService:Y,subthreadTracker:q,notificationService:F},{threadID:E,isContinued:H,ui:w}){let W=new Set,I=CH(B.observe(E)),M=new Set,N=new Map;await E6(I.observable);let V=await XQ.getOrCreateForThread({configService:Q,threadService:B,toolService:Y,getThreadEnvironment:CO,threadSummaryService:G,createFileSystem:()=>iB,threadHistoryService:J,mcpService:D,createFileChangeTrackerForThread:(v)=>{return AN(new FY(iB),iB,v)}},E);await V.resume().catch((v)=>{j1.error("Initial resume",v)});let L=V.status.pipe(L6((v)=>{return{type:"worker-state",status:v}})),T=I.observable.pipe(L6((v)=>{return{type:"thread-state",thread:v}})),R=new r2,j=new r2,P=w(DA.from(j)).pipe(L6((v)=>({type:"ui-input",input:v}))),$=q.events$.pipe(L6((v)=>v)),S=eR.pipe(L6((v)=>({type:"jetbrains-status",jetbrainsState:v}))),x=MZ(L,T,MZ(R,P,$,S)),u=new r2;async function _(){j.next({type:"state",state:{type:"shutting-down"}}),await A.sync().catch((v)=>{j1.error("Thread sync error",v,{threadID:E})}),q.dispose(),V.dispose(),A.dispose(),B.dispose(),await D.dispose(),z[Symbol.dispose](),Z.dispose(),F.unsubscribe(),j.complete(),u.next()}let f=x.pipe(NZ(()=>{_()})).pipe(yl(np("threadSession",function(v,y){function k(e){j1.info(`Processing user message: ${e.slice(0,50)}${e.length>50?"...":""}`);let n="tokenUsage"in v?v.tokenUsage:void 0;if(n&&n.used/n.maxAvailable>E41.CRITICAL)return j1.info("Blocking message at worker boundary - critical token usage"),j.next({type:"confirm",confirmation:{type:"compaction",severity:"critical"}}),{type:"confirming-compaction",severity:"critical",tokenUsage:v.tokenUsage,compactionPromptState:"final",updateState:"updateState"in v?v.updateState:"none",toolConfirmationStatus:"toolConfirmationStatus"in v?v.toolConfirmationStatus:new Map,currentAssistantMessageIndex:("currentAssistantMessageIndex"in v?v.currentAssistantMessageIndex:null)??null,hasBeenIdle:"hasBeenIdle"in v?v.hasBeenIdle:!1,threadTitle:"threadTitle"in v?v.threadTitle:null,confirmationQueue:"confirmationQueue"in v?v.confirmationQueue:[]};V.handle({type:"user:message",message:{content:[{type:"text",text:e}]}}).then(()=>{A.sync().catch((o)=>{j1.error("Thread sync after submit error",o,{threadID:E})})}).catch((o)=>{j1.error("Handle user message failed",o)}),j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}});let z1=I.value.last;if(z1){let o=dq(z1);if(o)j.next({type:"state",state:o})}return{...v,type:"awaiting-agent",displayedError:null}}async function m(){j.next({type:"state",state:{type:"compacting"}});let e=await G.summarizeThread(E);await V.handle({type:"summary:created",summary:{type:"internal",summary:e.summary}})}function l(){if(v.type==="awaiting-user-message")return j1.debug("already accepting, ignoring event",{state:v,event:y}),v;let e="tokenUsage"in v?v.tokenUsage:void 0;if(A.sync().catch((n)=>{j1.error("Thread sync error",n,{threadID:E})}),e&&v.type!=="confirming-compaction"&&v.type!=="compacting"){let n=e.used/e.maxAvailable,z1=void 0,o=v.compactionPromptState;if(n>E41.CRITICAL)z1="critical",o="final";else if(n>E41.WARNING&&v.compactionPromptState==="none")z1="moderate",o="first";else if(n>E41.SEVERE&&v.compactionPromptState==="first")z1="severe",o="final";if(z1)return j.next({type:"confirm",confirmation:{type:"compaction",severity:z1}}),{type:"confirming-compaction",severity:z1,tokenUsage:v.tokenUsage,compactionPromptState:o,updateState:v.updateState,toolConfirmationStatus:v.toolConfirmationStatus,currentAssistantMessageIndex:v.currentAssistantMessageIndex,hasBeenIdle:v.hasBeenIdle,threadTitle:v.threadTitle,confirmationQueue:v.confirmationQueue}}if(j.next({type:"accept-message",initial:!v.hasBeenIdle&&!H}),v.type==="awaiting-agent")v.cancelledWithMessage=void 0;if(e)j.next({type:"token-usage",tokenUsage:e});return{...v,type:"awaiting-user-message",hasBeenIdle:!0,tokenUsage:e??null}}async function d(e){if(e.length>0){j1.info(`Updating allowlist with ${e.length} entries`,{entries:e});try{if(await X.get("experimental.commandApproval.enabled","global")===!0){let o=[...await X.get("experimental.commandApproval.allow","global")??[],...e];await X.set("experimental.commandApproval.allow",o,"global"),j1.info("Updated experimental command approval allow list",{newEntries:e,totalEntries:o.length})}else{let o=[...await X.get("commands.allowlist","global")??[],...e];await X.set("commands.allowlist",o,"global"),j1.info("Updated regular commands allowlist",{newEntries:e,totalEntries:o.length})}}catch(n){j1.error("Failed to update allowlist",n)}}}if(v.type==="closing")return v;if(y.type==="thread-state"){let e=y.thread.title||null;if(v.threadTitle!==e&&e!==null)j.next({type:"thread-title",title:e});if(q.scanForTaskToolSubthreads(y.thread),H&&W.size===0&&y.thread.messages.length>0){let o=KS(y.thread,W,M);if(o.blocks.length>0)j.next({type:"messages",blocks:o.blocks})}let n=v.tokenUsage,z1=gR(y.thread);if(z1)n={used:z1.totalInputTokens,maxAvailable:z1.maxInputTokens},j.next({type:"token-usage",tokenUsage:n});if(v.type==="awaiting-user-confirmation")if(y.thread.messages.at(-1)?.content.some((o)=>o.type==="tool_result"&&(o.run.status==="in-progress"||o.run.status==="done"))){let o=dq(y.thread);if(o)j.next({type:"state",state:o});else j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}});return{...v,type:"awaiting-agent",displayedError:null,tokenUsage:n}}else{let o=P5(y.thread,"user")?.content.filter((J1)=>J1.type==="tool_result"&&J1.run.status==="blocked-on-user")??[];if(o.length>0){j1.info(`Found ${o.length} blocked tools in awaiting-user-confirmation`,{toolIDs:o.map((w1)=>w1.toolUseID)});let J1=P5(y.thread,"assistant"),D1=new Set(J1?.content.filter((w1)=>w1.type==="tool_use").map((w1)=>w1.id)??[]);for(let w1 of o){if(!D1.has(w1.toolUseID))continue;let a=I4(y.thread,w1.toolUseID);if(a&&a.name===Z4)return v.toolConfirmationStatus.set(w1.toolUseID,"awaiting"),j1.info("Added blocked tool to confirmation tracking",{toolUseID:w1.toolUseID}),j.next({type:"tool-status",toolUse:a,status:"blocked-on-user",startTime:Date.now()}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:[{useBlock:a,toAllow:w1.run.status==="blocked-on-user"?w1.run.toAllow:void 0}]}}),{...v,type:"collecting-tool-confirmations",currentToolID:w1.toolUseID,tokenUsage:n}}}return{...v,type:"awaiting-user-confirmation",tokenUsage:n}}if(v.type==="awaiting-agent"||v.type==="compacting"){let o=y.thread.messages.at(-1),J1=KS(y.thread,W,M),D1=J1.blocks;if(o?.role==="assistant"&&o.state.type==="streaming"&&J1.blocks.length===0){D1=[{type:"message",data:[y.thread.messages.length-1,o]}];let Y1=dq(y.thread);if(Y1)j.next({type:"state",state:Y1})}if(D1.length>0){for(let X1 of D1)if(X1.type==="toolResult"){let[Y1,L1]=X1.data,N1=L1.run.status==="done"?"completed":L1.run.status==="error"?"error":L1.run.status==="cancelled"?"cancelled":"running";if(N1!=="running")j.next({type:"tool-status",toolUse:Y1,status:N1,startTime:N.get(Y1.id),endTime:Date.now()}),N.delete(Y1.id)}j.next({type:"messages",blocks:D1})}if(y.thread.messages.at(-1)?.content.some((X1)=>X1.type==="summary"))return{...l(),tokenUsage:null,compactionPromptState:"none"};if(o?.role==="assistant"&&o.state.type==="complete"&&o.state.stopReason==="end_turn"){j.next({type:"state",state:{type:"idle"}});let X1=l();return{...X1,tokenUsage:n??X1.tokenUsage}}let w1=P5(y.thread,"assistant"),a=w1?y.thread.messages.indexOf(w1):null;if(a!==null&&a!==v.currentAssistantMessageIndex)j1.info("New assistant message detected, clearing tool confirmations",{oldIndex:v.currentAssistantMessageIndex,newIndex:a,previousToolCount:v.toolConfirmationStatus.size}),v.toolConfirmationStatus.clear(),v.currentAssistantMessageIndex=a;let r=P5(y.thread,"user")?.content.filter((X1)=>X1.type==="tool_result"&&X1.run.status==="blocked-on-user")??[];if(r.length>0)j1.info(`Found ${r.length} blocked tools`,{toolIDs:r.map((X1)=>X1.toolUseID),currentState:v.type});let s=new Set(w1?.content.filter((X1)=>X1.type==="tool_use").map((X1)=>X1.id)??[]),Z1=!1;for(let X1 of r){if(!s.has(X1.toolUseID))continue;let Y1=I4(y.thread,X1.toolUseID),L1=v.toolConfirmationStatus.get(X1.toolUseID);if(Y1&&Y1.name===Z4&&X1.run.status==="blocked-on-user"&&L1===void 0){if(v.toolConfirmationStatus.set(X1.toolUseID,"awaiting"),Z1=!0,j1.info("Added new tool to confirmation tracking",{toolUseID:X1.toolUseID,toolName:Y1.name}),!N.has(Y1.id))N.set(Y1.id,Date.now());j.next({type:"tool-status",toolUse:Y1,status:"blocked-on-user",startTime:N.get(Y1.id)})}}let G1=Array.from(v.toolConfirmationStatus.entries()).filter(([X1,Y1])=>Y1==="awaiting");if(G1.length>0){let[X1]=G1[0],Y1=r.find((N1)=>N1.toolUseID===X1),L1=Y1?I4(y.thread,Y1.toolUseID):null;if(Y1&&L1)return j1.info(`Starting tool confirmation process for ${G1.length} tools (hasNewTools: ${Z1})`,{firstToolID:X1,toolName:L1.name,currentState:v.type}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:[{useBlock:L1,toAllow:Y1.run.status==="blocked-on-user"?Y1.run.toAllow:void 0}]}}),{...v,type:"collecting-tool-confirmations",currentToolID:X1,tokenUsage:n}}}}else if(y.type==="worker-state"){if(v.type==="awaiting-user-confirmation"&&y.status.state==="active"&&y.status.ephemeralError)return v;if(v.type==="collecting-tool-confirmations")return j1.info("Already collecting tool confirmations, ignoring worker-state event"),v;let e=I.value.last?.messages.at(-1),n=v.tokenUsage;if(y.status.state==="active"){let z1=I.value.last;if(z1){let o=gR(z1);if(o)n={used:o.totalInputTokens,maxAvailable:o.maxInputTokens},j.next({type:"token-usage",tokenUsage:n})}}if(v.type==="confirming-compaction"||v.type==="compacting")return{...v,tokenUsage:n};switch(y.status.state){case"initial":if(v.type==="initializing")return v;return l();case"active":if(y.status.ephemeralError)if(y.status.ephemeralError.message.includes(K41)){if(v.type==="out-of-credits")return v;return j.next({type:"confirm",confirmation:{type:"out-of-credits"}}),{...v,type:"out-of-credits",tokenUsage:n}}else if(TO(y.status.ephemeralError))return j1.info("Context limit error, triggering compaction",{error:y.status.ephemeralError,tokenUsage:n}),j.next({type:"confirm",confirmation:{type:"compaction",severity:"critical"}}),{type:"confirming-compaction",severity:"critical",tokenUsage:v.tokenUsage,compactionPromptState:v.compactionPromptState,updateState:v.updateState,toolConfirmationStatus:v.toolConfirmationStatus,currentAssistantMessageIndex:v.currentAssistantMessageIndex,hasBeenIdle:v.hasBeenIdle,threadTitle:v.threadTitle,confirmationQueue:v.confirmationQueue};else if(y.status.ephemeralError.message.includes("401 unauthorized"))return j.next({type:"error",error:{type:"unauthorized"},retryable:!1}),f.unsubscribe(),{...v,type:"closing"};else{let z1=y.status.ephemeralError.message;if(j1.error("Ephemeral error",{error:z1}),v.type==="awaiting-agent"&&v.displayedError!==z1)return j.next({type:"error",error:{type:"other",error:z1},retryable:!1}),{...v,type:"awaiting-user-confirmation",tokenUsage:n};else return v}switch(y.status.inferenceState){case"running":{let z1=I.value.last;if(z1){let o=dq(z1);if(o)j.next({type:"state",state:o});else j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}})}else j.next({type:"state",state:{type:"waiting-on-model",startTime:Date.now()}})}if(v.type==="initializing")return{...v,tokenUsage:n};return{...v,type:"awaiting-agent",displayedError:null,tokenUsage:n};case"cancelled":if(v.type==="initializing")return{...v,tokenUsage:n};if(j.next({type:"cancelled"}),j.next({type:"state",state:{type:"idle"}}),v.type==="awaiting-agent"&&v.cancelledWithMessage)return v.cancelledWithMessage=void 0,{...v,tokenUsage:n};else return{...l(),tokenUsage:n};case"idle":if(v.type==="initializing")return{...v,tokenUsage:n};if(e?.content.some((z1)=>z1.type==="tool_result"&&z1.run.status==="blocked-on-user"))return{...v,type:"awaiting-user-confirmation",tokenUsage:n};else if(I.value.last?.messages.some((z1)=>z1.role==="user"&&z1.content.some((o)=>o.type==="tool_result"&&o.run.status==="in-progress"))??!1){let z1=I.value.last?.messages.flatMap((J1)=>J1.content).filter((J1)=>J1.type==="tool_result"&&("run"in J1)&&("status"in J1.run)&&J1.run.status==="in-progress"),o=z1?.length??0;if(o>0){for(let a of z1||[]){let r=I4(I.value.last,a.toolUseID);if(r){if(!N.has(a.toolUseID))N.set(a.toolUseID,Date.now());j.next({type:"tool-status",toolUse:r,status:"running",startTime:N.get(a.toolUseID)})}}let J1=o===1&&z1?.[0]&&I.value.last?I4(I.value.last,z1[0].toolUseID):void 0,D1=o>1&&z1&&I.value.last?z1.slice(1,Math.min(4,z1.length)).map((a)=>{return I4(I.value.last,a.toolUseID)?.name||"tool"}).filter(Boolean):void 0,w1=J1?U41(J1.name,o,Date.now(),J1.input,D1):{type:"running-tools",toolCount:o,startTime:Date.now(),queuedTools:D1};j.next({type:"state",state:w1})}else{let J1=I.value.last;if(J1){let D1=dq(J1);if(D1)j.next({type:"state",state:D1});else j.next({type:"state",state:{type:"idle"}})}else j.next({type:"state",state:{type:"idle"}})}return{...v,type:"awaiting-agent",displayedError:null,tokenUsage:n}}else if(e?.role==="assistant"&&e.state.type==="complete"&&e.state.stopReason==="end_turn")return j.next({type:"state",state:{type:"idle"}}),{...l(),tokenUsage:n}}}}else if(y.type==="batch-tool-confirmations-complete")if(v.type==="collecting-tool-confirmations"&&v.subthreadContext)return j1.info("Sending batch tool confirmations to subthread",{subThreadID:v.subthreadContext.subThreadID,toolCount:y.responses.size,responses:Array.from(y.responses.entries()).map(([e,n])=>({id:e,accepted:n}))}),q.handleToolConfirmations(v.subthreadContext.subThreadID,y.responses).catch((e)=>{j1.error("Failed to send subthread tool confirmations",e)}),j1.info("Transitioning to awaiting-agent after sending subthread confirmations"),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null};else return j1.info("Sending batch tool confirmations to worker",{toolCount:y.responses.size,responses:Array.from(y.responses.entries()).map(([e,n])=>({id:e,accepted:n}))}),y.responses.forEach((e,n)=>{j1.info("Sending individual tool confirmation to worker",{toolUseID:n,accepted:e}),V.handle({type:"user:tool-input",toolUse:n,value:{accepted:e}}),v.toolConfirmationStatus.set(n,"sent")}),j1.info("Transitioning to awaiting-agent after sending batch confirmations"),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null};else if(y.type==="summary:created"){let e=I.value.last;if(e){let n=gR(e);if(n){let z1={used:n.totalInputTokens,maxAvailable:n.maxInputTokens},o=v.type==="compacting"?v.preCompactionTokenUsage:null;if(o){let J1=o.used,D1=z1.used,w1=J1-D1,a=J1>0?w1/J1*100:0;if(w1<=0)j1.warn("Compaction did not reduce token usage",{preUsed:J1,postUsed:D1,reduction:w1,threadID:E});else if(a<10)j1.warn("Compaction reduction was minimal",{preUsed:J1,postUsed:D1,reduction:w1,reductionPercent:a.toFixed(1),threadID:E});else j1.info("Compaction successful",{preUsed:J1,postUsed:D1,reduction:w1,reductionPercent:a.toFixed(1),threadID:E})}else j1.warn("No pre-compaction token usage available for validation",{threadID:E});j.next({type:"token-usage",tokenUsage:z1})}}return l()}else if(y.type==="compaction-result")if(y.result)return l();else return j.next({type:"error",error:{type:"other",error:"Compaction failed"},retryable:!1}),j.next({type:"confirm",confirmation:{type:"compaction",severity:y.severity}}),{...v,type:"confirming-compaction",severity:y.severity};else if(y.type==="update-start-updating")return{...v,updateState:"updating"};else if(y.type==="update-result")if(y.success)return setTimeout(()=>{R.next({type:"clear-update-status"})},1e4),{...v,updateState:"success"};else return setTimeout(()=>{R.next({type:"clear-update-status"})},1e4),{...v,updateState:"error"};else if(y.type==="clear-update-status")return{...v,updateState:"none"};else if(y.type==="agent-file-check-complete"){if(v.type==="checking-agent-file")if(y.shouldGenerate)return j.next({type:"confirm",confirmation:{type:"agent-file-creation"}}),{...v,type:"confirming-agent-file-creation"};else return l()}else if(y.type==="tool-status")return j.next({type:"tool-status",toolUse:y.toolUse,status:y.status,startTime:y.startTime,endTime:y.endTime,subthreadID:y.subthreadID}),v;else if(y.type==="subagent-started"){if(v.type==="initializing")return v;return j.next({type:"subagent-started",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription}),v}else if(y.type==="subagent-status")return j.next({type:"subagent-status",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,agentState:y.agentState}),v;else if(y.type==="subthread-message"){if(y.blocks.length>0)j.next({type:"subthread-messages",subThreadID:y.subThreadID,blocks:y.blocks});return v}else if(y.type==="historic-thread"){if(v.type!=="initializing")throw new Error(`Historic thread event received in unexpected state: ${v.type}`);if(H&&W.size===0&&y.messages.length>0){let n=KS({id:E,messages:y.messages},W,M);if(n.blocks.length>0)j.next({type:"messages",blocks:n.blocks})}let e={...v,hasThread:!0};if(e.hasUI&&e.hasThread)return l();return e}else if(y.type==="subagent-finished")return j.next({type:"subagent-finished",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,result:y.result}),v;else if(y.type==="subagent-cancelled")return j.next({type:"subagent-cancelled",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription}),v;else if(y.type==="subagent-error")return j.next({type:"subagent-error",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,error:y.error}),v;else if(y.type==="subthread-tool-request"){if(y.tools.length>0){if(j1.info(`Received tool confirmation request from subthread ${y.subThreadID}`,{subThreadID:y.subThreadID,agentNumber:y.agentNumber,toolCount:y.tools.length,tools:y.tools.map((e)=>e.useBlock.name),queueLength:v.confirmationQueue.length}),v.type==="collecting-tool-confirmations"||v.confirmationQueue.length>0)return j1.info("Queueing tool confirmation request",{subThreadID:y.subThreadID,agentNumber:y.agentNumber,currentQueueLength:v.confirmationQueue.length}),{...v,confirmationQueue:[...v.confirmationQueue,{type:"subthread-tool-request",subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription,tools:y.tools}]};return j.next({type:"confirm",confirmation:{type:"tool-use",tools:y.tools,subthreadID:y.subThreadID,agentNumber:y.agentNumber}}),{...v,type:"collecting-tool-confirmations",currentToolID:y.tools[0]?.useBlock.id||null,subthreadContext:{subThreadID:y.subThreadID,agentNumber:y.agentNumber,taskDescription:y.taskDescription}}}return v}else if(y.type==="jetbrains-status")return j.next({type:"jetbrains-status",jetbrainsState:y.jetbrainsState}),v;else if(y.input.type==="initialized")if(v.type==="initializing"){let e={...v,hasUI:!0};if(e.hasUI&&e.hasThread)if(I.value.last?.messages.length===0)return j1.info("Checking agent file status"),T4A({filesystem:iB,configService:Q,threadService:B},I.value.last).then((z1)=>{R.next({type:"agent-file-check-complete",shouldGenerate:z1.shouldGenerate})}).catch((z1)=>{j1.error("Agent file check failed",z1),R.next({type:"agent-file-check-complete",shouldGenerate:!1})}),{...v,type:"checking-agent-file"};else return l();return e}else throw new Error(`UI initialized event received in unexpected state: ${v.type}`);else if(y.input.type==="message"){let{message:e}=y.input;return k(e)}else if(y.input.type==="interrupt")if(v.type==="awaiting-agent"){if(j.next({type:"cancelled"}),XQ.cancel(E),y.input.message)v.cancelledWithMessage=y.input.message;return v}else return v;else if(y.input.type==="exit")return f.unsubscribe(),{...v,type:"closing"};else if(y.input.type==="retry")return XQ.retry(E),{...v,type:"awaiting-agent",displayedError:null};else{if(v.type==="out-of-credits"&&y.input.confirmation.type==="out-of-credits")XQ.retry(E);else if(v.type==="confirming-compaction"&&y.input.confirmation.type==="compaction")if(y.input.allow){let e="tokenUsage"in v?v.tokenUsage:void 0;return j.next({type:"state",state:{type:"compacting"}}),m().then(()=>{j1.info("Compaction completed successfully",{preCompactionTokenUsage:e}),R.next({type:"compaction-result",result:!0,severity:v.severity})}).catch((n)=>{j1.error("Compaction failed",n),R.next({type:"compaction-result",result:!1,severity:v.severity})}),{...v,type:"compacting",preCompactionTokenUsage:e}}else return j1.info("Compaction cancelled"),l();else if(v.type==="collecting-tool-confirmations"&&y.input.confirmation.type==="tool-use"){if(!v.currentToolID)return j1.error("No current tool ID in collecting-tool-confirmations state"),v;if(j1.info(`Received confirmation for tool: ${y.input.allow?"accepted":"rejected"}`,{toolUseID:v.currentToolID,subthreadID:y.input.confirmation.subthreadID}),y.input.confirmation.subthreadID&&v.subthreadContext){j1.info("Sending tool confirmation to subthread",{subThreadID:v.subthreadContext.subThreadID,toolUseID:v.currentToolID,accepted:y.input.allow});let o=new Map([[v.currentToolID,y.input.allow]]);if(q.handleToolConfirmations(v.subthreadContext.subThreadID,o).catch((J1)=>{j1.error("Failed to send subthread tool confirmation",J1)}),v.confirmationQueue.length>0){let J1=v.confirmationQueue[0],D1=v.confirmationQueue.slice(1);return j1.info("Processing next queued confirmation request",{subThreadID:J1.subThreadID,agentNumber:J1.agentNumber,remainingQueueLength:D1.length}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:J1.tools,subthreadID:J1.subThreadID,agentNumber:J1.agentNumber}}),{...v,type:"collecting-tool-confirmations",currentToolID:J1.tools[0]?.useBlock.id||null,subthreadContext:{subThreadID:J1.subThreadID,agentNumber:J1.agentNumber,taskDescription:J1.taskDescription},confirmationQueue:D1}}return j1.info("Transitioning to awaiting-agent after sending subthread confirmation"),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null}}v.toolConfirmationStatus.set(v.currentToolID,y.input.allow?"confirmed":"rejected"),d(y.input.confirmation.addToAllowList);let e=Array.from(v.toolConfirmationStatus.entries()).filter(([o,J1])=>J1==="awaiting");if(e.length>0){let[o]=e[0];if(!I.value.isSet)return j1.error("Thread not available for finding next tool"),v;let w1=(I.value.last.messages.at(-1)?.content.filter((r)=>r.type==="tool_result"&&r.run.status==="blocked-on-user")??[]).find((r)=>r.toolUseID===o),a=w1?I4(I.value.last,w1.toolUseID):null;if(w1&&a)return j1.info(`Asking confirmation for next tool: ${a.name}`,{toolUseID:o,remainingCount:e.length}),j.next({type:"confirm",confirmation:{type:"tool-use",tools:[{useBlock:a,toAllow:w1.run.status==="blocked-on-user"?w1.run.toAllow:void 0}]}}),{...v,currentToolID:o}}let n=Array.from(v.toolConfirmationStatus.entries()).filter(([o,J1])=>J1==="confirmed"||J1==="rejected");j1.info("All tool confirmations collected, sending batch response",{totalTools:n.length,responses:n.map(([o,J1])=>({id:o,accepted:J1==="confirmed"}))});let z1=new Map(n.map(([o,J1])=>[o,J1==="confirmed"]));return R.next({type:"batch-tool-confirmations-complete",responses:z1}),j.next({type:"state",state:{type:"running-tools",startTime:Date.now()}}),{...v,type:"awaiting-agent",displayedError:null}}else if(y.input.confirmation.type==="agent-file-creation"&&v.type==="confirming-agent-file-creation")if(y.input.allow)return j4A(V).catch((e)=>{j1.error("Agent file generation failed",e)}),j.next({type:"state",state:{type:"generating-agent-file"}}),{...v,type:"awaiting-agent",displayedError:null};else return l();return v}return v}),{type:"initializing",hasUI:!1,hasThread:!1,tokenUsage:null,compactionPromptState:"none",updateState:"none",toolConfirmationStatus:new Map,currentAssistantMessageIndex:null,hasBeenIdle:!1,threadTitle:null,confirmationQueue:[]})).subscribe({error:(v)=>{j1.error("Error in state machine",v),_()}});if(H)K.get(E).then((v)=>{if(v)j1.info("Sending historic messages for initialization",{threadId:E,messageCount:v.messages.length}),R.next({type:"historic-thread",messages:v.messages});else j1.info("Sending empty messages for continued thread without stored messages",{threadId:E}),R.next({type:"historic-thread",messages:[]})});else j1.info("Sending empty messages for new thread initialization",{threadId:E}),R.next({type:"historic-thread",messages:[]});return zo6(R,Q).catch((v)=>{j1.debug("Update check startup failed",v)}),await E6(u)}async function zo6(A,Q){if(await Q.get("updates.autoUpdate.enabled")===!1)return;try{let J=await l3("0.0.1753248131-gd8bc00");if(J.hasUpdate&&J.latestVersion)A.next({type:"update-start-updating"}),setTimeout(async()=>{try{await nk1(J.latestVersion),A.next({type:"update-result",success:!0,version:J.latestVersion})}catch(D){j1.info("Update failed",D),A.next({type:"update-result",success:!1,version:J.latestVersion})}},100);else j1.info("No update available")}catch(J){j1.debug("Update check failed",J)}}var E41={WARNING:0.8,SEVERE:0.9,CRITICAL:0.98};import{Stream as xe6}from"node:stream";import B51 from"node:process";var y7A=hA(O8(),1);import ge6 from"node:process";function c4A(A,Q,{signal:B,edges:J}={}){let D=void 0,z=null,Z=J!=null&&J.includes("leading"),G=J==null||J.includes("trailing"),X=()=>{if(z!==null)A.apply(D,z),D=void 0,z=null},K=()=>{if(G)X();E()},Y=null,q=()=>{if(Y!=null)clearTimeout(Y);Y=setTimeout(()=>{Y=null,K()},Q)},F=()=>{if(Y!==null)clearTimeout(Y),Y=null},E=()=>{F(),D=void 0,z=null},H=()=>{F(),X()},w=function(...W){if(B?.aborted)return;D=this,z=W;let I=Y==null;if(q(),Z&&I)X()};return w.schedule=q,w.cancel=E,w.flush=H,B?.addEventListener("abort",E,{once:!0}),w}function l4A(A,Q=0,B={}){if(typeof B!=="object")B={};let{signal:J,leading:D=!1,trailing:z=!0,maxWait:Z}=B,G=Array(2);if(D)G[0]="leading";if(z)G[1]="trailing";let X=void 0,K=null,Y=c4A(function(...E){X=A.apply(this,E),K=null},Q,{signal:J,edges:G}),q=function(...E){if(Z!=null){if(K===null)K=Date.now();if(Date.now()-K>=Z)return X=A.apply(this,E),K=Date.now(),Y.cancel(),Y.schedule(),X}return Y.apply(this,E),X},F=()=>{return Y.flush(),X};return q.cancel=Y.cancel,q.flush=F,q}function w41(A,Q=0,B={}){if(typeof B!=="object")B={};let{leading:J=!0,trailing:D=!0,signal:z}=B;return l4A(A,Q,{leading:J,trailing:D,signal:z,maxWait:Q})}import{env as sp}from"node:process";var Gt6=sp.CI!=="0"&&sp.CI!=="false"&&(("CI"in sp)||("CONTINUOUS_INTEGRATION"in sp)||Object.keys(sp).some((A)=>A.startsWith("CI_"))),PO=Gt6;var Xt6=(A)=>{let Q=new Set;do for(let B of Reflect.ownKeys(A))Q.add([A,B]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return Q};function Jf1(A,{include:Q,exclude:B}={}){let J=(D)=>{let z=(Z)=>typeof Z==="string"?D===Z:Z.test(D);if(Q)return Q.some(z);if(B)return!B.some(z);return!0};for(let[D,z]of Xt6(A.constructor.prototype)){if(z==="constructor"||!J(z))continue;let Z=Reflect.getOwnPropertyDescriptor(D,z);if(Z&&typeof Z.value==="function")A[z]=A[z].bind(A)}return A}var b7A=hA(Zf1(),1);import{PassThrough as s4A}from"node:stream";var o4A=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Gf1={},Kt6=(A)=>{let Q=new s4A,B=new s4A;Q.write=(D)=>{A("stdout",D)},B.write=(D)=>{A("stderr",D)};let J=new console.Console(Q,B);for(let D of o4A)Gf1[D]=console[D],console[D]=J[D];return()=>{for(let D of o4A)console[D]=Gf1[D];Gf1={}}},t4A=Kt6;var Xf1=32;var Kf1=0,C41=0;var Yt6=(()=>{var A=import.meta.url;return function(Q){Q=Q||{};var B;B||(B=typeof Q!=="undefined"?Q:{});var J,D;B.ready=new Promise(function(q1,$1){J=q1,D=$1});var z=Object.assign({},B),Z="";typeof document!="undefined"&&document.currentScript&&(Z=document.currentScript.src),A&&(Z=A),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var G=B.print||console.log.bind(console),X=B.printErr||console.warn.bind(console);Object.assign(B,z),z=null;var K;B.wasmBinary&&(K=B.wasmBinary);var Y=B.noExitRuntime||!0;typeof WebAssembly!="object"&&v("no native wasm support detected");var q,F=!1;function E(q1,$1,W0){W0=$1+W0;for(var N0="";!($1>=W0);){var v0=q1[$1++];if(!v0)break;if(v0&128){var s0=q1[$1++]&63;if((v0&224)==192)N0+=String.fromCharCode((v0&31)<<6|s0);else{var FA=q1[$1++]&63;v0=(v0&240)==224?(v0&15)<<12|s0<<6|FA:(v0&7)<<18|s0<<12|FA<<6|q1[$1++]&63,65536>v0?N0+=String.fromCharCode(v0):(v0-=65536,N0+=String.fromCharCode(55296|v0>>10,56320|v0&1023))}}else N0+=String.fromCharCode(v0)}return N0}var H,w,W,I,M,N,V,L,T;function R(){var q1=q.buffer;H=q1,B.HEAP8=w=new Int8Array(q1),B.HEAP16=I=new Int16Array(q1),B.HEAP32=N=new Int32Array(q1),B.HEAPU8=W=new Uint8Array(q1),B.HEAPU16=M=new Uint16Array(q1),B.HEAPU32=V=new Uint32Array(q1),B.HEAPF32=L=new Float32Array(q1),B.HEAPF64=T=new Float64Array(q1)}var j,P=[],$=[],S=[];function x(){var q1=B.preRun.shift();P.unshift(q1)}var u=0,_=null,f=null;function v(q1){if(B.onAbort)B.onAbort(q1);throw q1="Aborted("+q1+")",X(q1),F=!0,q1=new WebAssembly.RuntimeError(q1+". Build with -sASSERTIONS for more info."),D(q1),q1}function y(q1){return q1.startsWith("data:application/octet-stream;base64,")}var k="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!y(k)){var m=k;k=B.locateFile?B.locateFile(m,Z):Z+m}function l(){var q1=k;try{if(q1==k&&K)return new Uint8Array(K);if(y(q1))try{var $1=dA(q1.slice(37)),W0=new Uint8Array($1.length);for(q1=0;q1<$1.length;++q1)W0[q1]=$1.charCodeAt(q1);var N0=W0}catch(s0){throw Error("Converting base64 string to bytes failed.")}else N0=void 0;var v0=N0;if(v0)return v0;throw"both async and sync fetching of the wasm failed"}catch(s0){v(s0)}}function d(){return K||typeof fetch!="function"?Promise.resolve().then(function(){return l()}):fetch(k,{credentials:"same-origin"}).then(function(q1){if(!q1.ok)throw"failed to load wasm binary file at '"+k+"'";return q1.arrayBuffer()}).catch(function(){return l()})}function e(q1){for(;0<q1.length;)q1.shift()(B)}function n(q1){if(q1===void 0)return"_unknown";q1=q1.replace(/[^a-zA-Z0-9_]/g,"$");var $1=q1.charCodeAt(0);return 48<=$1&&57>=$1?"_"+q1:q1}function z1(q1,$1){return q1=n(q1),function(){return $1.apply(this,arguments)}}var o=[{},{value:void 0},{value:null},{value:!0},{value:!1}],J1=[];function D1(q1){var $1=Error,W0=z1(q1,function(N0){this.name=q1,this.message=N0,N0=Error(N0).stack,N0!==void 0&&(this.stack=this.toString()+`
|
4545
4545
|
`+N0.replace(/^Error(:[^\n]*)?\n/,""))});return W0.prototype=Object.create($1.prototype),W0.prototype.constructor=W0,W0.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},W0}var w1=void 0;function a(q1){throw new w1(q1)}var r=(q1)=>{return q1||a("Cannot use deleted val. handle = "+q1),o[q1].value},s=(q1)=>{switch(q1){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var $1=J1.length?J1.pop():o.length;return o[$1]={ga:1,value:q1},$1}},Z1=void 0,G1=void 0;function X1(q1){for(var $1="";W[q1];)$1+=G1[W[q1++]];return $1}var Y1=[];function L1(){for(;Y1.length;){var q1=Y1.pop();q1.M.$=!1,q1.delete()}}var N1=void 0,R1={};function I1(q1,$1){for($1===void 0&&a("ptr should not be undefined");q1.R;)$1=q1.ba($1),q1=q1.R;return $1}var H1={};function r1(q1){q1=wA(q1);var $1=X1(q1);return b6(q1),$1}function n1(q1,$1){var W0=H1[q1];return W0===void 0&&a($1+" has unknown type "+r1(q1)),W0}function K0(){}var o1=!1;function A0(q1){--q1.count.value,q1.count.value===0&&(q1.T?q1.U.W(q1.T):q1.P.N.W(q1.O))}function b1(q1,$1,W0){if($1===W0)return q1;if(W0.R===void 0)return null;return q1=b1(q1,$1,W0.R),q1===null?null:W0.na(q1)}var E1={};function g1(q1,$1){return $1=I1(q1,$1),R1[$1]}var P1=void 0;function y1(q1){throw new P1(q1)}function F1(q1,$1){return $1.P&&$1.O||y1("makeClassHandle requires ptr and ptrType"),!!$1.U!==!!$1.T&&y1("Both smartPtrType and smartPtr must be specified"),$1.count={value:1},h1(Object.create(q1,{M:{value:$1}}))}function h1(q1){if(typeof FinalizationRegistry==="undefined")return h1=($1)=>$1,q1;return o1=new FinalizationRegistry(($1)=>{A0($1.M)}),h1=($1)=>{var W0=$1.M;return W0.T&&o1.register($1,{M:W0},$1),$1},K0=($1)=>{o1.unregister($1)},h1(q1)}var C1={};function u1(q1){for(;q1.length;){var $1=q1.pop();q1.pop()($1)}}function i1(q1){return this.fromWireType(N[q1>>2])}var Q0={},D0={};function z0(q1,$1,W0){function N0(t0){t0=W0(t0),t0.length!==q1.length&&y1("Mismatched type converter count");for(var _A=0;_A<q1.length;++_A)J0(q1[_A],t0[_A])}q1.forEach(function(t0){D0[t0]=$1});var v0=Array($1.length),s0=[],FA=0;$1.forEach((t0,_A)=>{H1.hasOwnProperty(t0)?v0[_A]=H1[t0]:(s0.push(t0),Q0.hasOwnProperty(t0)||(Q0[t0]=[]),Q0[t0].push(()=>{v0[_A]=H1[t0],++FA,FA===s0.length&&N0(v0)}))}),s0.length===0&&N0(v0)}function p0(q1){switch(q1){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+q1)}}function J0(q1,$1,W0={}){if(!("argPackAdvance"in $1))throw new TypeError("registerType registeredInstance requires argPackAdvance");var N0=$1.name;if(q1||a('type "'+N0+'" must have a positive integer typeid pointer'),H1.hasOwnProperty(q1)){if(W0.ua)return;a("Cannot register type '"+N0+"' twice")}H1[q1]=$1,delete D0[q1],Q0.hasOwnProperty(q1)&&($1=Q0[q1],delete Q0[q1],$1.forEach((v0)=>v0()))}function e0(q1){a(q1.M.P.N.name+" instance already deleted")}function JA(){}function o0(q1,$1,W0){if(q1[$1].S===void 0){var N0=q1[$1];q1[$1]=function(){return q1[$1].S.hasOwnProperty(arguments.length)||a("Function '"+W0+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+q1[$1].S+")!"),q1[$1].S[arguments.length].apply(this,arguments)},q1[$1].S=[],q1[$1].S[N0.Z]=N0}}function IA(q1,$1){B.hasOwnProperty(q1)?(a("Cannot register public name '"+q1+"' twice"),o0(B,q1,q1),B.hasOwnProperty(void 0)&&a("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),B[q1].S[void 0]=$1):B[q1]=$1}function GA(q1,$1,W0,N0,v0,s0,FA,t0){this.name=q1,this.constructor=$1,this.X=W0,this.W=N0,this.R=v0,this.pa=s0,this.ba=FA,this.na=t0,this.ja=[]}function zA(q1,$1,W0){for(;$1!==W0;)$1.ba||a("Expected null or instance of "+W0.name+", got an instance of "+$1.name),q1=$1.ba(q1),$1=$1.R;return q1}function l0(q1,$1){if($1===null)return this.ea&&a("null is not a valid "+this.name),0;return $1.M||a('Cannot pass "'+d0($1)+'" as a '+this.name),$1.M.O||a("Cannot pass deleted object as a pointer of type "+this.name),zA($1.M.O,$1.M.P.N,this.N)}function EA(q1,$1){if($1===null){if(this.ea&&a("null is not a valid "+this.name),this.da){var W0=this.fa();return q1!==null&&q1.push(this.W,W0),W0}return 0}if($1.M||a('Cannot pass "'+d0($1)+'" as a '+this.name),$1.M.O||a("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&$1.M.P.ca&&a("Cannot convert argument of type "+($1.M.U?$1.M.U.name:$1.M.P.name)+" to parameter type "+this.name),W0=zA($1.M.O,$1.M.P.N,this.N),this.da)switch($1.M.T===void 0&&a("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:$1.M.U===this?W0=$1.M.T:a("Cannot convert argument of type "+($1.M.U?$1.M.U.name:$1.M.P.name)+" to parameter type "+this.name);break;case 1:W0=$1.M.T;break;case 2:if($1.M.U===this)W0=$1.M.T;else{var N0=$1.clone();W0=this.xa(W0,s(function(){N0.delete()})),q1!==null&&q1.push(this.W,W0)}break;default:a("Unsupporting sharing policy")}return W0}function UA(q1,$1){if($1===null)return this.ea&&a("null is not a valid "+this.name),0;return $1.M||a('Cannot pass "'+d0($1)+'" as a '+this.name),$1.M.O||a("Cannot pass deleted object as a pointer of type "+this.name),$1.M.P.ca&&a("Cannot convert argument of type "+$1.M.P.name+" to parameter type "+this.name),zA($1.M.O,$1.M.P.N,this.N)}function a0(q1,$1,W0,N0){this.name=q1,this.N=$1,this.ea=W0,this.ca=N0,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,$1.R!==void 0?this.toWireType=EA:(this.toWireType=N0?l0:UA,this.V=null)}function xA(q1,$1){B.hasOwnProperty(q1)||y1("Replacing nonexistant public symbol"),B[q1]=$1,B[q1].Z=void 0}function LA(q1,$1){var W0=[];return function(){if(W0.length=0,Object.assign(W0,arguments),q1.includes("j")){var N0=B["dynCall_"+q1];N0=W0&&W0.length?N0.apply(null,[$1].concat(W0)):N0.call(null,$1)}else N0=j.get($1).apply(null,W0);return N0}}function d1(q1,$1){q1=X1(q1);var W0=q1.includes("j")?LA(q1,$1):j.get($1);return typeof W0!="function"&&a("unknown function pointer with signature "+q1+": "+$1),W0}var v1=void 0;function a1(q1,$1){function W0(s0){v0[s0]||H1[s0]||(D0[s0]?D0[s0].forEach(W0):(N0.push(s0),v0[s0]=!0))}var N0=[],v0={};throw $1.forEach(W0),new v1(q1+": "+N0.map(r1).join([", "]))}function G0(q1,$1,W0,N0,v0){var s0=$1.length;2>s0&&a("argTypes array size mismatch! Must at least get return value and 'this' types!");var FA=$1[1]!==null&&W0!==null,t0=!1;for(W0=1;W0<$1.length;++W0)if($1[W0]!==null&&$1[W0].V===void 0){t0=!0;break}var _A=$1[0].name!=="void",vA=s0-2,rA=Array(vA),t6=[],X8=[];return function(){if(arguments.length!==vA&&a("function "+q1+" called with "+arguments.length+" arguments, expected "+vA+" args!"),X8.length=0,t6.length=FA?2:1,t6[0]=v0,FA){var j9=$1[1].toWireType(X8,this);t6[1]=j9}for(var a6=0;a6<vA;++a6)rA[a6]=$1[a6+2].toWireType(X8,arguments[a6]),t6.push(rA[a6]);if(a6=N0.apply(null,t6),t0)u1(X8);else for(var s9=FA?1:2;s9<$1.length;s9++){var p9=s9===1?j9:rA[s9-2];$1[s9].V!==null&&$1[s9].V(p9)}return j9=_A?$1[0].fromWireType(a6):void 0,j9}}function e1(q1,$1){for(var W0=[],N0=0;N0<q1;N0++)W0.push(V[$1+4*N0>>2]);return W0}function BA(q1){4<q1&&--o[q1].ga===0&&(o[q1]=void 0,J1.push(q1))}function d0(q1){if(q1===null)return"null";var $1=typeof q1;return $1==="object"||$1==="array"||$1==="function"?q1.toString():""+q1}function V6(q1,$1){switch($1){case 2:return function(W0){return this.fromWireType(L[W0>>2])};case 3:return function(W0){return this.fromWireType(T[W0>>3])};default:throw new TypeError("Unknown float type: "+q1)}}function W6(q1,$1,W0){switch($1){case 0:return W0?function(N0){return w[N0]}:function(N0){return W[N0]};case 1:return W0?function(N0){return I[N0>>1]}:function(N0){return M[N0>>1]};case 2:return W0?function(N0){return N[N0>>2]}:function(N0){return V[N0>>2]};default:throw new TypeError("Unknown integer type: "+q1)}}function $6(q1,$1){for(var W0="",N0=0;!(N0>=$1/2);++N0){var v0=I[q1+2*N0>>1];if(v0==0)break;W0+=String.fromCharCode(v0)}return W0}function eA(q1,$1,W0){if(W0===void 0&&(W0=2147483647),2>W0)return 0;W0-=2;var N0=$1;W0=W0<2*q1.length?W0/2:q1.length;for(var v0=0;v0<W0;++v0)I[$1>>1]=q1.charCodeAt(v0),$1+=2;return I[$1>>1]=0,$1-N0}function s6(q1){return 2*q1.length}function HA(q1,$1){for(var W0=0,N0="";!(W0>=$1/4);){var v0=N[q1+4*W0>>2];if(v0==0)break;++W0,65536<=v0?(v0-=65536,N0+=String.fromCharCode(55296|v0>>10,56320|v0&1023)):N0+=String.fromCharCode(v0)}return N0}function t1(q1,$1,W0){if(W0===void 0&&(W0=2147483647),4>W0)return 0;var N0=$1;W0=N0+W0-4;for(var v0=0;v0<q1.length;++v0){var s0=q1.charCodeAt(v0);if(55296<=s0&&57343>=s0){var FA=q1.charCodeAt(++v0);s0=65536+((s0&1023)<<10)|FA&1023}if(N[$1>>2]=s0,$1+=4,$1+4>W0)break}return N[$1>>2]=0,$1-N0}function c0(q1){for(var $1=0,W0=0;W0<q1.length;++W0){var N0=q1.charCodeAt(W0);55296<=N0&&57343>=N0&&++W0,$1+=4}return $1}var KA={};function D6(q1){var $1=KA[q1];return $1===void 0?X1(q1):$1}var C2=[];function V2(q1){var $1=C2.length;return C2.push(q1),$1}function H2(q1,$1){for(var W0=Array(q1),N0=0;N0<q1;++N0)W0[N0]=n1(V[$1+4*N0>>2],"parameter "+N0);return W0}var o6=[],t2=[null,[],[]];w1=B.BindingError=D1("BindingError"),B.count_emval_handles=function(){for(var q1=0,$1=5;$1<o.length;++$1)o[$1]!==void 0&&++q1;return q1},B.get_first_emval=function(){for(var q1=5;q1<o.length;++q1)if(o[q1]!==void 0)return o[q1];return null},Z1=B.PureVirtualError=D1("PureVirtualError");for(var u6=Array(256),y6=0;256>y6;++y6)u6[y6]=String.fromCharCode(y6);G1=u6,B.getInheritedInstanceCount=function(){return Object.keys(R1).length},B.getLiveInheritedInstances=function(){var q1=[],$1;for($1 in R1)R1.hasOwnProperty($1)&&q1.push(R1[$1]);return q1},B.flushPendingDeletes=L1,B.setDelayFunction=function(q1){N1=q1,Y1.length&&N1&&N1(L1)},P1=B.InternalError=D1("InternalError"),JA.prototype.isAliasOf=function(q1){if(!(this instanceof JA&&q1 instanceof JA))return!1;var $1=this.M.P.N,W0=this.M.O,N0=q1.M.P.N;for(q1=q1.M.O;$1.R;)W0=$1.ba(W0),$1=$1.R;for(;N0.R;)q1=N0.ba(q1),N0=N0.R;return $1===N0&&W0===q1},JA.prototype.clone=function(){if(this.M.O||e0(this),this.M.aa)return this.M.count.value+=1,this;var q1=h1,$1=Object,W0=$1.create,N0=Object.getPrototypeOf(this),v0=this.M;return q1=q1(W0.call($1,N0,{M:{value:{count:v0.count,$:v0.$,aa:v0.aa,O:v0.O,P:v0.P,T:v0.T,U:v0.U}}})),q1.M.count.value+=1,q1.M.$=!1,q1},JA.prototype.delete=function(){this.M.O||e0(this),this.M.$&&!this.M.aa&&a("Object already scheduled for deletion"),K0(this),A0(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},JA.prototype.isDeleted=function(){return!this.M.O},JA.prototype.deleteLater=function(){return this.M.O||e0(this),this.M.$&&!this.M.aa&&a("Object already scheduled for deletion"),Y1.push(this),Y1.length===1&&N1&&N1(L1),this.M.$=!0,this},a0.prototype.qa=function(q1){return this.ka&&(q1=this.ka(q1)),q1},a0.prototype.ha=function(q1){this.W&&this.W(q1)},a0.prototype.argPackAdvance=8,a0.prototype.readValueFromPointer=i1,a0.prototype.deleteObject=function(q1){if(q1!==null)q1.delete()},a0.prototype.fromWireType=function(q1){function $1(){return this.da?F1(this.N.X,{P:this.wa,O:W0,U:this,T:q1}):F1(this.N.X,{P:this,O:q1})}var W0=this.qa(q1);if(!W0)return this.ha(q1),null;var N0=g1(this.N,W0);if(N0!==void 0){if(N0.M.count.value===0)return N0.M.O=W0,N0.M.T=q1,N0.clone();return N0=N0.clone(),this.ha(q1),N0}if(N0=this.N.pa(W0),N0=E1[N0],!N0)return $1.call(this);N0=this.ca?N0.la:N0.pointerType;var v0=b1(W0,this.N,N0.N);return v0===null?$1.call(this):this.da?F1(N0.N.X,{P:N0,O:v0,U:this,T:q1}):F1(N0.N.X,{P:N0,O:v0})},v1=B.UnboundTypeError=D1("UnboundTypeError");var dA=typeof atob=="function"?atob:function(q1){var $1="",W0=0;q1=q1.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var N0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(q1.charAt(W0++)),v0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(q1.charAt(W0++)),s0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(q1.charAt(W0++)),FA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(q1.charAt(W0++));N0=N0<<2|v0>>4,v0=(v0&15)<<4|s0>>2;var t0=(s0&3)<<6|FA;$1+=String.fromCharCode(N0),s0!==64&&($1+=String.fromCharCode(v0)),FA!==64&&($1+=String.fromCharCode(t0))}while(W0<q1.length);return $1},MA={l:function(q1,$1,W0,N0){v("Assertion failed: "+(q1?E(W,q1):"")+", at: "+[$1?$1?E(W,$1):"":"unknown filename",W0,N0?N0?E(W,N0):"":"unknown function"])},q:function(q1,$1,W0){q1=X1(q1),$1=n1($1,"wrapper"),W0=r(W0);var N0=[].slice,v0=$1.N,s0=v0.X,FA=v0.R.X,t0=v0.R.constructor;q1=z1(q1,function(){v0.R.ja.forEach(function(vA){if(this[vA]===FA[vA])throw new Z1("Pure virtual function "+vA+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:s0}),this.__construct.apply(this,N0.call(arguments))}),s0.__construct=function(){this===s0&&a("Pass correct 'this' to __construct");var vA=t0.implement.apply(void 0,[this].concat(N0.call(arguments)));K0(vA);var rA=vA.M;vA.notifyOnDestruction(),rA.aa=!0,Object.defineProperties(this,{M:{value:rA}}),h1(this),vA=rA.O,vA=I1(v0,vA),R1.hasOwnProperty(vA)?a("Tried to register registered instance: "+vA):R1[vA]=this},s0.__destruct=function(){this===s0&&a("Pass correct 'this' to __destruct"),K0(this);var vA=this.M.O;vA=I1(v0,vA),R1.hasOwnProperty(vA)?delete R1[vA]:a("Tried to unregister unregistered instance: "+vA)},q1.prototype=Object.create(s0);for(var _A in W0)q1.prototype[_A]=W0[_A];return s(q1)},j:function(q1){var $1=C1[q1];delete C1[q1];var{fa:W0,W:N0,ia:v0}=$1,s0=v0.map((FA)=>FA.ta).concat(v0.map((FA)=>FA.za));z0([q1],s0,(FA)=>{var t0={};return v0.forEach((_A,vA)=>{var rA=FA[vA],t6=_A.ra,X8=_A.sa,j9=FA[vA+v0.length],a6=_A.ya,s9=_A.Aa;t0[_A.oa]={read:(p9)=>rA.fromWireType(t6(X8,p9)),write:(p9,c9)=>{var p4=[];a6(s9,p9,j9.toWireType(p4,c9)),u1(p4)}}}),[{name:$1.name,fromWireType:function(_A){var vA={},rA;for(rA in t0)vA[rA]=t0[rA].read(_A);return N0(_A),vA},toWireType:function(_A,vA){for(var rA in t0)if(!(rA in vA))throw new TypeError('Missing field: "'+rA+'"');var t6=W0();for(rA in t0)t0[rA].write(t6,vA[rA]);return _A!==null&&_A.push(N0,t6),t6},argPackAdvance:8,readValueFromPointer:i1,V:N0}]})},v:function(){},B:function(q1,$1,W0,N0,v0){var s0=p0(W0);$1=X1($1),J0(q1,{name:$1,fromWireType:function(FA){return!!FA},toWireType:function(FA,t0){return t0?N0:v0},argPackAdvance:8,readValueFromPointer:function(FA){if(W0===1)var t0=w;else if(W0===2)t0=I;else if(W0===4)t0=N;else throw new TypeError("Unknown boolean type size: "+$1);return this.fromWireType(t0[FA>>s0])},V:null})},f:function(q1,$1,W0,N0,v0,s0,FA,t0,_A,vA,rA,t6,X8){rA=X1(rA),s0=d1(v0,s0),t0&&(t0=d1(FA,t0)),vA&&(vA=d1(_A,vA)),X8=d1(t6,X8);var j9=n(rA);IA(j9,function(){a1("Cannot construct "+rA+" due to unbound types",[N0])}),z0([q1,$1,W0],N0?[N0]:[],function(a6){if(a6=a6[0],N0)var s9=a6.N,p9=s9.X;else p9=JA.prototype;a6=z1(j9,function(){if(Object.getPrototypeOf(this)!==c9)throw new w1("Use 'new' to construct "+rA);if(p4.Y===void 0)throw new w1(rA+" has no accessible constructor");var h5=p4.Y[arguments.length];if(h5===void 0)throw new w1("Tried to invoke ctor of "+rA+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(p4.Y).toString()+") parameters instead!");return h5.apply(this,arguments)});var c9=Object.create(p9,{constructor:{value:a6}});a6.prototype=c9;var p4=new GA(rA,a6,c9,X8,s9,s0,t0,vA);s9=new a0(rA,p4,!0,!1),p9=new a0(rA+"*",p4,!1,!1);var qZ=new a0(rA+" const*",p4,!1,!0);return E1[q1]={pointerType:p9,la:qZ},xA(j9,a6),[s9,p9,qZ]})},d:function(q1,$1,W0,N0,v0,s0,FA){var t0=e1(W0,N0);$1=X1($1),s0=d1(v0,s0),z0([],[q1],function(_A){function vA(){a1("Cannot call "+rA+" due to unbound types",t0)}_A=_A[0];var rA=_A.name+"."+$1;$1.startsWith("@@")&&($1=Symbol[$1.substring(2)]);var t6=_A.N.constructor;return t6[$1]===void 0?(vA.Z=W0-1,t6[$1]=vA):(o0(t6,$1,rA),t6[$1].S[W0-1]=vA),z0([],t0,function(X8){return X8=G0(rA,[X8[0],null].concat(X8.slice(1)),null,s0,FA),t6[$1].S===void 0?(X8.Z=W0-1,t6[$1]=X8):t6[$1].S[W0-1]=X8,[]}),[]})},p:function(q1,$1,W0,N0,v0,s0){0<$1||v();var FA=e1($1,W0);v0=d1(N0,v0),z0([],[q1],function(t0){t0=t0[0];var _A="constructor "+t0.name;if(t0.N.Y===void 0&&(t0.N.Y=[]),t0.N.Y[$1-1]!==void 0)throw new w1("Cannot register multiple constructors with identical number of parameters ("+($1-1)+") for class '"+t0.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return t0.N.Y[$1-1]=()=>{a1("Cannot construct "+t0.name+" due to unbound types",FA)},z0([],FA,function(vA){return vA.splice(1,0,null),t0.N.Y[$1-1]=G0(_A,vA,null,v0,s0),[]}),[]})},a:function(q1,$1,W0,N0,v0,s0,FA,t0){var _A=e1(W0,N0);$1=X1($1),s0=d1(v0,s0),z0([],[q1],function(vA){function rA(){a1("Cannot call "+t6+" due to unbound types",_A)}vA=vA[0];var t6=vA.name+"."+$1;$1.startsWith("@@")&&($1=Symbol[$1.substring(2)]),t0&&vA.N.ja.push($1);var X8=vA.N.X,j9=X8[$1];return j9===void 0||j9.S===void 0&&j9.className!==vA.name&&j9.Z===W0-2?(rA.Z=W0-2,rA.className=vA.name,X8[$1]=rA):(o0(X8,$1,t6),X8[$1].S[W0-2]=rA),z0([],_A,function(a6){return a6=G0(t6,a6,vA,s0,FA),X8[$1].S===void 0?(a6.Z=W0-2,X8[$1]=a6):X8[$1].S[W0-2]=a6,[]}),[]})},A:function(q1,$1){$1=X1($1),J0(q1,{name:$1,fromWireType:function(W0){var N0=r(W0);return BA(W0),N0},toWireType:function(W0,N0){return s(N0)},argPackAdvance:8,readValueFromPointer:i1,V:null})},n:function(q1,$1,W0){W0=p0(W0),$1=X1($1),J0(q1,{name:$1,fromWireType:function(N0){return N0},toWireType:function(N0,v0){return v0},argPackAdvance:8,readValueFromPointer:V6($1,W0),V:null})},e:function(q1,$1,W0,N0,v0){$1=X1($1),v0===-1&&(v0=4294967295),v0=p0(W0);var s0=(t0)=>t0;if(N0===0){var FA=32-8*W0;s0=(t0)=>t0<<FA>>>FA}W0=$1.includes("unsigned")?function(t0,_A){return _A>>>0}:function(t0,_A){return _A},J0(q1,{name:$1,fromWireType:s0,toWireType:W0,argPackAdvance:8,readValueFromPointer:W6($1,v0,N0!==0),V:null})},b:function(q1,$1,W0){function N0(s0){s0>>=2;var FA=V;return new v0(H,FA[s0+1],FA[s0])}var v0=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][$1];W0=X1(W0),J0(q1,{name:W0,fromWireType:N0,argPackAdvance:8,readValueFromPointer:N0},{ua:!0})},o:function(q1,$1){$1=X1($1);var W0=$1==="std::string";J0(q1,{name:$1,fromWireType:function(N0){var v0=V[N0>>2],s0=N0+4;if(W0)for(var FA=s0,t0=0;t0<=v0;++t0){var _A=s0+t0;if(t0==v0||W[_A]==0){if(FA=FA?E(W,FA,_A-FA):"",vA===void 0)var vA=FA;else vA+=String.fromCharCode(0),vA+=FA;FA=_A+1}}else{vA=Array(v0);for(t0=0;t0<v0;++t0)vA[t0]=String.fromCharCode(W[s0+t0]);vA=vA.join("")}return b6(N0),vA},toWireType:function(N0,v0){v0 instanceof ArrayBuffer&&(v0=new Uint8Array(v0));var s0,FA=typeof v0=="string";if(FA||v0 instanceof Uint8Array||v0 instanceof Uint8ClampedArray||v0 instanceof Int8Array||a("Cannot pass non-string to std::string"),W0&&FA){var t0=0;for(s0=0;s0<v0.length;++s0){var _A=v0.charCodeAt(s0);127>=_A?t0++:2047>=_A?t0+=2:55296<=_A&&57343>=_A?(t0+=4,++s0):t0+=3}s0=t0}else s0=v0.length;if(t0=n0(4+s0+1),_A=t0+4,V[t0>>2]=s0,W0&&FA){if(FA=_A,_A=s0+1,s0=W,0<_A){_A=FA+_A-1;for(var vA=0;vA<v0.length;++vA){var rA=v0.charCodeAt(vA);if(55296<=rA&&57343>=rA){var t6=v0.charCodeAt(++vA);rA=65536+((rA&1023)<<10)|t6&1023}if(127>=rA){if(FA>=_A)break;s0[FA++]=rA}else{if(2047>=rA){if(FA+1>=_A)break;s0[FA++]=192|rA>>6}else{if(65535>=rA){if(FA+2>=_A)break;s0[FA++]=224|rA>>12}else{if(FA+3>=_A)break;s0[FA++]=240|rA>>18,s0[FA++]=128|rA>>12&63}s0[FA++]=128|rA>>6&63}s0[FA++]=128|rA&63}}s0[FA]=0}}else if(FA)for(FA=0;FA<s0;++FA)vA=v0.charCodeAt(FA),255<vA&&(b6(_A),a("String has UTF-16 code units that do not fit in 8 bits")),W[_A+FA]=vA;else for(FA=0;FA<s0;++FA)W[_A+FA]=v0[FA];return N0!==null&&N0.push(b6,t0),t0},argPackAdvance:8,readValueFromPointer:i1,V:function(N0){b6(N0)}})},i:function(q1,$1,W0){if(W0=X1(W0),$1===2)var N0=$6,v0=eA,s0=s6,FA=()=>M,t0=1;else $1===4&&(N0=HA,v0=t1,s0=c0,FA=()=>V,t0=2);J0(q1,{name:W0,fromWireType:function(_A){for(var vA=V[_A>>2],rA=FA(),t6,X8=_A+4,j9=0;j9<=vA;++j9){var a6=_A+4+j9*$1;if(j9==vA||rA[a6>>t0]==0)X8=N0(X8,a6-X8),t6===void 0?t6=X8:(t6+=String.fromCharCode(0),t6+=X8),X8=a6+$1}return b6(_A),t6},toWireType:function(_A,vA){typeof vA!="string"&&a("Cannot pass non-string to C++ string type "+W0);var rA=s0(vA),t6=n0(4+rA+$1);return V[t6>>2]=rA>>t0,v0(vA,t6+4,rA+$1),_A!==null&&_A.push(b6,t6),t6},argPackAdvance:8,readValueFromPointer:i1,V:function(_A){b6(_A)}})},k:function(q1,$1,W0,N0,v0,s0){C1[q1]={name:X1($1),fa:d1(W0,N0),W:d1(v0,s0),ia:[]}},h:function(q1,$1,W0,N0,v0,s0,FA,t0,_A,vA){C1[q1].ia.push({oa:X1($1),ta:W0,ra:d1(N0,v0),sa:s0,za:FA,ya:d1(t0,_A),Aa:vA})},C:function(q1,$1){$1=X1($1),J0(q1,{va:!0,name:$1,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(q1,$1,W0,N0,v0){q1=C2[q1],$1=r($1),W0=D6(W0);var s0=[];return V[N0>>2]=s(s0),q1($1,W0,s0,v0)},t:function(q1,$1,W0,N0){q1=C2[q1],$1=r($1),W0=D6(W0),q1($1,W0,null,N0)},g:BA,m:function(q1,$1){var W0=H2(q1,$1),N0=W0[0];$1=N0.name+"_$"+W0.slice(1).map(function(FA){return FA.name}).join("_")+"$";var v0=o6[$1];if(v0!==void 0)return v0;var s0=Array(q1-1);return v0=V2((FA,t0,_A,vA)=>{for(var rA=0,t6=0;t6<q1-1;++t6)s0[t6]=W0[t6+1].readValueFromPointer(vA+rA),rA+=W0[t6+1].argPackAdvance;FA=FA[t0].apply(FA,s0);for(t6=0;t6<q1-1;++t6)W0[t6+1].ma&&W0[t6+1].ma(s0[t6]);if(!N0.va)return N0.toWireType(_A,FA)}),o6[$1]=v0},D:function(q1){4<q1&&(o[q1].ga+=1)},r:function(q1){var $1=r(q1);u1($1),BA(q1)},c:function(){v("")},x:function(q1,$1,W0){W.copyWithin(q1,$1,$1+W0)},w:function(q1){var $1=W.length;if(q1>>>=0,2147483648<q1)return!1;for(var W0=1;4>=W0;W0*=2){var N0=$1*(1+0.2/W0);N0=Math.min(N0,q1+100663296);var v0=Math;N0=Math.max(q1,N0),v0=v0.min.call(v0,2147483648,N0+(65536-N0%65536)%65536);A:{try{q.grow(v0-H.byteLength+65535>>>16),R();var s0=1;break A}catch(FA){}s0=void 0}if(s0)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(q1,$1,W0,N0){for(var v0=0,s0=0;s0<W0;s0++){var FA=V[$1>>2],t0=V[$1+4>>2];$1+=8;for(var _A=0;_A<t0;_A++){var vA=W[FA+_A],rA=t2[q1];vA===0||vA===10?((q1===1?G:X)(E(rA,0)),rA.length=0):rA.push(vA)}v0+=t0}return V[N0>>2]=v0,0}};(function(){function q1(v0){B.asm=v0.exports,q=B.asm.E,R(),j=B.asm.J,$.unshift(B.asm.F),u--,B.monitorRunDependencies&&B.monitorRunDependencies(u),u==0&&(_!==null&&(clearInterval(_),_=null),f&&(v0=f,f=null,v0()))}function $1(v0){q1(v0.instance)}function W0(v0){return d().then(function(s0){return WebAssembly.instantiate(s0,N0)}).then(function(s0){return s0}).then(v0,function(s0){X("failed to asynchronously prepare wasm: "+s0),v(s0)})}var N0={a:MA};if(u++,B.monitorRunDependencies&&B.monitorRunDependencies(u),B.instantiateWasm)try{return B.instantiateWasm(N0,q1)}catch(v0){X("Module.instantiateWasm callback failed with error: "+v0),D(v0)}return function(){return K||typeof WebAssembly.instantiateStreaming!="function"||y(k)||typeof fetch!="function"?W0($1):fetch(k,{credentials:"same-origin"}).then(function(v0){return WebAssembly.instantiateStreaming(v0,N0).then($1,function(s0){return X("wasm streaming compile failed: "+s0),X("falling back to ArrayBuffer instantiation"),W0($1)})})}().catch(D),{}})(),B.___wasm_call_ctors=function(){return(B.___wasm_call_ctors=B.asm.F).apply(null,arguments)};var wA=B.___getTypeName=function(){return(wA=B.___getTypeName=B.asm.G).apply(null,arguments)};B.__embind_initialize_bindings=function(){return(B.__embind_initialize_bindings=B.asm.H).apply(null,arguments)};var n0=B._malloc=function(){return(n0=B._malloc=B.asm.I).apply(null,arguments)},b6=B._free=function(){return(b6=B._free=B.asm.K).apply(null,arguments)};B.dynCall_jiji=function(){return(B.dynCall_jiji=B.asm.L).apply(null,arguments)};var p1;f=function q1(){p1||B4(),p1||(f=q1)};function B4(){function q1(){if(!p1&&(p1=!0,B.calledRun=!0,!F)){if(e($),J(B),B.onRuntimeInitialized)B.onRuntimeInitialized();if(B.postRun)for(typeof B.postRun=="function"&&(B.postRun=[B.postRun]);B.postRun.length;){var $1=B.postRun.shift();S.unshift($1)}e(S)}}if(!(0<u)){if(B.preRun)for(typeof B.preRun=="function"&&(B.preRun=[B.preRun]);B.preRun.length;)x();e(P),0<u||(B.setStatus?(B.setStatus("Running..."),setTimeout(function(){setTimeout(function(){B.setStatus("")},1),q1()},1)):q1())}}if(B.preInit)for(typeof B.preInit=="function"&&(B.preInit=[B.preInit]);0<B.preInit.length;)B.preInit.pop()();return B4(),Q.ready}})(),e4A=Yt6;var aE=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),A5A=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),Q5A=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),tp=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Yf1=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),rE=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),HS=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),qt6=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),V41=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),qf1=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),wS=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),WS=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),Uf1=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),B5A=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),Ff1=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),Ef1=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),fK=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),Hf1=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),Ut6={ALIGN_AUTO:aE.Auto,ALIGN_FLEX_START:aE.FlexStart,ALIGN_CENTER:aE.Center,ALIGN_FLEX_END:aE.FlexEnd,ALIGN_STRETCH:aE.Stretch,ALIGN_BASELINE:aE.Baseline,ALIGN_SPACE_BETWEEN:aE.SpaceBetween,ALIGN_SPACE_AROUND:aE.SpaceAround,ALIGN_SPACE_EVENLY:aE.SpaceEvenly,BOX_SIZING_BORDER_BOX:A5A.BorderBox,BOX_SIZING_CONTENT_BOX:A5A.ContentBox,DIMENSION_WIDTH:Q5A.Width,DIMENSION_HEIGHT:Q5A.Height,DIRECTION_INHERIT:tp.Inherit,DIRECTION_LTR:tp.LTR,DIRECTION_RTL:tp.RTL,DISPLAY_FLEX:Yf1.Flex,DISPLAY_NONE:Yf1.None,DISPLAY_CONTENTS:Yf1.Contents,EDGE_LEFT:rE.Left,EDGE_TOP:rE.Top,EDGE_RIGHT:rE.Right,EDGE_BOTTOM:rE.Bottom,EDGE_START:rE.Start,EDGE_END:rE.End,EDGE_HORIZONTAL:rE.Horizontal,EDGE_VERTICAL:rE.Vertical,EDGE_ALL:rE.All,ERRATA_NONE:HS.None,ERRATA_STRETCH_FLEX_BASIS:HS.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:HS.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:HS.AbsolutePercentAgainstInnerSize,ERRATA_ALL:HS.All,ERRATA_CLASSIC:HS.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:qt6.WebFlexBasis,FLEX_DIRECTION_COLUMN:V41.Column,FLEX_DIRECTION_COLUMN_REVERSE:V41.ColumnReverse,FLEX_DIRECTION_ROW:V41.Row,FLEX_DIRECTION_ROW_REVERSE:V41.RowReverse,GUTTER_COLUMN:qf1.Column,GUTTER_ROW:qf1.Row,GUTTER_ALL:qf1.All,JUSTIFY_FLEX_START:wS.FlexStart,JUSTIFY_CENTER:wS.Center,JUSTIFY_FLEX_END:wS.FlexEnd,JUSTIFY_SPACE_BETWEEN:wS.SpaceBetween,JUSTIFY_SPACE_AROUND:wS.SpaceAround,JUSTIFY_SPACE_EVENLY:wS.SpaceEvenly,LOG_LEVEL_ERROR:WS.Error,LOG_LEVEL_WARN:WS.Warn,LOG_LEVEL_INFO:WS.Info,LOG_LEVEL_DEBUG:WS.Debug,LOG_LEVEL_VERBOSE:WS.Verbose,LOG_LEVEL_FATAL:WS.Fatal,MEASURE_MODE_UNDEFINED:Uf1.Undefined,MEASURE_MODE_EXACTLY:Uf1.Exactly,MEASURE_MODE_AT_MOST:Uf1.AtMost,NODE_TYPE_DEFAULT:B5A.Default,NODE_TYPE_TEXT:B5A.Text,OVERFLOW_VISIBLE:Ff1.Visible,OVERFLOW_HIDDEN:Ff1.Hidden,OVERFLOW_SCROLL:Ff1.Scroll,POSITION_TYPE_STATIC:Ef1.Static,POSITION_TYPE_RELATIVE:Ef1.Relative,POSITION_TYPE_ABSOLUTE:Ef1.Absolute,UNIT_UNDEFINED:fK.Undefined,UNIT_POINT:fK.Point,UNIT_PERCENT:fK.Percent,UNIT_AUTO:fK.Auto,WRAP_NO_WRAP:Hf1.NoWrap,WRAP_WRAP:Hf1.Wrap,WRAP_WRAP_REVERSE:Hf1.WrapReverse},J5A=Ut6;function wf1(A){function Q(D,z,Z){let G=D[z];D[z]=function(){for(var X=arguments.length,K=new Array(X),Y=0;Y<X;Y++)K[Y]=arguments[Y];return Z.call(this,G,...K)}}for(let D of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let z={[fK.Point]:A.Node.prototype[D],[fK.Percent]:A.Node.prototype[`${D}Percent`],[fK.Auto]:A.Node.prototype[`${D}Auto`]};Q(A.Node.prototype,D,function(Z){for(var G=arguments.length,X=new Array(G>1?G-1:0),K=1;K<G;K++)X[K-1]=arguments[K];let Y=X.pop(),q,F;if(Y==="auto")q=fK.Auto,F=void 0;else if(typeof Y==="object")q=Y.unit,F=Y.valueOf();else if(q=typeof Y==="string"&&Y.endsWith("%")?fK.Percent:fK.Point,F=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(F))throw new Error(`Invalid value ${Y} for ${D}`);if(!z[q])throw new Error(`Failed to execute "${D}": Unsupported unit '${Y}'`);if(F!==void 0)return z[q].call(this,...X,F);else return z[q].call(this,...X)})}function B(D){return A.MeasureCallback.implement({measure:function(){let{width:z,height:Z}=D(...arguments);return{width:z??NaN,height:Z??NaN}}})}Q(A.Node.prototype,"setMeasureFunc",function(D,z){if(z)return D.call(this,B(z));else return this.unsetMeasureFunc()});function J(D){return A.DirtiedCallback.implement({dirtied:D})}return Q(A.Node.prototype,"setDirtiedFunc",function(D,z){D.call(this,J(z))}),Q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),Q(A.Node,"create",(D,z)=>{return z?A.Node.createWithConfig(z):A.Node.createDefault()}),Q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),Q(A.Node.prototype,"freeRecursive",function(){for(let D=0,z=this.getChildCount();D<z;++D)this.getChild(0).freeRecursive();this.free()}),Q(A.Node.prototype,"calculateLayout",function(D){let z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,G=arguments.length>3&&arguments[3]!==void 0?arguments[3]:tp.LTR;return D.call(this,z,Z,G)}),{Config:A.Config,Node:A.Node,...J5A}}var Ft6=wf1(await e4A()),f6=Ft6;var h5A=hA(E5A(),1);import dt6 from"node:process";var m5A=hA(O8(),1);ll();function H5A(A){return A===161||A===164||A===167||A===168||A===170||A===173||A===174||A>=176&&A<=180||A>=182&&A<=186||A>=188&&A<=191||A===198||A===208||A===215||A===216||A>=222&&A<=225||A===230||A>=232&&A<=234||A===236||A===237||A===240||A===242||A===243||A>=247&&A<=250||A===252||A===254||A===257||A===273||A===275||A===283||A===294||A===295||A===299||A>=305&&A<=307||A===312||A>=319&&A<=322||A===324||A>=328&&A<=331||A===333||A===338||A===339||A===358||A===359||A===363||A===462||A===464||A===466||A===468||A===470||A===472||A===474||A===476||A===593||A===609||A===708||A===711||A>=713&&A<=715||A===717||A===720||A>=728&&A<=731||A===733||A===735||A>=768&&A<=879||A>=913&&A<=929||A>=931&&A<=937||A>=945&&A<=961||A>=963&&A<=969||A===1025||A>=1040&&A<=1103||A===1105||A===8208||A>=8211&&A<=8214||A===8216||A===8217||A===8220||A===8221||A>=8224&&A<=8226||A>=8228&&A<=8231||A===8240||A===8242||A===8243||A===8245||A===8251||A===8254||A===8308||A===8319||A>=8321&&A<=8324||A===8364||A===8451||A===8453||A===8457||A===8467||A===8470||A===8481||A===8482||A===8486||A===8491||A===8531||A===8532||A>=8539&&A<=8542||A>=8544&&A<=8555||A>=8560&&A<=8569||A===8585||A>=8592&&A<=8601||A===8632||A===8633||A===8658||A===8660||A===8679||A===8704||A===8706||A===8707||A===8711||A===8712||A===8715||A===8719||A===8721||A===8725||A===8730||A>=8733&&A<=8736||A===8739||A===8741||A>=8743&&A<=8748||A===8750||A>=8756&&A<=8759||A===8764||A===8765||A===8776||A===8780||A===8786||A===8800||A===8801||A>=8804&&A<=8807||A===8810||A===8811||A===8814||A===8815||A===8834||A===8835||A===8838||A===8839||A===8853||A===8857||A===8869||A===8895||A===8978||A>=9312&&A<=9449||A>=9451&&A<=9547||A>=9552&&A<=9587||A>=9600&&A<=9615||A>=9618&&A<=9621||A===9632||A===9633||A>=9635&&A<=9641||A===9650||A===9651||A===9654||A===9655||A===9660||A===9661||A===9664||A===9665||A>=9670&&A<=9672||A===9675||A>=9678&&A<=9681||A>=9698&&A<=9701||A===9711||A===9733||A===9734||A===9737||A===9742||A===9743||A===9756||A===9758||A===9792||A===9794||A===9824||A===9825||A>=9827&&A<=9829||A>=9831&&A<=9834||A===9836||A===9837||A===9839||A===9886||A===9887||A===9919||A>=9926&&A<=9933||A>=9935&&A<=9939||A>=9941&&A<=9953||A===9955||A===9960||A===9961||A>=9963&&A<=9969||A===9972||A>=9974&&A<=9977||A===9979||A===9980||A===9982||A===9983||A===10045||A>=10102&&A<=10111||A>=11094&&A<=11097||A>=12872&&A<=12879||A>=57344&&A<=63743||A>=65024&&A<=65039||A===65533||A>=127232&&A<=127242||A>=127248&&A<=127277||A>=127280&&A<=127337||A>=127344&&A<=127373||A===127375||A===127376||A>=127387&&A<=127404||A>=917760&&A<=917999||A>=983040&&A<=1048573||A>=1048576&&A<=1114109}function w5A(A){return A===12288||A>=65281&&A<=65376||A>=65504&&A<=65510}function W5A(A){return A>=4352&&A<=4447||A===8986||A===8987||A===9001||A===9002||A>=9193&&A<=9196||A===9200||A===9203||A===9725||A===9726||A===9748||A===9749||A>=9776&&A<=9783||A>=9800&&A<=9811||A===9855||A>=9866&&A<=9871||A===9875||A===9889||A===9898||A===9899||A===9917||A===9918||A===9924||A===9925||A===9934||A===9940||A===9962||A===9970||A===9971||A===9973||A===9978||A===9981||A===9989||A===9994||A===9995||A===10024||A===10060||A===10062||A>=10067&&A<=10069||A===10071||A>=10133&&A<=10135||A===10160||A===10175||A===11035||A===11036||A===11088||A===11093||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12287||A>=12289&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12591||A>=12593&&A<=12686||A>=12688&&A<=12773||A>=12783&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=94176&&A<=94180||A===94192||A===94193||A>=94208&&A<=100343||A>=100352&&A<=101589||A>=101631&&A<=101640||A>=110576&&A<=110579||A>=110581&&A<=110587||A===110589||A===110590||A>=110592&&A<=110882||A===110898||A>=110928&&A<=110930||A===110933||A>=110948&&A<=110951||A>=110960&&A<=111355||A>=119552&&A<=119638||A>=119648&&A<=119670||A===126980||A===127183||A===127374||A>=127377&&A<=127386||A>=127488&&A<=127490||A>=127504&&A<=127547||A>=127552&&A<=127560||A===127568||A===127569||A>=127584&&A<=127589||A>=127744&&A<=127776||A>=127789&&A<=127797||A>=127799&&A<=127868||A>=127870&&A<=127891||A>=127904&&A<=127946||A>=127951&&A<=127955||A>=127968&&A<=127984||A===127988||A>=127992&&A<=128062||A===128064||A>=128066&&A<=128252||A>=128255&&A<=128317||A>=128331&&A<=128334||A>=128336&&A<=128359||A===128378||A===128405||A===128406||A===128420||A>=128507&&A<=128591||A>=128640&&A<=128709||A===128716||A>=128720&&A<=128722||A>=128725&&A<=128727||A>=128732&&A<=128735||A===128747||A===128748||A>=128756&&A<=128764||A>=128992&&A<=129003||A===129008||A>=129292&&A<=129338||A>=129340&&A<=129349||A>=129351&&A<=129535||A>=129648&&A<=129660||A>=129664&&A<=129673||A>=129679&&A<=129734||A>=129742&&A<=129756||A>=129759&&A<=129769||A>=129776&&A<=129784||A>=131072&&A<=196605||A>=196608&&A<=262141}function It6(A){if(!Number.isSafeInteger(A))throw new TypeError(`Expected a code point, got \`${typeof A}\`.`)}function P41(A,{ambiguousAsWide:Q=!1}={}){if(It6(A),w5A(A)||W5A(A)||Q&&H5A(A))return 2;return 1}var I5A=hA(GB1(),1),Mt6=new Intl.Segmenter,Nt6=/^\p{Default_Ignorable_Code_Point}$/u;function EJ(A,Q={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:B=!0,countAnsiEscapeCodes:J=!1}=Q;if(!J)A=NM(A);if(A.length===0)return 0;let D=0,z={ambiguousAsWide:!B};for(let{segment:Z}of Mt6.segment(A)){let G=Z.codePointAt(0);if(G<=31||G>=127&&G<=159)continue;if(G>=8203&&G<=8207||G===65279)continue;if(G>=768&&G<=879||G>=6832&&G<=6911||G>=7616&&G<=7679||G>=8400&&G<=8447||G>=65056&&G<=65071)continue;if(G>=55296&&G<=57343)continue;if(G>=65024&&G<=65039)continue;if(Nt6.test(Z))continue;if(I5A.default().test(Z)){D+=2;continue}D+=P41(G,z)}return D}function $O(A){let Q=0;for(let B of A.split(`
|
4546
4546
|
`))Q=Math.max(Q,EJ(B));return Q}var M5A={},Ct6=(A)=>{if(A.length===0)return{width:0,height:0};let Q=M5A[A];if(Q)return Q;let B=$O(A),J=A.split(`
|
4547
4547
|
`).length;return M5A[A]={width:B,height:J},{width:B,height:J}},kf1=Ct6;ll();var N5A=(A=0)=>(Q)=>`\x1B[${Q+A}m`,C5A=(A=0)=>(Q)=>`\x1B[${38+A};5;${Q}m`,V5A=(A=0)=>(Q,B,J)=>`\x1B[${38+A};2;${Q};${B};${J}m`,V5={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Jt2=Object.keys(V5.modifier),Vt6=Object.keys(V5.color),Ot6=Object.keys(V5.bgColor),Dt2=[...Vt6,...Ot6];function Rt6(){let A=new Map;for(let[Q,B]of Object.entries(V5)){for(let[J,D]of Object.entries(B))V5[J]={open:`\x1B[${D[0]}m`,close:`\x1B[${D[1]}m`},B[J]=V5[J],A.set(D[0],D[1]);Object.defineProperty(V5,Q,{value:B,enumerable:!1})}return Object.defineProperty(V5,"codes",{value:A,enumerable:!1}),V5.color.close="\x1B[39m",V5.bgColor.close="\x1B[49m",V5.color.ansi=N5A(),V5.color.ansi256=C5A(),V5.color.ansi16m=V5A(),V5.bgColor.ansi=N5A(10),V5.bgColor.ansi256=C5A(10),V5.bgColor.ansi16m=V5A(10),Object.defineProperties(V5,{rgbToAnsi256:{value:(Q,B,J)=>{if(Q===B&&B===J){if(Q<8)return 16;if(Q>248)return 231;return Math.round((Q-8)/247*24)+232}return 16+36*Math.round(Q/255*5)+6*Math.round(B/255*5)+Math.round(J/255*5)},enumerable:!1},hexToRgb:{value:(Q)=>{let B=/[a-f\d]{6}|[a-f\d]{3}/i.exec(Q.toString(16));if(!B)return[0,0,0];let[J]=B;if(J.length===3)J=[...J].map((z)=>z+z).join("");let D=Number.parseInt(J,16);return[D>>16&255,D>>8&255,D&255]},enumerable:!1},hexToAnsi256:{value:(Q)=>V5.rgbToAnsi256(...V5.hexToRgb(Q)),enumerable:!1},ansi256ToAnsi:{value:(Q)=>{if(Q<8)return 30+Q;if(Q<16)return 90+(Q-8);let B,J,D;if(Q>=232)B=((Q-232)*10+8)/255,J=B,D=B;else{Q-=16;let G=Q%36;B=Math.floor(Q/36)/5,J=Math.floor(G/6)/5,D=G%6/5}let z=Math.max(B,J,D)*2;if(z===0)return 30;let Z=30+(Math.round(D)<<2|Math.round(J)<<1|Math.round(B));if(z===2)Z+=60;return Z},enumerable:!1},rgbToAnsi:{value:(Q,B,J)=>V5.ansi256ToAnsi(V5.rgbToAnsi256(Q,B,J)),enumerable:!1},hexToAnsi:{value:(Q)=>V5.ansi256ToAnsi(V5.hexToAnsi256(Q)),enumerable:!1}}),V5}var Lt6=Rt6(),O5=Lt6;var S41=new Set(["\x1B",""]),Tt6=39,yf1="\x07",L5A="[",jt6="]",T5A="m",_41=`${jt6}8;;`,O5A=(A)=>`${S41.values().next().value}${L5A}${A}${T5A}`,R5A=(A)=>`${S41.values().next().value}${_41}${A}${yf1}`,Pt6=(A)=>A.split(" ").map((Q)=>EJ(Q)),ff1=(A,Q,B)=>{let J=[...Q],D=!1,z=!1,Z=EJ(NM(A.at(-1)));for(let[G,X]of J.entries()){let K=EJ(X);if(Z+K<=B)A[A.length-1]+=X;else A.push(X),Z=0;if(S41.has(X))D=!0,z=J.slice(G+1,G+1+_41.length).join("")===_41;if(D){if(z){if(X===yf1)D=!1,z=!1}else if(X===T5A)D=!1;continue}if(Z+=K,Z===B&&G<J.length-1)A.push(""),Z=0}if(!Z&&A.at(-1).length>0&&A.length>1)A[A.length-2]+=A.pop()},_t6=(A)=>{let Q=A.split(" "),B=Q.length;while(B>0){if(EJ(Q[B-1])>0)break;B--}if(B===Q.length)return A;return Q.slice(0,B).join(" ")+Q.slice(B).join("")},St6=(A,Q,B={})=>{if(B.trim!==!1&&A.trim()==="")return"";let J="",D,z,Z=Pt6(A),G=[""];for(let[q,F]of A.split(" ").entries()){if(B.trim!==!1)G[G.length-1]=G.at(-1).trimStart();let E=EJ(G.at(-1));if(q!==0){if(E>=Q&&(B.wordWrap===!1||B.trim===!1))G.push(""),E=0;if(E>0||B.trim===!1)G[G.length-1]+=" ",E++}if(B.hard&&Z[q]>Q){let H=Q-E,w=1+Math.floor((Z[q]-H-1)/Q);if(Math.floor((Z[q]-1)/Q)<w)G.push("");ff1(G,F,Q);continue}if(E+Z[q]>Q&&E>0&&Z[q]>0){if(B.wordWrap===!1&&E<Q){ff1(G,F,Q);continue}G.push("")}if(E+Z[q]>Q&&B.wordWrap===!1){ff1(G,F,Q);continue}G[G.length-1]+=F}if(B.trim!==!1)G=G.map((q)=>_t6(q));let X=G.join(`
|
@@ -4600,7 +4600,8 @@ ${Y}`}else G=z.map((X)=>` ${X}`).join(`
|
|
4600
4600
|
`).map((B)=>` ${P0.dim(B)}`)),Q}function W51({thinking:A}){return S0(PA,{flexDirection:"column",children:Ey1(A).map((Q,B)=>S0(PA,{children:S0(uA,{children:Q})},B))})}function H02(A){let Q=A.filter((D)=>D.role!=="assistant"||D.state.type==="complete"),B=[],J=[];for(let D of Q)if(J.push(D),D.role==="assistant"){if(D.state.type==="complete"&&D.state.stopReason==="end_turn")B.push([...J]),J=[]}else if(D.role==="info")B.push([...J]),J=[];if(J.length>0)B.push(J);return B}function w02(A){return A.some((Q)=>{return Q.content.some((B)=>{if(B.type==="text")return B.text.trim()!=="";return B.type==="tool_use"||B.type==="tool_result"||B.type==="thinking"})})}function W02(A){let Q=[],B=new Map;A.forEach((D)=>{D.content.forEach((z)=>{if(z.type==="tool_use")B.set(z.id,z)})});let J=[];return A.forEach((D)=>{D.content.forEach((z)=>{if(z.type==="text"&&z.text.trim()!=="")J.push({content:z,message:D,type:"text"});else if(z.type==="tool_result")J.push({content:z,message:D,type:"tool_result"});else if(z.type==="thinking")J.push({content:z,message:D,type:"thinking"})})}),J.forEach((D,z)=>{if(z>0)Q.push(" ");if(D.type==="text")Q.push(...e7A(D.content.text,D.message.role));else if(D.type==="tool_result"){let Z=B.get(D.content.toolUseID);if(Z){let G=K51(Z,D.content,!0);Q.push(...G)}}else{let Z=Ey1(D.content.thinking);Q.push(...Z)}}),Q.map((D)=>D||" ")}function PQA({threadName:A,messages:Q,onExit:B}){let J=kI.useMemo(()=>H02(Q),[Q]),[D,z]=SS(),Z=kI.useMemo(()=>{let I=[];for(let M=0;M<J.length;M++){let N=J[M];if(N&&w02(N))I.push(M)}return I},[J]),G=(I)=>{if(Z.length<=0)return[];let M=Z[I];if(M===void 0)return["[Error: Invalid turn index]"];let N=J[M];if(!N)return["[Error: Turn not found]"];try{return W02(N)}catch(V){return["[Error: Failed to render this turn]"]}},X=Math.max(0,Z.length-1),[K,Y]=kI.useState(X),[q,F]=kI.useState(0),E=z-5,H=G(K);kI.useEffect(()=>{F(0)},[K]),tE((I,M)=>{if(I==="q"||M.ctrlC||M.ctrl&&I==="r"){B();return}let N=H;if(M.ctrl&&I==="[")Y((V)=>Math.max(0,V-1));else if(M.ctrl&&I==="]")Y((V)=>Math.min(Z.length-1,V+1));else if(I==="h"||M.leftArrow)Y((V)=>Math.max(0,V-1));else if(I==="l"||M.rightArrow)Y((V)=>Math.min(Z.length-1,V+1));switch(I){case" ":F((V)=>{let L=Math.max(0,N.length-E);return Math.min(L,V+E)});break;case"b":F((V)=>Math.max(0,V-E));break;case"d":F((V)=>{let L=Math.max(0,N.length-E);return Math.min(L,V+Math.floor(E/2))});break;case"u":F((V)=>Math.max(0,V-Math.floor(E/2)));break;case"j":F((V)=>{let L=Math.max(0,H.length-E);return Math.min(L,V+1)});break;case"k":F((V)=>Math.max(0,V-1));break;case"g":F(0);break;case"G":F(()=>{return Math.max(0,H.length-E)});break}if(M.upArrow)F((V)=>Math.max(0,V-1));else if(M.downArrow)F((V)=>{let L=Math.max(0,H.length-E);return Math.min(L,V+1)});else if(M.home)F(0);else if(M.end)F(()=>{return Math.max(0,H.length-E)})});let w=Math.max(0,H.length-E),W=w>0?Math.round(q/w*100):100;return E2(PA,{flexDirection:"column",width:D,height:z-1,flexGrow:0,flexShrink:0,children:[S0(PA,{marginBottom:1,children:E2(uA,{bold:!0,children:[A," – Turn ",K+1,"/",Z.length]})}),S0(PA,{flexDirection:"column",height:E,flexGrow:0,flexShrink:1,children:H.length>0?Array.from({length:E},(I,M)=>{let N=q+M,V=N<H.length?H[N]:null;return S0(PA,{flexShrink:0,children:S0(uA,{wrap:"truncate",children:V||" "})},M)}):S0(PA,{children:S0(uA,{dimColor:!0,italic:!0,children:"No content to display"})})}),E2(PA,{marginTop:1,flexGrow:0,flexShrink:0,flexDirection:"row",children:[S0(PA,{flexGrow:1,children:E2(uA,{dimColor:!0,children:["Lines ",q+1,"-",Math.min(q+E,H.length)," (",W,"%)"]})}),S0(PA,{flexGrow:0,children:S0(uA,{dimColor:!0,wrap:"truncate",children:"Space/b: page • j/k: line • g/G: top/bottom • h/l: turns • q: quit"})})]})]})}l6();var XD=hA(O8(),1),$S=hA(LS(),1);function _QA({onSubmit:A,history:Q,disabled:B=!1,viewState:J,todosBoxRef:D,editorState:z,editorDispatch:Z}){let G=XD.useRef(null),[X]=SS(),{onWordHighlight:K,ignore:Y,completionSelected:q,hasCompletions:F}=Z51(),{input:E,cursorIndex:H,deletedText:w,virtualLines:W}=z;XD.useEffect(()=>{if(G.current){let{width:$}=Yc(G.current);Z({type:"set-width",width:$})}},[X,Z,D.current,G.current]);let[I,M]=XD.useState(null),N=I!==null,V=XD.useMemo(()=>TS(W,H),[H,W]),L=XD.useCallback(()=>{if(!N)M(E);let $=Q.previous();if($!==null)Z({type:"set-input",input:$})},[Q,N,E,Z]),T=XD.useCallback(()=>{if(!N)M(E);let $=Q.next();if($!==null)Z({type:"set-input",input:$});else if(I!==null)Z({type:"set-input",input:I}),M(null),Q.reset()},[Q,N,I,E,Z]),R=XD.useCallback(()=>{if(!I)return;Z({type:"set-input",input:I}),M(null),Q.reset()},[I,Q,Z]),j=XD.useMemo(()=>I02(E,H),[E,H]);XD.useEffect(()=>K(j?.word||""),[j,K]),XD.useEffect(()=>{let $=q.subscribe((S)=>{if(!j)return;Z({type:"replace-text",startPos:j.start,endPos:j.end,replacement:`@${S} `})});return()=>$.unsubscribe()},[q,j,Z]),tE(($,S)=>{if(B)return;if($&&$.length>1&&$!=="\x1B[27;2;13~"&&$!=="[27;2;13~"&&$!=="\x1B[13;2u"&&!$.match(/^\u001b\[\d+;\d+u$/)){j1.info("Handling multi-line paste - inserting raw content",{keyInput:JSON.stringify($),cursorIndex:H,inputLength:E.length});let u=$.replace(/\r\n/g,`
|
4601
4601
|
`).replace(/\r/g,`
|
4602
4602
|
`).replace(/\t/g," ");j1.info("Normalized input",{normalizedInput:JSON.stringify(u)}),Z({type:"insert-text",text:u});return}if(S.pageUp){L();return}if(S.pageDown){T();return}if(S.upArrow||S.ctrl&&$==="p"){if(F)return;if(TS(W,H).line===0){L();return}Z({type:"move-cursor",direction:"up"});return}if(S.downArrow||S.ctrl&&$==="n"){if(F)return;if(TS(W,H).line===W.lines.length-1){T();return}Z({type:"move-cursor",direction:"down"});return}if(S.escape){if(F){Y();return}if(N)R();else if(E.trim().length===0)return;else{if(J.state==="active"&&J.inferenceState==="running")return;Z({type:"set-input",input:""})}return}if(S.super&&S.leftArrow||S.ctrl&&$==="a"){Z({type:"jump-to-start-of-line"});return}if(S.super&&S.rightArrow||S.ctrl&&$==="e"){Z({type:"jump-to-end-of-line"});return}if(S.alt&&S.rightArrow){Z({type:"jump-to-next-word"});return}if(S.alt&&S.leftArrow){Z({type:"jump-to-prev-word"});return}if(S.leftArrow||S.ctrl&&$==="b"){Z({type:"move-cursor",direction:"left"});return}if(S.rightArrow||S.ctrl&&$==="f"){Z({type:"move-cursor",direction:"right"});return}if(S.home){Z({type:"jump-to-beginning"});return}if(S.end){Z({type:"jump-to-end"});return}if(S.ctrl&&S.backspace||S.alt&&S.backspace||S.ctrl&&$==="w"){Z({type:"delete-word-backward"});return}if(S.super&&S.backspace){Z({type:"delete-whole-line"});return}if(S.ctrl&&$==="u"){Z({type:"delete-to-beginning-of-line"});return}if(S.ctrl&&$==="k"){Z({type:"delete-to-end-of-line"});return}if(S.ctrl&&$==="d"||S.delete){if(H<$S.default(E).length)Z({type:"remove-text",from:H,to:H+1});return}if(S.alt&&$==="d"){Z({type:"delete-word-forward"});return}if(S.backspace||S.ctrl&&$==="h"){if(H>0)Z({type:"remove-text",from:H-1,to:H});return}if(S.ctrl&&$==="y"){if(w.length>0){let u=w[0];Z({type:"insert-text",text:u})}return}let x=S.return&&(S.shift||S.meta||S.ctrl||S.alt)||!S.return&&$==="\r"||$==="\x1B[27;2;13~"||$==="[27;2;13~"||$==="\x1B[13;2u";if(j1.debug("Modified Enter detection",{isModifiedEnter:x,"key.return":S.return,"key.shift":S.shift,"key.meta":S.meta,"key.ctrl":S.ctrl,keyInput:JSON.stringify($),hasContent:E.trim().length>0}),x){if(F)return;Z({type:"insert-text",text:`
|
4603
|
-
`});return}if(S.return&&!S.shift&&!S.meta&&!S.ctrl){if(F)return;if(E.trim().length>0)P(E.trim());else return;return}if(!S.ctrl&&!S.meta&&!S.tab&&$)Z({type:"insert-text",text:$})});let P=async($)=>{M(null),Q.add($),Q.reset();try{A($)}catch(S){j1.error("Failed to submit message",S)}};return S0(PA,{flexDirection:"column",width:"100%",flexGrow:1,flexShrink:0,ref:G,children:W.lines.map(($,S)=>S0(PA,{flexShrink:0,flexDirection:"row",children:S0(PA,{flexGrow:1,flexShrink:0,width:"100%",children:S===V.line?E2(qc,{children:[S0(uA,{dimColor:B,children:$S.default.substr($.content,0,V.column)||""}),S0(uA,{inverse:!B,dimColor:B,children:$S.default($.content)[V.column]??" "}),S0(uA,{dimColor:B,children:$S.default.substr($.content,V.column+1)||""})]}):S0(uA,{dimColor:B,children:$.content||" "})})},S))})}function I02(A,Q){let B=$S.default(A),J=Q,D=Q;while(J>0&&/\S/.test(B[J-1]||""))J--;while(D<B.length&&/\S/.test(B[D]||""))D++;let z=B.slice(J,D).join("");if(!z.trim())return null;return{word:z,start:J,end:D}}var vS=hA(O8(),1);vU();var I51=hA(O8(),1);function SQA(){let[A,Q]=I51.useState(null);return I51.useEffect(()=>{let B=eR.subscribe(Q);return()=>{B.unsubscribe()}},[]),{jetbrainsState:A}}YB1();var Hy1=hA(O8(),1);function $QA({viewState:A}){let Q=Hy1.useMemo(()=>{return A.state==="active"?A.fileChanges:void 0},[A]),B=Hy1.useMemo(()=>kh1(Q),[Q]);if(!Q||B.totalFiles===0)return null;let J=B.totalFiles-B.revertedFiles;return E2(PA,{gap:1,children:[E2(uA,{dimColor:!0,children:[J," ",J===1?"file":"files"," changed"]}),(B.totalAdded>0||B.totalModified>0||B.totalRemoved>0)&&E2(uA,{children:[E2(uA,{color:"green",children:["+",B.totalAdded]}),E2(uA,{color:"yellow",children:[" ~",B.totalModified]}),E2(uA,{color:"red",children:[" -",B.totalRemoved]})]})]})}import vQA from"node:path";function kQA({jetbrainsStatus:A}){if(!A||!A.enabled)return null;let Q=process.cwd(),B=A.productName&&A.openFile&&A.workspace===Q,J;if(!A.productName)J=" IDE Not Running. To fix this problem, start your JetBrains IDE, exit this session and run `amp threads continue`.";else if(!A.workspace&&!A.openFile)J=" No Open File. To fix this problem, open a project and open a file in your JetBrains IDE.";else if(!A.workspace&&A.openFile){let D=vQA.basename(A.openFile);if(A.openFile.includes("!/"))J=` External File Open. The open file '${A.openFile}' does not belong to your project root. To fix this problem, open a file in your project sources and try again.`;else J=` Project Detection Failed. Failed to map your open file '${D}' to a project root directory. Please note that multi-root projects are not supported at the moment. Please report a bug on https://ampcode.com/discord and include relevant logs from ~/.cache/amp/logs/cli.log`}else if(!A.openFile)J=" No Open File. To fix this problem, open a file in your project.";else if(A.workspace!==Q)J=` Project Mismatch. The currently open project "${A.workspace}" does not match the working directory of Amp CLI ("${Q}").`;return S0(PA,{gap:B?1:2,children:E2(uA,{color:B?"green":"red",children:[B?"✓":"×"," ",A.productName??"JetBrains"," ",B?"• "+vQA.basename(A.openFile??""):J]})})}var M51=hA(O8(),1);function fQA(){let[A,Q]=M51.useState(0);M51.useEffect(()=>{let D=setInterval(()=>{Q((z)=>z+1)},200);return()=>clearInterval(D)},[]);let B=[{char:"∿",dim:!1},{char:"∾",dim:!1},{char:"∽",dim:!1},{char:"≋",dim:!1},{char:"≈",dim:!1},{char:"∼",dim:!1}],J=B[A%B.length];return S0(uA,{dimColor:J.dim,children:J.char})}var M02=0.8,N02=0.9;function yQA({tokenUsage:A}){let Q=A.totalInputTokens/A.maxInputTokens,B=Math.round(Q*100),J=Math.max(0,Math.min(B,100)),D="▁▂▃▄▅▆▇█",z=Math.floor(J*8/100),G="▁▂▃▄▅▆▇█"[Math.max(0,Math.min(z,7))],X=`${J}%`,K,Y=bQA(Q);if(Y==="danger")K="red";else if(Y==="warning")K="yellow";return S0(uA,{color:K,children:X})}function bQA(A){if(A>=N02)return"danger";else if(A>=M02)return"warning";return!1}function gQA(A){let Q=A.totalInputTokens/A.maxInputTokens;return bQA(Q)}function xQA({threadViewState:A,tokenUsage:Q,waitingForConfirmation:B,showingEphemeralError:J}){if(!A||A.state!=="active")return null;let D=null,z=Q?gQA(Q):!1,Z=!1;if(A.summaryState==="summarizing")D="Compacting...";else if(A.inferenceState==="running")D="Running inference...";else if(A.interactionState==="tool-running")D="Running tools...";else if(!J&&z==="warning")D="Context window is almost full. Ctrl-O to compact thread.",Z=!0;else if(!J&&z==="danger")D="Context window is close to full. Ctrl-O to compact thread.",Z=!0;if(!D)return null;let G=()=>{if(A.inferenceState==="running"&&A.interactionState!=="tool-running")return"blueBright";if(A.interactionState==="tool-running")return"greenBright";return"default"},X=()=>{if(Z&&z==="warning")return"yellow";if(Z&&z==="danger")return"red";if(A.inferenceState==="cancelled")return"dim";return"default"},K=A.inferenceState!=="cancelled"&&!Z&&!B;return E2(PA,{flexDirection:"row",gap:1,children:[K&&S0(uA,{color:G(),children:S0(fQA,{})}),S0(uA,{italic:!Z&&A.inferenceState==="cancelled",color:X(),children:D})]})}function hQA({view:A,threadViewState:Q,threadTokenUsage:B,hasCompletedMessages:J,width:D}){let{jetbrainsState:z}=SQA(),Z=vS.useRef(null),{stdout:G}=Kc(),[X,K]=vS.useState(G.columns);vS.useEffect(()=>{if(Z.current){let{width:F}=Yc(Z.current);K(F)}},[G.columns]);let Y=D||X,q=Y&&Y<60;return E2(PA,{gap:2,marginLeft:2,ref:Z,children:[E2(PA,{flexGrow:1,flexDirection:"row",gap:2,children:[S0(xQA,{threadViewState:Q,tokenUsage:B,waitingForConfirmation:A==="confirming"||A==="ephemeral-error",showingEphemeralError:A==="ephemeral-error"}),E2(PA,{children:[A==="confirming-exit"&&S0(uA,{dimColor:!0,children:"Ctrl+C again to exit"}),J&&A==="running"&&!q&&S0(uA,{dimColor:!0,children:"Ctrl+R to expand"})]})]}),E2(PA,{flexGrow:0,gap:2,children:[S0(kQA,{jetbrainsStatus:z}),!q&&S0($QA,{viewState:Q}),B&&S0(yQA,{tokenUsage:B})]})]})}l6();P0.level=1;var C02={code:P0.white,codespan:P0.white,blockquote:P0.gray.italic,html:P0.gray,heading:P0.bold,firstHeading:P0.bold,hr:P0.reset,table:P0.reset,paragraph:P0.reset,strong:P0.bold,em:P0.italic,del:P0.dim.gray.strikethrough,link:P0.cyan,href:P0.cyan,text:P0.reset,unescape:!0,emoji:!0,width:80,showSectionPrefix:!0,reflowText:!1,tab:4,tableOptions:{wordWrap:!0,wrapOnWordBoundary:!1,style:{head:["bold"],border:["grey"],compact:!1}}},V02={keyword:P0.bold,built_in:P0.dim,type:P0.dim,literal:P0.italic,number:P0.reset,regexp:P0.dim.italic,string:P0.dim,subst:P0.reset,symbol:P0.reset,class:P0.bold,function:P0.reset,title:P0.reset,params:P0.reset,comment:P0.dim.italic,doctag:P0.dim.italic,meta:P0.dim,"meta-keyword":P0.reset,"meta-string":P0.reset,section:P0.reset,tag:P0.dim,name:P0.bold,"builtin-name":P0.reset,attr:P0.dim,attribute:P0.reset,variable:P0.reset,bullet:P0.reset,code:P0.reset,emphasis:P0.italic,strong:P0.bold,formula:P0.reset,link:P0.underline,quote:P0.reset,"selector-tag":P0.reset,"selector-id":P0.reset,"selector-class":P0.reset,"selector-attr":P0.reset,"selector-pseudo":P0.reset,"template-tag":P0.reset,"template-variable":P0.reset,addition:P0.bold.underline,deletion:P0.dim.strikethrough,default:P0.reset};w9.use(F91({...C02,reflowText:!1},{ignoreIllegals:!0,theme:V02}));function N51({children:A}){let Q;try{Q=w9(A,{async:!1}).trimEnd()}catch(B){j1.error("Markdown rendering failed",B,{input:A}),Q=A}return S0(uA,{children:Q})}function mQA({message:A}){let Q=A.content.filter((B)=>B.type==="thinking"||B.type==="text");if(!Q.length)return null;return S0(PA,{flexDirection:"column",marginBottom:1,children:Q.map((B,J)=>{let D=J>0?1:0;if(B.type==="thinking")return S0(W51,{thinking:B.thinking},J);else return S0(PA,{marginTop:D,children:S0(N51,{children:B.text})},J);return null})})}function uQA({message:A,marginTop:Q=0}){if(!A.content.some((D)=>D.type==="text"||D.type==="thinking"||D.type==="summary"&&D.summary.type==="message"))return null;let J=A.role==="assistant"&&A.state.type==="cancelled";return E2(PA,{flexDirection:"column",gap:1,marginTop:Q,children:[A.content.map((D,z)=>{if(D.type==="text")switch(A.role){case"assistant":return S0(PA,{flexDirection:"column",children:S0(N51,{children:D.text})},z);case"user":return S0(PA,{borderStyle:"bold",borderColor:"green",borderLeft:!0,borderTop:!1,borderBottom:!1,borderRight:!1,paddingLeft:1,children:S0(uA,{color:"green",italic:!0,children:D.text})},z)}else if(D.type==="thinking")return S0(W51,{thinking:D.thinking},z);else if(D.type==="summary"&&D.summary.type==="message")return S0(PA,{children:E2(uA,{color:"grey",italic:!0,children:["Summary: ",D.summary.summary]})},z);else return null}),J&&S0(PA,{children:S0(uA,{italic:!0,dimColor:!0,children:"Cancelled"})})]})}function pQA({todos:A}){if(!Array.isArray(A)||A.length===0)return null;return E2(PA,{borderStyle:"round",borderColor:"dim",paddingX:1,flexDirection:"column",flexGrow:1,flexShrink:0,children:[S0(PA,{children:S0(uA,{dimColor:!0,bold:!0,children:"TODOs"})}),A.map((Q,B)=>S0(PA,{gap:1,children:E2(uA,{dimColor:!0,wrap:"truncate",children:[S0(uA,{children:"• "}),S0(uA,{bold:Q.status==="in-progress",strikethrough:Q.status==="completed",children:Q.content})]})},Q.id))]})}BQ();VD();var C51=hA(O8(),1);VD();function cQA(A){let Q=[],B=new Map;for(let J of A.messages)for(let D of J.content)if(D.type==="tool_use")B.set(D.id,D);else if(D.type==="tool_result"){let z=B.get(D.toolUseID);if(z&&!QQ(D.run))Q.push({toolUse:z,toolRun:D.run})}return Q}function lQA(A,Q){let B=A.messages.at(-1);if(B?.content.some((D)=>D.type==="tool_result"&&D.run.status==="blocked-on-user"))return{type:"idle"};if(Q.filter((D)=>D.toolRun.status==="in-progress").length>0)return{type:"running-tools",startTime:Date.now()};let J=dq(A);if(J)return J;if(B&&B.role==="assistant"&&B.state.type==="complete"&&B.state.stopReason==="end_turn")return{type:"idle"};return{type:"idle"}}function O02(A,Q){switch(Q.type){case"subthread-patch":{let{thread:B,subthread:J}=Q,D=cQA(B),z=A.subagents[J.threadID]??{subThreadID:B.id,agentNumber:J.sequenceNumber,taskDescription:J.toolUse.input?.description||"Task",isCompleted:!1,agentState:{type:"idle"}},Z=lQA(B,D),G=z.agentState===Z?z:{...z,agentState:Z},X={...A.tools};return Object.entries(X).forEach(([K,Y])=>{if(Y.subthreadID===B.id&&QQ(Y.toolRun))delete X[K]}),D.forEach(({toolUse:K,toolRun:Y})=>{X[K.id]={id:K.id,subthreadID:B.id,toolRun:Y,toolUse:K}}),{subagents:{...A.subagents,[J.threadID]:G},tools:X,transcript:A.transcript,viewState:A.viewState,streamingAssistantMessage:A.streamingAssistantMessage,todosList:A.todosList,mainThread:A.mainThread}}case"main-thread-patch":{let{thread:B,subthreads:J,workerStatus:D}=Q,z=KX(B),Z={...A.subagents};for(let F of J){let E=Z[F.threadID];if(!E)continue;let{isCompleted:H,result:w}=T02(z,F.toolUse.id);Z[F.threadID]={...E,isCompleted:H,result:w||E.result}}let G=R02(A.transcript,B),X=Mb(B,D),K=L02(B),Y=Qd({messages:B.messages}),q=Array.isArray(Y)?Y:[];return{...A,subagents:Z,transcript:G,viewState:X,streamingAssistantMessage:K,todosList:q,mainThread:B}}case"worker-status-change":{if(!A.mainThread)return A;let B=Mb(A.mainThread,Q.workerStatus);if(B===A.viewState)return A;return{...A,viewState:B}}default:return A}}function dQA(A,Q){let[B,J]=C51.useReducer(O02,{subagents:{},tools:{},transcript:{items:[],activeTools:[]},viewState:{state:"initial",interactionState:!1},streamingAssistantMessage:null,todosList:[],mainThread:null});return C51.useEffect(()=>{let D=new Map,z=[],Z={state:"initial"},G=A.observePatches(Q.thread.id).pipe(jB1()).subscribe((Y)=>{J({type:"main-thread-patch",thread:Y,subthreads:z,workerStatus:Z})}),X=Q.status.subscribe((Y)=>{Z=Y,J({type:"worker-status-change",workerStatus:Y})}),K=Q.subthreads.subscribe((Y)=>{z=Y;for(let q of Y){if(D.has(q.toolUse.id))continue;let F=A.observePatches(q.threadID).pipe(jB1()).subscribe((E)=>{J({type:"subthread-patch",thread:E,subthread:q})});D.set(q.toolUse.id,F)}});return()=>{G.unsubscribe(),X.unsubscribe(),K.unsubscribe(),D.forEach((Y)=>Y.unsubscribe())}},[A,Q]),{transcript:B.transcript,subagents:Object.values(B.subagents),subagentActiveTools:Object.values(B.tools).map((D)=>({toolUse:D.toolUse,toolRun:D.toolRun,subthreadID:D.subthreadID})),viewState:B.viewState,streamingAssistantMessage:B.streamingAssistantMessage,todosList:B.todosList,mainThread:B.mainThread}}function R02(A,Q){let B=[],J=[...A.items],D=new Set;for(let Z of A.items)D.add(Z.id);let z=new Set;for(let[Z,G]of Q.messages.entries())switch(G.role){case"assistant":if(G.state.type==="streaming"){for(let X of G.content)if(X.type==="tool_use")z.add(X.id);continue}if(!D.has(`assistant-${Z}`))J.push({type:"message",id:`assistant-${Z}`,message:G});break;case"info":if(!D.has(`info-${Z}`))J.push({type:"message",id:`info-${Z}`,message:G});break;case"user":if(!D.has(`user-${Z}`))J.push({type:"message",id:`user-${Z}`,message:G});for(let X of G.content)if(X.type==="tool_result"){let K=I4(Q,X.toolUseID);if(!K)throw new Error(`(bug) tool use ${X.toolUseID} not found`);if(z.has(X.toolUseID)||!QQ(X.run)){if(K.name!==U5)B.push({toolUse:K,toolRun:X.run});continue}if(!D.has(X.toolUseID))J.push({type:"toolResult",id:X.toolUseID,toolUse:K,toolResult:X})}break}return{items:J,activeTools:B}}function L02(A){let Q=P5(A,"assistant");return Q?.state.type==="streaming"?Q:null}function T02(A,Q){let B=A.get(Q),J=(B&&QQ(B.run))??!1,D=B&&B.run,z=D&&D.status==="done"?D.result:void 0;return{isCompleted:J,result:z}}var V51=hA(O8(),1);function iQA(){return S0(PA,{flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:3,marginLeft:4,children:S0(PA,{children:S0(uA,{color:"green",bold:!0,children:"Welcome to Amp"})})})}function aQA(){let[A,Q]=V51.useState(0),B=["Amp","AMP","AmP","amP","aMP","AMp"];return V51.useEffect(()=>{let J=setInterval(()=>{Q((D)=>(D+1)%B.length)},50);return()=>clearInterval(J)},[B.length]),S0(PA,{flexDirection:"column",alignItems:"flex-start",justifyContent:"center",minHeight:3,marginLeft:4,children:S0(PA,{children:E2(uA,{color:"green",bold:!0,children:["Welcome to ",B[A]]})})})}var j02=200;function rQA({threadService:A,history:Q,worker:B,sendToolConfirmation:J,sendUserMessage:D,exit:z,cancel:Z,ampURL:G}){let[X]=SS(),{viewState:K,subagents:Y,subagentActiveTools:q,transcript:F,streamingAssistantMessage:E,todosList:H,mainThread:w}=dQA(A,B),W=SQ.useMemo(()=>E?F.items.concat({id:"streaming-assistant",type:"message",message:E}):F.items,[E,F.items]),I=w?.title||"Untitled",M=SQ.useMemo(()=>w?gR(w):void 0,[w]);SQ.useEffect(()=>{if(w?.title){let J1=process.cwd().replace(process.env.HOME||"","~");process.stdout.write(`\x1B]0;amp - ${w.title} - ${J1}\x07`)}},[w?.title]);let N=SQ.useRef(new r2),[V,L]=SQ.useState({baseView:"running",rerendering:!1,resizeCounter:0,dismissedEphemeralError:null}),T=SQ.useRef(null),R=SQ.useRef(null),[j,P]=LQA(),$=SQ.useCallback(()=>{L((J1)=>({...J1,rerendering:!0})),process.stdout.write("\x1B[2J\x1B[3J\x1B[H"),N.current.next()},[L,N]),S=SQ.useCallback((J1)=>{P({type:"clear"}),D(J1)},[P,D]);SQ.useEffect(()=>{return process.stdout.on("resize",$),()=>{process.stdout.off("resize",$)}},[$]),SQ.useEffect(()=>{let J1=N.current.pipe(jJ(j02)).subscribe(()=>{L((D1)=>({...D1,rerendering:!1,resizeCounter:D1.resizeCounter+1}))});return()=>{J1.unsubscribe()}},[N,L]),SQ.useEffect(()=>{let J1=N.current,D1=T.current;return()=>{if(J1.complete(),D1)clearTimeout(D1)}},[N]);let x=[...F.activeTools,...q],u=x.filter((J1)=>J1.toolRun.status==="blocked-on-user"),_=SQ.useMemo(()=>qQA(u),[u]),{hasCompletions:f,completions:v,selectCompletion:y}=Z51(),k=SQ.useMemo(()=>{if(K.state!=="active"||!K.ephemeralError)return null;if(V.dismissedEphemeralError===K.ephemeralError)return null;return K.ephemeralError},[K,V.dismissedEphemeralError]),m=k!==null?"ephemeral-error":_!==null?"confirming":f?"picking-file":V.baseView,l=(J1)=>{if(!_||_.type!=="tool-use")return;if(_.tools.length>0){let D1=_.tools[0],w1=Array.from(J1==="always"?D1.toAllow??[]:[]);J(D1.useBlock.id,J1==="yes"||J1==="always",w1,_.subthreadID)}},d=(J1)=>{switch(J1){case"compact":L((D1)=>({...D1,dismissedEphemeralError:null})),B.summarizeThread();break;case"dismiss":L((D1)=>({...D1,dismissedEphemeralError:k}));break;case"retry":L((D1)=>({...D1,dismissedEphemeralError:null})),B.retry();break;default:j1.warn("action:",{action:J1})}};tE((J1,D1)=>{if(D1.ctrlC){if(V.baseView==="confirming-exit"){if(T.current)clearTimeout(T.current),T.current=null;z()}else{if(L((a)=>({...a,baseView:"confirming-exit"})),T.current)clearTimeout(T.current);let w1=setTimeout(()=>{L((a)=>({...a,baseView:"running"})),T.current=null},1000);T.current=w1}return}if(m==="expanded-view"||m==="confirming"||m==="ephemeral-error")return;if(D1.escape)if(m==="picking-file")return;else Z();else if(D1.ctrl&&J1.toLowerCase()==="r")L((w1)=>({...w1,baseView:"expanded-view"}));else if(D1.ctrl&&J1.toLowerCase()==="o")B.summarizeThread();else if(D1.ctrlL)$()});let e=X>100,n=V.rerendering&&F.items.length===0?1:"auto",z1="resize-key"+V.resizeCounter,o=[{type:"welcome",id:"welcome"},...F.items];if(V.baseView==="expanded-view"){let J1=W.filter((D1)=>D1.type==="message").map((D1)=>D1.message);return S0(PQA,{threadName:I,messages:J1,onExit:()=>L((D1)=>({...D1,baseView:"running"}))})}return E2(PA,{flexDirection:"column",minHeight:"100%",flexGrow:1,height:n,children:[S0(J51,{items:o,children:(J1,D1)=>{if(J1.type==="welcome")return S0(iQA,{},"welcome");let w1=D1===0?0:1;return J1.type==="message"?S0(uQA,{message:J1.message,marginTop:w1},J1.id):S0(AQA,{toolUse:J1.toolUse,toolResult:J1.toolResult,marginTop:w1},J1.id)}},z1),E2(PA,{flexDirection:"column",marginTop:o.length>1?1:0,children:[E&&S0(mQA,{message:E}),S0(s7A,{activeTools:x,subagents:Y}),E2(PA,{flexDirection:e?"row-reverse":"column",children:[H.length>0&&S0(PA,{ref:R,flexGrow:0,flexShrink:0,width:e?"50%":"100%",children:S0(pQA,{todos:H})}),m==="ephemeral-error"&&k?S0(jQA,{error:k,onResponse:d,ampURL:G}):m==="confirming"&&_?S0(EQA,{currentConfirmation:_,onConfirmationResponse:l}):S0(PA,{flexGrow:1,borderStyle:"round",paddingX:1,children:S0(_QA,{onSubmit:S,history:Q,disabled:m==="confirming"||m==="ephemeral-error"||K.state==="active"&&K.summaryState==="summarizing",viewState:K,todosBoxRef:R,editorState:j,editorDispatch:P})})]}),S0(hQA,{view:m,threadViewState:K,threadTokenUsage:M,hasCompletedMessages:F.items.length>0}),S0(P02,{completions:v.options,onSelect:y})]})]})}function P02({completions:A,onSelect:Q}){let B=Math.min(10),J=A.slice(0,B).map((z)=>({value:z,label:z}));if(J.length===0)return null;return S0(PA,{marginBottom:1,children:S0(RS,{title:"Insert file name:",options:J,onSelect:(z)=>{if(z===null)return;let Z=A.find((G)=>G===z);if(!Z)return;Q(Z)}})})}function nQA(A){let{worker:Q,threadID:B,settingsStorage:J,pipedInput:D,workerDeps:z,fuzzyServer:Z}=A,[G,X]=yK.useState(!1),K=yK.useCallback((H,w,W,I)=>{return _02(H,w,W,I,J,Q,z)},[J,Q,z]),Y=yK.useCallback(async(H)=>{await Q.handle({type:"user:message",message:{content:[{type:"text",text:H}]}})},[Q]),{exit:q}=Gy1(),F=yK.useCallback(()=>{XQ.cancel(B)},[B]);yK.useEffect(()=>{let H=setTimeout(()=>{X(!0)},500);return()=>clearTimeout(H)},[]);let E=yK.useRef(!1);if(yK.useEffect(()=>{if(E.current)return;if(D)E.current=!0,Y(D),X(!0)},[D,Y]),!G)return S0(aQA,{});return S0(c7A,{fuzzyServer:Z,children:S0(rQA,{history:A.history,threadService:A.threadService,worker:Q,sendToolConfirmation:K,sendUserMessage:Y,exit:q,cancel:F,ampURL:A.ampURL})})}async function _02(A,Q,B,J,D,z,Z){let G=B&&B.length>0||!1;if(B&&B.length>0)await E6(n2).then((K)=>K.settings["experimental.commandApproval.enabled"]?"experimental.commandApproval.allow":"commands.allowlist").then((K)=>{D.get(K,"global").then((Y)=>{let q=[...Y??[],...B];return D.set(K,q,"global")}).catch((Y)=>{j1.error("Failed to update allowlist",Y)})});let X={type:"user:tool-input",toolUse:A,value:{accepted:Q||G}};if(J)(await XQ.getOrCreateForThread(Z,J)).handle(X);else z.handle(X)}global.React=wy1.default;function sQA(A){return P0.level=1,Zy1(wy1.default.createElement(nQA,{...A}),{patchConsole:!0,exitOnCtrlC:!1,stdout:A.stdout,stdin:A.stdin}).waitUntilExit().then(()=>{let{threadID:B,ampURL:J}=A,D=`${J.replace(/\/$/,"")}/threads/${B}`;A.stdout.write(`
|
4603
|
+
`});return}if(S.return&&!S.shift&&!S.meta&&!S.ctrl){if(F)return;if(E.endsWith("\\")){Z({type:"replace-text",startPos:E.length-1,endPos:E.length,replacement:`
|
4604
|
+
`});return}if(E.trim().length>0)P(E.trim());else return;return}if(!S.ctrl&&!S.meta&&!S.tab&&$)Z({type:"insert-text",text:$})});let P=async($)=>{M(null),Q.add($),Q.reset();try{A($)}catch(S){j1.error("Failed to submit message",S)}};return S0(PA,{flexDirection:"column",width:"100%",flexGrow:1,flexShrink:0,ref:G,children:W.lines.map(($,S)=>S0(PA,{flexShrink:0,flexDirection:"row",children:S0(PA,{flexGrow:1,flexShrink:0,width:"100%",children:S===V.line?E2(qc,{children:[S0(uA,{dimColor:B,children:$S.default.substr($.content,0,V.column)||""}),S0(uA,{inverse:!B,dimColor:B,children:$S.default($.content)[V.column]??" "}),S0(uA,{dimColor:B,children:$S.default.substr($.content,V.column+1)||""})]}):S0(uA,{dimColor:B,children:$.content||" "})})},S))})}function I02(A,Q){let B=$S.default(A),J=Q,D=Q;while(J>0&&/\S/.test(B[J-1]||""))J--;while(D<B.length&&/\S/.test(B[D]||""))D++;let z=B.slice(J,D).join("");if(!z.trim())return null;return{word:z,start:J,end:D}}var vS=hA(O8(),1);vU();var I51=hA(O8(),1);function SQA(){let[A,Q]=I51.useState(null);return I51.useEffect(()=>{let B=eR.subscribe(Q);return()=>{B.unsubscribe()}},[]),{jetbrainsState:A}}YB1();var Hy1=hA(O8(),1);function $QA({viewState:A}){let Q=Hy1.useMemo(()=>{return A.state==="active"?A.fileChanges:void 0},[A]),B=Hy1.useMemo(()=>kh1(Q),[Q]);if(!Q||B.totalFiles===0)return null;let J=B.totalFiles-B.revertedFiles;return E2(PA,{gap:1,children:[E2(uA,{dimColor:!0,children:[J," ",J===1?"file":"files"," changed"]}),(B.totalAdded>0||B.totalModified>0||B.totalRemoved>0)&&E2(uA,{children:[E2(uA,{color:"green",children:["+",B.totalAdded]}),E2(uA,{color:"yellow",children:[" ~",B.totalModified]}),E2(uA,{color:"red",children:[" -",B.totalRemoved]})]})]})}import vQA from"node:path";function kQA({jetbrainsStatus:A}){if(!A||!A.enabled)return null;let Q=process.cwd(),B=A.productName&&A.openFile&&A.workspace===Q,J;if(!A.productName)J=" IDE Not Running. To fix this problem, start your JetBrains IDE, exit this session and run `amp threads continue`.";else if(!A.workspace&&!A.openFile)J=" No Open File. To fix this problem, open a project and open a file in your JetBrains IDE.";else if(!A.workspace&&A.openFile){let D=vQA.basename(A.openFile);if(A.openFile.includes("!/"))J=` External File Open. The open file '${A.openFile}' does not belong to your project root. To fix this problem, open a file in your project sources and try again.`;else J=` Project Detection Failed. Failed to map your open file '${D}' to a project root directory. Please note that multi-root projects are not supported at the moment. Please report a bug on https://ampcode.com/discord and include relevant logs from ~/.cache/amp/logs/cli.log`}else if(!A.openFile)J=" No Open File. To fix this problem, open a file in your project.";else if(A.workspace!==Q)J=` Project Mismatch. The currently open project "${A.workspace}" does not match the working directory of Amp CLI ("${Q}").`;return S0(PA,{gap:B?1:2,children:E2(uA,{color:B?"green":"red",children:[B?"✓":"×"," ",A.productName??"JetBrains"," ",B?"• "+vQA.basename(A.openFile??""):J]})})}var M51=hA(O8(),1);function fQA(){let[A,Q]=M51.useState(0);M51.useEffect(()=>{let D=setInterval(()=>{Q((z)=>z+1)},200);return()=>clearInterval(D)},[]);let B=[{char:"∿",dim:!1},{char:"∾",dim:!1},{char:"∽",dim:!1},{char:"≋",dim:!1},{char:"≈",dim:!1},{char:"∼",dim:!1}],J=B[A%B.length];return S0(uA,{dimColor:J.dim,children:J.char})}var M02=0.8,N02=0.9;function yQA({tokenUsage:A}){let Q=A.totalInputTokens/A.maxInputTokens,B=Math.round(Q*100),J=Math.max(0,Math.min(B,100)),D="▁▂▃▄▅▆▇█",z=Math.floor(J*8/100),G="▁▂▃▄▅▆▇█"[Math.max(0,Math.min(z,7))],X=`${J}%`,K,Y=bQA(Q);if(Y==="danger")K="red";else if(Y==="warning")K="yellow";return S0(uA,{color:K,children:X})}function bQA(A){if(A>=N02)return"danger";else if(A>=M02)return"warning";return!1}function gQA(A){let Q=A.totalInputTokens/A.maxInputTokens;return bQA(Q)}function xQA({threadViewState:A,tokenUsage:Q,waitingForConfirmation:B,showingEphemeralError:J}){if(!A||A.state!=="active")return null;let D=null,z=Q?gQA(Q):!1,Z=!1;if(A.summaryState==="summarizing")D="Compacting...";else if(A.inferenceState==="running")D="Running inference...";else if(A.interactionState==="tool-running")D="Running tools...";else if(!J&&z==="warning")D="Context window is almost full. Ctrl-O to compact thread.",Z=!0;else if(!J&&z==="danger")D="Context window is close to full. Ctrl-O to compact thread.",Z=!0;if(!D)return null;let G=()=>{if(A.inferenceState==="running"&&A.interactionState!=="tool-running")return"blueBright";if(A.interactionState==="tool-running")return"greenBright";return"default"},X=()=>{if(Z&&z==="warning")return"yellow";if(Z&&z==="danger")return"red";if(A.inferenceState==="cancelled")return"dim";return"default"},K=A.inferenceState!=="cancelled"&&!Z&&!B;return E2(PA,{flexDirection:"row",gap:1,children:[K&&S0(uA,{color:G(),children:S0(fQA,{})}),S0(uA,{italic:!Z&&A.inferenceState==="cancelled",color:X(),children:D})]})}function hQA({view:A,threadViewState:Q,threadTokenUsage:B,hasCompletedMessages:J,width:D}){let{jetbrainsState:z}=SQA(),Z=vS.useRef(null),{stdout:G}=Kc(),[X,K]=vS.useState(G.columns);vS.useEffect(()=>{if(Z.current){let{width:F}=Yc(Z.current);K(F)}},[G.columns]);let Y=D||X,q=Y&&Y<60;return E2(PA,{gap:2,marginLeft:2,ref:Z,children:[E2(PA,{flexGrow:1,flexDirection:"row",gap:2,children:[S0(xQA,{threadViewState:Q,tokenUsage:B,waitingForConfirmation:A==="confirming"||A==="ephemeral-error",showingEphemeralError:A==="ephemeral-error"}),E2(PA,{children:[A==="confirming-exit"&&S0(uA,{dimColor:!0,children:"Ctrl+C again to exit"}),J&&A==="running"&&!q&&S0(uA,{dimColor:!0,children:"Ctrl+R to expand"})]})]}),E2(PA,{flexGrow:0,gap:2,children:[S0(kQA,{jetbrainsStatus:z}),!q&&S0($QA,{viewState:Q}),B&&S0(yQA,{tokenUsage:B})]})]})}l6();P0.level=1;var C02={code:P0.white,codespan:P0.white,blockquote:P0.gray.italic,html:P0.gray,heading:P0.bold,firstHeading:P0.bold,hr:P0.reset,table:P0.reset,paragraph:P0.reset,strong:P0.bold,em:P0.italic,del:P0.dim.gray.strikethrough,link:P0.cyan,href:P0.cyan,text:P0.reset,unescape:!0,emoji:!0,width:80,showSectionPrefix:!0,reflowText:!1,tab:4,tableOptions:{wordWrap:!0,wrapOnWordBoundary:!1,style:{head:["bold"],border:["grey"],compact:!1}}},V02={keyword:P0.bold,built_in:P0.dim,type:P0.dim,literal:P0.italic,number:P0.reset,regexp:P0.dim.italic,string:P0.dim,subst:P0.reset,symbol:P0.reset,class:P0.bold,function:P0.reset,title:P0.reset,params:P0.reset,comment:P0.dim.italic,doctag:P0.dim.italic,meta:P0.dim,"meta-keyword":P0.reset,"meta-string":P0.reset,section:P0.reset,tag:P0.dim,name:P0.bold,"builtin-name":P0.reset,attr:P0.dim,attribute:P0.reset,variable:P0.reset,bullet:P0.reset,code:P0.reset,emphasis:P0.italic,strong:P0.bold,formula:P0.reset,link:P0.underline,quote:P0.reset,"selector-tag":P0.reset,"selector-id":P0.reset,"selector-class":P0.reset,"selector-attr":P0.reset,"selector-pseudo":P0.reset,"template-tag":P0.reset,"template-variable":P0.reset,addition:P0.bold.underline,deletion:P0.dim.strikethrough,default:P0.reset};w9.use(F91({...C02,reflowText:!1},{ignoreIllegals:!0,theme:V02}));function N51({children:A}){let Q;try{Q=w9(A,{async:!1}).trimEnd()}catch(B){j1.error("Markdown rendering failed",B,{input:A}),Q=A}return S0(uA,{children:Q})}function mQA({message:A}){let Q=A.content.filter((B)=>B.type==="thinking"||B.type==="text");if(!Q.length)return null;return S0(PA,{flexDirection:"column",marginBottom:1,children:Q.map((B,J)=>{let D=J>0?1:0;if(B.type==="thinking")return S0(W51,{thinking:B.thinking},J);else return S0(PA,{marginTop:D,children:S0(N51,{children:B.text})},J);return null})})}function uQA({message:A,marginTop:Q=0}){if(!A.content.some((D)=>D.type==="text"||D.type==="thinking"||D.type==="summary"&&D.summary.type==="message"))return null;let J=A.role==="assistant"&&A.state.type==="cancelled";return E2(PA,{flexDirection:"column",gap:1,marginTop:Q,children:[A.content.map((D,z)=>{if(D.type==="text")switch(A.role){case"assistant":return S0(PA,{flexDirection:"column",children:S0(N51,{children:D.text})},z);case"user":return S0(PA,{borderStyle:"bold",borderColor:"green",borderLeft:!0,borderTop:!1,borderBottom:!1,borderRight:!1,paddingLeft:1,children:S0(uA,{color:"green",italic:!0,children:D.text})},z)}else if(D.type==="thinking")return S0(W51,{thinking:D.thinking},z);else if(D.type==="summary"&&D.summary.type==="message")return S0(PA,{children:E2(uA,{color:"grey",italic:!0,children:["Summary: ",D.summary.summary]})},z);else return null}),J&&S0(PA,{children:S0(uA,{italic:!0,dimColor:!0,children:"Cancelled"})})]})}function pQA({todos:A}){if(!Array.isArray(A)||A.length===0)return null;return E2(PA,{borderStyle:"round",borderColor:"dim",paddingX:1,flexDirection:"column",flexGrow:1,flexShrink:0,children:[S0(PA,{children:S0(uA,{dimColor:!0,bold:!0,children:"TODOs"})}),A.map((Q,B)=>S0(PA,{gap:1,children:E2(uA,{dimColor:!0,wrap:"truncate",children:[S0(uA,{children:"• "}),S0(uA,{bold:Q.status==="in-progress",strikethrough:Q.status==="completed",children:Q.content})]})},Q.id))]})}BQ();VD();var C51=hA(O8(),1);VD();function cQA(A){let Q=[],B=new Map;for(let J of A.messages)for(let D of J.content)if(D.type==="tool_use")B.set(D.id,D);else if(D.type==="tool_result"){let z=B.get(D.toolUseID);if(z&&!QQ(D.run))Q.push({toolUse:z,toolRun:D.run})}return Q}function lQA(A,Q){let B=A.messages.at(-1);if(B?.content.some((D)=>D.type==="tool_result"&&D.run.status==="blocked-on-user"))return{type:"idle"};if(Q.filter((D)=>D.toolRun.status==="in-progress").length>0)return{type:"running-tools",startTime:Date.now()};let J=dq(A);if(J)return J;if(B&&B.role==="assistant"&&B.state.type==="complete"&&B.state.stopReason==="end_turn")return{type:"idle"};return{type:"idle"}}function O02(A,Q){switch(Q.type){case"subthread-patch":{let{thread:B,subthread:J}=Q,D=cQA(B),z=A.subagents[J.threadID]??{subThreadID:B.id,agentNumber:J.sequenceNumber,taskDescription:J.toolUse.input?.description||"Task",isCompleted:!1,agentState:{type:"idle"}},Z=lQA(B,D),G=z.agentState===Z?z:{...z,agentState:Z},X={...A.tools};return Object.entries(X).forEach(([K,Y])=>{if(Y.subthreadID===B.id&&QQ(Y.toolRun))delete X[K]}),D.forEach(({toolUse:K,toolRun:Y})=>{X[K.id]={id:K.id,subthreadID:B.id,toolRun:Y,toolUse:K}}),{subagents:{...A.subagents,[J.threadID]:G},tools:X,transcript:A.transcript,viewState:A.viewState,streamingAssistantMessage:A.streamingAssistantMessage,todosList:A.todosList,mainThread:A.mainThread}}case"main-thread-patch":{let{thread:B,subthreads:J,workerStatus:D}=Q,z=KX(B),Z={...A.subagents};for(let F of J){let E=Z[F.threadID];if(!E)continue;let{isCompleted:H,result:w}=T02(z,F.toolUse.id);Z[F.threadID]={...E,isCompleted:H,result:w||E.result}}let G=R02(A.transcript,B),X=Mb(B,D),K=L02(B),Y=Qd({messages:B.messages}),q=Array.isArray(Y)?Y:[];return{...A,subagents:Z,transcript:G,viewState:X,streamingAssistantMessage:K,todosList:q,mainThread:B}}case"worker-status-change":{if(!A.mainThread)return A;let B=Mb(A.mainThread,Q.workerStatus);if(B===A.viewState)return A;return{...A,viewState:B}}default:return A}}function dQA(A,Q){let[B,J]=C51.useReducer(O02,{subagents:{},tools:{},transcript:{items:[],activeTools:[]},viewState:{state:"initial",interactionState:!1},streamingAssistantMessage:null,todosList:[],mainThread:null});return C51.useEffect(()=>{let D=new Map,z=[],Z={state:"initial"},G=A.observePatches(Q.thread.id).pipe(jB1()).subscribe((Y)=>{J({type:"main-thread-patch",thread:Y,subthreads:z,workerStatus:Z})}),X=Q.status.subscribe((Y)=>{Z=Y,J({type:"worker-status-change",workerStatus:Y})}),K=Q.subthreads.subscribe((Y)=>{z=Y;for(let q of Y){if(D.has(q.toolUse.id))continue;let F=A.observePatches(q.threadID).pipe(jB1()).subscribe((E)=>{J({type:"subthread-patch",thread:E,subthread:q})});D.set(q.toolUse.id,F)}});return()=>{G.unsubscribe(),X.unsubscribe(),K.unsubscribe(),D.forEach((Y)=>Y.unsubscribe())}},[A,Q]),{transcript:B.transcript,subagents:Object.values(B.subagents),subagentActiveTools:Object.values(B.tools).map((D)=>({toolUse:D.toolUse,toolRun:D.toolRun,subthreadID:D.subthreadID})),viewState:B.viewState,streamingAssistantMessage:B.streamingAssistantMessage,todosList:B.todosList,mainThread:B.mainThread}}function R02(A,Q){let B=[],J=[...A.items],D=new Set;for(let Z of A.items)D.add(Z.id);let z=new Set;for(let[Z,G]of Q.messages.entries())switch(G.role){case"assistant":if(G.state.type==="streaming"){for(let X of G.content)if(X.type==="tool_use")z.add(X.id);continue}if(!D.has(`assistant-${Z}`))J.push({type:"message",id:`assistant-${Z}`,message:G});break;case"info":if(!D.has(`info-${Z}`))J.push({type:"message",id:`info-${Z}`,message:G});break;case"user":if(!D.has(`user-${Z}`))J.push({type:"message",id:`user-${Z}`,message:G});for(let X of G.content)if(X.type==="tool_result"){let K=I4(Q,X.toolUseID);if(!K)throw new Error(`(bug) tool use ${X.toolUseID} not found`);if(z.has(X.toolUseID)||!QQ(X.run)){if(K.name!==U5)B.push({toolUse:K,toolRun:X.run});continue}if(!D.has(X.toolUseID))J.push({type:"toolResult",id:X.toolUseID,toolUse:K,toolResult:X})}break}return{items:J,activeTools:B}}function L02(A){let Q=P5(A,"assistant");return Q?.state.type==="streaming"?Q:null}function T02(A,Q){let B=A.get(Q),J=(B&&QQ(B.run))??!1,D=B&&B.run,z=D&&D.status==="done"?D.result:void 0;return{isCompleted:J,result:z}}var V51=hA(O8(),1);function iQA(){return S0(PA,{flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:3,marginLeft:4,children:S0(PA,{children:S0(uA,{color:"green",bold:!0,children:"Welcome to Amp"})})})}function aQA(){let[A,Q]=V51.useState(0),B=["Amp","AMP","AmP","amP","aMP","AMp"];return V51.useEffect(()=>{let J=setInterval(()=>{Q((D)=>(D+1)%B.length)},50);return()=>clearInterval(J)},[B.length]),S0(PA,{flexDirection:"column",alignItems:"flex-start",justifyContent:"center",minHeight:3,marginLeft:4,children:S0(PA,{children:E2(uA,{color:"green",bold:!0,children:["Welcome to ",B[A]]})})})}var j02=200;function rQA({threadService:A,history:Q,worker:B,sendToolConfirmation:J,sendUserMessage:D,exit:z,cancel:Z,ampURL:G}){let[X]=SS(),{viewState:K,subagents:Y,subagentActiveTools:q,transcript:F,streamingAssistantMessage:E,todosList:H,mainThread:w}=dQA(A,B),W=SQ.useMemo(()=>E?F.items.concat({id:"streaming-assistant",type:"message",message:E}):F.items,[E,F.items]),I=w?.title||"Untitled",M=SQ.useMemo(()=>w?gR(w):void 0,[w]);SQ.useEffect(()=>{if(w?.title){let J1=process.cwd().replace(process.env.HOME||"","~");process.stdout.write(`\x1B]0;amp - ${w.title} - ${J1}\x07`)}},[w?.title]);let N=SQ.useRef(new r2),[V,L]=SQ.useState({baseView:"running",rerendering:!1,resizeCounter:0,dismissedEphemeralError:null}),T=SQ.useRef(null),R=SQ.useRef(null),[j,P]=LQA(),$=SQ.useCallback(()=>{L((J1)=>({...J1,rerendering:!0})),process.stdout.write("\x1B[2J\x1B[3J\x1B[H"),N.current.next()},[L,N]),S=SQ.useCallback((J1)=>{P({type:"clear"}),D(J1)},[P,D]);SQ.useEffect(()=>{return process.stdout.on("resize",$),()=>{process.stdout.off("resize",$)}},[$]),SQ.useEffect(()=>{let J1=N.current.pipe(jJ(j02)).subscribe(()=>{L((D1)=>({...D1,rerendering:!1,resizeCounter:D1.resizeCounter+1}))});return()=>{J1.unsubscribe()}},[N,L]),SQ.useEffect(()=>{let J1=N.current,D1=T.current;return()=>{if(J1.complete(),D1)clearTimeout(D1)}},[N]);let x=[...F.activeTools,...q],u=x.filter((J1)=>J1.toolRun.status==="blocked-on-user"),_=SQ.useMemo(()=>qQA(u),[u]),{hasCompletions:f,completions:v,selectCompletion:y}=Z51(),k=SQ.useMemo(()=>{if(K.state!=="active"||!K.ephemeralError)return null;if(V.dismissedEphemeralError===K.ephemeralError)return null;return K.ephemeralError},[K,V.dismissedEphemeralError]),m=k!==null?"ephemeral-error":_!==null?"confirming":f?"picking-file":V.baseView,l=(J1)=>{if(!_||_.type!=="tool-use")return;if(_.tools.length>0){let D1=_.tools[0],w1=Array.from(J1==="always"?D1.toAllow??[]:[]);J(D1.useBlock.id,J1==="yes"||J1==="always",w1,_.subthreadID)}},d=(J1)=>{switch(J1){case"compact":L((D1)=>({...D1,dismissedEphemeralError:null})),B.summarizeThread();break;case"dismiss":L((D1)=>({...D1,dismissedEphemeralError:k}));break;case"retry":L((D1)=>({...D1,dismissedEphemeralError:null})),B.retry();break;default:j1.warn("action:",{action:J1})}};tE((J1,D1)=>{if(D1.ctrlC){if(V.baseView==="confirming-exit"){if(T.current)clearTimeout(T.current),T.current=null;z()}else{if(L((a)=>({...a,baseView:"confirming-exit"})),T.current)clearTimeout(T.current);let w1=setTimeout(()=>{L((a)=>({...a,baseView:"running"})),T.current=null},1000);T.current=w1}return}if(m==="expanded-view"||m==="confirming"||m==="ephemeral-error")return;if(D1.escape)if(m==="picking-file")return;else Z();else if(D1.ctrl&&J1.toLowerCase()==="r")L((w1)=>({...w1,baseView:"expanded-view"}));else if(D1.ctrl&&J1.toLowerCase()==="o")B.summarizeThread();else if(D1.ctrlL)$()});let e=X>100,n=V.rerendering&&F.items.length===0?1:"auto",z1="resize-key"+V.resizeCounter,o=[{type:"welcome",id:"welcome"},...F.items];if(V.baseView==="expanded-view"){let J1=W.filter((D1)=>D1.type==="message").map((D1)=>D1.message);return S0(PQA,{threadName:I,messages:J1,onExit:()=>L((D1)=>({...D1,baseView:"running"}))})}return E2(PA,{flexDirection:"column",minHeight:"100%",flexGrow:1,height:n,children:[S0(J51,{items:o,children:(J1,D1)=>{if(J1.type==="welcome")return S0(iQA,{},"welcome");let w1=D1===0?0:1;return J1.type==="message"?S0(uQA,{message:J1.message,marginTop:w1},J1.id):S0(AQA,{toolUse:J1.toolUse,toolResult:J1.toolResult,marginTop:w1},J1.id)}},z1),E2(PA,{flexDirection:"column",marginTop:o.length>1?1:0,children:[E&&S0(mQA,{message:E}),S0(s7A,{activeTools:x,subagents:Y}),E2(PA,{flexDirection:e?"row-reverse":"column",children:[H.length>0&&S0(PA,{ref:R,flexGrow:0,flexShrink:0,width:e?"50%":"100%",children:S0(pQA,{todos:H})}),m==="ephemeral-error"&&k?S0(jQA,{error:k,onResponse:d,ampURL:G}):m==="confirming"&&_?S0(EQA,{currentConfirmation:_,onConfirmationResponse:l}):S0(PA,{flexGrow:1,borderStyle:"round",paddingX:1,children:S0(_QA,{onSubmit:S,history:Q,disabled:m==="confirming"||m==="ephemeral-error"||K.state==="active"&&K.summaryState==="summarizing",viewState:K,todosBoxRef:R,editorState:j,editorDispatch:P})})]}),S0(hQA,{view:m,threadViewState:K,threadTokenUsage:M,hasCompletedMessages:F.items.length>0}),S0(P02,{completions:v.options,onSelect:y})]})]})}function P02({completions:A,onSelect:Q}){let B=Math.min(10),J=A.slice(0,B).map((z)=>({value:z,label:z}));if(J.length===0)return null;return S0(PA,{marginBottom:1,children:S0(RS,{title:"Insert file name:",options:J,onSelect:(z)=>{if(z===null)return;let Z=A.find((G)=>G===z);if(!Z)return;Q(Z)}})})}function nQA(A){let{worker:Q,threadID:B,settingsStorage:J,pipedInput:D,workerDeps:z,fuzzyServer:Z}=A,[G,X]=yK.useState(!1),K=yK.useCallback((H,w,W,I)=>{return _02(H,w,W,I,J,Q,z)},[J,Q,z]),Y=yK.useCallback(async(H)=>{await Q.handle({type:"user:message",message:{content:[{type:"text",text:H}]}})},[Q]),{exit:q}=Gy1(),F=yK.useCallback(()=>{XQ.cancel(B)},[B]);yK.useEffect(()=>{let H=setTimeout(()=>{X(!0)},500);return()=>clearTimeout(H)},[]);let E=yK.useRef(!1);if(yK.useEffect(()=>{if(E.current)return;if(D)E.current=!0,Y(D),X(!0)},[D,Y]),!G)return S0(aQA,{});return S0(c7A,{fuzzyServer:Z,children:S0(rQA,{history:A.history,threadService:A.threadService,worker:Q,sendToolConfirmation:K,sendUserMessage:Y,exit:q,cancel:F,ampURL:A.ampURL})})}async function _02(A,Q,B,J,D,z,Z){let G=B&&B.length>0||!1;if(B&&B.length>0)await E6(n2).then((K)=>K.settings["experimental.commandApproval.enabled"]?"experimental.commandApproval.allow":"commands.allowlist").then((K)=>{D.get(K,"global").then((Y)=>{let q=[...Y??[],...B];return D.set(K,q,"global")}).catch((Y)=>{j1.error("Failed to update allowlist",Y)})});let X={type:"user:tool-input",toolUse:A,value:{accepted:Q||G}};if(J)(await XQ.getOrCreateForThread(Z,J)).handle(X);else z.handle(X)}global.React=wy1.default;function sQA(A){return P0.level=1,Zy1(wy1.default.createElement(nQA,{...A}),{patchConsole:!0,exitOnCtrlC:!1,stdout:A.stdout,stdin:A.stdin}).waitUntilExit().then(()=>{let{threadID:B,ampURL:J}=A,D=`${J.replace(/\/$/,"")}/threads/${B}`;A.stdout.write(`
|
4604
4605
|
`),A.stdout.write(`${P0.dim("Thread:")} ${D}
|
4605
4606
|
`),A.stdout.write(`${P0.dim("Continue this thread with:")} \`amp threads continue ${B}\`
|
4606
4607
|
`)})}l6();Mg();P6();function oQA(A){return A.replace(/ /g,"\\ ")}P6();var h6=hA(LS(),1);import{isDeepStrictEqual as S02}from"util";l6();var eQA=hA(LS(),1);dl();var tQA={state:"off",initializing:!1,clearScreen:!1,lines:[],cursorLine:0,cursorColumn:0,deletedText:[],screenColumns:0,screenRows:0,lastChar:"",isProcessingPaste:!1,completions:[],status:{left:"",right:null},selectedCompletionIndex:0,currentHistoryContent:"",isNavigatingHistory:!1,lastCompletionQuery:"",threadStatus:null,subagents:[],hidden:!1,ignoreNextInput:!1,forceRedraw:!1,subagentPrompt:null,currentMention:null};class ABA{printer;prompt;writer;previousState=null;currentTerminalLine=0;currentTerminalColumn=0;positionStack=[];constructor(A,Q,B){this.printer=A;this.prompt=Q;this.writer=B}forceRender(A){let Q=A||this.previousState||tQA,{redrawsRequired:B}=this.renderDiffStrings("",this.generateUIString(Q));if(B)this.showCursor();let J=this.getVisualCursorPosition(Q);this.moveCursorToPosition(J.line,J.column)}anchor(){this.currentTerminalLine=0}deleteFromTerminal(A){let Q=this.generateUIString(A).split(`
|
@@ -4668,7 +4669,7 @@ Visit `+D.print(new URL("/pay",G).toString(),{foreground:"blue",style:"bold"})+`
|
|
4668
4669
|
`);let j=`${G.replace(/\/$/,"")}/threads/${z}`;return H.append(D.print(`Thread: ${j}`,{foreground:"gray"})+`
|
4669
4670
|
`+D.print(`Continue this thread with: 'amp threads continue ${z}'`,{foreground:"gray"})+`
|
4670
4671
|
`),{...T,type:"shutting-down"}}}return T}}return T}),{type:"initializing",tokenUsage:null,updateState:"none",hasSentPipedInput:!1})).subscribe({error:(T)=>{OO(),j1.error("Error in terminal UI:",T),B.write(D.print(T.toString(),{foreground:"red"})+`
|
4671
|
-
`),E.next({type:"exit"})}}),DA.from(E)}}var x02="> ";var Ny1=My1.join(J0A||My1.join(process.env.HOME||process.cwd(),".local","state"),"amp","last-thread-id");async function Cy1(A){try{await m02(My1.dirname(Ny1),{recursive:!0}),await p02(Ny1,A,"utf-8")}catch(Q){j1.debug("Failed to save last thread ID",Q)}}async function wBA(){try{return(await u02(Ny1,"utf-8")).trim()}catch(A){return null}}async function c02(A){let Q=await mQ(`/api/threads/${A}`);if(!Q.ok){let B=await Q.text();if(Q.status===404||B.includes("not found"))throw new XZ(mG.threadNotFound(A));throw new XZ(`Failed to load thread ${A}`,1,`Use 'amp threads share ${A} --support' to share this with the Amp team if this persists.`)}return await Q.json()}var IBA=process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1,l02=[{name:"notifications",long:"notifications",type:"flag",description:(A)=>`${A?"Enable":"Disable"} sound notifications (enabled by default when interactive)`},{name:"color",long:"color",type:"flag",description:(A)=>`${A?"Enable":"Disable"} color output (enabled by default if stdout and stderr are sent to a TTY)`},{name:"settingsFile",long:"settings-file",type:"option",description:`Custom settings file path (overrides the default location ${jI})`},{name:"logLevel",long:"log-level",type:"option",description:`Set log level (${Object.keys(j1).join(", ")})`},{name:"logFile",long:"log-file",type:"option",description:"Set log file location"},{name:"format",long:"format",type:"option",default:"ui",description:"output using the standard or new-ui. Options: `ui`, `new-ui`",choices:["ui","jsonl","new-ui"],hidden:!0},{name:"dangerouslyAllowAll",long:"dangerously-allow-all",type:"switch",default:!1,description:"Disable all command confirmation prompts (agent will execute all commands without asking)"},{name:"jetbrains",long:"jetbrains",type:"flag",default:IBA,description:(A)=>A?"Enable JetBrains integration. Requires the JetBrains MCP plugin to be installed and you must start Amp in the same directory as your JetBrains project. When enabled, Amp automatically includes your open JetBrains file and text selection with every message, just like it does in VS Code.":"Disable JetBrains integration.",hidden:!0}];function d02(A,Q){let B=Q.args[0],J=Q.commands.map((z)=>z.name());if(B&&!B.includes(" ")&&B.length<30&&!/[./\\]/.test(B)){let z=J.filter((G)=>B.includes(G)||G.includes(B)),Z="Run amp --help for a list of available commands.";if(z.length>0)Z=`Did you mean: ${z.join(", ")}? Or run amp --help for all commands.`;throw new XZ(mG.unknownCommand(B),1,Z)}}async function yS(A,Q){th1("0.0.
|
4672
|
+
`),E.next({type:"exit"})}}),DA.from(E)}}var x02="> ";var Ny1=My1.join(J0A||My1.join(process.env.HOME||process.cwd(),".local","state"),"amp","last-thread-id");async function Cy1(A){try{await m02(My1.dirname(Ny1),{recursive:!0}),await p02(Ny1,A,"utf-8")}catch(Q){j1.debug("Failed to save last thread ID",Q)}}async function wBA(){try{return(await u02(Ny1,"utf-8")).trim()}catch(A){return null}}async function c02(A){let Q=await mQ(`/api/threads/${A}`);if(!Q.ok){let B=await Q.text();if(Q.status===404||B.includes("not found"))throw new XZ(mG.threadNotFound(A));throw new XZ(`Failed to load thread ${A}`,1,`Use 'amp threads share ${A} --support' to share this with the Amp team if this persists.`)}return await Q.json()}var IBA=process.env.TERMINAL_EMULATOR?.includes("JetBrains")??!1,l02=[{name:"notifications",long:"notifications",type:"flag",description:(A)=>`${A?"Enable":"Disable"} sound notifications (enabled by default when interactive)`},{name:"color",long:"color",type:"flag",description:(A)=>`${A?"Enable":"Disable"} color output (enabled by default if stdout and stderr are sent to a TTY)`},{name:"settingsFile",long:"settings-file",type:"option",description:`Custom settings file path (overrides the default location ${jI})`},{name:"logLevel",long:"log-level",type:"option",description:`Set log level (${Object.keys(j1).join(", ")})`},{name:"logFile",long:"log-file",type:"option",description:"Set log file location"},{name:"format",long:"format",type:"option",default:"ui",description:"output using the standard or new-ui. Options: `ui`, `new-ui`",choices:["ui","jsonl","new-ui"],hidden:!0},{name:"dangerouslyAllowAll",long:"dangerously-allow-all",type:"switch",default:!1,description:"Disable all command confirmation prompts (agent will execute all commands without asking)"},{name:"jetbrains",long:"jetbrains",type:"flag",default:IBA,description:(A)=>A?"Enable JetBrains integration. Requires the JetBrains MCP plugin to be installed and you must start Amp in the same directory as your JetBrains project. When enabled, Amp automatically includes your open JetBrains file and text selection with every message, just like it does in VS Code.":"Disable JetBrains integration.",hidden:!0}];function d02(A,Q){let B=Q.args[0],J=Q.commands.map((z)=>z.name());if(B&&!B.includes(" ")&&B.length<30&&!/[./\\]/.test(B)){let z=J.filter((G)=>B.includes(G)||G.includes(B)),Z="Run amp --help for a list of available commands.";if(z.length>0)Z=`Did you mean: ${z.join(", ")}? Or run amp --help for all commands.`;throw new XZ(mG.unknownCommand(B),1,Z)}}async function yS(A,Q){th1("0.0.1753248131-gd8bc00");let B=Q.settingsFile??process.env.AMP_SETTINGS_FILE;j1.info("Using settings file",{settingsFile:B});let J=Ik1(mp()),D=hp({settingsFile:B}),z=_B1({storage:D,secretStorage:J,workspaceRoots:DA.of([v2.file(process.cwd())]),defaultAmpURL:A.ampURL}),Z=RU(),G=Er1({configService:z,toolService:Z});try{await G.initialized}catch(L){j1.warn("Failed to wait for MCP servers, continuing anyway:",L)}let X=await E6(n2);if(Q.dangerouslyAllowAll)X.settings.dangerouslyAllowAll=!0;if(Q.jetbrains){if(X.settings["jetbrains.enabled"]=!0,eR.subscribe((T)=>{j1.info("jetbrains-status",T)}),await A3(),!await tp1()){if(IBA)o2.write(A.printer.print("Error: ",{foreground:"red",style:"bold"})+"JetBrains integration failed. Try again with `amp --no-jetbrains` or see setup: https://ampcode.com/manual#jetbrains");else o2.write(A.printer.print("Error: ",{foreground:"red",style:"bold"})+"Cannot connect to JetBrains IDE. Check setup: https://ampcode.com/manual#jetbrains");process.exit(1)}}let K=X.settings["experimental.reviewTool"]??!1,Y=X.settings["experimental.tools"]??[];f_1(Z,!1,K,Y);let q,F;if(A.isInteractiveMode){q=p9A(X.settings,process.cwd()),await q.start();try{await c9A(q,process.cwd())}catch(L){j1.error("Failed to index files for fuzzy completion",L)}F=l9A(q,process.cwd())}else q=new class{async start(){}async query(){return[]}dispose(){}},F={[Symbol.dispose]:()=>{}};if(!await J.get("apiKey",A.ampURL)){if(u4.write(`No API key found. Starting login flow...
|
4672
4673
|
`),!await i02(A,J))process.exit(1)}let E=sr1(),H=new tK1(E),w=new nK1(E),W=new vF1(H),I=new ik1({configService:z,threadService:H,toolService:Z,threadSummaryService:W,threadHistoryService:w,mcpService:G}),M=Q.notifications!==void 0?Q.notifications:A.isInteractiveMode,N=x1A({playNotificationSound:async(L)=>{if(M)Up(L)},windowFocused:()=>Promise.resolve(!1),threadService:H,notifyForSubagents:!1});j1.info("Starting Amp background services");let V=$90({threadService:H,threadHistoryService:w,isExtensionDevelopment:!1});return{configService:z,toolService:Z,mcpService:G,threadService:H,threadHistoryService:w,threadSummaryService:W,threadSyncService:V,threadStorage:E,secretStorage:J,settingsStorage:D,fileWatcher:F,fuzzyServer:q,subthreadTracker:I,notificationService:N}}async function i02(A,Q){if(A.isInteractiveMode){if(await lq("Would you like to log in to Amp?",["(y)es","(n)o"])!="y")return u4.write(`Login cancelled. Run the command again to retry.
|
4673
4674
|
`),!1}return await MBA(A,Q)}async function MBA(A,Q){let B=h02(32).toString("hex"),J=await H4A(A.ampURL,B);u4.write(`If your browser doesn't open automatically, visit:
|
4674
4675
|
|
@@ -4683,8 +4684,8 @@ ${A.printer.print(J,{foreground:"blue",style:"bold"})}
|
|
4683
4684
|
Login successful! You can now use the Amp CLI.
|
4684
4685
|
`),!0}catch(D){return o2.write(`
|
4685
4686
|
Login failed: ${D instanceof Error?D.message:String(D)}
|
4686
|
-
`),!1}}var a02=new Set(["fuzzy-server"]);function r02(A){let Q=new Ep().name("amp").description("AI-powered coding assistant").option("--visibility <visibility>","Set thread visibility (private, public, team)").configureOutput({writeErr:()=>{}});Q.exitOverride((X)=>{if(X.code==="commander.help"||X.code==="commander.version"||X.exitCode===0)OO(),process.exit(0);let K=X.originalError??X;GS(A,K)}),Q.option("-V, --version","output the version number",()=>{if(A.isTTY)u4.write(`0.0.
|
4687
|
-
`);else u4.write(`0.0.
|
4687
|
+
`),!1}}var a02=new Set(["fuzzy-server"]);function r02(A){let Q=new Ep().name("amp").description("AI-powered coding assistant").option("--visibility <visibility>","Set thread visibility (private, public, team)").configureOutput({writeErr:()=>{}});Q.exitOverride((X)=>{if(X.code==="commander.help"||X.code==="commander.version"||X.exitCode===0)OO(),process.exit(0);let K=X.originalError??X;GS(A,K)}),Q.option("-V, --version","output the version number",()=>{if(A.isTTY)u4.write(`0.0.1753248131-gd8bc00 ${A.printer.print("(released 2025-07-23T05:27:20.128Z)",{foreground:"gray"})}
|
4688
|
+
`);else u4.write(`0.0.1753248131-gd8bc00 (released 2025-07-23T05:27:20.128Z)
|
4688
4689
|
`);process.exit(0)}),Q.addHelpText("after",(()=>{let X="";X+=A.printer.print("Environment variables:",{style:"bold"})+`
|
4689
4690
|
|
4690
4691
|
`,X+=" "+A.printer.print("AMP_API_KEY",{foreground:"green"})+` API key for Amp (see https://ampcode.com/settings)
|
@@ -4773,7 +4774,7 @@ Summary: ${V}
|
|
4773
4774
|
`),o2.write(`Secrets have been automatically redacted, but please review the file before attaching
|
4774
4775
|
`),o2.write(`it to support requests. Learn more at https://ampcode.com/manual/appendix#support-bundles
|
4775
4776
|
`),process.exit(0)}catch(K){o2.write(A.printer.print("Error generating support bundle: ",{foreground:"red"})+`${K instanceof Error?K.message:String(K)}
|
4776
|
-
`),process.exit(1)}}),Q.addCommand(z);let Z=new Ep("update").description("Update Amp CLI to the latest version").option("--version <version>","Update to a specific version").option("--log-level <value>","Set log level (error, warn, info, debug, audit)").option("--log-file <value>","Set log file location").allowUnknownOption(!1);Z.action(async(X)=>{try{let K=KD(X);xp({logLevel:X.logLevel,logFile:X.logFile});let{update:Y}=await Promise.resolve().then(() => (sk1(),S4A)),{checkNpmUpdate:q}=await Promise.resolve().then(() => (la(),tr1)),F="0.0.
|
4777
|
+
`),process.exit(1)}}),Q.addCommand(z);let Z=new Ep("update").description("Update Amp CLI to the latest version").option("--version <version>","Update to a specific version").option("--log-level <value>","Set log level (error, warn, info, debug, audit)").option("--log-file <value>","Set log file location").allowUnknownOption(!1);Z.action(async(X)=>{try{let K=KD(X);xp({logLevel:X.logLevel,logFile:X.logFile});let{update:Y}=await Promise.resolve().then(() => (sk1(),S4A)),{checkNpmUpdate:q}=await Promise.resolve().then(() => (la(),tr1)),F="0.0.1753248131-gd8bc00";if(X.version)o2.write(K.printer.print(`Updating to version ${X.version}...`,{foreground:"blue"})+`
|
4777
4778
|
`),await Y(X.version),o2.write(K.printer.print(`✓ Successfully updated to version ${X.version}`,{foreground:"green"})+`
|
4778
4779
|
`);else{o2.write(K.printer.print("Checking for updates...",{foreground:"blue"})+`
|
4779
4780
|
`);let E=await q(F);if(!E.hasUpdate)o2.write(K.printer.print("✓ Amp CLI is already up to date.",{foreground:"green"})+`
|
package/package.json
CHANGED