agent-duelist 0.3.0 → 0.3.1

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/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs","../node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs","../node_modules/resolve-pkg-maps/dist/index.mjs","../node_modules/get-tsconfig/dist/index.mjs","../node_modules/esbuild/lib/main.js","../node_modules/tsx/dist/lexer-DQCqS3nf.mjs","../node_modules/tsx/dist/index-7AaEi15b.mjs","../node_modules/tsx/dist/client-BQVF1NaW.mjs","../node_modules/tsx/dist/index-gbaejti9.mjs","../node_modules/tsx/dist/register-CFH5oNdT.mjs","../node_modules/tsx/dist/register-B7jrtLTO.mjs","../node_modules/tsx/dist/require-DQxpCAr4.mjs","../node_modules/tsx/dist/node-features-_8ZFwP_x.mjs","../node_modules/tsx/dist/esm/api/index.mjs","../src/cli.ts","../src/scorers/latency.ts","../src/pricing/catalog.json","../src/pricing/lookup.ts","../src/scorers/cost.ts","../src/scorers/correctness.ts","../src/scorers/schema-correctness.ts","../src/scorers/fuzzy-similarity.ts","../src/scorers/llm-judge.ts","../src/providers/openai.ts","../src/providers/shared.ts","../src/scorers/tool-usage.ts","../src/scorers/index.ts","../src/runner.ts","../src/utils/format.ts","../src/reporter/shared.ts","../src/reporter/console.ts","../src/reporter/json.ts","../src/arena.ts","../src/reporter/markdown.ts","../src/reporter/html.ts","../src/ci.ts","../src/github.ts","../src/packs/structured-output.ts","../src/packs/index.ts","../src/packs/loader.ts"],"sourcesContent":["import r from\"node:path\";import o from\"node:os\";const{geteuid:t}=process,s=t?t():o.userInfo().username,e=r.join(o.tmpdir(),`tsx-${s}`);export{e as t};\n","var p=Object.defineProperty;var e=(t,r)=>p(t,\"name\",{value:r,configurable:!0});import{createRequire as o}from\"module\";import a from\"node:path\";import{t as s}from\"./temporary-directory-CwHp0_NW.mjs\";var m=o(import.meta.url);const i=process.platform===\"win32\",n=e(t=>{const r=a.join(s,`${t}.pipe`);return i?`\\\\\\\\?\\\\pipe\\\\${r}`:r},\"getPipePath\");export{n as g,i,m as r};\n","const A=r=>r!==null&&typeof r==\"object\",a=(r,t)=>Object.assign(new Error(`[${r}]: ${t}`),{code:r}),_=\"ERR_INVALID_PACKAGE_CONFIG\",E=\"ERR_INVALID_PACKAGE_TARGET\",I=\"ERR_PACKAGE_PATH_NOT_EXPORTED\",P=\"ERR_PACKAGE_IMPORT_NOT_DEFINED\",R=/^\\d+$/,O=/^(\\.{1,2}|node_modules)$/i,w=/\\/|\\\\/;var h=(r=>(r.Export=\"exports\",r.Import=\"imports\",r))(h||{});const f=(r,t,e,o,c)=>{if(t==null)return[];if(typeof t==\"string\"){const[n,...i]=t.split(w);if(n===\"..\"||i.some(l=>O.test(l)))throw a(E,`Invalid \"${r}\" target \"${t}\" defined in the package config`);return[c?t.replace(/\\*/g,c):t]}if(Array.isArray(t))return t.flatMap(n=>f(r,n,e,o,c));if(A(t)){for(const n of Object.keys(t)){if(R.test(n))throw a(_,\"Cannot contain numeric property keys\");if(n===\"default\"||o.includes(n))return f(r,t[n],e,o,c)}return[]}throw a(E,`Invalid \"${r}\" target \"${t}\"`)},s=\"*\",m=(r,t)=>{const e=r.indexOf(s),o=t.indexOf(s);return e===o?t.length>r.length:o>e};function d(r,t){if(!t.includes(s)&&r.hasOwnProperty(t))return[t];let e,o;for(const c of Object.keys(r))if(c.includes(s)){const[n,i,l]=c.split(s);if(l===void 0&&t.startsWith(n)&&t.endsWith(i)){const g=t.slice(n.length,-i.length||void 0);g&&(!e||m(e,c))&&(e=c,o=g)}}return[e,o]}const p=r=>Object.keys(r).reduce((t,e)=>{const o=e===\"\"||e[0]!==\".\";if(t===void 0||t===o)return o;throw a(_,'\"exports\" cannot contain some keys starting with \".\" and some not')},void 0),u=/^\\w+:/,v=(r,t,e)=>{if(!r)throw new Error('\"exports\" is required');t=t===\"\"?\".\":`./${t}`,(typeof r==\"string\"||Array.isArray(r)||A(r)&&p(r))&&(r={\".\":r});const[o,c]=d(r,t),n=f(h.Export,r[o],t,e,c);if(n.length===0)throw a(I,t===\".\"?'No \"exports\" main defined':`Package subpath '${t}' is not defined by \"exports\"`);for(const i of n)if(!i.startsWith(\"./\")&&!u.test(i))throw a(E,`Invalid \"exports\" target \"${i}\" defined in the package config`);return n},T=(r,t,e)=>{if(!r)throw new Error('\"imports\" is required');const[o,c]=d(r,t),n=f(h.Import,r[o],t,e,c);if(n.length===0)throw a(P,`Package import specifier \"${t}\" is not defined in package`);return n};export{v as resolveExports,T as resolveImports};\n","var Le=Object.defineProperty;var i=(e,t)=>Le(e,\"name\",{value:t,configurable:!0});import m from\"node:path\";import re from\"node:fs\";import he from\"node:module\";import{resolveExports as Ee}from\"resolve-pkg-maps\";import xe from\"fs\";import Be from\"os\";import Ie from\"path\";function h(e){return e.startsWith(\"\\\\\\\\?\\\\\")?e:e.replace(/\\\\/g,\"/\")}i(h,\"slash\");const Z=i(e=>{const t=re[e];return(s,...n)=>{const o=`${e}:${n.join(\":\")}`;let l=s==null?void 0:s.get(o);return l===void 0&&(l=Reflect.apply(t,re,n),s==null||s.set(o,l)),l}},\"cacheFs\"),E=Z(\"existsSync\"),$e=Z(\"readFileSync\"),G=Z(\"statSync\"),fe=i((e,t,s)=>{for(;;){const n=m.posix.join(e,t);if(E(s,n))return n;const o=m.dirname(e);if(o===e)return;e=o}},\"findUp\"),q=/^\\.{1,2}(\\/.*)?$/,K=i(e=>{const t=h(e);return q.test(t)?t:`./${t}`},\"normalizeRelativePath\");function Ue(e,t=!1){const s=e.length;let n=0,o=\"\",l=0,u=16,a=0,r=0,g=0,v=0,d=0;function _(c,y){let A=0,b=0;for(;A<c;){let k=e.charCodeAt(n);if(k>=48&&k<=57)b=b*16+k-48;else if(k>=65&&k<=70)b=b*16+k-65+10;else if(k>=97&&k<=102)b=b*16+k-97+10;else break;n++,A++}return A<c&&(b=-1),b}i(_,\"scanHexDigits\");function p(c){n=c,o=\"\",l=0,u=16,d=0}i(p,\"setPosition\");function D(){let c=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&N(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&N(e.charCodeAt(n)))for(n++;n<e.length&&N(e.charCodeAt(n));)n++;else return d=3,e.substring(c,n);let y=n;if(n<e.length&&(e.charCodeAt(n)===69||e.charCodeAt(n)===101))if(n++,(n<e.length&&e.charCodeAt(n)===43||e.charCodeAt(n)===45)&&n++,n<e.length&&N(e.charCodeAt(n))){for(n++;n<e.length&&N(e.charCodeAt(n));)n++;y=n}else d=3;return e.substring(c,y)}i(D,\"scanNumber\");function L(){let c=\"\",y=n;for(;;){if(n>=s){c+=e.substring(y,n),d=2;break}const A=e.charCodeAt(n);if(A===34){c+=e.substring(y,n),n++;break}if(A===92){if(c+=e.substring(y,n),n++,n>=s){d=2;break}switch(e.charCodeAt(n++)){case 34:c+='\"';break;case 92:c+=\"\\\\\";break;case 47:c+=\"/\";break;case 98:c+=\"\\b\";break;case 102:c+=\"\\f\";break;case 110:c+=`\n`;break;case 114:c+=\"\\r\";break;case 116:c+=\"\t\";break;case 117:const k=_(4);k>=0?c+=String.fromCharCode(k):d=4;break;default:d=5}y=n;continue}if(A>=0&&A<=31)if(J(A)){c+=e.substring(y,n),d=2;break}else d=6;n++}return c}i(L,\"scanString\");function T(){if(o=\"\",d=0,l=n,r=a,v=g,n>=s)return l=s,u=17;let c=e.charCodeAt(n);if(O(c)){do n++,o+=String.fromCharCode(c),c=e.charCodeAt(n);while(O(c));return u=15}if(J(c))return n++,o+=String.fromCharCode(c),c===13&&e.charCodeAt(n)===10&&(n++,o+=`\n`),a++,g=n,u=14;switch(c){case 123:return n++,u=1;case 125:return n++,u=2;case 91:return n++,u=3;case 93:return n++,u=4;case 58:return n++,u=6;case 44:return n++,u=5;case 34:return n++,o=L(),u=10;case 47:const y=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<s&&!J(e.charCodeAt(n));)n++;return o=e.substring(y,n),u=12}if(e.charCodeAt(n+1)===42){n+=2;const A=s-1;let b=!1;for(;n<A;){const k=e.charCodeAt(n);if(k===42&&e.charCodeAt(n+1)===47){n+=2,b=!0;break}n++,J(k)&&(k===13&&e.charCodeAt(n)===10&&n++,a++,g=n)}return b||(n++,d=1),o=e.substring(y,n),u=13}return o+=String.fromCharCode(c),n++,u=16;case 45:if(o+=String.fromCharCode(c),n++,n===s||!N(e.charCodeAt(n)))return u=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return o+=D(),u=11;default:for(;n<s&&F(c);)n++,c=e.charCodeAt(n);if(l!==n){switch(o=e.substring(l,n),o){case\"true\":return u=8;case\"false\":return u=9;case\"null\":return u=7}return u=16}return o+=String.fromCharCode(c),n++,u=16}}i(T,\"scanNext\");function F(c){if(O(c)||J(c))return!1;switch(c){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}i(F,\"isUnknownContentCharacter\");function x(){let c;do c=T();while(c>=12&&c<=15);return c}return i(x,\"scanNextNonTrivia\"),{setPosition:p,getPosition:i(()=>n,\"getPosition\"),scan:t?x:T,getToken:i(()=>u,\"getToken\"),getTokenValue:i(()=>o,\"getTokenValue\"),getTokenOffset:i(()=>l,\"getTokenOffset\"),getTokenLength:i(()=>n-l,\"getTokenLength\"),getTokenStartLine:i(()=>r,\"getTokenStartLine\"),getTokenStartCharacter:i(()=>l-v,\"getTokenStartCharacter\"),getTokenError:i(()=>d,\"getTokenError\")}}i(Ue,\"createScanner\");function O(e){return e===32||e===9}i(O,\"isWhiteSpace\");function J(e){return e===10||e===13}i(J,\"isLineBreak\");function N(e){return e>=48&&e<=57}i(N,\"isDigit\");var ae;(function(e){e[e.lineFeed=10]=\"lineFeed\",e[e.carriageReturn=13]=\"carriageReturn\",e[e.space=32]=\"space\",e[e._0=48]=\"_0\",e[e._1=49]=\"_1\",e[e._2=50]=\"_2\",e[e._3=51]=\"_3\",e[e._4=52]=\"_4\",e[e._5=53]=\"_5\",e[e._6=54]=\"_6\",e[e._7=55]=\"_7\",e[e._8=56]=\"_8\",e[e._9=57]=\"_9\",e[e.a=97]=\"a\",e[e.b=98]=\"b\",e[e.c=99]=\"c\",e[e.d=100]=\"d\",e[e.e=101]=\"e\",e[e.f=102]=\"f\",e[e.g=103]=\"g\",e[e.h=104]=\"h\",e[e.i=105]=\"i\",e[e.j=106]=\"j\",e[e.k=107]=\"k\",e[e.l=108]=\"l\",e[e.m=109]=\"m\",e[e.n=110]=\"n\",e[e.o=111]=\"o\",e[e.p=112]=\"p\",e[e.q=113]=\"q\",e[e.r=114]=\"r\",e[e.s=115]=\"s\",e[e.t=116]=\"t\",e[e.u=117]=\"u\",e[e.v=118]=\"v\",e[e.w=119]=\"w\",e[e.x=120]=\"x\",e[e.y=121]=\"y\",e[e.z=122]=\"z\",e[e.A=65]=\"A\",e[e.B=66]=\"B\",e[e.C=67]=\"C\",e[e.D=68]=\"D\",e[e.E=69]=\"E\",e[e.F=70]=\"F\",e[e.G=71]=\"G\",e[e.H=72]=\"H\",e[e.I=73]=\"I\",e[e.J=74]=\"J\",e[e.K=75]=\"K\",e[e.L=76]=\"L\",e[e.M=77]=\"M\",e[e.N=78]=\"N\",e[e.O=79]=\"O\",e[e.P=80]=\"P\",e[e.Q=81]=\"Q\",e[e.R=82]=\"R\",e[e.S=83]=\"S\",e[e.T=84]=\"T\",e[e.U=85]=\"U\",e[e.V=86]=\"V\",e[e.W=87]=\"W\",e[e.X=88]=\"X\",e[e.Y=89]=\"Y\",e[e.Z=90]=\"Z\",e[e.asterisk=42]=\"asterisk\",e[e.backslash=92]=\"backslash\",e[e.closeBrace=125]=\"closeBrace\",e[e.closeBracket=93]=\"closeBracket\",e[e.colon=58]=\"colon\",e[e.comma=44]=\"comma\",e[e.dot=46]=\"dot\",e[e.doubleQuote=34]=\"doubleQuote\",e[e.minus=45]=\"minus\",e[e.openBrace=123]=\"openBrace\",e[e.openBracket=91]=\"openBracket\",e[e.plus=43]=\"plus\",e[e.slash=47]=\"slash\",e[e.formFeed=12]=\"formFeed\",e[e.tab=9]=\"tab\"})(ae||(ae={})),new Array(20).fill(0).map((e,t)=>\" \".repeat(t));const P=200;new Array(P).fill(0).map((e,t)=>`\n`+\" \".repeat(t)),new Array(P).fill(0).map((e,t)=>\"\\r\"+\" \".repeat(t)),new Array(P).fill(0).map((e,t)=>`\\r\n`+\" \".repeat(t)),new Array(P).fill(0).map((e,t)=>`\n`+\"\t\".repeat(t)),new Array(P).fill(0).map((e,t)=>\"\\r\"+\"\t\".repeat(t)),new Array(P).fill(0).map((e,t)=>`\\r\n`+\"\t\".repeat(t));var Q;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Q||(Q={}));function Ne(e,t=[],s=Q.DEFAULT){let n=null,o=[];const l=[];function u(r){Array.isArray(o)?o.push(r):n!==null&&(o[n]=r)}return i(u,\"onValue\"),Pe(e,{onObjectBegin:i(()=>{const r={};u(r),l.push(o),o=r,n=null},\"onObjectBegin\"),onObjectProperty:i(r=>{n=r},\"onObjectProperty\"),onObjectEnd:i(()=>{o=l.pop()},\"onObjectEnd\"),onArrayBegin:i(()=>{const r=[];u(r),l.push(o),o=r,n=null},\"onArrayBegin\"),onArrayEnd:i(()=>{o=l.pop()},\"onArrayEnd\"),onLiteralValue:u,onError:i((r,g,v)=>{t.push({error:r,offset:g,length:v})},\"onError\")},s),o[0]}i(Ne,\"parse$1\");function Pe(e,t,s=Q.DEFAULT){const n=Ue(e,!1),o=[];let l=0;function u(w){return w?()=>l===0&&w(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(u,\"toNoArgVisit\");function a(w){return w?j=>l===0&&w(j,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(a,\"toOneArgVisit\");function r(w){return w?j=>l===0&&w(j,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice()):()=>!0}i(r,\"toOneArgVisitWithPath\");function g(w){return w?()=>{l>0?l++:w(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice())===!1&&(l=1)}:()=>!0}i(g,\"toBeginVisit\");function v(w){return w?()=>{l>0&&l--,l===0&&w(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter())}:()=>!0}i(v,\"toEndVisit\");const d=g(t.onObjectBegin),_=r(t.onObjectProperty),p=v(t.onObjectEnd),D=g(t.onArrayBegin),L=v(t.onArrayEnd),T=r(t.onLiteralValue),F=a(t.onSeparator),x=u(t.onComment),c=a(t.onError),y=s&&s.disallowComments,A=s&&s.allowTrailingComma;function b(){for(;;){const w=n.scan();switch(n.getTokenError()){case 4:k(14);break;case 5:k(15);break;case 3:k(13);break;case 1:y||k(11);break;case 2:k(12);break;case 6:k(16);break}switch(w){case 12:case 13:y?k(10):x();break;case 16:k(1);break;case 15:case 14:break;default:return w}}}i(b,\"scanNext\");function k(w,j=[],S=[]){if(c(w),j.length+S.length>0){let $=n.getToken();for(;$!==17;){if(j.indexOf($)!==-1){b();break}else if(S.indexOf($)!==-1)break;$=b()}}}i(k,\"handleError\");function R(w){const j=n.getTokenValue();return w?T(j):(_(j),o.push(j)),b(),!0}i(R,\"parseString\");function W(){switch(n.getToken()){case 11:const w=n.getTokenValue();let j=Number(w);isNaN(j)&&(k(2),j=0),T(j);break;case 7:T(null);break;case 8:T(!0);break;case 9:T(!1);break;default:return!1}return b(),!0}i(W,\"parseLiteral\");function V(){return n.getToken()!==10?(k(3,[],[2,5]),!1):(R(!1),n.getToken()===6?(F(\":\"),b(),U()||k(4,[],[2,5])):k(5,[],[2,5]),o.pop(),!0)}i(V,\"parseProperty\");function M(){d(),b();let w=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(w||k(4,[],[]),F(\",\"),b(),n.getToken()===2&&A)break}else w&&k(6,[],[]);V()||k(4,[],[2,5]),w=!0}return p(),n.getToken()!==2?k(7,[2],[]):b(),!0}i(M,\"parseObject\");function z(){D(),b();let w=!0,j=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(j||k(4,[],[]),F(\",\"),b(),n.getToken()===4&&A)break}else j&&k(6,[],[]);w?(o.push(0),w=!1):o[o.length-1]++,U()||k(4,[],[4,5]),j=!0}return L(),w||o.pop(),n.getToken()!==4?k(8,[4],[]):b(),!0}i(z,\"parseArray\");function U(){switch(n.getToken()){case 3:return z();case 1:return M();case 10:return R(!0);default:return W()}}return i(U,\"parseValue\"),b(),n.getToken()===17?s.allowEmptyContent?!0:(k(4,[],[]),!1):U()?(n.getToken()!==17&&k(9,[],[]),!0):(k(4,[],[]),!1)}i(Pe,\"visit\");var ce;(function(e){e[e.None=0]=\"None\",e[e.UnexpectedEndOfComment=1]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=2]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=3]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=4]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=5]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=6]=\"InvalidCharacter\"})(ce||(ce={}));var ge;(function(e){e[e.OpenBraceToken=1]=\"OpenBraceToken\",e[e.CloseBraceToken=2]=\"CloseBraceToken\",e[e.OpenBracketToken=3]=\"OpenBracketToken\",e[e.CloseBracketToken=4]=\"CloseBracketToken\",e[e.CommaToken=5]=\"CommaToken\",e[e.ColonToken=6]=\"ColonToken\",e[e.NullKeyword=7]=\"NullKeyword\",e[e.TrueKeyword=8]=\"TrueKeyword\",e[e.FalseKeyword=9]=\"FalseKeyword\",e[e.StringLiteral=10]=\"StringLiteral\",e[e.NumericLiteral=11]=\"NumericLiteral\",e[e.LineCommentTrivia=12]=\"LineCommentTrivia\",e[e.BlockCommentTrivia=13]=\"BlockCommentTrivia\",e[e.LineBreakTrivia=14]=\"LineBreakTrivia\",e[e.Trivia=15]=\"Trivia\",e[e.Unknown=16]=\"Unknown\",e[e.EOF=17]=\"EOF\"})(ge||(ge={}));const Re=Ne;var ke;(function(e){e[e.InvalidSymbol=1]=\"InvalidSymbol\",e[e.InvalidNumberFormat=2]=\"InvalidNumberFormat\",e[e.PropertyNameExpected=3]=\"PropertyNameExpected\",e[e.ValueExpected=4]=\"ValueExpected\",e[e.ColonExpected=5]=\"ColonExpected\",e[e.CommaExpected=6]=\"CommaExpected\",e[e.CloseBraceExpected=7]=\"CloseBraceExpected\",e[e.CloseBracketExpected=8]=\"CloseBracketExpected\",e[e.EndOfFileExpected=9]=\"EndOfFileExpected\",e[e.InvalidCommentToken=10]=\"InvalidCommentToken\",e[e.UnexpectedEndOfComment=11]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=12]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=13]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=14]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=15]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=16]=\"InvalidCharacter\"})(ke||(ke={}));const me=i((e,t)=>Re($e(t,e,\"utf8\")),\"readJsonc\"),C=Symbol(\"implicitBaseUrl\"),I=\"${configDir}\",Se=i(()=>{const{findPnpApi:e}=he;return e&&e(process.cwd())},\"getPnpApi\"),ee=i((e,t,s,n)=>{const o=`resolveFromPackageJsonPath:${e}:${t}:${s}`;if(n!=null&&n.has(o))return n.get(o);const l=me(e,n);if(!l)return;let u=t||\"tsconfig.json\";if(!s&&l.exports)try{const[a]=Ee(l.exports,t,[\"require\",\"types\"]);u=a}catch{return!1}else!t&&l.tsconfig&&(u=l.tsconfig);return u=m.join(e,\"..\",u),n==null||n.set(o,u),u},\"resolveFromPackageJsonPath\"),ne=\"package.json\",te=\"tsconfig.json\",Je=i((e,t,s)=>{let n=e;if(e===\"..\"&&(n=m.join(n,te)),e[0]===\".\"&&(n=m.resolve(t,n)),m.isAbsolute(n)){if(E(s,n)){if(G(s,n).isFile())return n}else if(!n.endsWith(\".json\")){const p=`${n}.json`;if(E(s,p))return p}return}const[o,...l]=e.split(\"/\"),u=o[0]===\"@\"?`${o}/${l.shift()}`:o,a=l.join(\"/\"),r=Se();if(r){const{resolveRequest:p}=r;try{if(u===e){const D=p(m.join(u,ne),t);if(D){const L=ee(D,a,!1,s);if(L&&E(s,L))return L}}else{let D;try{D=p(e,t,{extensions:[\".json\"]})}catch{D=p(m.join(e,te),t)}if(D)return D}}catch{}}const g=fe(m.resolve(t),m.join(\"node_modules\",u),s);if(!g||!G(s,g).isDirectory())return;const v=m.join(g,ne);if(E(s,v)){const p=ee(v,a,!1,s);if(p===!1)return;if(p&&E(s,p)&&G(s,p).isFile())return p}const d=m.join(g,a),_=d.endsWith(\".json\");if(!_){const p=`${d}.json`;if(E(s,p))return p}if(E(s,d)){if(G(s,d).isDirectory()){const p=m.join(d,ne);if(E(s,p)){const L=ee(p,\"\",!0,s);if(L&&E(s,L))return L}const D=m.join(d,te);if(E(s,D))return D}else if(_)return d}},\"resolveExtendsPath\"),se=i((e,t)=>K(m.relative(e,t)),\"pathRelative\"),we=[\"files\",\"include\",\"exclude\"],de=i((e,t,s)=>{const n=m.join(t,s),o=m.relative(e,n);return h(o)||\"./\"},\"resolveAndRelativize\"),We=i((e,t,s)=>{const n=m.relative(e,t);if(!n)return s;const o=s.startsWith(\"./\")?s.slice(2):s;return h(`${n}/${o}`)},\"prefixPattern\"),Ve=i((e,t,s,n)=>{const o=Je(e,t,n);if(!o)throw new Error(`File '${e}' not found.`);if(s.has(o))throw new Error(`Circularity detected while resolving configuration: ${o}`);s.add(o);const l=m.dirname(o),u=ve(o,n,s);delete u.references;const{compilerOptions:a}=u;if(a){const{baseUrl:r}=a;r&&!r.startsWith(I)&&(a.baseUrl=de(t,l,r));const{outDir:g}=a;g&&!g.startsWith(I)&&(a.outDir=de(t,l,g))}for(const r of we){const g=u[r];g&&(u[r]=g.map(v=>v.startsWith(I)?v:We(t,l,v)))}return u},\"resolveExtends\"),be=[\"outDir\",\"declarationDir\"],ve=i((e,t,s=new Set)=>{let n;try{n=me(e,t)||{}}catch{throw new Error(`Cannot resolve tsconfig at path: ${e}`)}if(typeof n!=\"object\")throw new SyntaxError(`Failed to parse tsconfig at: ${e}`);const o=m.dirname(e);if(n.compilerOptions){const{compilerOptions:l}=n;l.paths&&!l.baseUrl&&(l[C]=o)}if(n.extends){const l=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const u of l.reverse()){const a=Ve(u,o,new Set(s),t),r={...a,...n,compilerOptions:{...a.compilerOptions,...n.compilerOptions}};a.watchOptions&&(r.watchOptions={...a.watchOptions,...n.watchOptions}),n=r}}if(n.compilerOptions){const{compilerOptions:l}=n,u=[\"baseUrl\",\"rootDir\"];for(const a of u){const r=l[a];if(r&&!r.startsWith(I)){const g=m.resolve(o,r),v=se(o,g);l[a]=v}}for(const a of be){let r=l[a];r&&(Array.isArray(n.exclude)||(n.exclude=be.map(g=>l[g]).filter(Boolean)),r.startsWith(I)||(r=K(r)),l[a]=r)}}else n.compilerOptions={};if(n.include?(n.include=n.include.map(h),n.files&&delete n.files):n.files&&(n.files=n.files.map(l=>l.startsWith(I)?l:K(l))),n.watchOptions){const{watchOptions:l}=n;l.excludeDirectories&&(l.excludeDirectories=l.excludeDirectories.map(u=>h(m.resolve(o,u)))),l.excludeFiles&&(l.excludeFiles=l.excludeFiles.map(u=>h(m.resolve(o,u)))),l.watchFile&&(l.watchFile=l.watchFile.toLowerCase()),l.watchDirectory&&(l.watchDirectory=l.watchDirectory.toLowerCase()),l.fallbackPolling&&(l.fallbackPolling=l.fallbackPolling.toLowerCase())}return n},\"_parseTsconfig\"),H=i((e,t)=>{if(e.startsWith(I))return h(m.join(t,e.slice(I.length)))},\"interpolateConfigDir\"),Me=[\"outDir\",\"declarationDir\",\"outFile\",\"rootDir\",\"baseUrl\",\"tsBuildInfoFile\"],ze=i(e=>{var t,s,n,o,l,u,a,r,g,v,d,_,p,D,L,T,F,x,c,y,A,b,k,R,W,V,M,z,U,w,j,S,$;if(e.strict){const f=[\"noImplicitAny\",\"noImplicitThis\",\"strictNullChecks\",\"strictFunctionTypes\",\"strictBindCallApply\",\"strictPropertyInitialization\",\"strictBuiltinIteratorReturn\",\"alwaysStrict\",\"useUnknownInCatchVariables\"];for(const B of f)e[B]===void 0&&(e[B]=!0)}if(e.composite&&((t=e.declaration)!=null||(e.declaration=!0),(s=e.incremental)!=null||(e.incremental=!0)),e.target){let f=e.target.toLowerCase();f===\"es2015\"&&(f=\"es6\"),e.target=f,f===\"esnext\"&&((n=e.module)!=null||(e.module=\"es6\"),(o=e.useDefineForClassFields)!=null||(e.useDefineForClassFields=!0)),(f===\"es6\"||f===\"es2016\"||f===\"es2017\"||f===\"es2018\"||f===\"es2019\"||f===\"es2020\"||f===\"es2021\"||f===\"es2022\"||f===\"es2023\"||f===\"es2024\")&&((l=e.module)!=null||(e.module=\"es6\")),(f===\"es2022\"||f===\"es2023\"||f===\"es2024\")&&((u=e.useDefineForClassFields)!=null||(e.useDefineForClassFields=!0))}if(e.module){let f=e.module.toLowerCase();if(f===\"es2015\"&&(f=\"es6\"),e.module=f,(f===\"es6\"||f===\"es2020\"||f===\"es2022\"||f===\"esnext\"||f===\"none\"||f===\"system\"||f===\"umd\"||f===\"amd\")&&((a=e.moduleResolution)!=null||(e.moduleResolution=\"classic\")),f===\"system\"&&((r=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0)),(f===\"node16\"||f===\"node18\"||f===\"node20\"||f===\"nodenext\"||f===\"preserve\")&&((g=e.esModuleInterop)!=null||(e.esModuleInterop=!0),(v=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0)),(f===\"node16\"||f===\"node18\"||f===\"node20\"||f===\"nodenext\")&&((d=e.moduleDetection)!=null||(e.moduleDetection=\"force\")),f===\"node16\"&&((_=e.target)!=null||(e.target=\"es2022\"),(p=e.moduleResolution)!=null||(e.moduleResolution=\"node16\")),f===\"node18\"&&((D=e.target)!=null||(e.target=\"es2022\"),(L=e.moduleResolution)!=null||(e.moduleResolution=\"node16\")),f===\"node20\"&&((T=e.target)!=null||(e.target=\"es2023\"),(F=e.moduleResolution)!=null||(e.moduleResolution=\"node16\"),(x=e.resolveJsonModule)!=null||(e.resolveJsonModule=!0)),f===\"nodenext\"&&((c=e.target)!=null||(e.target=\"esnext\"),(y=e.moduleResolution)!=null||(e.moduleResolution=\"nodenext\"),(A=e.resolveJsonModule)!=null||(e.resolveJsonModule=!0)),f===\"node16\"||f===\"node18\"||f===\"node20\"||f===\"nodenext\"){const B=e.target;(B===\"es3\"||B===\"es2022\"||B===\"es2023\"||B===\"es2024\"||B===\"esnext\")&&((b=e.useDefineForClassFields)!=null||(e.useDefineForClassFields=!0))}f===\"preserve\"&&((k=e.moduleResolution)!=null||(e.moduleResolution=\"bundler\"))}if(e.moduleResolution){let f=e.moduleResolution.toLowerCase();f===\"node\"&&(f=\"node10\"),e.moduleResolution=f,(f===\"node16\"||f===\"nodenext\"||f===\"bundler\")&&((R=e.resolvePackageJsonExports)!=null||(e.resolvePackageJsonExports=!0),(W=e.resolvePackageJsonImports)!=null||(e.resolvePackageJsonImports=!0)),f===\"bundler\"&&((V=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0),(M=e.resolveJsonModule)!=null||(e.resolveJsonModule=!0))}e.jsx&&(e.jsx=e.jsx.toLowerCase()),e.moduleDetection&&(e.moduleDetection=e.moduleDetection.toLowerCase()),e.importsNotUsedAsValues&&(e.importsNotUsedAsValues=e.importsNotUsedAsValues.toLowerCase()),e.newLine&&(e.newLine=e.newLine.toLowerCase()),e.esModuleInterop&&((z=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0)),e.verbatimModuleSyntax&&((U=e.isolatedModules)!=null||(e.isolatedModules=!0),(w=e.preserveConstEnums)!=null||(e.preserveConstEnums=!0)),e.isolatedModules&&((j=e.preserveConstEnums)!=null||(e.preserveConstEnums=!0)),e.rewriteRelativeImportExtensions&&((S=e.allowImportingTsExtensions)!=null||(e.allowImportingTsExtensions=!0)),e.lib&&(e.lib=e.lib.map(f=>f.toLowerCase())),e.checkJs&&(($=e.allowJs)!=null||(e.allowJs=!0))},\"normalizeCompilerOptions\"),pe=i((e,t=new Map)=>{const s=m.resolve(e),n=ve(s,t),o=m.dirname(s),{compilerOptions:l}=n;if(l){for(const a of Me){const r=l[a];if(r){const g=H(r,o);l[a]=g?se(o,g):r}}for(const a of[\"rootDirs\",\"typeRoots\"]){const r=l[a];r&&(l[a]=r.map(g=>{const v=H(g,o);return v?se(o,v):g}))}const{paths:u}=l;if(u)for(const a of Object.keys(u))u[a]=u[a].map(r=>{var g;return(g=H(r,o))!=null?g:r});ze(l)}for(const u of we){const a=n[u];a&&(n[u]=a.map(r=>{var g;return(g=H(r,o))!=null?g:r}))}return n},\"parseTsconfig\"),Ge=i((e=process.cwd(),t=\"tsconfig.json\",s=new Map)=>{const n=fe(h(e),t,s);if(!n)return null;const o=pe(n,s);return{path:n,config:o}},\"getTsconfig\"),Qe=/\\*/g,Te=i((e,t)=>{const s=e.match(Qe);if(s&&s.length>1)throw new Error(t)},\"assertStarCount\"),He=i(e=>{if(e.includes(\"*\")){const[t,s]=e.split(\"*\");return{prefix:t,suffix:s}}return e},\"parsePattern\"),Xe=i(({prefix:e,suffix:t},s)=>s.startsWith(e)&&s.endsWith(t),\"isPatternMatch\"),Ye=i((e,t,s)=>Object.entries(e).map(([n,o])=>(Te(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:He(n),substitutions:o.map(l=>{if(Te(l,`Substitution '${l}' in pattern '${n}' can have at most one '*' character.`),!t&&!q.test(l)&&!m.isAbsolute(l))throw new Error(\"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\");return m.resolve(s,l)})})),\"parsePaths\"),Ze=i(e=>{const{compilerOptions:t}=e.config;if(!t)return null;const{baseUrl:s,paths:n}=t;if(!s&&!n)return null;const o=C in t&&t[C],l=m.resolve(m.dirname(e.path),s||o||\".\"),u=n?Ye(n,s,l):[];return a=>{if(q.test(a))return[];const r=[];for(const _ of u){if(_.pattern===a)return _.substitutions.map(h);typeof _.pattern!=\"string\"&&r.push(_)}let g,v=-1;for(const _ of r)Xe(_.pattern,a)&&_.pattern.prefix.length>v&&(v=_.pattern.prefix.length,g=_);if(!g)return s?[h(m.join(l,a))]:[];const d=a.slice(g.pattern.prefix.length,a.length-g.pattern.suffix.length);return g.substitutions.map(_=>h(_.replace(\"*\",d)))}},\"createPathsMatcher\");var qe=Object.defineProperty,X=i((e,t)=>qe(e,\"name\",{value:t,configurable:!0}),\"s\");const Ae=X(e=>{let t=\"\";for(let s=0;s<e.length;s+=1){const n=e[s],o=n.toUpperCase();t+=n===o?n.toLowerCase():o}return t},\"invertCase\"),le=new Map,_e=X((e,t)=>{const s=Ie.join(e,`.is-fs-case-sensitive-test-${process.pid}`);try{return t.writeFileSync(s,\"\"),!t.existsSync(Ae(s))}finally{try{t.unlinkSync(s)}catch{}}},\"checkDirectoryCaseWithWrite\"),Ke=X((e,t,s)=>{try{return _e(e,s)}catch(n){if(t===void 0)return _e(Be.tmpdir(),s);throw n}},\"checkDirectoryCaseWithFallback\"),Oe=X((e,t=xe,s=!0)=>{const n=e!=null?e:process.cwd();if(s&&le.has(n))return le.get(n);let o;const l=Ae(n);return l!==n&&t.existsSync(n)?o=!t.existsSync(l):o=Ke(n,e,t),s&&le.set(n,o),o},\"isFsCaseSensitive\"),{join:ye}=m.posix,oe={ts:[\".ts\",\".tsx\",\".d.ts\"],cts:[\".cts\",\".d.cts\"],mts:[\".mts\",\".d.mts\"]},Ce=i(e=>{const t=[...oe.ts],s=[...oe.cts],n=[...oe.mts];return e!=null&&e.allowJs&&(t.push(\".js\",\".jsx\"),s.push(\".cjs\"),n.push(\".mjs\")),[...t,...s,...n]},\"getSupportedExtensions\"),en=i(e=>{const t=[];if(!e)return t;const{outDir:s,declarationDir:n}=e;return s&&t.push(s),n&&t.push(n),t},\"getDefaultExcludeSpec\"),je=i(e=>e.replaceAll(/[.*+?^${}()|[\\]\\\\]/g,String.raw`\\$&`),\"escapeForRegexp\"),nn=[\"node_modules\",\"bower_components\",\"jspm_packages\"],ie=`(?!(${nn.join(\"|\")})(/|$))`,tn=/(?:^|\\/)[^.*?]+$/,Fe=\"**/*\",Y=\"[^/]\",ue=\"[^./]\",De=process.platform===\"win32\",sn=i(({config:e,path:t},s=Oe())=>{if(\"extends\"in e)throw new Error(\"tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.\");if(!m.isAbsolute(t))throw new Error(\"The tsconfig path must be absolute\");De&&(t=h(t));const n=m.dirname(t),{files:o,include:l,exclude:u,compilerOptions:a}=e,r=i(T=>m.isAbsolute(T)?T:ye(n,T),\"resolvePattern\"),g=o==null?void 0:o.map(r),v=Ce(a),d=s?\"\":\"i\",p=(u||en(a)).map(T=>{const F=r(T),x=je(F).replaceAll(String.raw`\\*\\*/`,\"(.+/)?\").replaceAll(String.raw`\\*`,`${Y}*`).replaceAll(String.raw`\\?`,Y);return new RegExp(`^${x}($|/)`,d)}),D=o||l?l:[Fe],L=D?D.map(T=>{let F=r(T);tn.test(F)&&(F=ye(F,Fe));const x=je(F).replaceAll(String.raw`/\\*\\*`,`(/${ie}${ue}${Y}*)*?`).replaceAll(/(\\/)?\\\\\\*/g,(c,y)=>{const A=`(${ue}|(\\\\.(?!min\\\\.js$))?)*`;return y?`/${ie}${ue}${A}`:A}).replaceAll(/(\\/)?\\\\\\?/g,(c,y)=>{const A=Y;return y?`/${ie}${A}`:A});return new RegExp(`^${x}$`,d)}):void 0;return T=>{if(!m.isAbsolute(T))throw new Error(\"filePath must be absolute\");if(De&&(T=h(T)),g!=null&&g.includes(T))return e;if(!(!v.some(F=>T.endsWith(F))||p.some(F=>F.test(T)))&&L&&L.some(F=>F.test(T)))return e}},\"createFilesMatcher\");export{sn as createFilesMatcher,Ze as createPathsMatcher,Ge as getTsconfig,pe as parseTsconfig};\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// lib/npm/node.ts\nvar node_exports = {};\n__export(node_exports, {\n analyzeMetafile: () => analyzeMetafile,\n analyzeMetafileSync: () => analyzeMetafileSync,\n build: () => build,\n buildSync: () => buildSync,\n context: () => context,\n default: () => node_default,\n formatMessages: () => formatMessages,\n formatMessagesSync: () => formatMessagesSync,\n initialize: () => initialize,\n stop: () => stop,\n transform: () => transform,\n transformSync: () => transformSync,\n version: () => version\n});\nmodule.exports = __toCommonJS(node_exports);\n\n// lib/shared/stdio_protocol.ts\nfunction encodePacket(packet) {\n let visit = (value) => {\n if (value === null) {\n bb.write8(0);\n } else if (typeof value === \"boolean\") {\n bb.write8(1);\n bb.write8(+value);\n } else if (typeof value === \"number\") {\n bb.write8(2);\n bb.write32(value | 0);\n } else if (typeof value === \"string\") {\n bb.write8(3);\n bb.write(encodeUTF8(value));\n } else if (value instanceof Uint8Array) {\n bb.write8(4);\n bb.write(value);\n } else if (value instanceof Array) {\n bb.write8(5);\n bb.write32(value.length);\n for (let item of value) {\n visit(item);\n }\n } else {\n let keys = Object.keys(value);\n bb.write8(6);\n bb.write32(keys.length);\n for (let key of keys) {\n bb.write(encodeUTF8(key));\n visit(value[key]);\n }\n }\n };\n let bb = new ByteBuffer();\n bb.write32(0);\n bb.write32(packet.id << 1 | +!packet.isRequest);\n visit(packet.value);\n writeUInt32LE(bb.buf, bb.len - 4, 0);\n return bb.buf.subarray(0, bb.len);\n}\nfunction decodePacket(bytes) {\n let visit = () => {\n switch (bb.read8()) {\n case 0:\n return null;\n case 1:\n return !!bb.read8();\n case 2:\n return bb.read32();\n case 3:\n return decodeUTF8(bb.read());\n case 4:\n return bb.read();\n case 5: {\n let count = bb.read32();\n let value2 = [];\n for (let i = 0; i < count; i++) {\n value2.push(visit());\n }\n return value2;\n }\n case 6: {\n let count = bb.read32();\n let value2 = {};\n for (let i = 0; i < count; i++) {\n value2[decodeUTF8(bb.read())] = visit();\n }\n return value2;\n }\n default:\n throw new Error(\"Invalid packet\");\n }\n };\n let bb = new ByteBuffer(bytes);\n let id = bb.read32();\n let isRequest = (id & 1) === 0;\n id >>>= 1;\n let value = visit();\n if (bb.ptr !== bytes.length) {\n throw new Error(\"Invalid packet\");\n }\n return { id, isRequest, value };\n}\nvar ByteBuffer = class {\n constructor(buf = new Uint8Array(1024)) {\n this.buf = buf;\n this.len = 0;\n this.ptr = 0;\n }\n _write(delta) {\n if (this.len + delta > this.buf.length) {\n let clone = new Uint8Array((this.len + delta) * 2);\n clone.set(this.buf);\n this.buf = clone;\n }\n this.len += delta;\n return this.len - delta;\n }\n write8(value) {\n let offset = this._write(1);\n this.buf[offset] = value;\n }\n write32(value) {\n let offset = this._write(4);\n writeUInt32LE(this.buf, value, offset);\n }\n write(bytes) {\n let offset = this._write(4 + bytes.length);\n writeUInt32LE(this.buf, bytes.length, offset);\n this.buf.set(bytes, offset + 4);\n }\n _read(delta) {\n if (this.ptr + delta > this.buf.length) {\n throw new Error(\"Invalid packet\");\n }\n this.ptr += delta;\n return this.ptr - delta;\n }\n read8() {\n return this.buf[this._read(1)];\n }\n read32() {\n return readUInt32LE(this.buf, this._read(4));\n }\n read() {\n let length = this.read32();\n let bytes = new Uint8Array(length);\n let ptr = this._read(bytes.length);\n bytes.set(this.buf.subarray(ptr, ptr + length));\n return bytes;\n }\n};\nvar encodeUTF8;\nvar decodeUTF8;\nvar encodeInvariant;\nif (typeof TextEncoder !== \"undefined\" && typeof TextDecoder !== \"undefined\") {\n let encoder = new TextEncoder();\n let decoder = new TextDecoder();\n encodeUTF8 = (text) => encoder.encode(text);\n decodeUTF8 = (bytes) => decoder.decode(bytes);\n encodeInvariant = 'new TextEncoder().encode(\"\")';\n} else if (typeof Buffer !== \"undefined\") {\n encodeUTF8 = (text) => Buffer.from(text);\n decodeUTF8 = (bytes) => {\n let { buffer, byteOffset, byteLength } = bytes;\n return Buffer.from(buffer, byteOffset, byteLength).toString();\n };\n encodeInvariant = 'Buffer.from(\"\")';\n} else {\n throw new Error(\"No UTF-8 codec found\");\n}\nif (!(encodeUTF8(\"\") instanceof Uint8Array))\n throw new Error(`Invariant violation: \"${encodeInvariant} instanceof Uint8Array\" is incorrectly false\n\nThis indicates that your JavaScript environment is broken. You cannot use\nesbuild in this environment because esbuild relies on this invariant. This\nis not a problem with esbuild. You need to fix your environment instead.\n`);\nfunction readUInt32LE(buffer, offset) {\n return buffer[offset++] | buffer[offset++] << 8 | buffer[offset++] << 16 | buffer[offset++] << 24;\n}\nfunction writeUInt32LE(buffer, value, offset) {\n buffer[offset++] = value;\n buffer[offset++] = value >> 8;\n buffer[offset++] = value >> 16;\n buffer[offset++] = value >> 24;\n}\n\n// lib/shared/common.ts\nvar quote = JSON.stringify;\nvar buildLogLevelDefault = \"warning\";\nvar transformLogLevelDefault = \"silent\";\nfunction validateAndJoinStringArray(values, what) {\n const toJoin = [];\n for (const value of values) {\n validateStringValue(value, what);\n if (value.indexOf(\",\") >= 0) throw new Error(`Invalid ${what}: ${value}`);\n toJoin.push(value);\n }\n return toJoin.join(\",\");\n}\nvar canBeAnything = () => null;\nvar mustBeBoolean = (value) => typeof value === \"boolean\" ? null : \"a boolean\";\nvar mustBeString = (value) => typeof value === \"string\" ? null : \"a string\";\nvar mustBeRegExp = (value) => value instanceof RegExp ? null : \"a RegExp object\";\nvar mustBeInteger = (value) => typeof value === \"number\" && value === (value | 0) ? null : \"an integer\";\nvar mustBeValidPortNumber = (value) => typeof value === \"number\" && value === (value | 0) && value >= 0 && value <= 65535 ? null : \"a valid port number\";\nvar mustBeFunction = (value) => typeof value === \"function\" ? null : \"a function\";\nvar mustBeArray = (value) => Array.isArray(value) ? null : \"an array\";\nvar mustBeArrayOfStrings = (value) => Array.isArray(value) && value.every((x) => typeof x === \"string\") ? null : \"an array of strings\";\nvar mustBeObject = (value) => typeof value === \"object\" && value !== null && !Array.isArray(value) ? null : \"an object\";\nvar mustBeEntryPoints = (value) => typeof value === \"object\" && value !== null ? null : \"an array or an object\";\nvar mustBeWebAssemblyModule = (value) => value instanceof WebAssembly.Module ? null : \"a WebAssembly.Module\";\nvar mustBeObjectOrNull = (value) => typeof value === \"object\" && !Array.isArray(value) ? null : \"an object or null\";\nvar mustBeStringOrBoolean = (value) => typeof value === \"string\" || typeof value === \"boolean\" ? null : \"a string or a boolean\";\nvar mustBeStringOrObject = (value) => typeof value === \"string\" || typeof value === \"object\" && value !== null && !Array.isArray(value) ? null : \"a string or an object\";\nvar mustBeStringOrArrayOfStrings = (value) => typeof value === \"string\" || Array.isArray(value) && value.every((x) => typeof x === \"string\") ? null : \"a string or an array of strings\";\nvar mustBeStringOrUint8Array = (value) => typeof value === \"string\" || value instanceof Uint8Array ? null : \"a string or a Uint8Array\";\nvar mustBeStringOrURL = (value) => typeof value === \"string\" || value instanceof URL ? null : \"a string or a URL\";\nfunction getFlag(object, keys, key, mustBeFn) {\n let value = object[key];\n keys[key + \"\"] = true;\n if (value === void 0) return void 0;\n let mustBe = mustBeFn(value);\n if (mustBe !== null) throw new Error(`${quote(key)} must be ${mustBe}`);\n return value;\n}\nfunction checkForInvalidFlags(object, keys, where) {\n for (let key in object) {\n if (!(key in keys)) {\n throw new Error(`Invalid option ${where}: ${quote(key)}`);\n }\n }\n}\nfunction validateInitializeOptions(options) {\n let keys = /* @__PURE__ */ Object.create(null);\n let wasmURL = getFlag(options, keys, \"wasmURL\", mustBeStringOrURL);\n let wasmModule = getFlag(options, keys, \"wasmModule\", mustBeWebAssemblyModule);\n let worker = getFlag(options, keys, \"worker\", mustBeBoolean);\n checkForInvalidFlags(options, keys, \"in initialize() call\");\n return {\n wasmURL,\n wasmModule,\n worker\n };\n}\nfunction validateMangleCache(mangleCache) {\n let validated;\n if (mangleCache !== void 0) {\n validated = /* @__PURE__ */ Object.create(null);\n for (let key in mangleCache) {\n let value = mangleCache[key];\n if (typeof value === \"string\" || value === false) {\n validated[key] = value;\n } else {\n throw new Error(`Expected ${quote(key)} in mangle cache to map to either a string or false`);\n }\n }\n }\n return validated;\n}\nfunction pushLogFlags(flags, options, keys, isTTY2, logLevelDefault) {\n let color = getFlag(options, keys, \"color\", mustBeBoolean);\n let logLevel = getFlag(options, keys, \"logLevel\", mustBeString);\n let logLimit = getFlag(options, keys, \"logLimit\", mustBeInteger);\n if (color !== void 0) flags.push(`--color=${color}`);\n else if (isTTY2) flags.push(`--color=true`);\n flags.push(`--log-level=${logLevel || logLevelDefault}`);\n flags.push(`--log-limit=${logLimit || 0}`);\n}\nfunction validateStringValue(value, what, key) {\n if (typeof value !== \"string\") {\n throw new Error(`Expected value for ${what}${key !== void 0 ? \" \" + quote(key) : \"\"} to be a string, got ${typeof value} instead`);\n }\n return value;\n}\nfunction pushCommonFlags(flags, options, keys) {\n let legalComments = getFlag(options, keys, \"legalComments\", mustBeString);\n let sourceRoot = getFlag(options, keys, \"sourceRoot\", mustBeString);\n let sourcesContent = getFlag(options, keys, \"sourcesContent\", mustBeBoolean);\n let target = getFlag(options, keys, \"target\", mustBeStringOrArrayOfStrings);\n let format = getFlag(options, keys, \"format\", mustBeString);\n let globalName = getFlag(options, keys, \"globalName\", mustBeString);\n let mangleProps = getFlag(options, keys, \"mangleProps\", mustBeRegExp);\n let reserveProps = getFlag(options, keys, \"reserveProps\", mustBeRegExp);\n let mangleQuoted = getFlag(options, keys, \"mangleQuoted\", mustBeBoolean);\n let minify = getFlag(options, keys, \"minify\", mustBeBoolean);\n let minifySyntax = getFlag(options, keys, \"minifySyntax\", mustBeBoolean);\n let minifyWhitespace = getFlag(options, keys, \"minifyWhitespace\", mustBeBoolean);\n let minifyIdentifiers = getFlag(options, keys, \"minifyIdentifiers\", mustBeBoolean);\n let lineLimit = getFlag(options, keys, \"lineLimit\", mustBeInteger);\n let drop = getFlag(options, keys, \"drop\", mustBeArrayOfStrings);\n let dropLabels = getFlag(options, keys, \"dropLabels\", mustBeArrayOfStrings);\n let charset = getFlag(options, keys, \"charset\", mustBeString);\n let treeShaking = getFlag(options, keys, \"treeShaking\", mustBeBoolean);\n let ignoreAnnotations = getFlag(options, keys, \"ignoreAnnotations\", mustBeBoolean);\n let jsx = getFlag(options, keys, \"jsx\", mustBeString);\n let jsxFactory = getFlag(options, keys, \"jsxFactory\", mustBeString);\n let jsxFragment = getFlag(options, keys, \"jsxFragment\", mustBeString);\n let jsxImportSource = getFlag(options, keys, \"jsxImportSource\", mustBeString);\n let jsxDev = getFlag(options, keys, \"jsxDev\", mustBeBoolean);\n let jsxSideEffects = getFlag(options, keys, \"jsxSideEffects\", mustBeBoolean);\n let define = getFlag(options, keys, \"define\", mustBeObject);\n let logOverride = getFlag(options, keys, \"logOverride\", mustBeObject);\n let supported = getFlag(options, keys, \"supported\", mustBeObject);\n let pure = getFlag(options, keys, \"pure\", mustBeArrayOfStrings);\n let keepNames = getFlag(options, keys, \"keepNames\", mustBeBoolean);\n let platform = getFlag(options, keys, \"platform\", mustBeString);\n let tsconfigRaw = getFlag(options, keys, \"tsconfigRaw\", mustBeStringOrObject);\n let absPaths = getFlag(options, keys, \"absPaths\", mustBeArrayOfStrings);\n if (legalComments) flags.push(`--legal-comments=${legalComments}`);\n if (sourceRoot !== void 0) flags.push(`--source-root=${sourceRoot}`);\n if (sourcesContent !== void 0) flags.push(`--sources-content=${sourcesContent}`);\n if (target) flags.push(`--target=${validateAndJoinStringArray(Array.isArray(target) ? target : [target], \"target\")}`);\n if (format) flags.push(`--format=${format}`);\n if (globalName) flags.push(`--global-name=${globalName}`);\n if (platform) flags.push(`--platform=${platform}`);\n if (tsconfigRaw) flags.push(`--tsconfig-raw=${typeof tsconfigRaw === \"string\" ? tsconfigRaw : JSON.stringify(tsconfigRaw)}`);\n if (minify) flags.push(\"--minify\");\n if (minifySyntax) flags.push(\"--minify-syntax\");\n if (minifyWhitespace) flags.push(\"--minify-whitespace\");\n if (minifyIdentifiers) flags.push(\"--minify-identifiers\");\n if (lineLimit) flags.push(`--line-limit=${lineLimit}`);\n if (charset) flags.push(`--charset=${charset}`);\n if (treeShaking !== void 0) flags.push(`--tree-shaking=${treeShaking}`);\n if (ignoreAnnotations) flags.push(`--ignore-annotations`);\n if (drop) for (let what of drop) flags.push(`--drop:${validateStringValue(what, \"drop\")}`);\n if (dropLabels) flags.push(`--drop-labels=${validateAndJoinStringArray(dropLabels, \"drop label\")}`);\n if (absPaths) flags.push(`--abs-paths=${validateAndJoinStringArray(absPaths, \"abs paths\")}`);\n if (mangleProps) flags.push(`--mangle-props=${jsRegExpToGoRegExp(mangleProps)}`);\n if (reserveProps) flags.push(`--reserve-props=${jsRegExpToGoRegExp(reserveProps)}`);\n if (mangleQuoted !== void 0) flags.push(`--mangle-quoted=${mangleQuoted}`);\n if (jsx) flags.push(`--jsx=${jsx}`);\n if (jsxFactory) flags.push(`--jsx-factory=${jsxFactory}`);\n if (jsxFragment) flags.push(`--jsx-fragment=${jsxFragment}`);\n if (jsxImportSource) flags.push(`--jsx-import-source=${jsxImportSource}`);\n if (jsxDev) flags.push(`--jsx-dev`);\n if (jsxSideEffects) flags.push(`--jsx-side-effects`);\n if (define) {\n for (let key in define) {\n if (key.indexOf(\"=\") >= 0) throw new Error(`Invalid define: ${key}`);\n flags.push(`--define:${key}=${validateStringValue(define[key], \"define\", key)}`);\n }\n }\n if (logOverride) {\n for (let key in logOverride) {\n if (key.indexOf(\"=\") >= 0) throw new Error(`Invalid log override: ${key}`);\n flags.push(`--log-override:${key}=${validateStringValue(logOverride[key], \"log override\", key)}`);\n }\n }\n if (supported) {\n for (let key in supported) {\n if (key.indexOf(\"=\") >= 0) throw new Error(`Invalid supported: ${key}`);\n const value = supported[key];\n if (typeof value !== \"boolean\") throw new Error(`Expected value for supported ${quote(key)} to be a boolean, got ${typeof value} instead`);\n flags.push(`--supported:${key}=${value}`);\n }\n }\n if (pure) for (let fn of pure) flags.push(`--pure:${validateStringValue(fn, \"pure\")}`);\n if (keepNames) flags.push(`--keep-names`);\n}\nfunction flagsForBuildOptions(callName, options, isTTY2, logLevelDefault, writeDefault) {\n var _a2;\n let flags = [];\n let entries = [];\n let keys = /* @__PURE__ */ Object.create(null);\n let stdinContents = null;\n let stdinResolveDir = null;\n pushLogFlags(flags, options, keys, isTTY2, logLevelDefault);\n pushCommonFlags(flags, options, keys);\n let sourcemap = getFlag(options, keys, \"sourcemap\", mustBeStringOrBoolean);\n let bundle = getFlag(options, keys, \"bundle\", mustBeBoolean);\n let splitting = getFlag(options, keys, \"splitting\", mustBeBoolean);\n let preserveSymlinks = getFlag(options, keys, \"preserveSymlinks\", mustBeBoolean);\n let metafile = getFlag(options, keys, \"metafile\", mustBeBoolean);\n let outfile = getFlag(options, keys, \"outfile\", mustBeString);\n let outdir = getFlag(options, keys, \"outdir\", mustBeString);\n let outbase = getFlag(options, keys, \"outbase\", mustBeString);\n let tsconfig = getFlag(options, keys, \"tsconfig\", mustBeString);\n let resolveExtensions = getFlag(options, keys, \"resolveExtensions\", mustBeArrayOfStrings);\n let nodePathsInput = getFlag(options, keys, \"nodePaths\", mustBeArrayOfStrings);\n let mainFields = getFlag(options, keys, \"mainFields\", mustBeArrayOfStrings);\n let conditions = getFlag(options, keys, \"conditions\", mustBeArrayOfStrings);\n let external = getFlag(options, keys, \"external\", mustBeArrayOfStrings);\n let packages = getFlag(options, keys, \"packages\", mustBeString);\n let alias = getFlag(options, keys, \"alias\", mustBeObject);\n let loader = getFlag(options, keys, \"loader\", mustBeObject);\n let outExtension = getFlag(options, keys, \"outExtension\", mustBeObject);\n let publicPath = getFlag(options, keys, \"publicPath\", mustBeString);\n let entryNames = getFlag(options, keys, \"entryNames\", mustBeString);\n let chunkNames = getFlag(options, keys, \"chunkNames\", mustBeString);\n let assetNames = getFlag(options, keys, \"assetNames\", mustBeString);\n let inject = getFlag(options, keys, \"inject\", mustBeArrayOfStrings);\n let banner = getFlag(options, keys, \"banner\", mustBeObject);\n let footer = getFlag(options, keys, \"footer\", mustBeObject);\n let entryPoints = getFlag(options, keys, \"entryPoints\", mustBeEntryPoints);\n let absWorkingDir = getFlag(options, keys, \"absWorkingDir\", mustBeString);\n let stdin = getFlag(options, keys, \"stdin\", mustBeObject);\n let write = (_a2 = getFlag(options, keys, \"write\", mustBeBoolean)) != null ? _a2 : writeDefault;\n let allowOverwrite = getFlag(options, keys, \"allowOverwrite\", mustBeBoolean);\n let mangleCache = getFlag(options, keys, \"mangleCache\", mustBeObject);\n keys.plugins = true;\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n if (sourcemap) flags.push(`--sourcemap${sourcemap === true ? \"\" : `=${sourcemap}`}`);\n if (bundle) flags.push(\"--bundle\");\n if (allowOverwrite) flags.push(\"--allow-overwrite\");\n if (splitting) flags.push(\"--splitting\");\n if (preserveSymlinks) flags.push(\"--preserve-symlinks\");\n if (metafile) flags.push(`--metafile`);\n if (outfile) flags.push(`--outfile=${outfile}`);\n if (outdir) flags.push(`--outdir=${outdir}`);\n if (outbase) flags.push(`--outbase=${outbase}`);\n if (tsconfig) flags.push(`--tsconfig=${tsconfig}`);\n if (packages) flags.push(`--packages=${packages}`);\n if (resolveExtensions) flags.push(`--resolve-extensions=${validateAndJoinStringArray(resolveExtensions, \"resolve extension\")}`);\n if (publicPath) flags.push(`--public-path=${publicPath}`);\n if (entryNames) flags.push(`--entry-names=${entryNames}`);\n if (chunkNames) flags.push(`--chunk-names=${chunkNames}`);\n if (assetNames) flags.push(`--asset-names=${assetNames}`);\n if (mainFields) flags.push(`--main-fields=${validateAndJoinStringArray(mainFields, \"main field\")}`);\n if (conditions) flags.push(`--conditions=${validateAndJoinStringArray(conditions, \"condition\")}`);\n if (external) for (let name of external) flags.push(`--external:${validateStringValue(name, \"external\")}`);\n if (alias) {\n for (let old in alias) {\n if (old.indexOf(\"=\") >= 0) throw new Error(`Invalid package name in alias: ${old}`);\n flags.push(`--alias:${old}=${validateStringValue(alias[old], \"alias\", old)}`);\n }\n }\n if (banner) {\n for (let type in banner) {\n if (type.indexOf(\"=\") >= 0) throw new Error(`Invalid banner file type: ${type}`);\n flags.push(`--banner:${type}=${validateStringValue(banner[type], \"banner\", type)}`);\n }\n }\n if (footer) {\n for (let type in footer) {\n if (type.indexOf(\"=\") >= 0) throw new Error(`Invalid footer file type: ${type}`);\n flags.push(`--footer:${type}=${validateStringValue(footer[type], \"footer\", type)}`);\n }\n }\n if (inject) for (let path3 of inject) flags.push(`--inject:${validateStringValue(path3, \"inject\")}`);\n if (loader) {\n for (let ext in loader) {\n if (ext.indexOf(\"=\") >= 0) throw new Error(`Invalid loader extension: ${ext}`);\n flags.push(`--loader:${ext}=${validateStringValue(loader[ext], \"loader\", ext)}`);\n }\n }\n if (outExtension) {\n for (let ext in outExtension) {\n if (ext.indexOf(\"=\") >= 0) throw new Error(`Invalid out extension: ${ext}`);\n flags.push(`--out-extension:${ext}=${validateStringValue(outExtension[ext], \"out extension\", ext)}`);\n }\n }\n if (entryPoints) {\n if (Array.isArray(entryPoints)) {\n for (let i = 0, n = entryPoints.length; i < n; i++) {\n let entryPoint = entryPoints[i];\n if (typeof entryPoint === \"object\" && entryPoint !== null) {\n let entryPointKeys = /* @__PURE__ */ Object.create(null);\n let input = getFlag(entryPoint, entryPointKeys, \"in\", mustBeString);\n let output = getFlag(entryPoint, entryPointKeys, \"out\", mustBeString);\n checkForInvalidFlags(entryPoint, entryPointKeys, \"in entry point at index \" + i);\n if (input === void 0) throw new Error('Missing property \"in\" for entry point at index ' + i);\n if (output === void 0) throw new Error('Missing property \"out\" for entry point at index ' + i);\n entries.push([output, input]);\n } else {\n entries.push([\"\", validateStringValue(entryPoint, \"entry point at index \" + i)]);\n }\n }\n } else {\n for (let key in entryPoints) {\n entries.push([key, validateStringValue(entryPoints[key], \"entry point\", key)]);\n }\n }\n }\n if (stdin) {\n let stdinKeys = /* @__PURE__ */ Object.create(null);\n let contents = getFlag(stdin, stdinKeys, \"contents\", mustBeStringOrUint8Array);\n let resolveDir = getFlag(stdin, stdinKeys, \"resolveDir\", mustBeString);\n let sourcefile = getFlag(stdin, stdinKeys, \"sourcefile\", mustBeString);\n let loader2 = getFlag(stdin, stdinKeys, \"loader\", mustBeString);\n checkForInvalidFlags(stdin, stdinKeys, 'in \"stdin\" object');\n if (sourcefile) flags.push(`--sourcefile=${sourcefile}`);\n if (loader2) flags.push(`--loader=${loader2}`);\n if (resolveDir) stdinResolveDir = resolveDir;\n if (typeof contents === \"string\") stdinContents = encodeUTF8(contents);\n else if (contents instanceof Uint8Array) stdinContents = contents;\n }\n let nodePaths = [];\n if (nodePathsInput) {\n for (let value of nodePathsInput) {\n value += \"\";\n nodePaths.push(value);\n }\n }\n return {\n entries,\n flags,\n write,\n stdinContents,\n stdinResolveDir,\n absWorkingDir,\n nodePaths,\n mangleCache: validateMangleCache(mangleCache)\n };\n}\nfunction flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {\n let flags = [];\n let keys = /* @__PURE__ */ Object.create(null);\n pushLogFlags(flags, options, keys, isTTY2, logLevelDefault);\n pushCommonFlags(flags, options, keys);\n let sourcemap = getFlag(options, keys, \"sourcemap\", mustBeStringOrBoolean);\n let sourcefile = getFlag(options, keys, \"sourcefile\", mustBeString);\n let loader = getFlag(options, keys, \"loader\", mustBeString);\n let banner = getFlag(options, keys, \"banner\", mustBeString);\n let footer = getFlag(options, keys, \"footer\", mustBeString);\n let mangleCache = getFlag(options, keys, \"mangleCache\", mustBeObject);\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n if (sourcemap) flags.push(`--sourcemap=${sourcemap === true ? \"external\" : sourcemap}`);\n if (sourcefile) flags.push(`--sourcefile=${sourcefile}`);\n if (loader) flags.push(`--loader=${loader}`);\n if (banner) flags.push(`--banner=${banner}`);\n if (footer) flags.push(`--footer=${footer}`);\n return {\n flags,\n mangleCache: validateMangleCache(mangleCache)\n };\n}\nfunction createChannel(streamIn) {\n const requestCallbacksByKey = {};\n const closeData = { didClose: false, reason: \"\" };\n let responseCallbacks = {};\n let nextRequestID = 0;\n let nextBuildKey = 0;\n let stdout = new Uint8Array(16 * 1024);\n let stdoutUsed = 0;\n let readFromStdout = (chunk) => {\n let limit = stdoutUsed + chunk.length;\n if (limit > stdout.length) {\n let swap = new Uint8Array(limit * 2);\n swap.set(stdout);\n stdout = swap;\n }\n stdout.set(chunk, stdoutUsed);\n stdoutUsed += chunk.length;\n let offset = 0;\n while (offset + 4 <= stdoutUsed) {\n let length = readUInt32LE(stdout, offset);\n if (offset + 4 + length > stdoutUsed) {\n break;\n }\n offset += 4;\n handleIncomingPacket(stdout.subarray(offset, offset + length));\n offset += length;\n }\n if (offset > 0) {\n stdout.copyWithin(0, offset, stdoutUsed);\n stdoutUsed -= offset;\n }\n };\n let afterClose = (error) => {\n closeData.didClose = true;\n if (error) closeData.reason = \": \" + (error.message || error);\n const text = \"The service was stopped\" + closeData.reason;\n for (let id in responseCallbacks) {\n responseCallbacks[id](text, null);\n }\n responseCallbacks = {};\n };\n let sendRequest = (refs, value, callback) => {\n if (closeData.didClose) return callback(\"The service is no longer running\" + closeData.reason, null);\n let id = nextRequestID++;\n responseCallbacks[id] = (error, response) => {\n try {\n callback(error, response);\n } finally {\n if (refs) refs.unref();\n }\n };\n if (refs) refs.ref();\n streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));\n };\n let sendResponse = (id, value) => {\n if (closeData.didClose) throw new Error(\"The service is no longer running\" + closeData.reason);\n streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));\n };\n let handleRequest = async (id, request) => {\n try {\n if (request.command === \"ping\") {\n sendResponse(id, {});\n return;\n }\n if (typeof request.key === \"number\") {\n const requestCallbacks = requestCallbacksByKey[request.key];\n if (!requestCallbacks) {\n return;\n }\n const callback = requestCallbacks[request.command];\n if (callback) {\n await callback(id, request);\n return;\n }\n }\n throw new Error(`Invalid command: ` + request.command);\n } catch (e) {\n const errors = [extractErrorMessageV8(e, streamIn, null, void 0, \"\")];\n try {\n sendResponse(id, { errors });\n } catch {\n }\n }\n };\n let isFirstPacket = true;\n let handleIncomingPacket = (bytes) => {\n if (isFirstPacket) {\n isFirstPacket = false;\n let binaryVersion = String.fromCharCode(...bytes);\n if (binaryVersion !== \"0.27.3\") {\n throw new Error(`Cannot start service: Host version \"${\"0.27.3\"}\" does not match binary version ${quote(binaryVersion)}`);\n }\n return;\n }\n let packet = decodePacket(bytes);\n if (packet.isRequest) {\n handleRequest(packet.id, packet.value);\n } else {\n let callback = responseCallbacks[packet.id];\n delete responseCallbacks[packet.id];\n if (packet.value.error) callback(packet.value.error, {});\n else callback(null, packet.value);\n }\n };\n let buildOrContext = ({ callName, refs, options, isTTY: isTTY2, defaultWD: defaultWD2, callback }) => {\n let refCount = 0;\n const buildKey = nextBuildKey++;\n const requestCallbacks = {};\n const buildRefs = {\n ref() {\n if (++refCount === 1) {\n if (refs) refs.ref();\n }\n },\n unref() {\n if (--refCount === 0) {\n delete requestCallbacksByKey[buildKey];\n if (refs) refs.unref();\n }\n }\n };\n requestCallbacksByKey[buildKey] = requestCallbacks;\n buildRefs.ref();\n buildOrContextImpl(\n callName,\n buildKey,\n sendRequest,\n sendResponse,\n buildRefs,\n streamIn,\n requestCallbacks,\n options,\n isTTY2,\n defaultWD2,\n (err, res) => {\n try {\n callback(err, res);\n } finally {\n buildRefs.unref();\n }\n }\n );\n };\n let transform2 = ({ callName, refs, input, options, isTTY: isTTY2, fs: fs3, callback }) => {\n const details = createObjectStash();\n let start = (inputPath) => {\n try {\n if (typeof input !== \"string\" && !(input instanceof Uint8Array))\n throw new Error('The input to \"transform\" must be a string or a Uint8Array');\n let {\n flags,\n mangleCache\n } = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);\n let request = {\n command: \"transform\",\n flags,\n inputFS: inputPath !== null,\n input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === \"string\" ? encodeUTF8(input) : input\n };\n if (mangleCache) request.mangleCache = mangleCache;\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n let errors = replaceDetailsInMessages(response.errors, details);\n let warnings = replaceDetailsInMessages(response.warnings, details);\n let outstanding = 1;\n let next = () => {\n if (--outstanding === 0) {\n let result = {\n warnings,\n code: response.code,\n map: response.map,\n mangleCache: void 0,\n legalComments: void 0\n };\n if (\"legalComments\" in response) result.legalComments = response == null ? void 0 : response.legalComments;\n if (response.mangleCache) result.mangleCache = response == null ? void 0 : response.mangleCache;\n callback(null, result);\n }\n };\n if (errors.length > 0) return callback(failureErrorWithLog(\"Transform failed\", errors, warnings), null);\n if (response.codeFS) {\n outstanding++;\n fs3.readFile(response.code, (err, contents) => {\n if (err !== null) {\n callback(err, null);\n } else {\n response.code = contents;\n next();\n }\n });\n }\n if (response.mapFS) {\n outstanding++;\n fs3.readFile(response.map, (err, contents) => {\n if (err !== null) {\n callback(err, null);\n } else {\n response.map = contents;\n next();\n }\n });\n }\n next();\n });\n } catch (e) {\n let flags = [];\n try {\n pushLogFlags(flags, options, {}, isTTY2, transformLogLevelDefault);\n } catch {\n }\n const error = extractErrorMessageV8(e, streamIn, details, void 0, \"\");\n sendRequest(refs, { command: \"error\", flags, error }, () => {\n error.detail = details.load(error.detail);\n callback(failureErrorWithLog(\"Transform failed\", [error], []), null);\n });\n }\n };\n if ((typeof input === \"string\" || input instanceof Uint8Array) && input.length > 1024 * 1024) {\n let next = start;\n start = () => fs3.writeFile(input, next);\n }\n start(null);\n };\n let formatMessages2 = ({ callName, refs, messages, options, callback }) => {\n if (!options) throw new Error(`Missing second argument in ${callName}() call`);\n let keys = {};\n let kind = getFlag(options, keys, \"kind\", mustBeString);\n let color = getFlag(options, keys, \"color\", mustBeBoolean);\n let terminalWidth = getFlag(options, keys, \"terminalWidth\", mustBeInteger);\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n if (kind === void 0) throw new Error(`Missing \"kind\" in ${callName}() call`);\n if (kind !== \"error\" && kind !== \"warning\") throw new Error(`Expected \"kind\" to be \"error\" or \"warning\" in ${callName}() call`);\n let request = {\n command: \"format-msgs\",\n messages: sanitizeMessages(messages, \"messages\", null, \"\", terminalWidth),\n isWarning: kind === \"warning\"\n };\n if (color !== void 0) request.color = color;\n if (terminalWidth !== void 0) request.terminalWidth = terminalWidth;\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n callback(null, response.messages);\n });\n };\n let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {\n if (options === void 0) options = {};\n let keys = {};\n let color = getFlag(options, keys, \"color\", mustBeBoolean);\n let verbose = getFlag(options, keys, \"verbose\", mustBeBoolean);\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n let request = {\n command: \"analyze-metafile\",\n metafile\n };\n if (color !== void 0) request.color = color;\n if (verbose !== void 0) request.verbose = verbose;\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n callback(null, response.result);\n });\n };\n return {\n readFromStdout,\n afterClose,\n service: {\n buildOrContext,\n transform: transform2,\n formatMessages: formatMessages2,\n analyzeMetafile: analyzeMetafile2\n }\n };\n}\nfunction buildOrContextImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options, isTTY2, defaultWD2, callback) {\n const details = createObjectStash();\n const isContext = callName === \"context\";\n const handleError = (e, pluginName) => {\n const flags = [];\n try {\n pushLogFlags(flags, options, {}, isTTY2, buildLogLevelDefault);\n } catch {\n }\n const message = extractErrorMessageV8(e, streamIn, details, void 0, pluginName);\n sendRequest(refs, { command: \"error\", flags, error: message }, () => {\n message.detail = details.load(message.detail);\n callback(failureErrorWithLog(isContext ? \"Context failed\" : \"Build failed\", [message], []), null);\n });\n };\n let plugins;\n if (typeof options === \"object\") {\n const value = options.plugins;\n if (value !== void 0) {\n if (!Array.isArray(value)) return handleError(new Error(`\"plugins\" must be an array`), \"\");\n plugins = value;\n }\n }\n if (plugins && plugins.length > 0) {\n if (streamIn.isSync) return handleError(new Error(\"Cannot use plugins in synchronous API calls\"), \"\");\n handlePlugins(\n buildKey,\n sendRequest,\n sendResponse,\n refs,\n streamIn,\n requestCallbacks,\n options,\n plugins,\n details\n ).then(\n (result) => {\n if (!result.ok) return handleError(result.error, result.pluginName);\n try {\n buildOrContextContinue(result.requestPlugins, result.runOnEndCallbacks, result.scheduleOnDisposeCallbacks);\n } catch (e) {\n handleError(e, \"\");\n }\n },\n (e) => handleError(e, \"\")\n );\n return;\n }\n try {\n buildOrContextContinue(null, (result, done) => done([], []), () => {\n });\n } catch (e) {\n handleError(e, \"\");\n }\n function buildOrContextContinue(requestPlugins, runOnEndCallbacks, scheduleOnDisposeCallbacks) {\n const writeDefault = streamIn.hasFS;\n const {\n entries,\n flags,\n write,\n stdinContents,\n stdinResolveDir,\n absWorkingDir,\n nodePaths,\n mangleCache\n } = flagsForBuildOptions(callName, options, isTTY2, buildLogLevelDefault, writeDefault);\n if (write && !streamIn.hasFS) throw new Error(`The \"write\" option is unavailable in this environment`);\n const request = {\n command: \"build\",\n key: buildKey,\n entries,\n flags,\n write,\n stdinContents,\n stdinResolveDir,\n absWorkingDir: absWorkingDir || defaultWD2,\n nodePaths,\n context: isContext\n };\n if (requestPlugins) request.plugins = requestPlugins;\n if (mangleCache) request.mangleCache = mangleCache;\n const buildResponseToResult = (response, callback2) => {\n const result = {\n errors: replaceDetailsInMessages(response.errors, details),\n warnings: replaceDetailsInMessages(response.warnings, details),\n outputFiles: void 0,\n metafile: void 0,\n mangleCache: void 0\n };\n const originalErrors = result.errors.slice();\n const originalWarnings = result.warnings.slice();\n if (response.outputFiles) result.outputFiles = response.outputFiles.map(convertOutputFiles);\n if (response.metafile) result.metafile = JSON.parse(response.metafile);\n if (response.mangleCache) result.mangleCache = response.mangleCache;\n if (response.writeToStdout !== void 0) console.log(decodeUTF8(response.writeToStdout).replace(/\\n$/, \"\"));\n runOnEndCallbacks(result, (onEndErrors, onEndWarnings) => {\n if (originalErrors.length > 0 || onEndErrors.length > 0) {\n const error = failureErrorWithLog(\"Build failed\", originalErrors.concat(onEndErrors), originalWarnings.concat(onEndWarnings));\n return callback2(error, null, onEndErrors, onEndWarnings);\n }\n callback2(null, result, onEndErrors, onEndWarnings);\n });\n };\n let latestResultPromise;\n let provideLatestResult;\n if (isContext)\n requestCallbacks[\"on-end\"] = (id, request2) => new Promise((resolve) => {\n buildResponseToResult(request2, (err, result, onEndErrors, onEndWarnings) => {\n const response = {\n errors: onEndErrors,\n warnings: onEndWarnings\n };\n if (provideLatestResult) provideLatestResult(err, result);\n latestResultPromise = void 0;\n provideLatestResult = void 0;\n sendResponse(id, response);\n resolve();\n });\n });\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n if (!isContext) {\n return buildResponseToResult(response, (err, res) => {\n scheduleOnDisposeCallbacks();\n return callback(err, res);\n });\n }\n if (response.errors.length > 0) {\n return callback(failureErrorWithLog(\"Context failed\", response.errors, response.warnings), null);\n }\n let didDispose = false;\n const result = {\n rebuild: () => {\n if (!latestResultPromise) latestResultPromise = new Promise((resolve, reject) => {\n let settlePromise;\n provideLatestResult = (err, result2) => {\n if (!settlePromise) settlePromise = () => err ? reject(err) : resolve(result2);\n };\n const triggerAnotherBuild = () => {\n const request2 = {\n command: \"rebuild\",\n key: buildKey\n };\n sendRequest(refs, request2, (error2, response2) => {\n if (error2) {\n reject(new Error(error2));\n } else if (settlePromise) {\n settlePromise();\n } else {\n triggerAnotherBuild();\n }\n });\n };\n triggerAnotherBuild();\n });\n return latestResultPromise;\n },\n watch: (options2 = {}) => new Promise((resolve, reject) => {\n if (!streamIn.hasFS) throw new Error(`Cannot use the \"watch\" API in this environment`);\n const keys = {};\n const delay = getFlag(options2, keys, \"delay\", mustBeInteger);\n checkForInvalidFlags(options2, keys, `in watch() call`);\n const request2 = {\n command: \"watch\",\n key: buildKey\n };\n if (delay) request2.delay = delay;\n sendRequest(refs, request2, (error2) => {\n if (error2) reject(new Error(error2));\n else resolve(void 0);\n });\n }),\n serve: (options2 = {}) => new Promise((resolve, reject) => {\n if (!streamIn.hasFS) throw new Error(`Cannot use the \"serve\" API in this environment`);\n const keys = {};\n const port = getFlag(options2, keys, \"port\", mustBeValidPortNumber);\n const host = getFlag(options2, keys, \"host\", mustBeString);\n const servedir = getFlag(options2, keys, \"servedir\", mustBeString);\n const keyfile = getFlag(options2, keys, \"keyfile\", mustBeString);\n const certfile = getFlag(options2, keys, \"certfile\", mustBeString);\n const fallback = getFlag(options2, keys, \"fallback\", mustBeString);\n const cors = getFlag(options2, keys, \"cors\", mustBeObject);\n const onRequest = getFlag(options2, keys, \"onRequest\", mustBeFunction);\n checkForInvalidFlags(options2, keys, `in serve() call`);\n const request2 = {\n command: \"serve\",\n key: buildKey,\n onRequest: !!onRequest\n };\n if (port !== void 0) request2.port = port;\n if (host !== void 0) request2.host = host;\n if (servedir !== void 0) request2.servedir = servedir;\n if (keyfile !== void 0) request2.keyfile = keyfile;\n if (certfile !== void 0) request2.certfile = certfile;\n if (fallback !== void 0) request2.fallback = fallback;\n if (cors) {\n const corsKeys = {};\n const origin = getFlag(cors, corsKeys, \"origin\", mustBeStringOrArrayOfStrings);\n checkForInvalidFlags(cors, corsKeys, `on \"cors\" object`);\n if (Array.isArray(origin)) request2.corsOrigin = origin;\n else if (origin !== void 0) request2.corsOrigin = [origin];\n }\n sendRequest(refs, request2, (error2, response2) => {\n if (error2) return reject(new Error(error2));\n if (onRequest) {\n requestCallbacks[\"serve-request\"] = (id, request3) => {\n onRequest(request3.args);\n sendResponse(id, {});\n };\n }\n resolve(response2);\n });\n }),\n cancel: () => new Promise((resolve) => {\n if (didDispose) return resolve();\n const request2 = {\n command: \"cancel\",\n key: buildKey\n };\n sendRequest(refs, request2, () => {\n resolve();\n });\n }),\n dispose: () => new Promise((resolve) => {\n if (didDispose) return resolve();\n didDispose = true;\n const request2 = {\n command: \"dispose\",\n key: buildKey\n };\n sendRequest(refs, request2, () => {\n resolve();\n scheduleOnDisposeCallbacks();\n refs.unref();\n });\n })\n };\n refs.ref();\n callback(null, result);\n });\n }\n}\nvar handlePlugins = async (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins, details) => {\n let onStartCallbacks = [];\n let onEndCallbacks = [];\n let onResolveCallbacks = {};\n let onLoadCallbacks = {};\n let onDisposeCallbacks = [];\n let nextCallbackID = 0;\n let i = 0;\n let requestPlugins = [];\n let isSetupDone = false;\n plugins = [...plugins];\n for (let item of plugins) {\n let keys = {};\n if (typeof item !== \"object\") throw new Error(`Plugin at index ${i} must be an object`);\n const name = getFlag(item, keys, \"name\", mustBeString);\n if (typeof name !== \"string\" || name === \"\") throw new Error(`Plugin at index ${i} is missing a name`);\n try {\n let setup = getFlag(item, keys, \"setup\", mustBeFunction);\n if (typeof setup !== \"function\") throw new Error(`Plugin is missing a setup function`);\n checkForInvalidFlags(item, keys, `on plugin ${quote(name)}`);\n let plugin = {\n name,\n onStart: false,\n onEnd: false,\n onResolve: [],\n onLoad: []\n };\n i++;\n let resolve = (path3, options = {}) => {\n if (!isSetupDone) throw new Error('Cannot call \"resolve\" before plugin setup has completed');\n if (typeof path3 !== \"string\") throw new Error(`The path to resolve must be a string`);\n let keys2 = /* @__PURE__ */ Object.create(null);\n let pluginName = getFlag(options, keys2, \"pluginName\", mustBeString);\n let importer = getFlag(options, keys2, \"importer\", mustBeString);\n let namespace = getFlag(options, keys2, \"namespace\", mustBeString);\n let resolveDir = getFlag(options, keys2, \"resolveDir\", mustBeString);\n let kind = getFlag(options, keys2, \"kind\", mustBeString);\n let pluginData = getFlag(options, keys2, \"pluginData\", canBeAnything);\n let importAttributes = getFlag(options, keys2, \"with\", mustBeObject);\n checkForInvalidFlags(options, keys2, \"in resolve() call\");\n return new Promise((resolve2, reject) => {\n const request = {\n command: \"resolve\",\n path: path3,\n key: buildKey,\n pluginName: name\n };\n if (pluginName != null) request.pluginName = pluginName;\n if (importer != null) request.importer = importer;\n if (namespace != null) request.namespace = namespace;\n if (resolveDir != null) request.resolveDir = resolveDir;\n if (kind != null) request.kind = kind;\n else throw new Error(`Must specify \"kind\" when calling \"resolve\"`);\n if (pluginData != null) request.pluginData = details.store(pluginData);\n if (importAttributes != null) request.with = sanitizeStringMap(importAttributes, \"with\");\n sendRequest(refs, request, (error, response) => {\n if (error !== null) reject(new Error(error));\n else resolve2({\n errors: replaceDetailsInMessages(response.errors, details),\n warnings: replaceDetailsInMessages(response.warnings, details),\n path: response.path,\n external: response.external,\n sideEffects: response.sideEffects,\n namespace: response.namespace,\n suffix: response.suffix,\n pluginData: details.load(response.pluginData)\n });\n });\n });\n };\n let promise = setup({\n initialOptions,\n resolve,\n onStart(callback) {\n let registeredText = `This error came from the \"onStart\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onStart\");\n onStartCallbacks.push({ name, callback, note: registeredNote });\n plugin.onStart = true;\n },\n onEnd(callback) {\n let registeredText = `This error came from the \"onEnd\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onEnd\");\n onEndCallbacks.push({ name, callback, note: registeredNote });\n plugin.onEnd = true;\n },\n onResolve(options, callback) {\n let registeredText = `This error came from the \"onResolve\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onResolve\");\n let keys2 = {};\n let filter = getFlag(options, keys2, \"filter\", mustBeRegExp);\n let namespace = getFlag(options, keys2, \"namespace\", mustBeString);\n checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${quote(name)}`);\n if (filter == null) throw new Error(`onResolve() call is missing a filter`);\n let id = nextCallbackID++;\n onResolveCallbacks[id] = { name, callback, note: registeredNote };\n plugin.onResolve.push({ id, filter: jsRegExpToGoRegExp(filter), namespace: namespace || \"\" });\n },\n onLoad(options, callback) {\n let registeredText = `This error came from the \"onLoad\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onLoad\");\n let keys2 = {};\n let filter = getFlag(options, keys2, \"filter\", mustBeRegExp);\n let namespace = getFlag(options, keys2, \"namespace\", mustBeString);\n checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${quote(name)}`);\n if (filter == null) throw new Error(`onLoad() call is missing a filter`);\n let id = nextCallbackID++;\n onLoadCallbacks[id] = { name, callback, note: registeredNote };\n plugin.onLoad.push({ id, filter: jsRegExpToGoRegExp(filter), namespace: namespace || \"\" });\n },\n onDispose(callback) {\n onDisposeCallbacks.push(callback);\n },\n esbuild: streamIn.esbuild\n });\n if (promise) await promise;\n requestPlugins.push(plugin);\n } catch (e) {\n return { ok: false, error: e, pluginName: name };\n }\n }\n requestCallbacks[\"on-start\"] = async (id, request) => {\n details.clear();\n let response = { errors: [], warnings: [] };\n await Promise.all(onStartCallbacks.map(async ({ name, callback, note }) => {\n try {\n let result = await callback();\n if (result != null) {\n if (typeof result !== \"object\") throw new Error(`Expected onStart() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let errors = getFlag(result, keys, \"errors\", mustBeArray);\n let warnings = getFlag(result, keys, \"warnings\", mustBeArray);\n checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${quote(name)}`);\n if (errors != null) response.errors.push(...sanitizeMessages(errors, \"errors\", details, name, void 0));\n if (warnings != null) response.warnings.push(...sanitizeMessages(warnings, \"warnings\", details, name, void 0));\n }\n } catch (e) {\n response.errors.push(extractErrorMessageV8(e, streamIn, details, note && note(), name));\n }\n }));\n sendResponse(id, response);\n };\n requestCallbacks[\"on-resolve\"] = async (id, request) => {\n let response = {}, name = \"\", callback, note;\n for (let id2 of request.ids) {\n try {\n ({ name, callback, note } = onResolveCallbacks[id2]);\n let result = await callback({\n path: request.path,\n importer: request.importer,\n namespace: request.namespace,\n resolveDir: request.resolveDir,\n kind: request.kind,\n pluginData: details.load(request.pluginData),\n with: request.with\n });\n if (result != null) {\n if (typeof result !== \"object\") throw new Error(`Expected onResolve() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let pluginName = getFlag(result, keys, \"pluginName\", mustBeString);\n let path3 = getFlag(result, keys, \"path\", mustBeString);\n let namespace = getFlag(result, keys, \"namespace\", mustBeString);\n let suffix = getFlag(result, keys, \"suffix\", mustBeString);\n let external = getFlag(result, keys, \"external\", mustBeBoolean);\n let sideEffects = getFlag(result, keys, \"sideEffects\", mustBeBoolean);\n let pluginData = getFlag(result, keys, \"pluginData\", canBeAnything);\n let errors = getFlag(result, keys, \"errors\", mustBeArray);\n let warnings = getFlag(result, keys, \"warnings\", mustBeArray);\n let watchFiles = getFlag(result, keys, \"watchFiles\", mustBeArrayOfStrings);\n let watchDirs = getFlag(result, keys, \"watchDirs\", mustBeArrayOfStrings);\n checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${quote(name)}`);\n response.id = id2;\n if (pluginName != null) response.pluginName = pluginName;\n if (path3 != null) response.path = path3;\n if (namespace != null) response.namespace = namespace;\n if (suffix != null) response.suffix = suffix;\n if (external != null) response.external = external;\n if (sideEffects != null) response.sideEffects = sideEffects;\n if (pluginData != null) response.pluginData = details.store(pluginData);\n if (errors != null) response.errors = sanitizeMessages(errors, \"errors\", details, name, void 0);\n if (warnings != null) response.warnings = sanitizeMessages(warnings, \"warnings\", details, name, void 0);\n if (watchFiles != null) response.watchFiles = sanitizeStringArray(watchFiles, \"watchFiles\");\n if (watchDirs != null) response.watchDirs = sanitizeStringArray(watchDirs, \"watchDirs\");\n break;\n }\n } catch (e) {\n response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };\n break;\n }\n }\n sendResponse(id, response);\n };\n requestCallbacks[\"on-load\"] = async (id, request) => {\n let response = {}, name = \"\", callback, note;\n for (let id2 of request.ids) {\n try {\n ({ name, callback, note } = onLoadCallbacks[id2]);\n let result = await callback({\n path: request.path,\n namespace: request.namespace,\n suffix: request.suffix,\n pluginData: details.load(request.pluginData),\n with: request.with\n });\n if (result != null) {\n if (typeof result !== \"object\") throw new Error(`Expected onLoad() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let pluginName = getFlag(result, keys, \"pluginName\", mustBeString);\n let contents = getFlag(result, keys, \"contents\", mustBeStringOrUint8Array);\n let resolveDir = getFlag(result, keys, \"resolveDir\", mustBeString);\n let pluginData = getFlag(result, keys, \"pluginData\", canBeAnything);\n let loader = getFlag(result, keys, \"loader\", mustBeString);\n let errors = getFlag(result, keys, \"errors\", mustBeArray);\n let warnings = getFlag(result, keys, \"warnings\", mustBeArray);\n let watchFiles = getFlag(result, keys, \"watchFiles\", mustBeArrayOfStrings);\n let watchDirs = getFlag(result, keys, \"watchDirs\", mustBeArrayOfStrings);\n checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${quote(name)}`);\n response.id = id2;\n if (pluginName != null) response.pluginName = pluginName;\n if (contents instanceof Uint8Array) response.contents = contents;\n else if (contents != null) response.contents = encodeUTF8(contents);\n if (resolveDir != null) response.resolveDir = resolveDir;\n if (pluginData != null) response.pluginData = details.store(pluginData);\n if (loader != null) response.loader = loader;\n if (errors != null) response.errors = sanitizeMessages(errors, \"errors\", details, name, void 0);\n if (warnings != null) response.warnings = sanitizeMessages(warnings, \"warnings\", details, name, void 0);\n if (watchFiles != null) response.watchFiles = sanitizeStringArray(watchFiles, \"watchFiles\");\n if (watchDirs != null) response.watchDirs = sanitizeStringArray(watchDirs, \"watchDirs\");\n break;\n }\n } catch (e) {\n response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };\n break;\n }\n }\n sendResponse(id, response);\n };\n let runOnEndCallbacks = (result, done) => done([], []);\n if (onEndCallbacks.length > 0) {\n runOnEndCallbacks = (result, done) => {\n (async () => {\n const onEndErrors = [];\n const onEndWarnings = [];\n for (const { name, callback, note } of onEndCallbacks) {\n let newErrors;\n let newWarnings;\n try {\n const value = await callback(result);\n if (value != null) {\n if (typeof value !== \"object\") throw new Error(`Expected onEnd() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let errors = getFlag(value, keys, \"errors\", mustBeArray);\n let warnings = getFlag(value, keys, \"warnings\", mustBeArray);\n checkForInvalidFlags(value, keys, `from onEnd() callback in plugin ${quote(name)}`);\n if (errors != null) newErrors = sanitizeMessages(errors, \"errors\", details, name, void 0);\n if (warnings != null) newWarnings = sanitizeMessages(warnings, \"warnings\", details, name, void 0);\n }\n } catch (e) {\n newErrors = [extractErrorMessageV8(e, streamIn, details, note && note(), name)];\n }\n if (newErrors) {\n onEndErrors.push(...newErrors);\n try {\n result.errors.push(...newErrors);\n } catch {\n }\n }\n if (newWarnings) {\n onEndWarnings.push(...newWarnings);\n try {\n result.warnings.push(...newWarnings);\n } catch {\n }\n }\n }\n done(onEndErrors, onEndWarnings);\n })();\n };\n }\n let scheduleOnDisposeCallbacks = () => {\n for (const cb of onDisposeCallbacks) {\n setTimeout(() => cb(), 0);\n }\n };\n isSetupDone = true;\n return {\n ok: true,\n requestPlugins,\n runOnEndCallbacks,\n scheduleOnDisposeCallbacks\n };\n};\nfunction createObjectStash() {\n const map = /* @__PURE__ */ new Map();\n let nextID = 0;\n return {\n clear() {\n map.clear();\n },\n load(id) {\n return map.get(id);\n },\n store(value) {\n if (value === void 0) return -1;\n const id = nextID++;\n map.set(id, value);\n return id;\n }\n };\n}\nfunction extractCallerV8(e, streamIn, ident) {\n let note;\n let tried = false;\n return () => {\n if (tried) return note;\n tried = true;\n try {\n let lines = (e.stack + \"\").split(\"\\n\");\n lines.splice(1, 1);\n let location = parseStackLinesV8(streamIn, lines, ident);\n if (location) {\n note = { text: e.message, location };\n return note;\n }\n } catch {\n }\n };\n}\nfunction extractErrorMessageV8(e, streamIn, stash, note, pluginName) {\n let text = \"Internal error\";\n let location = null;\n try {\n text = (e && e.message || e) + \"\";\n } catch {\n }\n try {\n location = parseStackLinesV8(streamIn, (e.stack + \"\").split(\"\\n\"), \"\");\n } catch {\n }\n return { id: \"\", pluginName, text, location, notes: note ? [note] : [], detail: stash ? stash.store(e) : -1 };\n}\nfunction parseStackLinesV8(streamIn, lines, ident) {\n let at = \" at \";\n if (streamIn.readFileSync && !lines[0].startsWith(at) && lines[1].startsWith(at)) {\n for (let i = 1; i < lines.length; i++) {\n let line = lines[i];\n if (!line.startsWith(at)) continue;\n line = line.slice(at.length);\n while (true) {\n let match = /^(?:new |async )?\\S+ \\((.*)\\)$/.exec(line);\n if (match) {\n line = match[1];\n continue;\n }\n match = /^eval at \\S+ \\((.*)\\)(?:, \\S+:\\d+:\\d+)?$/.exec(line);\n if (match) {\n line = match[1];\n continue;\n }\n match = /^(\\S+):(\\d+):(\\d+)$/.exec(line);\n if (match) {\n let contents;\n try {\n contents = streamIn.readFileSync(match[1], \"utf8\");\n } catch {\n break;\n }\n let lineText = contents.split(/\\r\\n|\\r|\\n|\\u2028|\\u2029/)[+match[2] - 1] || \"\";\n let column = +match[3] - 1;\n let length = lineText.slice(column, column + ident.length) === ident ? ident.length : 0;\n return {\n file: match[1],\n namespace: \"file\",\n line: +match[2],\n column: encodeUTF8(lineText.slice(0, column)).length,\n length: encodeUTF8(lineText.slice(column, column + length)).length,\n lineText: lineText + \"\\n\" + lines.slice(1).join(\"\\n\"),\n suggestion: \"\"\n };\n }\n break;\n }\n }\n }\n return null;\n}\nfunction failureErrorWithLog(text, errors, warnings) {\n let limit = 5;\n text += errors.length < 1 ? \"\" : ` with ${errors.length} error${errors.length < 2 ? \"\" : \"s\"}:` + errors.slice(0, limit + 1).map((e, i) => {\n if (i === limit) return \"\\n...\";\n if (!e.location) return `\nerror: ${e.text}`;\n let { file, line, column } = e.location;\n let pluginText = e.pluginName ? `[plugin: ${e.pluginName}] ` : \"\";\n return `\n${file}:${line}:${column}: ERROR: ${pluginText}${e.text}`;\n }).join(\"\");\n let error = new Error(text);\n for (const [key, value] of [[\"errors\", errors], [\"warnings\", warnings]]) {\n Object.defineProperty(error, key, {\n configurable: true,\n enumerable: true,\n get: () => value,\n set: (value2) => Object.defineProperty(error, key, {\n configurable: true,\n enumerable: true,\n value: value2\n })\n });\n }\n return error;\n}\nfunction replaceDetailsInMessages(messages, stash) {\n for (const message of messages) {\n message.detail = stash.load(message.detail);\n }\n return messages;\n}\nfunction sanitizeLocation(location, where, terminalWidth) {\n if (location == null) return null;\n let keys = {};\n let file = getFlag(location, keys, \"file\", mustBeString);\n let namespace = getFlag(location, keys, \"namespace\", mustBeString);\n let line = getFlag(location, keys, \"line\", mustBeInteger);\n let column = getFlag(location, keys, \"column\", mustBeInteger);\n let length = getFlag(location, keys, \"length\", mustBeInteger);\n let lineText = getFlag(location, keys, \"lineText\", mustBeString);\n let suggestion = getFlag(location, keys, \"suggestion\", mustBeString);\n checkForInvalidFlags(location, keys, where);\n if (lineText) {\n const relevantASCII = lineText.slice(\n 0,\n (column && column > 0 ? column : 0) + (length && length > 0 ? length : 0) + (terminalWidth && terminalWidth > 0 ? terminalWidth : 80)\n );\n if (!/[\\x7F-\\uFFFF]/.test(relevantASCII) && !/\\n/.test(lineText)) {\n lineText = relevantASCII;\n }\n }\n return {\n file: file || \"\",\n namespace: namespace || \"\",\n line: line || 0,\n column: column || 0,\n length: length || 0,\n lineText: lineText || \"\",\n suggestion: suggestion || \"\"\n };\n}\nfunction sanitizeMessages(messages, property, stash, fallbackPluginName, terminalWidth) {\n let messagesClone = [];\n let index = 0;\n for (const message of messages) {\n let keys = {};\n let id = getFlag(message, keys, \"id\", mustBeString);\n let pluginName = getFlag(message, keys, \"pluginName\", mustBeString);\n let text = getFlag(message, keys, \"text\", mustBeString);\n let location = getFlag(message, keys, \"location\", mustBeObjectOrNull);\n let notes = getFlag(message, keys, \"notes\", mustBeArray);\n let detail = getFlag(message, keys, \"detail\", canBeAnything);\n let where = `in element ${index} of \"${property}\"`;\n checkForInvalidFlags(message, keys, where);\n let notesClone = [];\n if (notes) {\n for (const note of notes) {\n let noteKeys = {};\n let noteText = getFlag(note, noteKeys, \"text\", mustBeString);\n let noteLocation = getFlag(note, noteKeys, \"location\", mustBeObjectOrNull);\n checkForInvalidFlags(note, noteKeys, where);\n notesClone.push({\n text: noteText || \"\",\n location: sanitizeLocation(noteLocation, where, terminalWidth)\n });\n }\n }\n messagesClone.push({\n id: id || \"\",\n pluginName: pluginName || fallbackPluginName,\n text: text || \"\",\n location: sanitizeLocation(location, where, terminalWidth),\n notes: notesClone,\n detail: stash ? stash.store(detail) : -1\n });\n index++;\n }\n return messagesClone;\n}\nfunction sanitizeStringArray(values, property) {\n const result = [];\n for (const value of values) {\n if (typeof value !== \"string\") throw new Error(`${quote(property)} must be an array of strings`);\n result.push(value);\n }\n return result;\n}\nfunction sanitizeStringMap(map, property) {\n const result = /* @__PURE__ */ Object.create(null);\n for (const key in map) {\n const value = map[key];\n if (typeof value !== \"string\") throw new Error(`key ${quote(key)} in object ${quote(property)} must be a string`);\n result[key] = value;\n }\n return result;\n}\nfunction convertOutputFiles({ path: path3, contents, hash }) {\n let text = null;\n return {\n path: path3,\n contents,\n hash,\n get text() {\n const binary = this.contents;\n if (text === null || binary !== contents) {\n contents = binary;\n text = decodeUTF8(binary);\n }\n return text;\n }\n };\n}\nfunction jsRegExpToGoRegExp(regexp) {\n let result = regexp.source;\n if (regexp.flags) result = `(?${regexp.flags})${result}`;\n return result;\n}\n\n// lib/npm/node-platform.ts\nvar fs = require(\"fs\");\nvar os = require(\"os\");\nvar path = require(\"path\");\nvar ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;\nvar isValidBinaryPath = (x) => !!x && x !== \"/usr/bin/esbuild\";\nvar packageDarwin_arm64 = \"@esbuild/darwin-arm64\";\nvar packageDarwin_x64 = \"@esbuild/darwin-x64\";\nvar knownWindowsPackages = {\n \"win32 arm64 LE\": \"@esbuild/win32-arm64\",\n \"win32 ia32 LE\": \"@esbuild/win32-ia32\",\n \"win32 x64 LE\": \"@esbuild/win32-x64\"\n};\nvar knownUnixlikePackages = {\n \"aix ppc64 BE\": \"@esbuild/aix-ppc64\",\n \"android arm64 LE\": \"@esbuild/android-arm64\",\n \"darwin arm64 LE\": \"@esbuild/darwin-arm64\",\n \"darwin x64 LE\": \"@esbuild/darwin-x64\",\n \"freebsd arm64 LE\": \"@esbuild/freebsd-arm64\",\n \"freebsd x64 LE\": \"@esbuild/freebsd-x64\",\n \"linux arm LE\": \"@esbuild/linux-arm\",\n \"linux arm64 LE\": \"@esbuild/linux-arm64\",\n \"linux ia32 LE\": \"@esbuild/linux-ia32\",\n \"linux mips64el LE\": \"@esbuild/linux-mips64el\",\n \"linux ppc64 LE\": \"@esbuild/linux-ppc64\",\n \"linux riscv64 LE\": \"@esbuild/linux-riscv64\",\n \"linux s390x BE\": \"@esbuild/linux-s390x\",\n \"linux x64 LE\": \"@esbuild/linux-x64\",\n \"linux loong64 LE\": \"@esbuild/linux-loong64\",\n \"netbsd arm64 LE\": \"@esbuild/netbsd-arm64\",\n \"netbsd x64 LE\": \"@esbuild/netbsd-x64\",\n \"openbsd arm64 LE\": \"@esbuild/openbsd-arm64\",\n \"openbsd x64 LE\": \"@esbuild/openbsd-x64\",\n \"sunos x64 LE\": \"@esbuild/sunos-x64\"\n};\nvar knownWebAssemblyFallbackPackages = {\n \"android arm LE\": \"@esbuild/android-arm\",\n \"android x64 LE\": \"@esbuild/android-x64\",\n \"openharmony arm64 LE\": \"@esbuild/openharmony-arm64\"\n};\nfunction pkgAndSubpathForCurrentPlatform() {\n let pkg;\n let subpath;\n let isWASM = false;\n let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;\n if (platformKey in knownWindowsPackages) {\n pkg = knownWindowsPackages[platformKey];\n subpath = \"esbuild.exe\";\n } else if (platformKey in knownUnixlikePackages) {\n pkg = knownUnixlikePackages[platformKey];\n subpath = \"bin/esbuild\";\n } else if (platformKey in knownWebAssemblyFallbackPackages) {\n pkg = knownWebAssemblyFallbackPackages[platformKey];\n subpath = \"bin/esbuild\";\n isWASM = true;\n } else {\n throw new Error(`Unsupported platform: ${platformKey}`);\n }\n return { pkg, subpath, isWASM };\n}\nfunction pkgForSomeOtherPlatform() {\n const libMainJS = require.resolve(\"esbuild\");\n const nodeModulesDirectory = path.dirname(path.dirname(path.dirname(libMainJS)));\n if (path.basename(nodeModulesDirectory) === \"node_modules\") {\n for (const unixKey in knownUnixlikePackages) {\n try {\n const pkg = knownUnixlikePackages[unixKey];\n if (fs.existsSync(path.join(nodeModulesDirectory, pkg))) return pkg;\n } catch {\n }\n }\n for (const windowsKey in knownWindowsPackages) {\n try {\n const pkg = knownWindowsPackages[windowsKey];\n if (fs.existsSync(path.join(nodeModulesDirectory, pkg))) return pkg;\n } catch {\n }\n }\n }\n return null;\n}\nfunction downloadedBinPath(pkg, subpath) {\n const esbuildLibDir = path.dirname(require.resolve(\"esbuild\"));\n return path.join(esbuildLibDir, `downloaded-${pkg.replace(\"/\", \"-\")}-${path.basename(subpath)}`);\n}\nfunction generateBinPath() {\n if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {\n if (!fs.existsSync(ESBUILD_BINARY_PATH)) {\n console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);\n } else {\n return { binPath: ESBUILD_BINARY_PATH, isWASM: false };\n }\n }\n const { pkg, subpath, isWASM } = pkgAndSubpathForCurrentPlatform();\n let binPath;\n try {\n binPath = require.resolve(`${pkg}/${subpath}`);\n } catch (e) {\n binPath = downloadedBinPath(pkg, subpath);\n if (!fs.existsSync(binPath)) {\n try {\n require.resolve(pkg);\n } catch {\n const otherPkg = pkgForSomeOtherPlatform();\n if (otherPkg) {\n let suggestions = `\nSpecifically the \"${otherPkg}\" package is present but this platform\nneeds the \"${pkg}\" package instead. People often get into this\nsituation by installing esbuild on Windows or macOS and copying \"node_modules\"\ninto a Docker image that runs Linux, or by copying \"node_modules\" between\nWindows and WSL environments.\n\nIf you are installing with npm, you can try not copying the \"node_modules\"\ndirectory when you copy the files over, and running \"npm ci\" or \"npm install\"\non the destination platform after the copy. Or you could consider using yarn\ninstead of npm which has built-in support for installing a package on multiple\nplatforms simultaneously.\n\nIf you are installing with yarn, you can try listing both this platform and the\nother platform in your \".yarnrc.yml\" file using the \"supportedArchitectures\"\nfeature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures\nKeep in mind that this means multiple copies of esbuild will be present.\n`;\n if (pkg === packageDarwin_x64 && otherPkg === packageDarwin_arm64 || pkg === packageDarwin_arm64 && otherPkg === packageDarwin_x64) {\n suggestions = `\nSpecifically the \"${otherPkg}\" package is present but this platform\nneeds the \"${pkg}\" package instead. People often get into this\nsituation by installing esbuild with npm running inside of Rosetta 2 and then\ntrying to use it with node running outside of Rosetta 2, or vice versa (Rosetta\n2 is Apple's on-the-fly x86_64-to-arm64 translation service).\n\nIf you are installing with npm, you can try ensuring that both npm and node are\nnot running under Rosetta 2 and then reinstalling esbuild. This likely involves\nchanging how you installed npm and/or node. For example, installing node with\nthe universal installer here should work: https://nodejs.org/en/download/. Or\nyou could consider using yarn instead of npm which has built-in support for\ninstalling a package on multiple platforms simultaneously.\n\nIf you are installing with yarn, you can try listing both \"arm64\" and \"x64\"\nin your \".yarnrc.yml\" file using the \"supportedArchitectures\" feature:\nhttps://yarnpkg.com/configuration/yarnrc/#supportedArchitectures\nKeep in mind that this means multiple copies of esbuild will be present.\n`;\n }\n throw new Error(`\nYou installed esbuild for another platform than the one you're currently using.\nThis won't work because esbuild is written with native code and needs to\ninstall a platform-specific binary executable.\n${suggestions}\nAnother alternative is to use the \"esbuild-wasm\" package instead, which works\nthe same way on all platforms. But it comes with a heavy performance cost and\ncan sometimes be 10x slower than the \"esbuild\" package, so you may also not\nwant to do that.\n`);\n }\n throw new Error(`The package \"${pkg}\" could not be found, and is needed by esbuild.\n\nIf you are installing esbuild with npm, make sure that you don't specify the\n\"--no-optional\" or \"--omit=optional\" flags. The \"optionalDependencies\" feature\nof \"package.json\" is used by esbuild to install the correct binary executable\nfor your current platform.`);\n }\n throw e;\n }\n }\n if (/\\.zip\\//.test(binPath)) {\n let pnpapi;\n try {\n pnpapi = require(\"pnpapi\");\n } catch (e) {\n }\n if (pnpapi) {\n const root = pnpapi.getPackageInformation(pnpapi.topLevel).packageLocation;\n const binTargetPath = path.join(\n root,\n \"node_modules\",\n \".cache\",\n \"esbuild\",\n `pnpapi-${pkg.replace(\"/\", \"-\")}-${\"0.27.3\"}-${path.basename(subpath)}`\n );\n if (!fs.existsSync(binTargetPath)) {\n fs.mkdirSync(path.dirname(binTargetPath), { recursive: true });\n fs.copyFileSync(binPath, binTargetPath);\n fs.chmodSync(binTargetPath, 493);\n }\n return { binPath: binTargetPath, isWASM };\n }\n }\n return { binPath, isWASM };\n}\n\n// lib/npm/node.ts\nvar child_process = require(\"child_process\");\nvar crypto = require(\"crypto\");\nvar path2 = require(\"path\");\nvar fs2 = require(\"fs\");\nvar os2 = require(\"os\");\nvar tty = require(\"tty\");\nvar worker_threads;\nif (process.env.ESBUILD_WORKER_THREADS !== \"0\") {\n try {\n worker_threads = require(\"worker_threads\");\n } catch {\n }\n let [major, minor] = process.versions.node.split(\".\");\n if (\n // <v12.17.0 does not work\n +major < 12 || +major === 12 && +minor < 17 || +major === 13 && +minor < 13\n ) {\n worker_threads = void 0;\n }\n}\nvar _a;\nvar isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === \"0.27.3\";\nvar esbuildCommandAndArgs = () => {\n if ((!ESBUILD_BINARY_PATH || false) && (path2.basename(__filename) !== \"main.js\" || path2.basename(__dirname) !== \"lib\")) {\n throw new Error(\n `The esbuild JavaScript API cannot be bundled. Please mark the \"esbuild\" package as external so it's not included in the bundle.\n\nMore information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`\n );\n }\n if (false) {\n return [\"node\", [path2.join(__dirname, \"..\", \"bin\", \"esbuild\")]];\n } else {\n const { binPath, isWASM } = generateBinPath();\n if (isWASM) {\n return [\"node\", [binPath]];\n } else {\n return [binPath, []];\n }\n }\n};\nvar isTTY = () => tty.isatty(2);\nvar fsSync = {\n readFile(tempFile, callback) {\n try {\n let contents = fs2.readFileSync(tempFile, \"utf8\");\n try {\n fs2.unlinkSync(tempFile);\n } catch {\n }\n callback(null, contents);\n } catch (err) {\n callback(err, null);\n }\n },\n writeFile(contents, callback) {\n try {\n let tempFile = randomFileName();\n fs2.writeFileSync(tempFile, contents);\n callback(tempFile);\n } catch {\n callback(null);\n }\n }\n};\nvar fsAsync = {\n readFile(tempFile, callback) {\n try {\n fs2.readFile(tempFile, \"utf8\", (err, contents) => {\n try {\n fs2.unlink(tempFile, () => callback(err, contents));\n } catch {\n callback(err, contents);\n }\n });\n } catch (err) {\n callback(err, null);\n }\n },\n writeFile(contents, callback) {\n try {\n let tempFile = randomFileName();\n fs2.writeFile(tempFile, contents, (err) => err !== null ? callback(null) : callback(tempFile));\n } catch {\n callback(null);\n }\n }\n};\nvar version = \"0.27.3\";\nvar build = (options) => ensureServiceIsRunning().build(options);\nvar context = (buildOptions) => ensureServiceIsRunning().context(buildOptions);\nvar transform = (input, options) => ensureServiceIsRunning().transform(input, options);\nvar formatMessages = (messages, options) => ensureServiceIsRunning().formatMessages(messages, options);\nvar analyzeMetafile = (messages, options) => ensureServiceIsRunning().analyzeMetafile(messages, options);\nvar buildSync = (options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.buildSync(options);\n }\n let result;\n runServiceSync((service) => service.buildOrContext({\n callName: \"buildSync\",\n refs: null,\n options,\n isTTY: isTTY(),\n defaultWD,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar transformSync = (input, options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.transformSync(input, options);\n }\n let result;\n runServiceSync((service) => service.transform({\n callName: \"transformSync\",\n refs: null,\n input,\n options: options || {},\n isTTY: isTTY(),\n fs: fsSync,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar formatMessagesSync = (messages, options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.formatMessagesSync(messages, options);\n }\n let result;\n runServiceSync((service) => service.formatMessages({\n callName: \"formatMessagesSync\",\n refs: null,\n messages,\n options,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar analyzeMetafileSync = (metafile, options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.analyzeMetafileSync(metafile, options);\n }\n let result;\n runServiceSync((service) => service.analyzeMetafile({\n callName: \"analyzeMetafileSync\",\n refs: null,\n metafile: typeof metafile === \"string\" ? metafile : JSON.stringify(metafile),\n options,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar stop = () => {\n if (stopService) stopService();\n if (workerThreadService) workerThreadService.stop();\n return Promise.resolve();\n};\nvar initializeWasCalled = false;\nvar initialize = (options) => {\n options = validateInitializeOptions(options || {});\n if (options.wasmURL) throw new Error(`The \"wasmURL\" option only works in the browser`);\n if (options.wasmModule) throw new Error(`The \"wasmModule\" option only works in the browser`);\n if (options.worker) throw new Error(`The \"worker\" option only works in the browser`);\n if (initializeWasCalled) throw new Error('Cannot call \"initialize\" more than once');\n ensureServiceIsRunning();\n initializeWasCalled = true;\n return Promise.resolve();\n};\nvar defaultWD = process.cwd();\nvar longLivedService;\nvar stopService;\nvar ensureServiceIsRunning = () => {\n if (longLivedService) return longLivedService;\n let [command, args] = esbuildCommandAndArgs();\n let child = child_process.spawn(command, args.concat(`--service=${\"0.27.3\"}`, \"--ping\"), {\n windowsHide: true,\n stdio: [\"pipe\", \"pipe\", \"inherit\"],\n cwd: defaultWD\n });\n let { readFromStdout, afterClose, service } = createChannel({\n writeToStdin(bytes) {\n child.stdin.write(bytes, (err) => {\n if (err) afterClose(err);\n });\n },\n readFileSync: fs2.readFileSync,\n isSync: false,\n hasFS: true,\n esbuild: node_exports\n });\n child.stdin.on(\"error\", afterClose);\n child.on(\"error\", afterClose);\n const stdin = child.stdin;\n const stdout = child.stdout;\n stdout.on(\"data\", readFromStdout);\n stdout.on(\"end\", afterClose);\n stopService = () => {\n stdin.destroy();\n stdout.destroy();\n child.kill();\n initializeWasCalled = false;\n longLivedService = void 0;\n stopService = void 0;\n };\n let refCount = 0;\n child.unref();\n if (stdin.unref) {\n stdin.unref();\n }\n if (stdout.unref) {\n stdout.unref();\n }\n const refs = {\n ref() {\n if (++refCount === 1) child.ref();\n },\n unref() {\n if (--refCount === 0) child.unref();\n }\n };\n longLivedService = {\n build: (options) => new Promise((resolve, reject) => {\n service.buildOrContext({\n callName: \"build\",\n refs,\n options,\n isTTY: isTTY(),\n defaultWD,\n callback: (err, res) => err ? reject(err) : resolve(res)\n });\n }),\n context: (options) => new Promise((resolve, reject) => service.buildOrContext({\n callName: \"context\",\n refs,\n options,\n isTTY: isTTY(),\n defaultWD,\n callback: (err, res) => err ? reject(err) : resolve(res)\n })),\n transform: (input, options) => new Promise((resolve, reject) => service.transform({\n callName: \"transform\",\n refs,\n input,\n options: options || {},\n isTTY: isTTY(),\n fs: fsAsync,\n callback: (err, res) => err ? reject(err) : resolve(res)\n })),\n formatMessages: (messages, options) => new Promise((resolve, reject) => service.formatMessages({\n callName: \"formatMessages\",\n refs,\n messages,\n options,\n callback: (err, res) => err ? reject(err) : resolve(res)\n })),\n analyzeMetafile: (metafile, options) => new Promise((resolve, reject) => service.analyzeMetafile({\n callName: \"analyzeMetafile\",\n refs,\n metafile: typeof metafile === \"string\" ? metafile : JSON.stringify(metafile),\n options,\n callback: (err, res) => err ? reject(err) : resolve(res)\n }))\n };\n return longLivedService;\n};\nvar runServiceSync = (callback) => {\n let [command, args] = esbuildCommandAndArgs();\n let stdin = new Uint8Array();\n let { readFromStdout, afterClose, service } = createChannel({\n writeToStdin(bytes) {\n if (stdin.length !== 0) throw new Error(\"Must run at most one command\");\n stdin = bytes;\n },\n isSync: true,\n hasFS: true,\n esbuild: node_exports\n });\n callback(service);\n let stdout = child_process.execFileSync(command, args.concat(`--service=${\"0.27.3\"}`), {\n cwd: defaultWD,\n windowsHide: true,\n input: stdin,\n // We don't know how large the output could be. If it's too large, the\n // command will fail with ENOBUFS. Reserve 16mb for now since that feels\n // like it should be enough. Also allow overriding this with an environment\n // variable.\n maxBuffer: +process.env.ESBUILD_MAX_BUFFER || 16 * 1024 * 1024\n });\n readFromStdout(stdout);\n afterClose(null);\n};\nvar randomFileName = () => {\n return path2.join(os2.tmpdir(), `esbuild-${crypto.randomBytes(32).toString(\"hex\")}`);\n};\nvar workerThreadService = null;\nvar startWorkerThreadService = (worker_threads2) => {\n let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();\n let worker = new worker_threads2.Worker(__filename, {\n workerData: { workerPort, defaultWD, esbuildVersion: \"0.27.3\" },\n transferList: [workerPort],\n // From node's documentation: https://nodejs.org/api/worker_threads.html\n //\n // Take care when launching worker threads from preload scripts (scripts loaded\n // and run using the `-r` command line flag). Unless the `execArgv` option is\n // explicitly set, new Worker threads automatically inherit the command line flags\n // from the running process and will preload the same preload scripts as the main\n // thread. If the preload script unconditionally launches a worker thread, every\n // thread spawned will spawn another until the application crashes.\n //\n execArgv: []\n });\n let nextID = 0;\n let fakeBuildError = (text) => {\n let error = new Error(`Build failed with 1 error:\nerror: ${text}`);\n let errors = [{ id: \"\", pluginName: \"\", text, location: null, notes: [], detail: void 0 }];\n error.errors = errors;\n error.warnings = [];\n return error;\n };\n let validateBuildSyncOptions = (options) => {\n if (!options) return;\n let plugins = options.plugins;\n if (plugins && plugins.length > 0) throw fakeBuildError(`Cannot use plugins in synchronous API calls`);\n };\n let applyProperties = (object, properties) => {\n for (let key in properties) {\n object[key] = properties[key];\n }\n };\n let runCallSync = (command, args) => {\n let id = nextID++;\n let sharedBuffer = new SharedArrayBuffer(8);\n let sharedBufferView = new Int32Array(sharedBuffer);\n let msg = { sharedBuffer, id, command, args };\n worker.postMessage(msg);\n let status = Atomics.wait(sharedBufferView, 0, 0);\n if (status !== \"ok\" && status !== \"not-equal\") throw new Error(\"Internal error: Atomics.wait() failed: \" + status);\n let { message: { id: id2, resolve, reject, properties } } = worker_threads2.receiveMessageOnPort(mainPort);\n if (id !== id2) throw new Error(`Internal error: Expected id ${id} but got id ${id2}`);\n if (reject) {\n applyProperties(reject, properties);\n throw reject;\n }\n return resolve;\n };\n worker.unref();\n return {\n buildSync(options) {\n validateBuildSyncOptions(options);\n return runCallSync(\"build\", [options]);\n },\n transformSync(input, options) {\n return runCallSync(\"transform\", [input, options]);\n },\n formatMessagesSync(messages, options) {\n return runCallSync(\"formatMessages\", [messages, options]);\n },\n analyzeMetafileSync(metafile, options) {\n return runCallSync(\"analyzeMetafile\", [metafile, options]);\n },\n stop() {\n worker.terminate();\n workerThreadService = null;\n }\n };\n};\nvar startSyncServiceWorker = () => {\n let workerPort = worker_threads.workerData.workerPort;\n let parentPort = worker_threads.parentPort;\n let extractProperties = (object) => {\n let properties = {};\n if (object && typeof object === \"object\") {\n for (let key in object) {\n properties[key] = object[key];\n }\n }\n return properties;\n };\n try {\n let service = ensureServiceIsRunning();\n defaultWD = worker_threads.workerData.defaultWD;\n parentPort.on(\"message\", (msg) => {\n (async () => {\n let { sharedBuffer, id, command, args } = msg;\n let sharedBufferView = new Int32Array(sharedBuffer);\n try {\n switch (command) {\n case \"build\":\n workerPort.postMessage({ id, resolve: await service.build(args[0]) });\n break;\n case \"transform\":\n workerPort.postMessage({ id, resolve: await service.transform(args[0], args[1]) });\n break;\n case \"formatMessages\":\n workerPort.postMessage({ id, resolve: await service.formatMessages(args[0], args[1]) });\n break;\n case \"analyzeMetafile\":\n workerPort.postMessage({ id, resolve: await service.analyzeMetafile(args[0], args[1]) });\n break;\n default:\n throw new Error(`Invalid command: ${command}`);\n }\n } catch (reject) {\n workerPort.postMessage({ id, reject, properties: extractProperties(reject) });\n }\n Atomics.add(sharedBufferView, 0, 1);\n Atomics.notify(sharedBufferView, 0, Infinity);\n })();\n });\n } catch (reject) {\n parentPort.on(\"message\", (msg) => {\n let { sharedBuffer, id } = msg;\n let sharedBufferView = new Int32Array(sharedBuffer);\n workerPort.postMessage({ id, reject, properties: extractProperties(reject) });\n Atomics.add(sharedBufferView, 0, 1);\n Atomics.notify(sharedBufferView, 0, Infinity);\n });\n }\n};\nif (isInternalWorkerThread) {\n startSyncServiceWorker();\n}\nvar node_default = node_exports;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n analyzeMetafile,\n analyzeMetafileSync,\n build,\n buildSync,\n context,\n formatMessages,\n formatMessagesSync,\n initialize,\n stop,\n transform,\n transformSync,\n version\n});\n","var Y=Object.defineProperty;var k=(A,E)=>Y(A,\"name\",{value:E,configurable:!0});var L;(function(A){A[A.Static=1]=\"Static\",A[A.Dynamic=2]=\"Dynamic\",A[A.ImportMeta=3]=\"ImportMeta\",A[A.StaticSourcePhase=4]=\"StaticSourcePhase\",A[A.DynamicSourcePhase=5]=\"DynamicSourcePhase\"})(L||(L={}));const R=new Uint8Array(new Uint16Array([1]).buffer)[0]===1;function F(A,E=\"@\"){if(!Q)return G.then(()=>F(A));const g=A.length+1,B=(Q.__heap_base.value||Q.__heap_base)+4*g-Q.memory.buffer.byteLength;B>0&&Q.memory.grow(Math.ceil(B/65536));const s=Q.sa(g-1);if((R?c:r)(A,new Uint16Array(Q.memory.buffer,s,g)),!Q.parse())throw Object.assign(new Error(`Parse error ${E}:${A.slice(0,Q.e()).split(`\n`).length}:${Q.e()-A.lastIndexOf(`\n`,Q.e()-1)}`),{idx:Q.e()});const U=[],t=[];for(;Q.ri();){const C=Q.is(),I=Q.ie(),D=Q.it(),i=Q.ai(),w=Q.id(),J=Q.ss(),K=Q.se();let o;Q.ip()&&(o=N(A.slice(w===-1?C-1:C,w===-1?I+1:I))),U.push({n:o,t:D,s:C,e:I,ss:J,se:K,d:w,a:i})}for(;Q.re();){const C=Q.es(),I=Q.ee(),D=Q.els(),i=Q.ele(),w=A.slice(C,I),J=w[0],K=D<0?void 0:A.slice(D,i),o=K?K[0]:\"\";t.push({s:C,e:I,ls:D,le:i,n:J==='\"'||J===\"'\"?N(w):w,ln:o==='\"'||o===\"'\"?N(K):K})}function N(C){try{return(0,eval)(C)}catch{}}return k(N,\"k\"),[U,t,!!Q.f(),!!Q.ms()]}k(F,\"parse\");function r(A,E){const g=A.length;let B=0;for(;B<g;){const s=A.charCodeAt(B);E[B++]=(255&s)<<8|s>>>8}}k(r,\"Q\");function c(A,E){const g=A.length;let B=0;for(;B<g;)E[B]=A.charCodeAt(B++)}k(c,\"B\");let Q;const G=WebAssembly.compile((a=\"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\",typeof Buffer<\"u\"?Buffer.from(a,\"base64\"):Uint8Array.from(atob(a),A=>A.charCodeAt(0)))).then(WebAssembly.instantiate).then(({exports:A})=>{Q=A});var a;export{L as ImportType,G as init,F as parse};\n","var Pt=Object.defineProperty;var f=(s,e)=>Pt(s,\"name\",{value:e,configurable:!0});import{fileURLToPath as Jt,pathToFileURL as Gt}from\"node:url\";import{version as Ae,transformSync as qt,transform as zt}from\"esbuild\";import Ht from\"node:crypto\";import U from\"node:fs\";import X from\"node:path\";import Xt from\"node:os\";import{t as Kt}from\"./temporary-directory-CwHp0_NW.mjs\";const Ne=f(s=>Ht.createHash(\"sha1\").update(s).digest(\"hex\"),\"sha1\"),Ie=44,Yt=59,Me=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",$e=new Uint8Array(64),Ue=new Uint8Array(128);for(let s=0;s<Me.length;s++){const e=Me.charCodeAt(s);$e[s]=e,Ue[e]=s}const me=typeof TextDecoder<\"u\"?new TextDecoder:typeof Buffer<\"u\"?{decode(s){return Buffer.from(s.buffer,s.byteOffset,s.byteLength).toString()}}:{decode(s){let e=\"\";for(let n=0;n<s.length;n++)e+=String.fromCharCode(s[n]);return e}};function Qt(s){const e=new Int32Array(5),n=[];let i=0;do{const o=Zt(s,i),c=[];let u=!0,p=0;e[0]=0;for(let g=i;g<o;g++){let b;g=K(s,g,e,0);const d=e[0];d<p&&(u=!1),p=d,je(s,g,o)?(g=K(s,g,e,1),g=K(s,g,e,2),g=K(s,g,e,3),je(s,g,o)?(g=K(s,g,e,4),b=[d,e[1],e[2],e[3],e[4]]):b=[d,e[1],e[2],e[3]]):b=[d],c.push(b)}u||Vt(c),n.push(c),i=o+1}while(i<=s.length);return n}f(Qt,\"decode\");function Zt(s,e){const n=s.indexOf(\";\",e);return n===-1?s.length:n}f(Zt,\"indexOf\");function K(s,e,n,i){let o=0,c=0,u=0;do{const g=s.charCodeAt(e++);u=Ue[g],o|=(u&31)<<c,c+=5}while(u&32);const p=o&1;return o>>>=1,p&&(o=-2147483648|-o),n[i]+=o,e}f(K,\"decodeInteger\");function je(s,e,n){return e>=n?!1:s.charCodeAt(e)!==Ie}f(je,\"hasMoreVlq\");function Vt(s){s.sort(en)}f(Vt,\"sort\");function en(s,e){return s[0]-e[0]}f(en,\"sortComparator$1\");function De(s){const e=new Int32Array(5),n=1024*16,i=n-36,o=new Uint8Array(n),c=o.subarray(0,i);let u=0,p=\"\";for(let g=0;g<s.length;g++){const b=s[g];if(g>0&&(u===n&&(p+=me.decode(o),u=0),o[u++]=Yt),b.length!==0){e[0]=0;for(let d=0;d<b.length;d++){const r=b[d];u>i&&(p+=me.decode(c),o.copyWithin(0,i,u),u-=i),d>0&&(o[u++]=Ie),u=Y(o,u,e,r,0),r.length!==1&&(u=Y(o,u,e,r,1),u=Y(o,u,e,r,2),u=Y(o,u,e,r,3),r.length!==4&&(u=Y(o,u,e,r,4)))}}}return p+me.decode(o.subarray(0,u))}f(De,\"encode\");function Y(s,e,n,i,o){const c=i[o];let u=c-n[o];n[o]=c,u=u<0?-u<<1|1:u<<1;do{let p=u&31;u>>>=5,u>0&&(p|=32),s[e++]=$e[p]}while(u>0);return e}f(Y,\"encodeInteger\");class ae{static{f(this,\"BitSet\")}constructor(e){this.bits=e instanceof ae?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}}class ee{static{f(this,\"Chunk\")}constructor(e,n,i){this.start=e,this.end=n,this.original=i,this.intro=\"\",this.outro=\"\",this.content=i,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){const e=new ee(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e}contains(e){return this.start<e&&e<this.end}eachNext(e){let n=this;for(;n;)e(n),n=n.next}eachPrevious(e){let n=this;for(;n;)e(n),n=n.previous}edit(e,n,i){return this.content=e,i||(this.intro=\"\",this.outro=\"\"),this.storeName=n,this.edited=!0,this}prependLeft(e){this.outro=e+this.outro}prependRight(e){this.intro=e+this.intro}reset(){this.intro=\"\",this.outro=\"\",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(e){const n=e-this.start,i=this.original.slice(0,n),o=this.original.slice(n);this.original=i;const c=new ee(e,this.end,o);return c.outro=this.outro,this.outro=\"\",this.end=e,this.edited?(c.edit(\"\",!1),this.content=\"\"):this.content=i,c.next=this.next,c.next&&(c.next.previous=c),c.previous=this,this.next=c,c}toString(){return this.intro+this.content+this.outro}trimEnd(e){if(this.outro=this.outro.replace(e,\"\"),this.outro.length)return!0;const n=this.content.replace(e,\"\");if(n.length)return n!==this.content&&(this.split(this.start+n.length).edit(\"\",void 0,!0),this.edited&&this.edit(n,this.storeName,!0)),!0;if(this.edit(\"\",void 0,!0),this.intro=this.intro.replace(e,\"\"),this.intro.length)return!0}trimStart(e){if(this.intro=this.intro.replace(e,\"\"),this.intro.length)return!0;const n=this.content.replace(e,\"\");if(n.length){if(n!==this.content){const i=this.split(this.end-n.length);this.edited&&i.edit(n,this.storeName,!0),this.edit(\"\",void 0,!0)}return!0}else if(this.edit(\"\",void 0,!0),this.outro=this.outro.replace(e,\"\"),this.outro.length)return!0}}function tn(){return typeof globalThis<\"u\"&&typeof globalThis.btoa==\"function\"?s=>globalThis.btoa(unescape(encodeURIComponent(s))):typeof Buffer==\"function\"?s=>Buffer.from(s,\"utf-8\").toString(\"base64\"):()=>{throw new Error(\"Unsupported environment: `window.btoa` or `Buffer` should be supported.\")}}f(tn,\"getBtoa\");const nn=tn();let rn=class{static{f(this,\"SourceMap\")}constructor(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=De(e.mappings),typeof e.x_google_ignoreList<\"u\"&&(this.x_google_ignoreList=e.x_google_ignoreList)}toString(){return JSON.stringify(this)}toUrl(){return\"data:application/json;charset=utf-8;base64,\"+nn(this.toString())}};function sn(s){const e=s.split(`\n`),n=e.filter(c=>/^\\t+/.test(c)),i=e.filter(c=>/^ {2,}/.test(c));if(n.length===0&&i.length===0)return null;if(n.length>=i.length)return\"\t\";const o=i.reduce((c,u)=>{const p=/^ +/.exec(u)[0].length;return Math.min(p,c)},1/0);return new Array(o+1).join(\" \")}f(sn,\"guessIndent\");function on(s,e){const n=s.split(/[/\\\\]/),i=e.split(/[/\\\\]/);for(n.pop();n[0]===i[0];)n.shift(),i.shift();if(n.length){let o=n.length;for(;o--;)n[o]=\"..\"}return n.concat(i).join(\"/\")}f(on,\"getRelativePath\");const an=Object.prototype.toString;function cn(s){return an.call(s)===\"[object Object]\"}f(cn,\"isObject\");function Te(s){const e=s.split(`\n`),n=[];for(let i=0,o=0;i<e.length;i++)n.push(o),o+=e[i].length+1;return f(function(o){let c=0,u=n.length;for(;c<u;){const b=c+u>>1;o<n[b]?u=b:c=b+1}const p=c-1,g=o-n[p];return{line:p,column:g}},\"locate\")}f(Te,\"getLocator\");const un=/\\w/;class ln{static{f(this,\"Mappings\")}constructor(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(e,n,i,o){if(n.length){const c=n.length-1;let u=n.indexOf(`\n`,0),p=-1;for(;u>=0&&c>u;){const b=[this.generatedCodeColumn,e,i.line,i.column];o>=0&&b.push(o),this.rawSegments.push(b),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,p=u,u=n.indexOf(`\n`,u+1)}const g=[this.generatedCodeColumn,e,i.line,i.column];o>=0&&g.push(o),this.rawSegments.push(g),this.advance(n.slice(p+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(n));this.pending=null}addUneditedChunk(e,n,i,o,c){let u=n.start,p=!0,g=!1;for(;u<n.end;){if(this.hires||p||c.has(u)){const b=[this.generatedCodeColumn,e,o.line,o.column];this.hires===\"boundary\"?un.test(i[u])?g||(this.rawSegments.push(b),g=!0):(this.rawSegments.push(b),g=!1):this.rawSegments.push(b)}i[u]===`\n`?(o.line+=1,o.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,p=!0):(o.column+=1,this.generatedCodeColumn+=1,p=!1),u+=1}this.pending=null}advance(e){if(!e)return;const n=e.split(`\n`);if(n.length>1){for(let i=0;i<n.length-1;i++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=n[n.length-1].length}}const Q=`\n`,J={insertLeft:!1,insertRight:!1,storeName:!1};class _e{static{f(this,\"MagicString\")}constructor(e,n={}){const i=new ee(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:\"\"},intro:{writable:!0,value:\"\"},firstChunk:{writable:!0,value:i},lastChunk:{writable:!0,value:i},lastSearchedChunk:{writable:!0,value:i},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:n.filename},indentExclusionRanges:{writable:!0,value:n.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new ae},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:n.ignoreList}}),this.byStart[0]=i,this.byEnd[e.length]=i}addSourcemapLocation(e){this.sourcemapLocations.add(e)}append(e){if(typeof e!=\"string\")throw new TypeError(\"outro content must be a string\");return this.outro+=e,this}appendLeft(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byEnd[e];return i?i.appendLeft(n):this.intro+=n,this}appendRight(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byStart[e];return i?i.appendRight(n):this.outro+=n,this}clone(){const e=new _e(this.original,{filename:this.filename});let n=this.firstChunk,i=e.firstChunk=e.lastSearchedChunk=n.clone();for(;n;){e.byStart[i.start]=i,e.byEnd[i.end]=i;const o=n.next,c=o&&o.clone();c&&(i.next=c,c.previous=i,i=c),n=o}return e.lastChunk=i,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new ae(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e}generateDecodedMap(e){e=e||{};const n=0,i=Object.keys(this.storedNames),o=new ln(e.hires),c=Te(this.original);return this.intro&&o.advance(this.intro),this.firstChunk.eachNext(u=>{const p=c(u.start);u.intro.length&&o.advance(u.intro),u.edited?o.addEdit(n,u.content,p,u.storeName?i.indexOf(u.original):-1):o.addUneditedChunk(n,u,this.original,p,this.sourcemapLocations),u.outro.length&&o.advance(u.outro)}),{file:e.file?e.file.split(/[/\\\\]/).pop():void 0,sources:[e.source?on(e.file||\"\",e.source):e.file||\"\"],sourcesContent:e.includeContent?[this.original]:void 0,names:i,mappings:o.raw,x_google_ignoreList:this.ignoreList?[n]:void 0}}generateMap(e){return new rn(this.generateDecodedMap(e))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=sn(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?\"\t\":this.indentStr}indent(e,n){const i=/^[^\\r\\n]/gm;if(cn(e)&&(n=e,e=void 0),e===void 0&&(this._ensureindentStr(),e=this.indentStr||\"\t\"),e===\"\")return this;n=n||{};const o={};n.exclude&&(typeof n.exclude[0]==\"number\"?[n.exclude]:n.exclude).forEach(d=>{for(let r=d[0];r<d[1];r+=1)o[r]=!0});let c=n.indentStart!==!1;const u=f(b=>c?`${e}${b}`:(c=!0,b),\"replacer\");this.intro=this.intro.replace(i,u);let p=0,g=this.firstChunk;for(;g;){const b=g.end;if(g.edited)o[p]||(g.content=g.content.replace(i,u),g.content.length&&(c=g.content[g.content.length-1]===`\n`));else for(p=g.start;p<b;){if(!o[p]){const d=this.original[p];d===`\n`?c=!0:d!==\"\\r\"&&c&&(c=!1,p===g.start||(this._splitChunk(g,p),g=g.next),g.prependRight(e))}p+=1}p=g.end,g=g.next}return this.outro=this.outro.replace(i,u),this}insert(){throw new Error(\"magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)\")}insertLeft(e,n){return J.insertLeft||(console.warn(\"magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead\"),J.insertLeft=!0),this.appendLeft(e,n)}insertRight(e,n){return J.insertRight||(console.warn(\"magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead\"),J.insertRight=!0),this.prependRight(e,n)}move(e,n,i){if(i>=e&&i<=n)throw new Error(\"Cannot move a selection inside itself\");this._split(e),this._split(n),this._split(i);const o=this.byStart[e],c=this.byEnd[n],u=o.previous,p=c.next,g=this.byStart[i];if(!g&&c===this.lastChunk)return this;const b=g?g.previous:this.lastChunk;return u&&(u.next=p),p&&(p.previous=u),b&&(b.next=o),g&&(g.previous=c),o.previous||(this.firstChunk=c.next),c.next||(this.lastChunk=o.previous,this.lastChunk.next=null),o.previous=b,c.next=g||null,b||(this.firstChunk=o),g||(this.lastChunk=c),this}overwrite(e,n,i,o){return o=o||{},this.update(e,n,i,{...o,overwrite:!o.contentOnly})}update(e,n,i,o){if(typeof i!=\"string\")throw new TypeError(\"replacement content must be a string\");for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;if(n>this.original.length)throw new Error(\"end is out of bounds\");if(e===n)throw new Error(\"Cannot overwrite a zero-length range \\u2013 use appendLeft or prependRight instead\");this._split(e),this._split(n),o===!0&&(J.storeName||(console.warn(\"The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string\"),J.storeName=!0),o={storeName:!0});const c=o!==void 0?o.storeName:!1,u=o!==void 0?o.overwrite:!1;if(c){const b=this.original.slice(e,n);Object.defineProperty(this.storedNames,b,{writable:!0,value:!0,enumerable:!0})}const p=this.byStart[e],g=this.byEnd[n];if(p){let b=p;for(;b!==g;){if(b.next!==this.byStart[b.end])throw new Error(\"Cannot overwrite across a split point\");b=b.next,b.edit(\"\",!1)}p.edit(i,c,!u)}else{const b=new ee(e,n,\"\").edit(i,c);g.next=b,b.previous=g}return this}prepend(e){if(typeof e!=\"string\")throw new TypeError(\"outro content must be a string\");return this.intro=e+this.intro,this}prependLeft(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byEnd[e];return i?i.prependLeft(n):this.intro=n+this.intro,this}prependRight(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byStart[e];return i?i.prependRight(n):this.outro=n+this.outro,this}remove(e,n){for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;if(e===n)return this;if(e<0||n>this.original.length)throw new Error(\"Character is out of bounds\");if(e>n)throw new Error(\"end must be greater than start\");this._split(e),this._split(n);let i=this.byStart[e];for(;i;)i.intro=\"\",i.outro=\"\",i.edit(\"\"),i=n>i.end?this.byStart[i.end]:null;return this}reset(e,n){for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;if(e===n)return this;if(e<0||n>this.original.length)throw new Error(\"Character is out of bounds\");if(e>n)throw new Error(\"end must be greater than start\");this._split(e),this._split(n);let i=this.byStart[e];for(;i;)i.reset(),i=n>i.end?this.byStart[i.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:\"\"}lastLine(){let e=this.outro.lastIndexOf(Q);if(e!==-1)return this.outro.substr(e+1);let n=this.outro,i=this.lastChunk;do{if(i.outro.length>0){if(e=i.outro.lastIndexOf(Q),e!==-1)return i.outro.substr(e+1)+n;n=i.outro+n}if(i.content.length>0){if(e=i.content.lastIndexOf(Q),e!==-1)return i.content.substr(e+1)+n;n=i.content+n}if(i.intro.length>0){if(e=i.intro.lastIndexOf(Q),e!==-1)return i.intro.substr(e+1)+n;n=i.intro+n}}while(i=i.previous);return e=this.intro.lastIndexOf(Q),e!==-1?this.intro.substr(e+1)+n:this.intro+n}slice(e=0,n=this.original.length){for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;let i=\"\",o=this.firstChunk;for(;o&&(o.start>e||o.end<=e);){if(o.start<n&&o.end>=n)return i;o=o.next}if(o&&o.edited&&o.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);const c=o;for(;o;){o.intro&&(c!==o||o.start===e)&&(i+=o.intro);const u=o.start<n&&o.end>=n;if(u&&o.edited&&o.end!==n)throw new Error(`Cannot use replaced character ${n} as slice end anchor.`);const p=c===o?e-o.start:0,g=u?o.content.length+n-o.end:o.content.length;if(i+=o.content.slice(p,g),o.outro&&(!u||o.end===n)&&(i+=o.outro),u)break;o=o.next}return i}snip(e,n){const i=this.clone();return i.remove(0,e),i.remove(n,i.original.length),i}_split(e){if(this.byStart[e]||this.byEnd[e])return;let n=this.lastSearchedChunk;const i=e>n.end;for(;n;){if(n.contains(e))return this._splitChunk(n,e);n=i?this.byStart[n.end]:this.byEnd[n.start]}}_splitChunk(e,n){if(e.edited&&e.content.length){const o=Te(this.original)(n);throw new Error(`Cannot split a chunk that has already been edited (${o.line}:${o.column} \\u2013 \"${e.original}\")`)}const i=e.split(n);return this.byEnd[n]=e,this.byStart[n]=i,this.byEnd[i.end]=i,e===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=e,!0}toString(){let e=this.intro,n=this.firstChunk;for(;n;)e+=n.toString(),n=n.next;return e+this.outro}isEmpty(){let e=this.firstChunk;do if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1;while(e=e.next);return!0}length(){let e=this.firstChunk,n=0;do n+=e.intro.length+e.content.length+e.outro.length;while(e=e.next);return n}trimLines(){return this.trim(\"[\\\\r\\\\n]\")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){const n=new RegExp((e||\"\\\\s\")+\"+$\");if(this.outro=this.outro.replace(n,\"\"),this.outro.length)return!0;let i=this.lastChunk;do{const o=i.end,c=i.trimEnd(n);if(i.end!==o&&(this.lastChunk===i&&(this.lastChunk=i.next),this.byEnd[i.end]=i,this.byStart[i.next.start]=i.next,this.byEnd[i.next.end]=i.next),c)return!0;i=i.previous}while(i);return!1}trimEnd(e){return this.trimEndAborted(e),this}trimStartAborted(e){const n=new RegExp(\"^\"+(e||\"\\\\s\")+\"+\");if(this.intro=this.intro.replace(n,\"\"),this.intro.length)return!0;let i=this.firstChunk;do{const o=i.end,c=i.trimStart(n);if(i.end!==o&&(i===this.lastChunk&&(this.lastChunk=i.next),this.byEnd[i.end]=i,this.byStart[i.next.start]=i.next,this.byEnd[i.next.end]=i.next),c)return!0;i=i.next}while(i);return!1}trimStart(e){return this.trimStartAborted(e),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,n){function i(c,u){return typeof n==\"string\"?n.replace(/\\$(\\$|&|\\d+)/g,(p,g)=>g===\"$\"?\"$\":g===\"&\"?c[0]:+g<c.length?c[+g]:`$${g}`):n(...c,c.index,u,c.groups)}f(i,\"getReplacement\");function o(c,u){let p;const g=[];for(;p=c.exec(u);)g.push(p);return g}if(f(o,\"matchAll\"),e.global)o(e,this.original).forEach(u=>{if(u.index!=null){const p=i(u,this.original);p!==u[0]&&this.overwrite(u.index,u.index+u[0].length,p)}});else{const c=this.original.match(e);if(c&&c.index!=null){const u=i(c,this.original);u!==c[0]&&this.overwrite(c.index,c.index+c[0].length,u)}}return this}_replaceString(e,n){const{original:i}=this,o=i.indexOf(e);return o!==-1&&this.overwrite(o,o+e.length,n),this}replace(e,n){return typeof e==\"string\"?this._replaceString(e,n):this._replaceRegexp(e,n)}_replaceAllString(e,n){const{original:i}=this,o=e.length;for(let c=i.indexOf(e);c!==-1;c=i.indexOf(e,c+o))i.slice(c,c+o)!==n&&this.overwrite(c,c+o,n);return this}replaceAll(e,n){if(typeof e==\"string\")return this._replaceAllString(e,n);if(!e.global)throw new TypeError(\"MagicString.prototype.replaceAll called with a non-global RegExp argument\");return this._replaceRegexp(e,n)}}let v,re,ke,Z=2<<19;const Fe=new Uint8Array(new Uint16Array([1]).buffer)[0]===1?function(s,e){const n=s.length;let i=0;for(;i<n;)e[i]=s.charCodeAt(i++)}:function(s,e){const n=s.length;let i=0;for(;i<n;){const o=s.charCodeAt(i);e[i++]=(255&o)<<8|o>>>8}},hn=\"xportmportlassforetaourceromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileifcatcfinallels\";let _,We,y;function fn(s,e=\"@\"){_=s,We=e;const n=2*_.length+(2<<18);if(n>Z||!v){for(;n>Z;)Z*=2;re=new ArrayBuffer(Z),Fe(hn,new Uint16Array(re,16,110)),v=function(u,p,g){var b=new u.Int8Array(g),d=new u.Int16Array(g),r=new u.Int32Array(g),R=new u.Uint8Array(g),L=new u.Uint16Array(g),E=1040;function N(){var t=0,a=0,h=0,l=0,w=0,m=0,C=0;C=E,E=E+10240|0,b[804]=1,b[803]=0,d[399]=0,d[400]=0,r[69]=r[2],b[805]=0,r[68]=0,b[802]=0,r[70]=C+2048,r[71]=C,b[806]=0,t=(r[3]|0)+-2|0,r[72]=t,a=t+(r[66]<<1)|0,r[73]=a;e:for(;;){if(h=t+2|0,r[72]=h,t>>>0>=a>>>0){l=18;break}t:do switch(d[h>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(!(d[400]|0)&&z(h)|0&&!(A(t+4|0,16,10)|0)&&($(),(b[804]|0)==0)){l=9;break e}else l=17;break}case 105:{z(h)|0&&!(A(t+4|0,26,10)|0)&&W(),l=17;break}case 59:{l=17;break}case 47:switch(d[t+4>>1]|0){case 47:{fe();break t}case 42:{le(1);break t}default:{l=16;break e}}default:{l=16;break e}}while(!1);(l|0)==17&&(l=0,r[69]=r[72]),t=r[72]|0,a=r[73]|0}(l|0)==9?(t=r[72]|0,r[69]=t,l=19):(l|0)==16?(b[804]=0,r[72]=t,l=19):(l|0)==18&&(b[802]|0?t=0:(t=h,l=19));do if((l|0)==19){e:for(;;){if(a=t+2|0,r[72]=a,t>>>0>=(r[73]|0)>>>0){l=92;break}t:do switch(d[a>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{!(d[400]|0)&&z(a)|0&&!(A(t+4|0,16,10)|0)&&$(),l=91;break}case 105:{z(a)|0&&!(A(t+4|0,26,10)|0)&&W(),l=91;break}case 99:{z(a)|0&&!(A(t+4|0,36,8)|0)&&P(d[t+12>>1]|0)|0&&(b[806]=1),l=91;break}case 40:{h=r[70]|0,t=d[400]|0,l=t&65535,r[h+(l<<3)>>2]=1,a=r[69]|0,d[400]=t+1<<16>>16,r[h+(l<<3)+4>>2]=a,l=91;break}case 41:{if(a=d[400]|0,!(a<<16>>16)){l=36;break e}h=a+-1<<16>>16,d[400]=h,l=d[399]|0,a=l&65535,l<<16>>16&&(r[(r[70]|0)+((h&65535)<<3)>>2]|0)==5&&(a=r[(r[71]|0)+(a+-1<<2)>>2]|0,h=a+4|0,r[h>>2]|0||(r[h>>2]=(r[69]|0)+2),r[a+12>>2]=t+4,d[399]=l+-1<<16>>16),l=91;break}case 123:{l=r[69]|0,h=r[63]|0,t=l;do if((d[l>>1]|0)==41&(h|0)!=0&&(r[h+4>>2]|0)==(l|0))if(a=r[64]|0,r[63]=a,a){r[a+32>>2]=0;break}else{r[59]=0;break}while(!1);h=r[70]|0,a=d[400]|0,l=a&65535,r[h+(l<<3)>>2]=b[806]|0?6:2,d[400]=a+1<<16>>16,r[h+(l<<3)+4>>2]=t,b[806]=0,l=91;break}case 125:{if(t=d[400]|0,!(t<<16>>16)){l=49;break e}h=r[70]|0,l=t+-1<<16>>16,d[400]=l,(r[h+((l&65535)<<3)>>2]|0)==4&&Ee(),l=91;break}case 39:{I(39),l=91;break}case 34:{I(34),l=91;break}case 47:switch(d[t+4>>1]|0){case 47:{fe();break t}case 42:{le(1);break t}default:{t=r[69]|0,a=d[t>>1]|0;n:do if(!(kt(a)|0))a<<16>>16==41?(h=d[400]|0,xt(r[(r[70]|0)+((h&65535)<<3)+4>>2]|0)|0||(l=65)):l=64;else switch(a<<16>>16){case 46:if(((d[t+-2>>1]|0)+-48&65535)<10){l=64;break n}else break n;case 43:if((d[t+-2>>1]|0)==43){l=64;break n}else break n;case 45:if((d[t+-2>>1]|0)==45){l=64;break n}else break n;default:break n}while(!1);(l|0)==64&&(h=d[400]|0,l=65);n:do if((l|0)==65){if(l=0,h<<16>>16&&(w=r[70]|0,m=(h&65535)+-1|0,a<<16>>16==102?(r[w+(m<<3)>>2]|0)==1:0)){if((d[t+-2>>1]|0)==111&&O(r[w+(m<<3)+4>>2]|0,44,3)|0)break}else l=69;if((l|0)==69&&a<<16>>16==125&&(l=r[70]|0,h=h&65535,mt(r[l+(h<<3)+4>>2]|0)|0||(r[l+(h<<3)>>2]|0)==6))break;if(!(pt(t)|0)){switch(a<<16>>16){case 0:break n;case 47:{if(b[805]|0)break n;break}default:}if(l=r[65]|0,l|0&&t>>>0>=(r[l>>2]|0)>>>0&&t>>>0<=(r[l+4>>2]|0)>>>0){ue(),b[805]=0,l=91;break t}h=r[3]|0;do{if(t>>>0<=h>>>0)break;t=t+-2|0,r[69]=t,a=d[t>>1]|0}while(!(he(a)|0));if(ne(a)|0){do{if(t>>>0<=h>>>0)break;t=t+-2|0,r[69]=t}while(ne(d[t>>1]|0)|0);if(Ct(t)|0){ue(),b[805]=0,l=91;break t}}b[805]=1,l=91;break t}}while(!1);ue(),b[805]=0,l=91;break t}}case 96:{h=r[70]|0,a=d[400]|0,l=a&65535,r[h+(l<<3)+4>>2]=r[69],d[400]=a+1<<16>>16,r[h+(l<<3)>>2]=3,Ee(),l=91;break}default:l=91}while(!1);(l|0)==91&&(l=0,r[69]=r[72]),t=r[72]|0}if((l|0)==36){M(),t=0;break}else if((l|0)==49){M(),t=0;break}else if((l|0)==92){t=b[802]|0?0:(d[399]|d[400])<<16>>16==0;break}}while(!1);return E=C,t|0}f(N,\"b\");function $(){var t=0,a=0,h=0,l=0,w=0,m=0,C=0,T=0,ge=0,be=0,pe=0,we=0,S=0,x=0;T=r[72]|0,ge=r[65]|0,x=T+12|0,r[72]=x,h=k(1)|0,t=r[72]|0,(t|0)==(x|0)&&!(te(h)|0)||(S=3);e:do if((S|0)==3){t:do switch(h<<16>>16){case 123:{for(r[72]=t+2,t=k(1)|0,a=r[72]|0;;){if(H(t)|0?(I(t),t=(r[72]|0)+2|0,r[72]=t):(j(t)|0,t=r[72]|0),k(1)|0,t=Le(a,t)|0,t<<16>>16==44&&(r[72]=(r[72]|0)+2,t=k(1)|0),t<<16>>16==125){S=15;break}if(x=a,a=r[72]|0,(a|0)==(x|0)){S=12;break}if(a>>>0>(r[73]|0)>>>0){S=14;break}}if((S|0)==12){M();break e}else if((S|0)==14){M();break e}else if((S|0)==15){b[803]=1,r[72]=(r[72]|0)+2;break t}break}case 42:{r[72]=t+2,k(1)|0,x=r[72]|0,Le(x,x)|0;break}default:{switch(b[804]=0,h<<16>>16){case 100:{switch(T=t+14|0,r[72]=T,(k(1)|0)<<16>>16){case 97:{a=r[72]|0,!(A(a+2|0,72,8)|0)&&(w=a+10|0,ne(d[w>>1]|0)|0)&&(r[72]=w,k(0)|0,S=22);break}case 102:{S=22;break}case 99:{a=r[72]|0,!(A(a+2|0,36,8)|0)&&(l=a+10|0,x=d[l>>1]|0,P(x)|0|x<<16>>16==123)&&(r[72]=l,m=k(1)|0,m<<16>>16!=123)&&(we=m,S=31);break}default:}n:do if((S|0)==22&&(C=r[72]|0,(A(C+2|0,80,14)|0)==0)){if(h=C+16|0,a=d[h>>1]|0,!(P(a)|0))switch(a<<16>>16){case 40:case 42:break;default:break n}r[72]=h,a=k(1)|0,a<<16>>16==42&&(r[72]=(r[72]|0)+2,a=k(1)|0),a<<16>>16!=40&&(we=a,S=31)}while(!1);if((S|0)==31&&(be=r[72]|0,j(we)|0,pe=r[72]|0,pe>>>0>be>>>0)){B(t,T,be,pe),r[72]=(r[72]|0)+-2;break e}B(t,T,0,0),r[72]=t+12;break e}case 97:{r[72]=t+10,k(0)|0,t=r[72]|0,S=35;break}case 102:{S=35;break}case 99:{if(!(A(t+2|0,36,8)|0)&&(a=t+10|0,he(d[a>>1]|0)|0)){r[72]=a,x=k(1)|0,S=r[72]|0,j(x)|0,x=r[72]|0,B(S,x,S,x),r[72]=(r[72]|0)+-2;break e}t=t+4|0,r[72]=t;break}case 108:case 118:break;default:break e}if((S|0)==35){r[72]=t+16,t=k(1)|0,t<<16>>16==42&&(r[72]=(r[72]|0)+2,t=k(1)|0),S=r[72]|0,j(t)|0,x=r[72]|0,B(S,x,S,x),r[72]=(r[72]|0)+-2;break e}r[72]=t+6,b[804]=0,h=k(1)|0,t=r[72]|0,h=(j(h)|0|32)<<16>>16==123,l=r[72]|0,h&&(r[72]=l+2,x=k(1)|0,t=r[72]|0,j(x)|0);n:for(;a=r[72]|0,(a|0)!=(t|0);){if(B(t,a,t,a),a=k(1)|0,h)switch(a<<16>>16){case 93:case 125:break e;default:}if(t=r[72]|0,a<<16>>16!=44){S=51;break}switch(r[72]=t+2,a=k(1)|0,t=r[72]|0,a<<16>>16){case 91:case 123:{S=51;break n}default:}j(a)|0}if((S|0)==51&&(r[72]=t+-2),!h)break e;r[72]=l+-2;break e}}while(!1);if(x=(k(1)|0)<<16>>16==102,t=r[72]|0,x&&!(A(t+2|0,66,6)|0))for(r[72]=t+8,G(T,k(1)|0,0),t=ge|0?ge+16|0:240;;){if(t=r[t>>2]|0,!t)break e;r[t+12>>2]=0,r[t+8>>2]=0,t=t+16|0}r[72]=t+-2}while(!1)}f($,\"k\");function W(){var t=0,a=0,h=0,l=0,w=0,m=0,C=0;w=r[72]|0,h=w+12|0,r[72]=h,l=k(1)|0,a=r[72]|0;e:do if(l<<16>>16!=46)l<<16>>16==115&a>>>0>h>>>0?!(A(a+2|0,56,10)|0)&&(t=a+12|0,P(d[t>>1]|0)|0)?m=14:(a=6,h=0,m=46):(t=l,h=0,m=15);else switch(r[72]=a+2,(k(1)|0)<<16>>16){case 109:{if(t=r[72]|0,A(t+2|0,50,6)|0||(a=r[69]|0,!(de(a)|0)&&(d[a>>1]|0)==46))break e;ce(w,w,t+8|0,2);break e}case 115:{if(t=r[72]|0,A(t+2|0,56,10)|0||(a=r[69]|0,!(de(a)|0)&&(d[a>>1]|0)==46))break e;t=t+12|0,m=14;break e}default:break e}while(!1);(m|0)==14&&(r[72]=t,t=k(1)|0,h=1,m=15);e:do if((m|0)==15)switch(t<<16>>16){case 40:{if(a=r[70]|0,C=d[400]|0,l=C&65535,r[a+(l<<3)>>2]=5,t=r[72]|0,d[400]=C+1<<16>>16,r[a+(l<<3)+4>>2]=t,(d[r[69]>>1]|0)==46)break e;switch(r[72]=t+2,a=k(1)|0,ce(w,r[72]|0,0,t),h?(t=r[63]|0,r[t+28>>2]=5):t=r[63]|0,w=r[71]|0,C=d[399]|0,d[399]=C+1<<16>>16,r[w+((C&65535)<<2)>>2]=t,a<<16>>16){case 39:{I(39);break}case 34:{I(34);break}default:{r[72]=(r[72]|0)+-2;break e}}switch(t=(r[72]|0)+2|0,r[72]=t,(k(1)|0)<<16>>16){case 44:{r[72]=(r[72]|0)+2,k(1)|0,w=r[63]|0,r[w+4>>2]=t,C=r[72]|0,r[w+16>>2]=C,b[w+24>>0]=1,r[72]=C+-2;break e}case 41:{d[400]=(d[400]|0)+-1<<16>>16,C=r[63]|0,r[C+4>>2]=t,r[C+12>>2]=(r[72]|0)+2,b[C+24>>0]=1,d[399]=(d[399]|0)+-1<<16>>16;break e}default:{r[72]=(r[72]|0)+-2;break e}}}case 123:{if(h){a=12,h=1,m=46;break e}if(t=r[72]|0,d[400]|0){r[72]=t+-2;break e}for(;!(t>>>0>=(r[73]|0)>>>0);){if(t=k(1)|0,H(t)|0)I(t);else if(t<<16>>16==125){m=36;break}t=(r[72]|0)+2|0,r[72]=t}if((m|0)==36&&(r[72]=(r[72]|0)+2),C=(k(1)|0)<<16>>16==102,t=r[72]|0,C&&A(t+2|0,66,6)|0){M();break e}if(r[72]=t+8,t=k(1)|0,H(t)|0){G(w,t,0);break e}else{M();break e}}default:{if(h){a=12,h=1,m=46;break e}switch(t<<16>>16){case 42:case 39:case 34:{h=0,m=48;break e}default:{a=6,h=0,m=46;break e}}}}while(!1);(m|0)==46&&(t=r[72]|0,(t|0)==(w+(a<<1)|0)?r[72]=t+-2:m=48);do if((m|0)==48){if(d[400]|0){r[72]=(r[72]|0)+-2;break}for(t=r[73]|0,a=r[72]|0;;){if(a>>>0>=t>>>0){m=55;break}if(l=d[a>>1]|0,H(l)|0){m=53;break}C=a+2|0,r[72]=C,a=C}if((m|0)==53){G(w,l,h);break}else if((m|0)==55){M();break}}while(!1)}f(W,\"l\");function G(t,a,h){t=t|0,a=a|0,h=h|0;var l=0,w=0;switch(l=(r[72]|0)+2|0,a<<16>>16){case 39:{I(39),w=5;break}case 34:{I(34),w=5;break}default:M()}do if((w|0)==5){if(ce(t,l,r[72]|0,1),h&&(r[(r[63]|0)+28>>2]=4),r[72]=(r[72]|0)+2,a=k(0)|0,h=a<<16>>16==97,h?(l=r[72]|0,A(l+2|0,94,10)|0&&(w=13)):(l=r[72]|0,a<<16>>16==119&&(d[l+2>>1]|0)==105&&(d[l+4>>1]|0)==116&&(d[l+6>>1]|0)==104||(w=13)),(w|0)==13){r[72]=l+-2;break}if(r[72]=l+((h?6:4)<<1),(k(1)|0)<<16>>16!=123){r[72]=l;break}h=r[72]|0,a=h;e:for(;;){switch(r[72]=a+2,a=k(1)|0,a<<16>>16){case 39:{I(39),r[72]=(r[72]|0)+2,a=k(1)|0;break}case 34:{I(34),r[72]=(r[72]|0)+2,a=k(1)|0;break}default:a=j(a)|0}if(a<<16>>16!=58){w=22;break}switch(r[72]=(r[72]|0)+2,(k(1)|0)<<16>>16){case 39:{I(39);break}case 34:{I(34);break}default:{w=26;break e}}switch(r[72]=(r[72]|0)+2,(k(1)|0)<<16>>16){case 125:{w=31;break e}case 44:break;default:{w=30;break e}}if(r[72]=(r[72]|0)+2,(k(1)|0)<<16>>16==125){w=31;break}a=r[72]|0}if((w|0)==22){r[72]=l;break}else if((w|0)==26){r[72]=l;break}else if((w|0)==30){r[72]=l;break}else if((w|0)==31){w=r[63]|0,r[w+16>>2]=h,r[w+12>>2]=(r[72]|0)+2;break}}while(!1)}f(G,\"u\");function pt(t){t=t|0;e:do switch(d[t>>1]|0){case 100:switch(d[t+-2>>1]|0){case 105:{t=O(t+-4|0,104,2)|0;break e}case 108:{t=O(t+-4|0,108,3)|0;break e}default:{t=0;break e}}case 101:switch(d[t+-2>>1]|0){case 115:switch(d[t+-4>>1]|0){case 108:{t=q(t+-6|0,101)|0;break e}case 97:{t=q(t+-6|0,99)|0;break e}default:{t=0;break e}}case 116:{t=O(t+-4|0,114,4)|0;break e}case 117:{t=O(t+-4|0,122,6)|0;break e}default:{t=0;break e}}case 102:{if((d[t+-2>>1]|0)==111&&(d[t+-4>>1]|0)==101)switch(d[t+-6>>1]|0){case 99:{t=O(t+-8|0,134,6)|0;break e}case 112:{t=O(t+-8|0,146,2)|0;break e}default:{t=0;break e}}else t=0;break}case 107:{t=O(t+-2|0,150,4)|0;break}case 110:{t=t+-2|0,q(t,105)|0?t=1:t=O(t,158,5)|0;break}case 111:{t=q(t+-2|0,100)|0;break}case 114:{t=O(t+-2|0,168,7)|0;break}case 116:{t=O(t+-2|0,182,4)|0;break}case 119:switch(d[t+-2>>1]|0){case 101:{t=q(t+-4|0,110)|0;break e}case 111:{t=O(t+-4|0,190,3)|0;break e}default:{t=0;break e}}default:t=0}while(!1);return t|0}f(pt,\"o\");function Ee(){var t=0,a=0,h=0,l=0;a=r[73]|0,h=r[72]|0;e:for(;;){if(t=h+2|0,h>>>0>=a>>>0){a=10;break}switch(d[t>>1]|0){case 96:{a=7;break e}case 36:{if((d[h+4>>1]|0)==123){a=6;break e}break}case 92:{t=h+4|0;break}default:}h=t}(a|0)==6?(t=h+4|0,r[72]=t,a=r[70]|0,l=d[400]|0,h=l&65535,r[a+(h<<3)>>2]=4,d[400]=l+1<<16>>16,r[a+(h<<3)+4>>2]=t):(a|0)==7?(r[72]=t,h=r[70]|0,l=(d[400]|0)+-1<<16>>16,d[400]=l,(r[h+((l&65535)<<3)>>2]|0)!=3&&M()):(a|0)==10&&(r[72]=t,M())}f(Ee,\"h\");function k(t){t=t|0;var a=0,h=0,l=0;h=r[72]|0;e:do{a=d[h>>1]|0;t:do if(a<<16>>16!=47)if(t){if(P(a)|0)break;break e}else{if(ne(a)|0)break;break e}else switch(d[h+2>>1]|0){case 47:{fe();break t}case 42:{le(t);break t}default:{a=47;break e}}while(!1);l=r[72]|0,h=l+2|0,r[72]=h}while(l>>>0<(r[73]|0)>>>0);return a|0}f(k,\"w\");function ce(t,a,h,l){t=t|0,a=a|0,h=h|0,l=l|0;var w=0,m=0;m=r[67]|0,r[67]=m+36,w=r[63]|0,r[(w|0?w+32|0:236)>>2]=m,r[64]=w,r[63]=m,r[m+8>>2]=t,(l|0)==2?(t=3,w=h):(w=(l|0)==1,t=w?1:2,w=w?h+2|0:0),r[m+12>>2]=w,r[m+28>>2]=t,r[m>>2]=a,r[m+4>>2]=h,r[m+16>>2]=0,r[m+20>>2]=l,a=(l|0)==1,b[m+24>>0]=a&1,r[m+32>>2]=0,a|(l|0)==2&&(b[803]=1)}f(ce,\"d\");function I(t){t=t|0;var a=0,h=0,l=0,w=0;for(w=r[73]|0,a=r[72]|0;;){if(l=a+2|0,a>>>0>=w>>>0){a=9;break}if(h=d[l>>1]|0,h<<16>>16==t<<16>>16){a=10;break}if(h<<16>>16==92)h=a+4|0,(d[h>>1]|0)==13?(a=a+6|0,a=(d[a>>1]|0)==10?a:h):a=h;else if(Re(h)|0){a=9;break}else a=l}(a|0)==9?(r[72]=l,M()):(a|0)==10&&(r[72]=l)}f(I,\"v\");function Le(t,a){t=t|0,a=a|0;var h=0,l=0,w=0,m=0;return h=r[72]|0,l=d[h>>1]|0,m=(t|0)==(a|0),w=m?0:t,m=m?0:a,l<<16>>16==97&&(r[72]=h+4,h=k(1)|0,t=r[72]|0,H(h)|0?(I(h),a=(r[72]|0)+2|0,r[72]=a):(j(h)|0,a=r[72]|0),l=k(1)|0,h=r[72]|0),(h|0)!=(t|0)&&B(t,a,w,m),l|0}f(Le,\"A\");function wt(){var t=0,a=0,h=0;h=r[73]|0,a=r[72]|0;e:for(;;){if(t=a+2|0,a>>>0>=h>>>0){a=6;break}switch(d[t>>1]|0){case 13:case 10:{a=6;break e}case 93:{a=7;break e}case 92:{t=a+4|0;break}default:}a=t}return(a|0)==6?(r[72]=t,M(),t=0):(a|0)==7&&(r[72]=t,t=93),t|0}f(wt,\"C\");function ue(){var t=0,a=0,h=0;e:for(;;){if(t=r[72]|0,a=t+2|0,r[72]=a,t>>>0>=(r[73]|0)>>>0){h=7;break}switch(d[a>>1]|0){case 13:case 10:{h=7;break e}case 47:break e;case 91:{wt()|0;break}case 92:{r[72]=t+4;break}default:}}(h|0)==7&&M()}f(ue,\"g\");function mt(t){switch(t=t|0,d[t>>1]|0){case 62:{t=(d[t+-2>>1]|0)==61;break}case 41:case 59:{t=1;break}case 104:{t=O(t+-2|0,210,4)|0;break}case 121:{t=O(t+-2|0,218,6)|0;break}case 101:{t=O(t+-2|0,230,3)|0;break}default:t=0}return t|0}f(mt,\"p\");function le(t){t=t|0;var a=0,h=0,l=0,w=0,m=0;for(w=(r[72]|0)+2|0,r[72]=w,h=r[73]|0;a=w+2|0,!(w>>>0>=h>>>0||(l=d[a>>1]|0,!t&&Re(l)|0));){if(l<<16>>16==42&&(d[w+4>>1]|0)==47){m=8;break}w=a}(m|0)==8&&(r[72]=a,a=w+4|0),r[72]=a}f(le,\"y\");function A(t,a,h){t=t|0,a=a|0,h=h|0;var l=0,w=0;e:do if(!h)t=0;else{for(;l=b[t>>0]|0,w=b[a>>0]|0,l<<24>>24==w<<24>>24;)if(h=h+-1|0,h)t=t+1|0,a=a+1|0;else{t=0;break e}t=(l&255)-(w&255)|0}while(!1);return t|0}f(A,\"m\");function te(t){t=t|0;e:do switch(t<<16>>16){case 38:case 37:case 33:{t=1;break}default:if((t&-8)<<16>>16==40|(t+-58&65535)<6)t=1;else{switch(t<<16>>16){case 91:case 93:case 94:{t=1;break e}default:}t=(t+-123&65535)<4}}while(!1);return t|0}f(te,\"I\");function kt(t){t=t|0;e:do switch(t<<16>>16){case 38:case 37:case 33:break;default:if(!((t+-58&65535)<6|(t+-40&65535)<7&t<<16>>16!=41)){switch(t<<16>>16){case 91:case 94:break e;default:}return t<<16>>16!=125&(t+-123&65535)<4|0}}while(!1);return 1}f(kt,\"U\");function Oe(t){t=t|0;var a=0;a=d[t>>1]|0;e:do if((a+-9&65535)>=5){switch(a<<16>>16){case 160:case 32:{a=1;break e}default:}if(te(a)|0)return a<<16>>16!=46|(de(t)|0)|0;a=0}else a=1;while(!1);return a|0}f(Oe,\"x\");function yt(t){t=t|0;var a=0,h=0,l=0,w=0;return h=E,E=E+16|0,l=h,r[l>>2]=0,r[66]=t,a=r[3]|0,w=a+(t<<1)|0,t=w+2|0,d[w>>1]=0,r[l>>2]=t,r[67]=t,r[59]=0,r[63]=0,r[61]=0,r[60]=0,r[65]=0,r[62]=0,E=h,a|0}f(yt,\"S\");function B(t,a,h,l){t=t|0,a=a|0,h=h|0,l=l|0;var w=0,m=0;w=r[67]|0,r[67]=w+20,m=r[65]|0,r[(m|0?m+16|0:240)>>2]=w,r[65]=w,r[w>>2]=t,r[w+4>>2]=a,r[w+8>>2]=h,r[w+12>>2]=l,r[w+16>>2]=0,b[803]=1}f(B,\"O\");function O(t,a,h){t=t|0,a=a|0,h=h|0;var l=0,w=0;return l=t+(0-h<<1)|0,w=l+2|0,t=r[3]|0,w>>>0>=t>>>0&&!(A(w,a,h<<1)|0)?(w|0)==(t|0)?t=1:t=Oe(l)|0:t=0,t|0}f(O,\"$\");function Ct(t){switch(t=t|0,d[t>>1]|0){case 107:{t=O(t+-2|0,150,4)|0;break}case 101:{(d[t+-2>>1]|0)==117?t=O(t+-4|0,122,6)|0:t=0;break}default:t=0}return t|0}f(Ct,\"j\");function q(t,a){t=t|0,a=a|0;var h=0;return h=r[3]|0,h>>>0<=t>>>0&&(d[t>>1]|0)==a<<16>>16?(h|0)==(t|0)?h=1:h=he(d[t+-2>>1]|0)|0:h=0,h|0}f(q,\"B\");function he(t){t=t|0;e:do if((t+-9&65535)<5)t=1;else{switch(t<<16>>16){case 32:case 160:{t=1;break e}default:}t=t<<16>>16!=46&(te(t)|0)}while(!1);return t|0}f(he,\"E\");function fe(){var t=0,a=0,h=0;t=r[73]|0,h=r[72]|0;e:for(;a=h+2|0,!(h>>>0>=t>>>0);)switch(d[a>>1]|0){case 13:case 10:break e;default:h=a}r[72]=a}f(fe,\"P\");function j(t){for(t=t|0;!(P(t)|0||te(t)|0);)if(t=(r[72]|0)+2|0,r[72]=t,t=d[t>>1]|0,!(t<<16>>16)){t=0;break}return t|0}f(j,\"q\");function St(){var t=0;switch(t=r[(r[61]|0)+20>>2]|0,t|0){case 1:{t=-1;break}case 2:{t=-2;break}default:t=t-(r[3]|0)>>1}return t|0}f(St,\"z\");function xt(t){return t=t|0,!(O(t,196,5)|0)&&!(O(t,44,3)|0)?t=O(t,206,2)|0:t=1,t|0}f(xt,\"D\");function ne(t){switch(t=t|0,t<<16>>16){case 160:case 32:case 12:case 11:case 9:{t=1;break}default:t=0}return t|0}f(ne,\"F\");function de(t){return t=t|0,(d[t>>1]|0)==46&&(d[t+-2>>1]|0)==46?t=(d[t+-4>>1]|0)==46:t=0,t|0}f(de,\"G\");function z(t){return t=t|0,(r[3]|0)==(t|0)?t=1:t=Oe(t+-2|0)|0,t|0}f(z,\"H\");function vt(){var t=0;return t=r[(r[62]|0)+12>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(vt,\"J\");function _t(){var t=0;return t=r[(r[61]|0)+12>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(_t,\"K\");function Et(){var t=0;return t=r[(r[62]|0)+8>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(Et,\"L\");function Lt(){var t=0;return t=r[(r[61]|0)+16>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(Lt,\"M\");function Ot(){var t=0;return t=r[(r[61]|0)+4>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(Ot,\"N\");function Rt(){var t=0;return t=r[61]|0,t=r[(t|0?t+32|0:236)>>2]|0,r[61]=t,(t|0)!=0|0}f(Rt,\"Q\");function At(){var t=0;return t=r[62]|0,t=r[(t|0?t+16|0:240)>>2]|0,r[62]=t,(t|0)!=0|0}f(At,\"R\");function M(){b[802]=1,r[68]=(r[72]|0)-(r[3]|0)>>1,r[72]=(r[73]|0)+2}f(M,\"T\");function P(t){return t=t|0,(t|128)<<16>>16==160|(t+-9&65535)<5|0}f(P,\"V\");function H(t){return t=t|0,t<<16>>16==39|t<<16>>16==34|0}f(H,\"W\");function Nt(){return(r[(r[61]|0)+8>>2]|0)-(r[3]|0)>>1|0}f(Nt,\"X\");function It(){return(r[(r[62]|0)+4>>2]|0)-(r[3]|0)>>1|0}f(It,\"Y\");function Re(t){return t=t|0,t<<16>>16==13|t<<16>>16==10|0}f(Re,\"Z\");function Mt(){return(r[r[61]>>2]|0)-(r[3]|0)>>1|0}f(Mt,\"_\");function $t(){return(r[r[62]>>2]|0)-(r[3]|0)>>1|0}f($t,\"ee\");function Ut(){return R[(r[61]|0)+24>>0]|0|0}f(Ut,\"ae\");function jt(t){t=t|0,r[3]=t}f(jt,\"re\");function Dt(){return r[(r[61]|0)+28>>2]|0}f(Dt,\"ie\");function Tt(){return(b[803]|0)!=0|0}f(Tt,\"se\");function Ft(){return(b[804]|0)!=0|0}f(Ft,\"fe\");function Wt(){return r[68]|0}f(Wt,\"te\");function Bt(t){return t=t|0,E=t+992+15&-16,992}return f(Bt,\"ce\"),{su:Bt,ai:Lt,e:Wt,ee:It,ele:vt,els:Et,es:$t,f:Ft,id:St,ie:Ot,ip:Ut,is:Mt,it:Dt,ms:Tt,p:N,re:At,ri:Rt,sa:yt,se:_t,ses:jt,ss:Nt}}(typeof self<\"u\"?self:global,{},re),ke=v.su(Z-(2<<17))}const i=_.length+1;v.ses(ke),v.sa(i-1),Fe(_,new Uint16Array(re,ke,i)),v.p()||(y=v.e(),D());const o=[],c=[];for(;v.ri();){const u=v.is(),p=v.ie(),g=v.ai(),b=v.id(),d=v.ss(),r=v.se(),R=v.it();let L;v.ip()&&(L=ye(b===-1?u:u+1,_.charCodeAt(b===-1?u-1:u))),o.push({t:R,n:L,s:u,e:p,ss:d,se:r,d:b,a:g})}for(;v.re();){const u=v.es(),p=v.ee(),g=v.els(),b=v.ele(),d=_.charCodeAt(u),r=g>=0?_.charCodeAt(g):-1;c.push({s:u,e:p,ls:g,le:b,n:d===34||d===39?ye(u+1,d):_.slice(u,p),ln:g<0?void 0:r===34||r===39?ye(g+1,r):_.slice(g,b)})}return[o,c,!!v.f(),!!v.ms()]}f(fn,\"parse\");function ye(s,e){y=s;let n=\"\",i=y;for(;;){y>=_.length&&D();const o=_.charCodeAt(y);if(o===e)break;o===92?(n+=_.slice(i,y),n+=dn(),i=y):(o===8232||o===8233||Be(o)&&D(),++y)}return n+=_.slice(i,y++),n}f(ye,\"b\");function dn(){let s=_.charCodeAt(++y);switch(++y,s){case 110:return`\n`;case 114:return\"\\r\";case 120:return String.fromCharCode(Ce(2));case 117:return function(){const e=_.charCodeAt(y);let n;return e===123?(++y,n=Ce(_.indexOf(\"}\",y)-y),++y,n>1114111&&D()):n=Ce(4),n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n)))}();case 116:return\"\t\";case 98:return\"\\b\";case 118:return\"\\v\";case 102:return\"\\f\";case 13:_.charCodeAt(y)===10&&++y;case 10:return\"\";case 56:case 57:D();default:if(s>=48&&s<=55){let e=_.substr(y-1,3).match(/^[0-7]+/)[0],n=parseInt(e,8);return n>255&&(e=e.slice(0,-1),n=parseInt(e,8)),y+=e.length-1,s=_.charCodeAt(y),e===\"0\"&&s!==56&&s!==57||D(),String.fromCharCode(n)}return Be(s)?\"\":String.fromCharCode(s)}}f(dn,\"k\");function Ce(s){const e=y;let n=0,i=0;for(let o=0;o<s;++o,++y){let c,u=_.charCodeAt(y);if(u!==95){if(u>=97)c=u-97+10;else if(u>=65)c=u-65+10;else{if(!(u>=48&&u<=57))break;c=u-48}if(c>=16)break;i=u,n=16*n+c}else i!==95&&o!==0||D(),i=u}return i!==95&&y-e===s||D(),n}f(Ce,\"l\");function Be(s){return s===13||s===10}f(Be,\"u\");function D(){throw Object.assign(Error(`Parse error ${We}:${_.slice(0,y).split(`\n`).length}:${y-_.lastIndexOf(`\n`,y-1)}`),{idx:y})}f(D,\"o\");let Se;typeof WebAssembly<\"u\"&&(async()=>{const{parse:s,init:e}=await import(\"./lexer-DQCqS3nf.mjs\");await e,Se=s})();const Pe=f((s,e)=>Se?Se(s,e):fn(s,e),\"parseEsm\"),gn=f(s=>{if(!s.includes(\"import\")&&!s.includes(\"export\"))return!1;try{return Pe(s)[3]}catch{return!0}},\"isESM\"),Je=\"2\",bn=(s=>{const e=\"default\";return s[e]&&typeof s[e]==\"object\"&&\"__esModule\"in s[e]?s[e]:s}).toString(),pn=`.then(${bn})`,xe=f((s,e,n)=>{if(n){if(!e.includes(\"import(\"))return}else if(!e.includes(\"import\"))return;const o=Pe(e,s)[0].filter(g=>g.d>-1);if(o.length===0)return;const c=new _e(e);for(const g of o)c.appendRight(g.se,pn);const u=c.toString(),p=c.generateMap({source:s,includeContent:!1,hires:\"boundary\"});return{code:u,map:p}},\"transformDynamicImport\"),Ge=f(s=>{try{const e=U.readFileSync(s,\"utf8\");return JSON.parse(e)}catch{}},\"readJsonFile\"),qe=f(()=>{},\"noop\"),ze=f(()=>Math.floor(Date.now()/1e8),\"getTime\");class wn extends Map{static{f(this,\"FileCache\")}cacheDirectory=Kt;oldCacheDirectory=X.join(Xt.tmpdir(),\"tsx\");cacheFiles;constructor(){super(),U.mkdirSync(this.cacheDirectory,{recursive:!0}),this.cacheFiles=U.readdirSync(this.cacheDirectory).map(e=>{const[n,i]=e.split(\"-\");return{time:Number(n),key:i,fileName:e}}),setImmediate(()=>{this.expireDiskCache(),this.removeOldCacheDirectory()})}get(e){const n=super.get(e);if(n)return n;const i=this.cacheFiles.find(u=>u.key===e);if(!i)return;const o=X.join(this.cacheDirectory,i.fileName),c=Ge(o);if(!c){U.promises.unlink(o).then(()=>{const u=this.cacheFiles.indexOf(i);this.cacheFiles.splice(u,1)},()=>{});return}return super.set(e,c),c}set(e,n){if(super.set(e,n),n){const i=ze();U.promises.writeFile(X.join(this.cacheDirectory,`${i}-${e}`),JSON.stringify(n)).catch(qe)}return this}expireDiskCache(){const e=ze();for(const n of this.cacheFiles)e-n.time>7&&U.promises.unlink(X.join(this.cacheDirectory,n.fileName)).catch(qe)}async removeOldCacheDirectory(){try{await U.promises.access(this.oldCacheDirectory).then(()=>!0)&&(\"rm\"in U.promises?await U.promises.rm(this.oldCacheDirectory,{recursive:!0,force:!0}):await U.promises.rmdir(this.oldCacheDirectory,{recursive:!0}))}catch{}}}var ie=process.env.TSX_DISABLE_CACHE?new Map:new wn;const mn=/^[\\w+.-]+:\\/\\//,kn=/^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/,yn=/^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;function Cn(s){return mn.test(s)}f(Cn,\"isAbsoluteUrl\");function Sn(s){return s.startsWith(\"//\")}f(Sn,\"isSchemeRelativeUrl\");function He(s){return s.startsWith(\"/\")}f(He,\"isAbsolutePath\");function xn(s){return s.startsWith(\"file:\")}f(xn,\"isFileUrl\");function Xe(s){return/^[.?#]/.test(s)}f(Xe,\"isRelative\");function se(s){const e=kn.exec(s);return Ke(e[1],e[2]||\"\",e[3],e[4]||\"\",e[5]||\"/\",e[6]||\"\",e[7]||\"\")}f(se,\"parseAbsoluteUrl\");function vn(s){const e=yn.exec(s),n=e[2];return Ke(\"file:\",\"\",e[1]||\"\",\"\",He(n)?n:\"/\"+n,e[3]||\"\",e[4]||\"\")}f(vn,\"parseFileUrl\");function Ke(s,e,n,i,o,c,u){return{scheme:s,user:e,host:n,port:i,path:o,query:c,hash:u,type:7}}f(Ke,\"makeUrl\");function Ye(s){if(Sn(s)){const n=se(\"http:\"+s);return n.scheme=\"\",n.type=6,n}if(He(s)){const n=se(\"http://foo.com\"+s);return n.scheme=\"\",n.host=\"\",n.type=5,n}if(xn(s))return vn(s);if(Cn(s))return se(s);const e=se(\"http://foo.com/\"+s);return e.scheme=\"\",e.host=\"\",e.type=s?s.startsWith(\"?\")?3:s.startsWith(\"#\")?2:4:1,e}f(Ye,\"parseUrl\");function _n(s){if(s.endsWith(\"/..\"))return s;const e=s.lastIndexOf(\"/\");return s.slice(0,e+1)}f(_n,\"stripPathFilename\");function En(s,e){Qe(e,e.type),s.path===\"/\"?s.path=e.path:s.path=_n(e.path)+s.path}f(En,\"mergePaths\");function Qe(s,e){const n=e<=4,i=s.path.split(\"/\");let o=1,c=0,u=!1;for(let g=1;g<i.length;g++){const b=i[g];if(!b){u=!0;continue}if(u=!1,b!==\".\"){if(b===\"..\"){c?(u=!0,c--,o--):n&&(i[o++]=b);continue}i[o++]=b,c++}}let p=\"\";for(let g=1;g<o;g++)p+=\"/\"+i[g];(!p||u&&!p.endsWith(\"/..\"))&&(p+=\"/\"),s.path=p}f(Qe,\"normalizePath\");function Ln(s,e){if(!s&&!e)return\"\";const n=Ye(s);let i=n.type;if(e&&i!==7){const c=Ye(e),u=c.type;switch(i){case 1:n.hash=c.hash;case 2:n.query=c.query;case 3:case 4:En(n,c);case 5:n.user=c.user,n.host=c.host,n.port=c.port;case 6:n.scheme=c.scheme}u>i&&(i=u)}Qe(n,i);const o=n.query+n.hash;switch(i){case 2:case 3:return o;case 4:{const c=n.path.slice(1);return c?Xe(e||s)&&!Xe(c)?\"./\"+c+o:c+o:o||\".\"}case 5:return n.path+o;default:return n.scheme+\"//\"+n.user+n.host+n.port+n.path+o}}f(Ln,\"resolve$1\");function Ze(s,e){return e&&!e.endsWith(\"/\")&&(e+=\"/\"),Ln(s,e)}f(Ze,\"resolve\");function On(s){if(!s)return\"\";const e=s.lastIndexOf(\"/\");return s.slice(0,e+1)}f(On,\"stripFilename\");const F=0;function Rn(s,e){const n=Ve(s,0);if(n===s.length)return s;e||(s=s.slice());for(let i=n;i<s.length;i=Ve(s,i+1))s[i]=Nn(s[i],e);return s}f(Rn,\"maybeSort\");function Ve(s,e){for(let n=e;n<s.length;n++)if(!An(s[n]))return n;return s.length}f(Ve,\"nextUnsortedSegmentLine\");function An(s){for(let e=1;e<s.length;e++)if(s[e][F]<s[e-1][F])return!1;return!0}f(An,\"isSorted\");function Nn(s,e){return e||(s=s.slice()),s.sort(In)}f(Nn,\"sortSegments\");function In(s,e){return s[F]-e[F]}f(In,\"sortComparator\");let oe=!1;function Mn(s,e,n,i){for(;n<=i;){const o=n+(i-n>>1),c=s[o][F]-e;if(c===0)return oe=!0,o;c<0?n=o+1:i=o-1}return oe=!1,n-1}f(Mn,\"binarySearch\");function $n(s,e,n){for(let i=n-1;i>=0&&s[i][F]===e;n=i--);return n}f($n,\"lowerBound\");function Un(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}f(Un,\"memoizedState\");function jn(s,e,n,i){const{lastKey:o,lastNeedle:c,lastIndex:u}=n;let p=0,g=s.length-1;if(i===o){if(e===c)return oe=u!==-1&&s[u][F]===e,u;e>=c?p=u===-1?0:u:g=u}return n.lastKey=i,n.lastNeedle=e,n.lastIndex=Mn(s,e,p,g)}f(jn,\"memoizedBinarySearch\");class et{static{f(this,\"TraceMap\")}constructor(e,n){const i=typeof e==\"string\";if(!i&&e._decodedMemo)return e;const o=i?JSON.parse(e):e,{version:c,file:u,names:p,sourceRoot:g,sources:b,sourcesContent:d}=o;this.version=c,this.file=u,this.names=p||[],this.sourceRoot=g,this.sources=b,this.sourcesContent=d,this.ignoreList=o.ignoreList||o.x_google_ignoreList||void 0;const r=Ze(g||\"\",On(n));this.resolvedSources=b.map(L=>Ze(L||\"\",r));const{mappings:R}=o;typeof R==\"string\"?(this._encoded=R,this._decoded=void 0):(this._encoded=void 0,this._decoded=Rn(R,i)),this._decodedMemo=Un(),this._bySources=void 0,this._bySourceMemos=void 0}}function vr(s){return s}f(vr,\"cast$2\");function tt(s){var e;return(e=s)._decoded||(e._decoded=Qt(s._encoded))}f(tt,\"decodedMappings\");function Dn(s,e,n){const i=tt(s);if(e>=i.length)return null;const o=i[e],c=Tn(o,s._decodedMemo,e,n);return c===-1?null:o[c]}f(Dn,\"traceSegment\");function Tn(s,e,n,i,o){let c=jn(s,i,e,n);return oe&&(c=$n(s,i,c)),c===-1||c===s.length?-1:c}f(Tn,\"traceSegmentInternal\");class ve{static{f(this,\"SetArray\")}constructor(){this._indexes={__proto__:null},this.array=[]}}function _r(s){return s}f(_r,\"cast$1\");function nt(s,e){return s._indexes[e]}f(nt,\"get\");function V(s,e){const n=nt(s,e);if(n!==void 0)return n;const{array:i,_indexes:o}=s,c=i.push(e);return o[e]=c-1}f(V,\"put\");function Fn(s,e){const n=nt(s,e);if(n===void 0)return;const{array:i,_indexes:o}=s;for(let c=n+1;c<i.length;c++){const u=i[c];i[c-1]=u,o[u]--}o[e]=void 0,i.pop()}f(Fn,\"remove\");const Wn=0,Bn=1,Pn=2,Jn=3,Gn=4,rt=-1;class qn{static{f(this,\"GenMapping\")}constructor({file:e,sourceRoot:n}={}){this._names=new ve,this._sources=new ve,this._sourcesContent=[],this._mappings=[],this.file=e,this.sourceRoot=n,this._ignoreList=new ve}}function Er(s){return s}f(Er,\"cast\");const zn=f((s,e,n,i,o,c,u,p)=>Yn(!0,s,e,n,i,o,c,u),\"maybeAddSegment\");function Hn(s,e,n){const{_sources:i,_sourcesContent:o}=s,c=V(i,e);o[c]=n}f(Hn,\"setSourceContent\");function Xn(s,e,n=!0){const{_sources:i,_sourcesContent:o,_ignoreList:c}=s,u=V(i,e);u===o.length&&(o[u]=null),n?V(c,u):Fn(c,u)}f(Xn,\"setIgnore\");function it(s){const{_mappings:e,_sources:n,_sourcesContent:i,_names:o,_ignoreList:c}=s;return Vn(e),{version:3,file:s.file||void 0,names:o.array,sourceRoot:s.sourceRoot||void 0,sources:n.array,sourcesContent:i,mappings:e,ignoreList:c.array}}f(it,\"toDecodedMap\");function Kn(s){const e=it(s);return Object.assign(Object.assign({},e),{mappings:De(e.mappings)})}f(Kn,\"toEncodedMap\");function Yn(s,e,n,i,o,c,u,p,g){const{_mappings:b,_sources:d,_sourcesContent:r,_names:R}=e,L=Qn(b,n),E=Zn(L,i);if(!o)return er(L,E)?void 0:st(L,E,[i]);const N=V(d,o),$=p?V(R,p):rt;if(N===r.length&&(r[N]=null),!tr(L,E,N,c,u,$))return st(L,E,p?[i,N,c,u,$]:[i,N,c,u])}f(Yn,\"addSegmentInternal\");function Qn(s,e){for(let n=s.length;n<=e;n++)s[n]=[];return s[e]}f(Qn,\"getLine\");function Zn(s,e){let n=s.length;for(let i=n-1;i>=0;n=i--){const o=s[i];if(e>=o[Wn])break}return n}f(Zn,\"getColumnIndex\");function st(s,e,n){for(let i=s.length;i>e;i--)s[i]=s[i-1];s[e]=n}f(st,\"insert\");function Vn(s){const{length:e}=s;let n=e;for(let i=n-1;i>=0&&!(s[i].length>0);n=i,i--);n<e&&(s.length=n)}f(Vn,\"removeEmptyFinalLines\");function er(s,e){return e===0?!0:s[e-1].length===1}f(er,\"skipSourceless\");function tr(s,e,n,i,o,c){if(e===0)return!1;const u=s[e-1];return u.length===1?!1:n===u[Bn]&&i===u[Pn]&&o===u[Jn]&&c===(u.length===5?u[Gn]:rt)}f(tr,\"skipSource\");const ot=at(\"\",-1,-1,\"\",null,!1),nr=[];function at(s,e,n,i,o,c){return{source:s,line:e,column:n,name:i,content:o,ignore:c}}f(at,\"SegmentObject\");function ct(s,e,n,i,o){return{map:s,sources:e,source:n,content:i,ignore:o}}f(ct,\"Source\");function ut(s,e){return ct(s,e,\"\",null,!1)}f(ut,\"MapSource\");function rr(s,e,n){return ct(null,nr,s,e,n)}f(rr,\"OriginalSource\");function ir(s){const e=new qn({file:s.map.file}),{sources:n,map:i}=s,o=i.names,c=tt(i);for(let u=0;u<c.length;u++){const p=c[u];for(let g=0;g<p.length;g++){const b=p[g],d=b[0];let r=ot;if(b.length!==1){const G=n[b[1]];if(r=lt(G,b[2],b[3],b.length===5?o[b[4]]:\"\"),r==null)continue}const{column:R,line:L,name:E,content:N,source:$,ignore:W}=r;zn(e,u,d,$,L,R,E),$&&N!=null&&Hn(e,$,N),W&&Xn(e,$,!0)}}return e}f(ir,\"traceMappings\");function lt(s,e,n,i){if(!s.map)return at(s.source,e,n,i,s.content,s.ignore);const o=Dn(s.map,e,n);return o==null?null:o.length===1?ot:lt(s.sources[o[1]],o[2],o[3],o.length===5?s.map.names[o[4]]:i)}f(lt,\"originalPositionFor\");function sr(s){return Array.isArray(s)?s:[s]}f(sr,\"asArray\");function or(s,e){const n=sr(s).map(c=>new et(c,\"\")),i=n.pop();for(let c=0;c<n.length;c++)if(n[c].sources.length>1)throw new Error(`Transformation map ${c} must have exactly one source file.\nDid you specify these with the most recent transformation maps first?`);let o=ht(i,e,\"\",0);for(let c=n.length-1;c>=0;c--)o=ut(n[c],[o]);return o}f(or,\"buildSourceMapTree\");function ht(s,e,n,i){const{resolvedSources:o,sourcesContent:c,ignoreList:u}=s,p=i+1,g=o.map((b,d)=>{const r={importer:n,depth:p,source:b||\"\",content:void 0,ignore:void 0},R=e(r.source,r),{source:L,content:E,ignore:N}=r;if(R)return ht(new et(R,L),e,L,p);const $=E!==void 0?E:c?c[d]:null,W=N!==void 0?N:u?u.includes(d):!1;return rr(L,$,W)});return ut(s,g)}f(ht,\"build\");class ar{static{f(this,\"SourceMap\")}constructor(e,n){const i=n.decodedMappings?it(e):Kn(e);this.version=i.version,this.file=i.file,this.mappings=i.mappings,this.names=i.names,this.ignoreList=i.ignoreList,this.sourceRoot=i.sourceRoot,this.sources=i.sources,n.excludeContent||(this.sourcesContent=i.sourcesContent)}toString(){return JSON.stringify(this)}}function ft(s,e,n){const i={excludeContent:!!n,decodedMappings:!1},o=or(s,e);return new ar(ir(o),i)}f(ft,\"remapping\");const cr=f((s,e,n)=>{const i=[],o={code:e};for(const c of n){const u=c(s,o.code);u&&(Object.assign(o,u),i.unshift(u.map))}return{...o,map:ft(i,()=>null)}},\"applyTransformersSync\"),ur=f(async(s,e,n)=>{const i=[],o={code:e};for(const c of n){const u=await c(s,o.code);u&&(Object.assign(o,u),i.unshift(u.map))}return{...o,map:ft(i,()=>null)}},\"applyTransformers\"),lr=Object.freeze({target:`node${process.versions.node}`,loader:\"default\"}),hr=/^--inspect(?:-brk|-port|-publish-uid|-wait)?(?:=|$)/,fr=process.execArgv.some(s=>hr.test(s)),dt={...lr,sourcemap:!0,sourcesContent:!!process.env.NODE_V8_COVERAGE||fr,minifyWhitespace:!0,keepNames:!0},gt=f(s=>{const e=s.sourcefile;if(e){const n=X.extname(e.split(\"?\")[0]);n?n===\".cts\"||n===\".mts\"?s.sourcefile=`${e.slice(0,-3)}ts`:n===\".mjs\"&&(s.sourcefile=`${e.slice(0,-3)}js`):s.sourcefile+=\".js\"}return n=>(n.map&&(s.sourcefile!==e&&(n.map=n.map.replace(JSON.stringify(s.sourcefile),JSON.stringify(e))),n.map=JSON.parse(n.map)),n)},\"patchOptions\"),bt=f(s=>{throw s.name=\"TransformError\",delete s.errors,delete s.warnings,s},\"formatEsbuildError\"),dr=f((s,e,n)=>{const i={};let o,c,u;if(e.startsWith(\"file://\")){o=e;const d=new URL(e);c=Jt(d)}else[c,u]=e.split(\"?\"),o=Gt(c)+(u?`?${u}`:\"\");c.endsWith(\".cjs\")||c.endsWith(\".cts\")||(i[\"import.meta.url\"]=JSON.stringify(o));const p={...dt,format:\"cjs\",sourcefile:c,define:i,banner:`__filename=${JSON.stringify(c)};(()=>{`,footer:\"})()\",platform:\"node\",...n},g=Ne([s,JSON.stringify(p),Ae,Je].join(\"-\"));let b=ie.get(g);return b||(b=cr(e,s,[(d,r)=>{const R=gt(p);let L;try{L=qt(r,p)}catch(E){throw bt(E)}return R(L)},(d,r)=>xe(d,r,!0)]),ie.set(g,b)),b},\"transformSync\"),gr=f(async(s,e,n)=>{const i={...dt,format:\"esm\",sourcefile:e,...n},o=Ne([s,JSON.stringify(i),Ae,Je].join(\"-\"));let c=ie.get(o);return c||(c=await ur(e,s,[async(u,p)=>{const g=gt(i);let b;try{b=await zt(p,i)}catch(d){throw bt(d)}return g(b)},(u,p)=>xe(u,p,!0)]),ie.set(o,c)),c},\"transform\");export{dr as a,xe as b,gn as i,Ge as r,gr as t};\n","var a=Object.defineProperty;var o=(e,n)=>a(e,\"name\",{value:n,configurable:!0});import p from\"node:net\";import{g}from\"./get-pipe-path-BHW2eJdv.mjs\";const m=o(()=>new Promise(e=>{const n=g(process.ppid),t=p.createConnection(n,()=>{e(o(i=>{const r=Buffer.from(JSON.stringify(i)),s=Buffer.alloc(4);s.writeInt32BE(r.length,0),t.write(Buffer.concat([s,r]))},\"sendToParent\"))});t.on(\"error\",()=>{e()}),t.unref()}),\"connectToServer\"),c={send:void 0},f=m();f.then(e=>{c.send=e},()=>{});export{f as c,c as p};\n","var u=Object.defineProperty;var g=(s,n)=>u(s,\"name\",{value:n,configurable:!0});let t=!0;const l=typeof self<\"u\"?self:typeof window<\"u\"?window:typeof global<\"u\"?global:{};let i=0;if(l.process&&l.process.env&&l.process.stdout){const{FORCE_COLOR:s,NODE_DISABLE_COLORS:n,NO_COLOR:r,TERM:o,COLORTERM:c}=l.process.env;n||r||s===\"0\"?t=!1:s===\"1\"||s===\"2\"||s===\"3\"?t=!0:o===\"dumb\"?t=!1:\"CI\"in l.process.env&&[\"TRAVIS\",\"CIRCLECI\",\"APPVEYOR\",\"GITLAB_CI\",\"GITHUB_ACTIONS\",\"BUILDKITE\",\"DRONE\"].some(a=>a in l.process.env)?t=!0:t=process.stdout.isTTY,t&&(process.platform===\"win32\"||c&&(c===\"truecolor\"||c===\"24bit\")?i=3:o&&(o.endsWith(\"-256color\")||o.endsWith(\"256\"))?i=2:i=1)}let f={enabled:t,supportLevel:i};function e(s,n,r=1){const o=`\\x1B[${s}m`,c=`\\x1B[${n}m`,a=new RegExp(`\\\\x1b\\\\[${n}m`,\"g\");return p=>f.enabled&&f.supportLevel>=r?o+(\"\"+p).replace(a,o)+c:\"\"+p}g(e,\"kolorist\");const b=e(30,39),d=e(33,39),O=e(90,39),C=e(92,39),R=e(95,39),I=e(96,39),L=e(44,49),E=e(100,49),T=e(103,49);export{b as a,T as b,L as c,E as d,R as e,C as f,O as g,I as l,f as o,d as y};\n","var K=Object.defineProperty;var o=(s,e)=>K(s,\"name\",{value:e,configurable:!0});import{r as Y}from\"./get-pipe-path-BHW2eJdv.mjs\";import d from\"node:module\";import p from\"node:path\";import{fileURLToPath as O}from\"node:url\";import{parseTsconfig as V,getTsconfig as Z,createFilesMatcher as q,createPathsMatcher as ee}from\"get-tsconfig\";import se,{writeSync as te}from\"node:fs\";import{b as ne,i as ae,a as re}from\"./index-7AaEi15b.mjs\";import{p as U}from\"./client-BQVF1NaW.mjs\";import{inspect as oe}from\"node:util\";import{b as ce,a as ie,c as le,d as fe,o as W}from\"./index-gbaejti9.mjs\";const R=o(s=>{if(!s.startsWith(\"data:text/javascript,\"))return;const e=s.indexOf(\"?\");if(e===-1)return;const n=new URLSearchParams(s.slice(e+1)).get(\"filePath\");if(n)return n},\"getOriginalFilePath\"),D=o(s=>{const e=R(s);return e&&(d._cache[e]=d._cache[s],delete d._cache[s],s=e),s},\"interopCjsExports\"),me=o(s=>{const e=s.indexOf(\":\");if(e!==-1)return s.slice(0,e)},\"getScheme\"),N=o(s=>s[0]===\".\"&&(s[1]===\"/\"||s[1]===\".\"||s[2]===\"/\"),\"isRelativePath\"),j=o(s=>N(s)||p.isAbsolute(s),\"isFilePath\"),pe=o(s=>{if(j(s))return!0;const e=me(s);return e&&e!==\"node\"},\"requestAcceptsQuery\"),y=\"file://\",he=[\".ts\",\".tsx\",\".jsx\",\".mts\",\".cts\"],C=/\\.([cm]?ts|[tj]sx)($|\\?)/,de=/[/\\\\].+\\.(?:cts|cjs)(?:$|\\?)/,ue=/\\.json($|\\?)/,E=/\\/(?:$|\\?)/,ge=/^(?:@[^/]+\\/)?[^/\\\\]+$/,Q=`${p.sep}node_modules${p.sep}`;let M,_,S=!1;const A=o(s=>{let e=null;if(s){const a=p.resolve(s);e={path:a,config:V(a)}}else{try{e=Z()}catch{}if(!e)return}M=q(e),_=ee(e),S=e?.config.compilerOptions?.allowJs??!1},\"loadTsconfig\"),T=o(s=>Array.from(s).length>0?`?${s.toString()}`:\"\",\"urlSearchParamsStringify\"),Pe=`\n//# sourceMappingURL=data:application/json;base64,`,I=o(()=>process.sourceMapsEnabled??!0,\"shouldApplySourceMap\"),F=o(({code:s,map:e})=>s+Pe+Buffer.from(JSON.stringify(e),\"utf8\").toString(\"base64\"),\"inlineSourceMap\"),v=Number(process.env.TSX_DEBUG);v&&(W.enabled=!0,W.supportLevel=3);const J=o(s=>(e,...a)=>{if(!v||e>v)return;const n=`${fe(` tsx P${process.pid} `)} ${s}`,t=a.map(r=>typeof r==\"string\"?r:oe(r,{colors:!0})).join(\" \");te(1,`${n} ${t}\n`)},\"createLog\"),P=J(ce(ie(\" CJS \"))),je=J(le(\" ESM \")),be=[\".cts\",\".mts\",\".ts\",\".tsx\",\".jsx\"],xe=[\".js\",\".cjs\",\".mjs\"],k=[\".ts\",\".tsx\",\".jsx\"],$=o((s,e,a,n)=>{const t=Object.getOwnPropertyDescriptor(s,e);t?.set?s[e]=a:(!t||t.configurable)&&Object.defineProperty(s,e,{value:a,enumerable:t?.enumerable||n?.enumerable,writable:n?.writable??(t?t.writable:!0),configurable:n?.configurable??(t?t.configurable:!0)})},\"safeSet\"),ye=o((s,e,a)=>{const n=e[\".js\"],t=o((r,c)=>{if(s.enabled===!1)return n(r,c);const[i,f]=c.split(\"?\");if((new URLSearchParams(f).get(\"namespace\")??void 0)!==a)return n(r,c);P(2,\"load\",{filePath:c}),r.id.startsWith(\"data:text/javascript,\")&&(r.path=p.dirname(i)),U?.send&&U.send({type:\"dependency\",path:i});const u=be.some(m=>i.endsWith(m)),g=xe.some(m=>i.endsWith(m));if(!u&&!g)return n(r,i);let h=se.readFileSync(i,\"utf8\");if(i.endsWith(\".cjs\")){const m=ne(c,h);m&&(h=I()?F(m):m.code)}else if(u||ae(h)){const m=re(h,c,{tsconfigRaw:M?.(i)});h=I()?F(m):m.code}P(1,\"loaded\",{filePath:i}),r._compile(h,i)},\"transformer\");$(e,\".js\",t);for(const r of k)$(e,r,t,{enumerable:!a,writable:!0,configurable:!0});return $(e,\".mjs\",t,{writable:!0,configurable:!0}),()=>{e[\".js\"]===t&&(e[\".js\"]=n);for(const r of[...k,\".mjs\"])e[r]===t&&delete e[r]}},\"createExtensions\"),Ee=o(s=>e=>{if((e===\".\"||e===\"..\"||e.endsWith(\"/..\"))&&(e+=\"/\"),E.test(e)){let a=p.join(e,\"index.js\");e.startsWith(\"./\")&&(a=`./${a}`);try{return s(a)}catch{}}try{return s(e)}catch(a){const n=a;if(n.code===\"MODULE_NOT_FOUND\")try{return s(`${e}${p.sep}index.js`)}catch{}throw n}},\"createImplicitResolver\"),B=[\".js\",\".json\"],G=[\".ts\",\".tsx\",\".jsx\"],_e=[...G,...B],Se=[...B,...G],b=Object.create(null);b[\".js\"]=[\".ts\",\".tsx\",\".js\",\".jsx\"],b[\".jsx\"]=[\".tsx\",\".ts\",\".jsx\",\".js\"],b[\".cjs\"]=[\".cts\"],b[\".mjs\"]=[\".mts\"];const X=o(s=>{const e=s.split(\"?\"),a=e[1]?`?${e[1]}`:\"\",[n]=e,t=p.extname(n),r=[],c=b[t];if(c){const f=n.slice(0,-t.length);r.push(...c.map(l=>f+l+a))}const i=!(s.startsWith(y)||j(n))||n.includes(Q)||n.includes(\"/node_modules/\")?Se:_e;return r.push(...i.map(f=>n+f+a)),r},\"mapTsExtensions\"),w=o((s,e,a)=>{if(P(3,\"resolveTsFilename\",{request:e,isDirectory:E.test(e),isTsParent:a,allowJs:S}),E.test(e)||!a&&!S)return;const n=X(e);if(n)for(const t of n)try{return s(t)}catch(r){const{code:c}=r;if(c!==\"MODULE_NOT_FOUND\"&&c!==\"ERR_PACKAGE_PATH_NOT_EXPORTED\")throw r}},\"resolveTsFilename\"),ve=o((s,e)=>a=>{if(P(3,\"resolveTsFilename\",{request:a,isTsParent:e,isFilePath:j(a)}),j(a)){const n=w(s,a,e);if(n)return n}try{return s(a)}catch(n){const t=n;if(t.code===\"MODULE_NOT_FOUND\"){if(t.path){const c=t.message.match(/^Cannot find module '([^']+)'$/);if(c){const f=c[1],l=w(s,f,e);if(l)return l}const i=t.message.match(/^Cannot find module '([^']+)'. Please verify that the package.json has a valid \"main\" entry$/);if(i){const f=i[1],l=w(s,f,e);if(l)return l}}const r=w(s,a,e);if(r)return r}throw t}},\"createTsExtensionResolver\"),z=\"at cjsPreparseModuleExports (node:internal\",we=o(s=>{const e=s.stack.split(`\n`).slice(1);return e[1].includes(z)||e[2].includes(z)},\"isFromCjsLexer\"),Me=o((s,e)=>{const a=s.split(\"?\"),n=new URLSearchParams(a[1]);if(e?.filename){const t=R(e.filename);let r;if(t){const f=t.split(\"?\"),l=f[0];r=f[1],e.filename=l,e.path=p.dirname(l),e.paths=d._nodeModulePaths(e.path),d._cache[l]=e}r||(r=e.filename.split(\"?\")[1]);const i=new URLSearchParams(r).get(\"namespace\");i&&n.append(\"namespace\",i)}return[a[0],n,(t,r)=>(p.isAbsolute(t)&&!t.endsWith(\".json\")&&!t.endsWith(\".node\")&&!(r===0&&we(new Error))&&(t+=T(n)),t)]},\"preserveQuery\"),Te=o((s,e,a)=>{if(s.startsWith(y)&&(s=O(s)),_&&!j(s)&&!e?.filename?.includes(Q)){const n=_(s);for(const t of n)try{return a(t)}catch{}}return a(s)},\"resolveTsPaths\"),Fe=o((s,e,a)=>(n,t,...r)=>{if(s.enabled===!1)return e(n,t,...r);n=D(n);const[c,i,f]=Me(n,t);if((i.get(\"namespace\")??void 0)!==a)return e(n,t,...r);P(2,\"resolve\",{request:n,parent:t?.filename??t,restOfArgs:r});let l=o(g=>e(g,t,...r),\"nextResolveSimple\");l=ve(l,!!(a||t?.filename&&C.test(t.filename))),l=Ee(l);const u=f(Te(c,t,l),r.length);return P(1,\"resolved\",{request:n,parent:t?.filename??t,resolved:u}),u},\"createResolveFilename\"),H=o((s,e)=>{if(!e)throw new Error(\"The current file path (__filename or import.meta.url) must be provided in the second argument of tsx.require()\");return s.startsWith(\".\")?((typeof e==\"string\"&&e.startsWith(y)||e instanceof URL)&&(e=O(e)),p.resolve(p.dirname(e),s)):s},\"resolveContext\"),$e=o(s=>{const{sourceMapsEnabled:e}=process,a={enabled:!0};A(process.env.TSX_TSCONFIG_PATH),process.setSourceMapsEnabled(!0);const n=d._resolveFilename,t=Fe(a,n,s?.namespace);d._resolveFilename=t;const r=ye(a,d._extensions,s?.namespace),c=o(()=>{e===!1&&process.setSourceMapsEnabled(!1),a.enabled=!1,d._resolveFilename===t&&(d._resolveFilename=n),r()},\"unregister\");if(s?.namespace){const i=o((l,u)=>{const g=H(l,u),[h,m]=g.split(\"?\"),x=new URLSearchParams(m);return s.namespace&&!h.startsWith(\"node:\")&&x.set(\"namespace\",s.namespace),Y(h+T(x))},\"scopedRequire\");c.require=i;const f=o((l,u,g)=>{const h=H(l,u),[m,x]=h.split(\"?\"),L=new URLSearchParams(x);return s.namespace&&!m.startsWith(\"node:\")&&L.set(\"namespace\",s.namespace),t(m+T(L),module,!1,g)},\"scopedResolve\");c.resolve=f,c.unregister=c}return c},\"register\");export{D as a,ue as b,de as c,je as d,C as e,y as f,M as g,F as h,ge as i,v as j,pe as k,A as l,_ as m,E as n,X as o,N as p,S as q,$e as r,he as t};\n","var d=Object.defineProperty;var o=(r,s)=>d(r,\"name\",{value:s,configurable:!0});import m from\"node:module\";import{MessageChannel as u}from\"node:worker_threads\";import{f as g,a as v}from\"./register-CFH5oNdT.mjs\";import{pathToFileURL as h}from\"node:url\";const w=o(r=>(s,e)=>{if(!e)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const a=e.startsWith(g)?e:h(e).toString();return import(`tsx://${JSON.stringify({specifier:s,parentURL:a,namespace:r})}`)},\"createScopedImport\");let l=!1;const E=o(r=>{if(!m.register)throw new Error(`This version of Node.js (${process.version}) does not support module.register(). Please upgrade to Node v18.19 or v20.6 and above.`);if(!l){const{_resolveFilename:t}=m;m._resolveFilename=(p,...c)=>t(v(p),...c),l=!0}const{sourceMapsEnabled:s}=process;process.setSourceMapsEnabled(!0);const{port1:e,port2:a}=new u;m.register(`./esm/index.mjs?${Date.now()}`,{parentURL:import.meta.url,data:{port:a,namespace:r?.namespace,tsconfig:r?.tsconfig},transferList:[a]});const f=r?.onImport,n=f&&(t=>{t.type===\"load\"&&f(t.url)});n&&(e.on(\"message\",n),e.unref());const i=o(()=>(s===!1&&process.setSourceMapsEnabled(!1),n&&e.off(\"message\",n),e.postMessage(\"deactivate\"),new Promise(t=>{const p=o(c=>{c.type===\"deactivated\"&&(t(),e.off(\"message\",p))},\"onDeactivated\");e.on(\"message\",p)})),\"unregister\");return r?.namespace&&(i.import=w(r.namespace),i.unregister=i),i},\"register\");export{E as r};\n","var m=Object.defineProperty;var a=(r,t)=>m(r,\"name\",{value:t,configurable:!0});import{r as o}from\"./get-pipe-path-BHW2eJdv.mjs\";import{r as n}from\"./register-CFH5oNdT.mjs\";let e;const s=a((r,t)=>(e||(e=n({namespace:Date.now().toString()})),e.require(r,t)),\"tsxRequire\"),i=a((r,t,c)=>(e||(e=n({namespace:Date.now().toString()})),e.resolve(r,t,c)),\"resolve\");i.paths=o.resolve.paths,s.resolve=i,s.main=o.main,s.extensions=o.extensions,s.cache=o.cache;export{s as t};\n","var i=Object.defineProperty;var o=(e,t)=>i(e,\"name\",{value:t,configurable:!0});const n=o((e,t)=>{const r=e[0]-t[0];if(r===0){const s=e[1]-t[1];return s===0?e[2]>=t[2]:s>0}return r>0},\"isVersionGreaterOrEqual\"),a=process.versions.node.split(\".\").map(Number),u=o((e,t=a)=>{for(let r=0;r<e.length;r+=1){const s=e[r];if(r===e.length-1||t[0]===s[0])return n(t,s)}return!1},\"isFeatureSupported\"),c=[[18,19,0],[20,6,0]],f=[[18,19,0],[20,10,0],[21,0,0]],l=[[21,0,0]],m=[[20,11,0],[21,3,0]];export{f as a,m as e,u as i,c as m,l as t};\n","var s=Object.defineProperty;var i=(r,t)=>s(r,\"name\",{value:t,configurable:!0});import{r as p}from\"../../register-B7jrtLTO.mjs\";import\"../../get-pipe-path-BHW2eJdv.mjs\";import{r as n,i as c,c as u}from\"../../register-CFH5oNdT.mjs\";import\"../../require-DQxpCAr4.mjs\";import{i as g,e as d}from\"../../node-features-_8ZFwP_x.mjs\";import\"node:module\";import\"node:worker_threads\";import\"node:url\";import\"module\";import\"node:path\";import\"../../temporary-directory-CwHp0_NW.mjs\";import\"node:os\";import\"get-tsconfig\";import\"node:fs\";import\"../../index-7AaEi15b.mjs\";import\"esbuild\";import\"node:crypto\";import\"../../client-BQVF1NaW.mjs\";import\"node:net\";import\"node:util\";import\"../../index-gbaejti9.mjs\";const f=i((r,t)=>{if(!t||typeof t==\"object\"&&!t.parentURL)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const e=typeof t==\"string\",o=e?t:t.parentURL,m=Date.now().toString(),a=n({namespace:m});return!g(d)&&!c.test(r)&&u.test(r)?Promise.resolve(a.require(r,o)):p({namespace:m,...e?{}:t}).import(r,o)},\"tsImport\");export{p as register,f as tsImport};\n","import 'dotenv/config'\nimport { Command } from 'commander'\nimport { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs'\nimport { resolve, join, dirname } from 'node:path'\nimport { pathToFileURL, fileURLToPath } from 'node:url'\nimport type { BenchmarkResult } from './runner.js'\nimport type { ScoreResult } from './scorers/types.js'\nimport type { Arena } from './arena.js'\nimport { defineArena } from './arena.js'\nimport type { CiOptions } from './ci.js'\nimport { consoleReporter } from './reporter/console.js'\nimport { jsonReporter } from './reporter/json.js'\nimport { markdownReporter, COMMENT_MARKER } from './reporter/markdown.js'\nimport { htmlReporter } from './reporter/html.js'\nimport { loadBaseline, saveBaseline, computeStats, compareResults } from './ci.js'\nimport { detectGitHubContext, upsertPrComment } from './github.js'\nimport { formatCost } from './utils/format.js'\nimport { listPacks } from './packs/index.js'\nimport { buildPackConfig } from './packs/loader.js'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\n\nconst program = new Command()\n\nprogram\n .name('duelist')\n .description('Pit LLM providers against each other on agent tasks.')\n .version(getVersion())\n\nprogram\n .command('init')\n .description('Scaffold an arena.config.ts in the current directory')\n .option('--force', 'Overwrite existing config file')\n .action((opts: { force?: boolean }) => {\n const target = resolve('arena.config.ts')\n\n if (existsSync(target) && !opts.force) {\n console.error('arena.config.ts already exists. Use --force to overwrite.')\n process.exit(1)\n }\n\n // Try to read from the bundled templates directory first,\n // fall back to an inline template\n const templatePath = join(__dirname, '..', 'templates', 'arena.config.ts')\n let template: string\n\n if (existsSync(templatePath)) {\n template = readFileSync(templatePath, 'utf-8')\n } else {\n template = DEFAULT_TEMPLATE\n }\n\n writeFileSync(target, template)\n console.log(existsSync(target) && opts.force ? 'Overwrote arena.config.ts' : 'Created arena.config.ts')\n console.log('')\n console.log('Next steps:')\n console.log(' 1. export OPENAI_API_KEY=sk-...')\n console.log(' 2. npx duelist run')\n })\n\nprogram\n .command('run')\n .description('Run benchmarks defined in your arena config')\n .option('-c, --config <path>', 'Path to config file', 'arena.config.ts')\n .option('--pack <names>', 'Run built-in task pack(s), comma-separated. Use \"list\" to see available packs.')\n .option('--reporter <type>', 'Output format: console, json, or html', 'console')\n .option('--output <path>', 'Output file path (used with html reporter)', 'duelist-report.html')\n .option('-q, --quiet', 'Suppress per-result progress (show only final report)')\n .action(async (opts: { config: string; pack?: string; reporter: string; output: string; quiet?: boolean }) => {\n if (opts.pack === 'list') {\n printPackList()\n return\n }\n\n if (!['console', 'json', 'html'].includes(opts.reporter)) {\n console.error(`Unknown reporter \"${opts.reporter}\". Use \"console\", \"json\", or \"html\".`)\n process.exit(1)\n }\n\n const typedArena = opts.pack\n ? await loadArenaWithPacks(opts.pack, opts.config)\n : await loadArenaConfig(opts.config)\n\n try {\n // Live progress: show per-result lines unless --quiet or json\n const showProgress = opts.reporter !== 'json' && !opts.quiet\n const onResult = showProgress ? logResult : undefined\n\n const results = await typedArena.run({ onResult })\n\n if (opts.reporter === 'json') {\n console.log(jsonReporter(results))\n } else if (opts.reporter === 'html') {\n const html = htmlReporter(results)\n const outPath = resolve(opts.output)\n mkdirSync(dirname(outPath), { recursive: true })\n writeFileSync(outPath, html)\n console.log(`\\nHTML report written to ${outPath}`)\n } else {\n console.log('')\n consoleReporter(results, { sparklines: typedArena.config?.sparklines })\n }\n\n // Exit with non-zero if every single result errored\n const allFailed = results.length > 0 && results.every((r) => r.error)\n if (allFailed) process.exit(1)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n console.error(`Benchmark failed: ${message}`)\n process.exit(1)\n }\n })\n\n// ── CI command ───────────────────────────────────────────────────────\n\nfunction collectThreshold(value: string, previous: Map<string, number>): Map<string, number> {\n const [scorer, delta] = value.split('=')\n if (!scorer || delta === undefined || isNaN(Number(delta))) {\n console.error(`Invalid threshold format: \"${value}\". Expected scorer=delta (e.g., correctness=0.1)`)\n process.exit(1)\n }\n previous.set(scorer, Number(delta))\n return previous\n}\n\nprogram\n .command('ci')\n .description('Run benchmarks, compare against baseline, and enforce quality gates')\n .option('-c, --config <path>', 'Path to config file', 'arena.config.ts')\n .option('--pack <names>', 'Run built-in task pack(s), comma-separated. Use \"list\" to see available packs.')\n .option('--baseline <path>', 'Baseline JSON file', '.duelist/baseline.json')\n .option('--budget <dollars>', 'Max total cost in USD', parseFloat)\n .option('--threshold <scorer=delta>', 'Regression threshold (repeatable)', collectThreshold, new Map<string, number>())\n .option('--update-baseline', 'Save results as new baseline after passing')\n .option('--comment', 'Post results as GitHub PR comment')\n .option('-q, --quiet', 'Suppress per-result progress')\n .action(async (opts: {\n config: string\n pack?: string\n baseline: string\n budget?: number\n threshold: Map<string, number>\n updateBaseline?: boolean\n comment?: boolean\n quiet?: boolean\n }) => {\n if (opts.pack === 'list') {\n printPackList()\n return\n }\n\n const ciOpts: CiOptions = {\n configPath: opts.config,\n baselinePath: resolve(opts.baseline),\n budget: opts.budget,\n thresholds: opts.threshold,\n updateBaseline: opts.updateBaseline ?? false,\n comment: opts.comment ?? false,\n quiet: opts.quiet ?? false,\n }\n\n const typedArena = opts.pack\n ? await loadArenaWithPacks(opts.pack, ciOpts.configPath)\n : await loadArenaConfig(ciOpts.configPath)\n\n // 1. Run benchmarks\n console.log('Running benchmarks...')\n const onResult = ciOpts.quiet ? undefined : logResult\n let results: BenchmarkResult[]\n try {\n results = await typedArena.run({ onResult })\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n console.error(`Benchmark failed: ${message}`)\n process.exit(1)\n }\n\n // 2. Load baseline (if exists)\n const baseline = loadBaseline(ciOpts.baselinePath)\n const baselineStats = baseline ? computeStats(baseline.results) : null\n\n if (baseline) {\n console.log(`Loaded baseline from ${ciOpts.baselinePath} (${baseline.timestamp})`)\n } else {\n console.log('No baseline found — this run establishes the first baseline.')\n }\n\n // 3. Compare\n const currentStats = computeStats(results)\n const report = compareResults(baselineStats, currentStats, ciOpts.thresholds, ciOpts.budget, results)\n\n // 4. Console output\n console.log('')\n consoleReporter(results, { sparklines: typedArena.config?.sparklines ?? true })\n\n // Print CI verdict\n if (report.flakyResults.length > 0) {\n console.log(`⚠ ${report.flakyResults.length} flaky result(s) detected (high variance)`)\n }\n if (report.cost.overBudget) {\n console.log(`🔴 Budget exceeded: $${report.cost.totalUsd.toFixed(4)} > $${report.cost.budget!.toFixed(2)}`)\n }\n for (const reason of report.failureReasons) {\n console.log(`🔴 ${reason}`)\n }\n if (!report.failed) {\n console.log('🟢 CI passed')\n }\n\n // 5. Post PR comment if requested\n if (ciOpts.comment) {\n const ghCtx = detectGitHubContext()\n if (ghCtx) {\n const markdown = markdownReporter(report, results)\n try {\n await upsertPrComment(ghCtx, markdown, COMMENT_MARKER)\n console.log('Posted results to PR comment.')\n } catch (err) {\n console.warn(`Failed to post PR comment: ${err instanceof Error ? err.message : err}`)\n }\n } else {\n console.warn('--comment: not in a GitHub Actions PR context, skipping.')\n }\n }\n\n // 6. Update baseline if passing and requested\n if (ciOpts.updateBaseline && !report.failed) {\n saveBaseline(ciOpts.baselinePath, results)\n console.log(`Baseline saved to ${ciOpts.baselinePath}`)\n } else if (ciOpts.updateBaseline && report.failed) {\n console.log('Baseline not updated (CI failed).')\n }\n\n // 7. Exit code\n process.exit(report.failed ? 1 : 0)\n })\n\nprogram.parse()\n\nfunction printPackList(): void {\n const packs = listPacks()\n if (packs.length === 0) {\n console.log('No packs available.')\n return\n }\n console.log('Available task packs:\\n')\n for (const p of packs) {\n console.log(` ${p.name.padEnd(24)} ${p.description} (${p.taskCount} tasks)`)\n }\n console.log('\\nUsage: npx duelist run --pack <name>')\n}\n\nasync function loadArenaWithPacks(packNames: string, configOpt: string): Promise<Arena> {\n const configPath = resolve(configOpt)\n\n if (!existsSync(configPath)) {\n console.error('No arena.config.ts found. Create one with `npx duelist init` to configure')\n console.error('your providers, then re-run with --pack.')\n process.exit(1)\n }\n\n const userArena = await loadArenaConfig(configOpt)\n const packs = packNames.split(',').map((s) => s.trim())\n const packConfig = buildPackConfig({\n packs,\n providers: userArena.config.providers,\n runs: userArena.config.runs,\n timeout: userArena.config.timeout,\n })\n\n return defineArena(packConfig)\n}\n\nasync function loadArenaConfig(configOpt: string): Promise<Arena> {\n const configPath = resolve(configOpt)\n\n if (!existsSync(configPath)) {\n console.error(`Config not found: ${configPath}`)\n console.error('')\n console.error('Create one with: npx duelist init')\n process.exit(1)\n }\n\n let mod: Record<string, unknown>\n try {\n if (configPath.endsWith('.ts')) {\n mod = await importTypeScript(configPath)\n } else {\n mod = (await import(pathToFileURL(configPath).href)) as Record<string, unknown>\n }\n } catch (err) {\n console.error(`Failed to load config: ${configPath}`)\n console.error('')\n if (err instanceof SyntaxError) {\n console.error(`Syntax error: ${err.message}`)\n } else {\n console.error(err instanceof Error ? err.message : String(err))\n }\n process.exit(1)\n }\n\n const arena = mod.default ?? mod.arena\n if (!arena || typeof arena !== 'object' || !('run' in arena)) {\n console.error('Config must export a default arena created with defineArena().')\n console.error(`Loaded from: ${configPath}`)\n process.exit(1)\n }\n\n const maybeConfig = (arena as { config?: unknown }).config\n if (maybeConfig === undefined || maybeConfig === null || typeof maybeConfig !== 'object') {\n ;(arena as unknown as { config: Record<string, unknown> }).config = {}\n }\n return arena as Arena\n}\n\nfunction logResult(result: BenchmarkResult): void {\n if (result.error) {\n console.log(` ${result.providerId} × ${result.taskName}: ERROR ${result.error}`)\n } else {\n const scores = result.scores.map((s) => `${s.name}=${formatScoreForLog(s)}`).join(' ')\n console.log(` ${result.providerId} × ${result.taskName}: ${scores}`)\n }\n}\n\nasync function importTypeScript(filePath: string): Promise<Record<string, unknown>> {\n try {\n await import('tsx/esm/api')\n } catch {\n // tsx not available — ignore\n }\n\n try {\n const url = pathToFileURL(filePath).href\n return (await import(url)) as Record<string, unknown>\n } catch (err) {\n console.error(\n 'Cannot import .ts config directly. Install tsx as a dev dependency:\\n' +\n ' npm install -D tsx\\n' +\n 'Or rename your config to arena.config.js\\n'\n )\n console.error('Underlying error:', err instanceof Error ? err.message : err)\n process.exit(1)\n }\n}\n\nfunction formatScoreForLog(s: ScoreResult): string {\n const details = s.details as Record<string, unknown> | undefined\n if (s.name === 'latency' && details?.ms != null) {\n return `${Math.round(details.ms as number)}ms`\n }\n if (s.name === 'cost' && details?.estimatedUsd != null) {\n return formatCost(details.estimatedUsd as number)\n }\n // Surface failure reasons for scorers that return -1 (e.g. llm-judge)\n if (s.value < 0 && details?.reason) {\n return `SKIP (${details.reason})`\n }\n return String(s.value)\n}\n\nfunction getVersion(): string {\n try {\n const pkg = readFileSync(join(__dirname, '..', 'package.json'), 'utf-8')\n return JSON.parse(pkg).version ?? '0.0.0'\n } catch {\n return '0.0.0'\n }\n}\n\nconst DEFAULT_TEMPLATE = `// ─── Agent Duelist Config ─────────────────────────────────────────────\n//\n// Set your API key before running:\n// export OPENAI_API_KEY=sk-...\n//\n// Then run:\n// npx duelist run\n//\n// Docs: https://github.com/DataGobes/agent-duelist\n// ─────────────────────────────────────────────────────────────────────\n\nimport { defineArena, openai } from 'agent-duelist'\nimport { z } from 'zod'\n\nexport default defineArena({\n providers: [\n openai('gpt-5-mini'),\n // Add more providers to compare:\n // openai('gpt-5.2'),\n // azureOpenai('gpt-5-mini'),\n // anthropic('claude-sonnet-4.6'),\n // gemini('gemini-3-flash-preview'),\n ],\n\n tasks: [\n {\n name: 'extract-company',\n prompt:\n 'Extract the company name and role as JSON: \"I work at Acme Corp as a senior engineer.\" Return {\"company\": \"...\", \"role\": \"...\"}',\n expected: { company: 'Acme Corp', role: 'senior engineer' },\n schema: z.object({ company: z.string(), role: z.string() }),\n },\n {\n name: 'classify-sentiment',\n prompt:\n 'Classify the sentiment as \"positive\", \"negative\", or \"neutral\". Return only the word.\\\\n\\\\nReview: \"The product arrived on time and works exactly as described. Very happy!\"',\n expected: 'positive',\n },\n {\n name: 'summarize',\n prompt:\n 'Summarize in one sentence: The quick brown fox jumps over the lazy dog. This pangram contains every letter of the English alphabet and has been used since the late 1800s.',\n },\n ],\n\n scorers: ['latency', 'cost', 'correctness'],\n runs: 1,\n})\n`\n","import type { ScorerFn } from './types.js'\n\n// Normalizes latency to 0–1 where 1 = fast (≤500ms), 0 = slow (≥10s)\nconst MIN_MS = 500\nconst MAX_MS = 10_000\n\nexport const latencyScorer: ScorerFn = ({ result }) => {\n const clamped = Math.max(MIN_MS, Math.min(MAX_MS, result.latencyMs))\n const value = 1 - (clamped - MIN_MS) / (MAX_MS - MIN_MS)\n\n return {\n name: 'latency',\n value: Math.round(value * 100) / 100,\n details: { ms: result.latencyMs },\n }\n}\n","{\n \"_meta\": {\n \"source\": \"OpenRouter API — all providers (https://openrouter.ai/api/v1/models)\",\n \"updatedAt\": \"2026-02-28\",\n \"unit\": \"USD per token\"\n },\n \"models\": {\n \"ai21/jamba-large-1.7\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"aion-labs/aion-1.0\": {\n \"inputPerToken\": 0.000004,\n \"outputPerToken\": 0.000008\n },\n \"aion-labs/aion-1.0-mini\": {\n \"inputPerToken\": 7e-7,\n \"outputPerToken\": 0.0000014\n },\n \"aion-labs/aion-2.0\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000016\n },\n \"aion-labs/aion-rp-llama-3.1-8b\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000016\n },\n \"alfredpros/codellama-7b-instruct-solidity\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000012\n },\n \"alibaba/tongyi-deepresearch-30b-a3b\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 4.5e-7\n },\n \"allenai/molmo-2-8b\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-2-0325-32b-instruct\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-3-32b-think\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 5e-7\n },\n \"allenai/olmo-3-7b-instruct\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-3-7b-think\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-3.1-32b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"alpindale/goliath-120b\": {\n \"inputPerToken\": 0.00000375,\n \"outputPerToken\": 0.0000075\n },\n \"amazon/nova-2-lite-v1\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000025\n },\n \"amazon/nova-lite-v1\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 2.4e-7\n },\n \"amazon/nova-micro-v1\": {\n \"inputPerToken\": 3.5e-8,\n \"outputPerToken\": 1.4e-7\n },\n \"amazon/nova-premier-v1\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.0000125\n },\n \"amazon/nova-pro-v1\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000032\n },\n \"anthracite-org/magnum-v4-72b\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000005\n },\n \"anthropic/claude-3-haiku\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.00000125\n },\n \"anthropic/claude-3.5-haiku\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.000004\n },\n \"anthropic/claude-3.5-sonnet\": {\n \"inputPerToken\": 0.000006,\n \"outputPerToken\": 0.00003\n },\n \"anthropic/claude-3.7-sonnet\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-3.7-sonnet:thinking\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-haiku-4.5\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000005\n },\n \"anthropic/claude-opus-4\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.000075\n },\n \"anthropic/claude-opus-4.1\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.000075\n },\n \"anthropic/claude-opus-4.5\": {\n \"inputPerToken\": 0.000005,\n \"outputPerToken\": 0.000025\n },\n \"anthropic/claude-opus-4.6\": {\n \"inputPerToken\": 0.000005,\n \"outputPerToken\": 0.000025\n },\n \"anthropic/claude-sonnet-4\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-sonnet-4.5\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-sonnet-4.6\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"arcee-ai/coder-large\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 8e-7\n },\n \"arcee-ai/maestro-reasoning\": {\n \"inputPerToken\": 9e-7,\n \"outputPerToken\": 0.0000033\n },\n \"arcee-ai/spotlight\": {\n \"inputPerToken\": 1.8e-7,\n \"outputPerToken\": 1.8e-7\n },\n \"arcee-ai/trinity-mini\": {\n \"inputPerToken\": 4.5e-8,\n \"outputPerToken\": 1.5e-7\n },\n \"arcee-ai/virtuoso-large\": {\n \"inputPerToken\": 7.5e-7,\n \"outputPerToken\": 0.0000012\n },\n \"baidu/ernie-4.5-21b-a3b\": {\n \"inputPerToken\": 7e-8,\n \"outputPerToken\": 2.8e-7\n },\n \"baidu/ernie-4.5-21b-a3b-thinking\": {\n \"inputPerToken\": 7e-8,\n \"outputPerToken\": 2.8e-7\n },\n \"baidu/ernie-4.5-300b-a47b\": {\n \"inputPerToken\": 2.8e-7,\n \"outputPerToken\": 0.0000011\n },\n \"baidu/ernie-4.5-vl-28b-a3b\": {\n \"inputPerToken\": 1.4e-7,\n \"outputPerToken\": 5.6e-7\n },\n \"baidu/ernie-4.5-vl-424b-a47b\": {\n \"inputPerToken\": 4.2e-7,\n \"outputPerToken\": 0.00000125\n },\n \"bytedance/seed-1.6\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"bytedance/seed-1.6-flash\": {\n \"inputPerToken\": 7.5e-8,\n \"outputPerToken\": 3e-7\n },\n \"bytedance/seed-2.0-mini\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"bytedance/ui-tars-1.5-7b\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 2e-7\n },\n \"cohere/command-a\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"cohere/command-r-08-2024\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"cohere/command-r-plus-08-2024\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"cohere/command-r7b-12-2024\": {\n \"inputPerToken\": 3.75e-8,\n \"outputPerToken\": 1.5e-7\n },\n \"deepcogito/cogito-v2.1-671b\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00000125\n },\n \"deepseek/deepseek-chat\": {\n \"inputPerToken\": 3.2e-7,\n \"outputPerToken\": 8.9e-7\n },\n \"deepseek/deepseek-chat-v3-0324\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 7.7e-7\n },\n \"deepseek/deepseek-chat-v3.1\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"deepseek/deepseek-r1\": {\n \"inputPerToken\": 7e-7,\n \"outputPerToken\": 0.0000025\n },\n \"deepseek/deepseek-r1-0528\": {\n \"inputPerToken\": 4.5e-7,\n \"outputPerToken\": 0.00000215\n },\n \"deepseek/deepseek-r1-distill-llama-70b\": {\n \"inputPerToken\": 7e-7,\n \"outputPerToken\": 8e-7\n },\n \"deepseek/deepseek-r1-distill-qwen-32b\": {\n \"inputPerToken\": 2.9e-7,\n \"outputPerToken\": 2.9e-7\n },\n \"deepseek/deepseek-v3\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 8.8e-7\n },\n \"deepseek/deepseek-v3.1-terminus\": {\n \"inputPerToken\": 2.1e-7,\n \"outputPerToken\": 7.9e-7\n },\n \"deepseek/deepseek-v3.1-terminus:exacto\": {\n \"inputPerToken\": 2.1e-7,\n \"outputPerToken\": 7.9e-7\n },\n \"deepseek/deepseek-v3.2\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 4e-7\n },\n \"deepseek/deepseek-v3.2-exp\": {\n \"inputPerToken\": 2.7e-7,\n \"outputPerToken\": 4.1e-7\n },\n \"deepseek/deepseek-v3.2-speciale\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"eleutherai/llemma_7b\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000012\n },\n \"essentialai/rnj-1-instruct\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 1.5e-7\n },\n \"google/gemini-2.0-flash\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.0-flash-001\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.0-flash-lite-001\": {\n \"inputPerToken\": 7.5e-8,\n \"outputPerToken\": 3e-7\n },\n \"google/gemini-2.5-flash\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000025\n },\n \"google/gemini-2.5-flash-image\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000025\n },\n \"google/gemini-2.5-flash-lite\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.5-flash-lite-preview-09-2025\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.5-pro\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"google/gemini-2.5-pro-preview\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"google/gemini-2.5-pro-preview-05-06\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"google/gemini-3-flash-preview\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 0.000003\n },\n \"google/gemini-3-pro-image-preview\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemini-3-pro-preview\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemini-3.1-flash-image-preview\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.0000015\n },\n \"google/gemini-3.1-pro-preview\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemini-3.1-pro-preview-customtools\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemma-2-27b-it\": {\n \"inputPerToken\": 6.5e-7,\n \"outputPerToken\": 6.5e-7\n },\n \"google/gemma-2-9b-it\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 9e-8\n },\n \"google/gemma-3-12b-it\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1.3e-7\n },\n \"google/gemma-3-27b-it\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1.5e-7\n },\n \"google/gemma-3-4b-it\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 8e-8\n },\n \"google/gemma-3n-e4b-it\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 4e-8\n },\n \"gryphe/mythomax-l2-13b\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 6e-8\n },\n \"ibm-granite/granite-4.0-h-micro\": {\n \"inputPerToken\": 1.7e-8,\n \"outputPerToken\": 1.1e-7\n },\n \"inception/mercury\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000001\n },\n \"inception/mercury-coder\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000001\n },\n \"inflection/inflection-3-pi\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"inflection/inflection-3-productivity\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"kwaipilot/kat-coder-pro\": {\n \"inputPerToken\": 2.07e-7,\n \"outputPerToken\": 8.28e-7\n },\n \"liquid/lfm-2-24b-a2b\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 1.2e-7\n },\n \"liquid/lfm-2.2-6b\": {\n \"inputPerToken\": 1e-8,\n \"outputPerToken\": 2e-8\n },\n \"liquid/lfm2-8b-a1b\": {\n \"inputPerToken\": 1e-8,\n \"outputPerToken\": 2e-8\n },\n \"mancer/weaver\": {\n \"inputPerToken\": 7.5e-7,\n \"outputPerToken\": 0.000001\n },\n \"meituan/longcat-flash-chat\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 8e-7\n },\n \"meta/llama-3-70b-instruct\": {\n \"inputPerToken\": 5.1e-7,\n \"outputPerToken\": 7.4e-7\n },\n \"meta/llama-3-8b-instruct\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 4e-8\n },\n \"meta/llama-3.1-405b\": {\n \"inputPerToken\": 0.000004,\n \"outputPerToken\": 0.000004\n },\n \"meta/llama-3.1-405b-instruct\": {\n \"inputPerToken\": 0.000004,\n \"outputPerToken\": 0.000004\n },\n \"meta/llama-3.1-70b-instruct\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 4e-7\n },\n \"meta/llama-3.1-8b-instruct\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 5e-8\n },\n \"meta/llama-3.2-11b-vision-instruct\": {\n \"inputPerToken\": 4.9e-8,\n \"outputPerToken\": 4.9e-8\n },\n \"meta/llama-3.2-1b-instruct\": {\n \"inputPerToken\": 2.7e-8,\n \"outputPerToken\": 2e-7\n },\n \"meta/llama-3.2-3b-instruct\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 2e-8\n },\n \"meta/llama-3.3-70b\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 3e-7\n },\n \"meta/llama-3.3-70b-instruct\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3.2e-7\n },\n \"meta/llama-4-maverick\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"meta/llama-4-scout\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 3e-7\n },\n \"meta/llama-guard-2-8b\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"meta/llama-guard-3-8b\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 6e-8\n },\n \"meta/llama-guard-4-12b\": {\n \"inputPerToken\": 1.8e-7,\n \"outputPerToken\": 1.8e-7\n },\n \"microsoft/phi-4\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 1.4e-7\n },\n \"microsoft/wizardlm-2-8x22b\": {\n \"inputPerToken\": 6.2e-7,\n \"outputPerToken\": 6.2e-7\n },\n \"minimax/minimax-01\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 0.0000011\n },\n \"minimax/minimax-m1\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000022\n },\n \"minimax/minimax-m2\": {\n \"inputPerToken\": 2.55e-7,\n \"outputPerToken\": 0.000001\n },\n \"minimax/minimax-m2-her\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000012\n },\n \"minimax/minimax-m2.1\": {\n \"inputPerToken\": 2.7e-7,\n \"outputPerToken\": 9.5e-7\n },\n \"minimax/minimax-m2.5\": {\n \"inputPerToken\": 2.95e-7,\n \"outputPerToken\": 0.0000012\n },\n \"mistral/codestral-2508\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 9e-7\n },\n \"mistral/devstral-2512\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/devstral-medium\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/devstral-small\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"mistral/ministral-14b-2512\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"mistral/ministral-3b-2512\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 1e-7\n },\n \"mistral/ministral-8b-2512\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 1.5e-7\n },\n \"mistral/mistral-7b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"mistral/mistral-7b-instruct-v0.1\": {\n \"inputPerToken\": 1.1e-7,\n \"outputPerToken\": 1.9e-7\n },\n \"mistral/mistral-7b-instruct-v0.3\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"mistral/mistral-large\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mistral-large-2407\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mistral-large-2411\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mistral-large-2512\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 0.0000015\n },\n \"mistral/mistral-medium-3\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/mistral-medium-3.1\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/mistral-nemo\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 4e-8\n },\n \"mistral/mistral-saba\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"mistral/mistral-small\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"mistral/mistral-small-24b-instruct-2501\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 8e-8\n },\n \"mistral/mistral-small-3.1-24b-instruct\": {\n \"inputPerToken\": 3.5e-7,\n \"outputPerToken\": 5.6e-7\n },\n \"mistral/mistral-small-3.2-24b-instruct\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 1.8e-7\n },\n \"mistral/mistral-small-creative\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"mistral/mixtral-8x22b-instruct\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mixtral-8x7b-instruct\": {\n \"inputPerToken\": 5.4e-7,\n \"outputPerToken\": 5.4e-7\n },\n \"mistral/pixtral-large-2411\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/voxtral-small-24b-2507\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"moonshotai/kimi-k2\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 0.0000022\n },\n \"moonshotai/kimi-k2-0905\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"moonshotai/kimi-k2-0905:exacto\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.0000025\n },\n \"moonshotai/kimi-k2-thinking\": {\n \"inputPerToken\": 4.7e-7,\n \"outputPerToken\": 0.000002\n },\n \"moonshotai/kimi-k2.5\": {\n \"inputPerToken\": 4.5e-7,\n \"outputPerToken\": 0.0000022\n },\n \"morph/morph-v3-fast\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000012\n },\n \"morph/morph-v3-large\": {\n \"inputPerToken\": 9e-7,\n \"outputPerToken\": 0.0000019\n },\n \"neversleep/llama-3.1-lumimaid-8b\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 6e-7\n },\n \"neversleep/noromaid-20b\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.00000175\n },\n \"nex-agi/deepseek-v3.1-nex-n1\": {\n \"inputPerToken\": 2.7e-7,\n \"outputPerToken\": 0.000001\n },\n \"nousresearch/hermes-2-pro-llama-3-8b\": {\n \"inputPerToken\": 1.4e-7,\n \"outputPerToken\": 1.4e-7\n },\n \"nousresearch/hermes-3-llama-3.1-405b\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000001\n },\n \"nousresearch/hermes-3-llama-3.1-70b\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 3e-7\n },\n \"nousresearch/hermes-4-405b\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000003\n },\n \"nousresearch/hermes-4-70b\": {\n \"inputPerToken\": 1.3e-7,\n \"outputPerToken\": 4e-7\n },\n \"nvidia/llama-3.1-nemotron-70b-instruct\": {\n \"inputPerToken\": 0.0000012,\n \"outputPerToken\": 0.0000012\n },\n \"nvidia/llama-3.3-nemotron-super-49b-v1.5\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"nvidia/nemotron-3-nano-30b-a3b\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 2e-7\n },\n \"nvidia/nemotron-nano-12b-v2-vl\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"nvidia/nemotron-nano-9b-v2\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1.6e-7\n },\n \"openai/gpt-3.5-turbo\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 0.0000015\n },\n \"openai/gpt-3.5-turbo-0613\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-3.5-turbo-16k\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000004\n },\n \"openai/gpt-3.5-turbo-instruct\": {\n \"inputPerToken\": 0.0000015,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-4\": {\n \"inputPerToken\": 0.00003,\n \"outputPerToken\": 0.00006\n },\n \"openai/gpt-4-0314\": {\n \"inputPerToken\": 0.00003,\n \"outputPerToken\": 0.00006\n },\n \"openai/gpt-4-1106-preview\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00003\n },\n \"openai/gpt-4-turbo\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00003\n },\n \"openai/gpt-4-turbo-preview\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00003\n },\n \"openai/gpt-4.1\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"openai/gpt-4.1-mini\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000016\n },\n \"openai/gpt-4.1-nano\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"openai/gpt-4o\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-2024-05-13\": {\n \"inputPerToken\": 0.000005,\n \"outputPerToken\": 0.000015\n },\n \"openai/gpt-4o-2024-08-06\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-2024-11-20\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-audio-preview\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-mini\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"openai/gpt-4o-mini-2024-07-18\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"openai/gpt-4o-mini-search-preview\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"openai/gpt-4o-search-preview\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o:extended\": {\n \"inputPerToken\": 0.000006,\n \"outputPerToken\": 0.000018\n },\n \"openai/gpt-5\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-chat\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-codex\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-image\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-image-mini\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-5-mini\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-5-nano\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 4e-7\n },\n \"openai/gpt-5-pro\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.00012\n },\n \"openai/gpt-5.1\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-chat\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-codex\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-codex-max\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-codex-mini\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-5.2\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-5.2-chat\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-5.2-codex\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-5.2-pro\": {\n \"inputPerToken\": 0.000021,\n \"outputPerToken\": 0.000168\n },\n \"openai/gpt-5.3-codex\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-audio\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-audio-mini\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.0000024\n },\n \"openai/gpt-oss-120b\": {\n \"inputPerToken\": 3.9e-8,\n \"outputPerToken\": 1.9e-7\n },\n \"openai/gpt-oss-120b:exacto\": {\n \"inputPerToken\": 3.9e-8,\n \"outputPerToken\": 1.9e-7\n },\n \"openai/gpt-oss-20b\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 1.4e-7\n },\n \"openai/gpt-oss-safeguard-20b\": {\n \"inputPerToken\": 7.5e-8,\n \"outputPerToken\": 3e-7\n },\n \"openai/o1\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.00006\n },\n \"openai/o1-pro\": {\n \"inputPerToken\": 0.00015,\n \"outputPerToken\": 0.0006\n },\n \"openai/o3\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"openai/o3-deep-research\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00004\n },\n \"openai/o3-mini\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"openai/o3-mini-high\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"openai/o3-pro\": {\n \"inputPerToken\": 0.00002,\n \"outputPerToken\": 0.00008\n },\n \"openai/o4-mini\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"openai/o4-mini-deep-research\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"openai/o4-mini-high\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"opengvlab/internvl3-78b\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"perplexity/sonar\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000001\n },\n \"perplexity/sonar-deep-research\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"perplexity/sonar-pro\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"perplexity/sonar-pro-search\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"perplexity/sonar-reasoning-pro\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"prime-intellect/intellect-3\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 0.0000011\n },\n \"qwen/qwen-2.5-72b-instruct\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 3.9e-7\n },\n \"qwen/qwen-2.5-7b-instruct\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1e-7\n },\n \"qwen/qwen-2.5-coder-32b-instruct\": {\n \"inputPerToken\": 2.0000000000000002e-7,\n \"outputPerToken\": 2.0000000000000002e-7\n },\n \"qwen/qwen-2.5-vl-7b-instruct\": {\n \"inputPerToken\": 2.0000000000000002e-7,\n \"outputPerToken\": 2.0000000000000002e-7\n },\n \"qwen/qwen-max\": {\n \"inputPerToken\": 0.0000016,\n \"outputPerToken\": 0.0000064\n },\n \"qwen/qwen-plus\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen-plus-2025-07-28\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen-plus-2025-07-28:thinking\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen-turbo\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 2e-7\n },\n \"qwen/qwen-vl-max\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000032\n },\n \"qwen/qwen-vl-plus\": {\n \"inputPerToken\": 2.1e-7,\n \"outputPerToken\": 6.3e-7\n },\n \"qwen/qwen2.5-coder-7b-instruct\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 9e-8\n },\n \"qwen/qwen2.5-vl-32b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"qwen/qwen2.5-vl-72b-instruct\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 8e-7\n },\n \"qwen/qwen3-14b\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 2.4e-7\n },\n \"qwen/qwen3-235b-a22b\": {\n \"inputPerToken\": 4.55e-7,\n \"outputPerToken\": 0.00000182\n },\n \"qwen/qwen3-235b-a22b-2507\": {\n \"inputPerToken\": 7.1e-8,\n \"outputPerToken\": 1e-7\n },\n \"qwen/qwen3-30b-a3b\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 2.8e-7\n },\n \"qwen/qwen3-30b-a3b-instruct-2507\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 3e-7\n },\n \"qwen/qwen3-30b-a3b-thinking-2507\": {\n \"inputPerToken\": 5.1e-8,\n \"outputPerToken\": 3.4e-7\n },\n \"qwen/qwen3-32b\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 2.4e-7\n },\n \"qwen/qwen3-8b\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 4e-7\n },\n \"qwen/qwen3-coder\": {\n \"inputPerToken\": 2.2e-7,\n \"outputPerToken\": 0.000001\n },\n \"qwen/qwen3-coder-30b-a3b-instruct\": {\n \"inputPerToken\": 7e-8,\n \"outputPerToken\": 2.7e-7\n },\n \"qwen/qwen3-coder-flash\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000015\n },\n \"qwen/qwen3-coder-next\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"qwen/qwen3-coder-plus\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000005\n },\n \"qwen/qwen3-coder:exacto\": {\n \"inputPerToken\": 2.2e-7,\n \"outputPerToken\": 0.0000018\n },\n \"qwen/qwen3-max\": {\n \"inputPerToken\": 0.0000012,\n \"outputPerToken\": 0.000006\n },\n \"qwen/qwen3-max-thinking\": {\n \"inputPerToken\": 0.0000012,\n \"outputPerToken\": 0.000006\n },\n \"qwen/qwen3-next-80b-a3b-instruct\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 0.0000011\n },\n \"qwen/qwen3-next-80b-a3b-thinking\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen3-vl-235b-a22b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 8.8e-7\n },\n \"qwen/qwen3-vl-30b-a3b-instruct\": {\n \"inputPerToken\": 1.3e-7,\n \"outputPerToken\": 5.2e-7\n },\n \"qwen/qwen3-vl-32b-instruct\": {\n \"inputPerToken\": 1.04e-7,\n \"outputPerToken\": 4.16e-7\n },\n \"qwen/qwen3-vl-8b-instruct\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 5e-7\n },\n \"qwen/qwen3-vl-8b-thinking\": {\n \"inputPerToken\": 1.17e-7,\n \"outputPerToken\": 0.000001365\n },\n \"qwen/qwen3.5-122b-a10b\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000032\n },\n \"qwen/qwen3.5-27b\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000024\n },\n \"qwen/qwen3.5-35b-a3b\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"qwen/qwen3.5-397b-a17b\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 0.0000035\n },\n \"qwen/qwen3.5-flash-02-23\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"qwen/qwen3.5-plus-02-15\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000024\n },\n \"qwen/qwq-32b\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 4e-7\n },\n \"raifle/sorcererlm-8x22b\": {\n \"inputPerToken\": 0.0000045,\n \"outputPerToken\": 0.0000045\n },\n \"relace/relace-apply-3\": {\n \"inputPerToken\": 8.5e-7,\n \"outputPerToken\": 0.00000125\n },\n \"relace/relace-search\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000003\n },\n \"sao10k/l3-euryale-70b\": {\n \"inputPerToken\": 0.00000148,\n \"outputPerToken\": 0.00000148\n },\n \"sao10k/l3-lunaris-8b\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 5e-8\n },\n \"sao10k/l3.1-70b-hanami-x1\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000003\n },\n \"sao10k/l3.1-euryale-70b\": {\n \"inputPerToken\": 6.5e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"sao10k/l3.3-euryale-70b\": {\n \"inputPerToken\": 6.5e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"stepfun/step-3.5-flash\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"switchpoint/router\": {\n \"inputPerToken\": 8.5e-7,\n \"outputPerToken\": 0.0000034\n },\n \"tencent/hunyuan-a13b-instruct\": {\n \"inputPerToken\": 1.4e-7,\n \"outputPerToken\": 5.7e-7\n },\n \"thedrummer/cydonia-24b-v4.1\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 5e-7\n },\n \"thedrummer/rocinante-12b\": {\n \"inputPerToken\": 1.7e-7,\n \"outputPerToken\": 4.3e-7\n },\n \"thedrummer/skyfall-36b-v2\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 8e-7\n },\n \"thedrummer/unslopnemo-12b\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 4e-7\n },\n \"tngtech/deepseek-r1t2-chimera\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 8.5e-7\n },\n \"undi95/remm-slerp-l2-13b\": {\n \"inputPerToken\": 4.5e-7,\n \"outputPerToken\": 6.5e-7\n },\n \"writer/palmyra-x5\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.000006\n },\n \"xai/grok-3\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"xai/grok-3-beta\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"xai/grok-3-mini\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-3-mini-beta\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-4\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"xai/grok-4-fast\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-4.1-fast\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-code-fast-1\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 0.0000015\n },\n \"xiaomi/mimo-v2-flash\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 2.9e-7\n },\n \"z-ai/glm-4-32b\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 1e-7\n },\n \"z-ai/glm-4.5\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"z-ai/glm-4.5-air\": {\n \"inputPerToken\": 1.3e-7,\n \"outputPerToken\": 8.5e-7\n },\n \"z-ai/glm-4.5v\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.0000018\n },\n \"z-ai/glm-4.6\": {\n \"inputPerToken\": 3.5e-7,\n \"outputPerToken\": 0.00000171\n },\n \"z-ai/glm-4.6:exacto\": {\n \"inputPerToken\": 4.4e-7,\n \"outputPerToken\": 0.00000176\n },\n \"z-ai/glm-4.6v\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 9e-7\n },\n \"z-ai/glm-4.7\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000014\n },\n \"z-ai/glm-4.7-flash\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 4e-7\n },\n \"z-ai/glm-5\": {\n \"inputPerToken\": 9.5e-7,\n \"outputPerToken\": 0.00000255\n }\n }\n}\n","import catalog from './catalog.json' with { type: 'json' }\n\nexport interface ModelPricing {\n inputPerToken: number\n outputPerToken: number\n}\n\nconst models = catalog.models as Record<string, ModelPricing>\n\n// Reverse index: model name (after slash) → first catalog key that contains it.\n// Enables cross-provider lookups (e.g. groq/llama-4-scout → meta/llama-4-scout).\nconst modelNameIndex = new Map<string, string>()\nfor (const key of Object.keys(models)) {\n const name = key.split('/').slice(1).join('/')\n if (name && !modelNameIndex.has(name)) {\n modelNameIndex.set(name, key)\n }\n}\n\n/**\n * Look up pricing for a provider ID (e.g. \"openai/gpt-4o\", \"azure/gpt-5-mini\").\n *\n * Resolution order:\n * 1. Exact match on provider ID\n * 2. Strip provider prefix, try \"openai/{model}\" (covers Azure deployments)\n * 3. Cross-provider model-name fallback (covers hosting providers like Groq, Together, Fireworks)\n * 4. undefined (no pricing available)\n */\nexport function lookupPricing(providerId: string): ModelPricing | undefined {\n // 1. Exact match\n if (models[providerId]) return models[providerId]\n\n const model = providerId.split('/').slice(1).join('/')\n if (!model) return undefined\n\n // 2. Try as openai/{model} (covers azure/* deployments)\n const asOpenai = `openai/${model}`\n if (models[asOpenai]) return models[asOpenai]\n\n // 3. Cross-provider: look up by model name alone\n const crossKey = modelNameIndex.get(model)\n if (crossKey) return models[crossKey]\n\n return undefined\n}\n\nexport function registerPricing(providerId: string, pricing: ModelPricing): void {\n models[providerId] = pricing\n}\n\nexport function estimateCost(\n pricing: ModelPricing,\n promptTokens: number,\n completionTokens: number,\n): number {\n return pricing.inputPerToken * promptTokens + pricing.outputPerToken * completionTokens\n}\n","import type { ScorerFn } from './types.js'\nimport { lookupPricing, estimateCost } from '../pricing/lookup.js'\n\nexport const costScorer: ScorerFn = ({ result }, providerId) => {\n const promptTokens = result.usage?.promptTokens ?? 0\n const completionTokens = result.usage?.completionTokens ?? 0\n const totalTokens = promptTokens + completionTokens\n\n const pricing = lookupPricing(providerId)\n\n if (!pricing) {\n return {\n name: 'cost',\n value: -1,\n details: {\n estimatedUsd: null,\n promptTokens,\n completionTokens,\n totalTokens,\n note: 'No pricing data available for this model',\n },\n }\n }\n\n const usd = estimateCost(pricing, promptTokens, completionTokens)\n\n return {\n name: 'cost',\n value: usd,\n details: {\n estimatedUsd: usd,\n promptTokens,\n completionTokens,\n totalTokens,\n },\n }\n}\n","import type { ScorerFn } from './types.js'\n\n/**\n * Correctness scorer for LLM output evaluation.\n *\n * For strings: case-insensitive trimmed comparison.\n * For objects: checks all expected keys exist with matching values (extra keys in actual are tolerated).\n * For arrays: if actual is an object wrapping a single array, unwraps it before comparing.\n * Returns 1 (match), 0 (no match), or 0.5 (no expected value defined).\n */\nexport const correctnessScorer: ScorerFn = ({ task, result }) => {\n if (task.expected === undefined) {\n return { name: 'correctness', value: 0.5, details: { reason: 'no expected value' } }\n }\n\n const actual = normalizeOutput(task.expected, result.output)\n const match = deepEqual(task.expected, actual)\n\n return {\n name: 'correctness',\n value: match ? 1 : 0,\n details: { expected: task.expected, actual: result.output },\n }\n}\n\n/**\n * Normalize model output to align with the expected shape.\n * Handles two common cases where json_object mode forces array responses\n * into wrapper objects:\n * - Single-key wrapper: { \"products\": [...] }\n * - Schema-echo wrapper: { \"type\": \"array\", \"items\": [...], \"$schema\": \"...\" }\n *\n * Strategy: if expected is an array and actual is an object, find all keys\n * whose value is an array. If exactly one exists, unwrap it.\n */\nfunction normalizeOutput(expected: unknown, actual: unknown): unknown {\n if (Array.isArray(expected) && !Array.isArray(actual) && typeof actual === 'object' && actual !== null) {\n const entries = Object.entries(actual as Record<string, unknown>)\n const arrayEntries = entries.filter(([, v]) => Array.isArray(v))\n if (arrayEntries.length === 1) {\n return arrayEntries[0]![1]\n }\n }\n return actual\n}\n\nfunction deepEqual(expected: unknown, actual: unknown): boolean {\n if (expected === actual) return true\n\n if (typeof expected === 'string' && typeof actual === 'string') {\n return expected.trim().toLowerCase() === actual.trim().toLowerCase()\n }\n\n if (typeof expected !== typeof actual) return false\n if (expected === null || actual === null) return expected === actual\n\n if (Array.isArray(expected) && Array.isArray(actual)) {\n if (expected.length !== actual.length) return false\n return expected.every((val, i) => deepEqual(val, actual[i]))\n }\n\n if (typeof expected === 'object' && typeof actual === 'object') {\n const objExpected = expected as Record<string, unknown>\n const objActual = actual as Record<string, unknown>\n const keysExpected = Object.keys(objExpected)\n // Check that all expected keys exist in actual with matching values.\n // Extra keys in actual are tolerated — LLMs often add unrequested fields.\n return keysExpected.every((key) => key in objActual && deepEqual(objExpected[key], objActual[key]))\n }\n\n return expected === actual\n}\n","import type { ScorerFn } from './types.js'\n\nexport const schemaCorrectnessScorer: ScorerFn = ({ task, result }) => {\n if (!task.schema) {\n return { name: 'schema-correctness', value: -1, details: { reason: 'no schema defined' } }\n }\n\n let data: unknown = result.output\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data)\n } catch {\n return {\n name: 'schema-correctness',\n value: 0,\n details: { reason: 'output is not valid JSON' },\n }\n }\n }\n\n let parsed = task.schema.safeParse(data)\n\n // If validation fails and data is an object wrapping a single array,\n // try unwrapping — handles json_object mode forcing arrays into objects.\n if (!parsed.success && !Array.isArray(data) && typeof data === 'object' && data !== null) {\n const arrayEntries = Object.entries(data as Record<string, unknown>).filter(([, v]) => Array.isArray(v))\n if (arrayEntries.length === 1) {\n const unwrapped = task.schema.safeParse(arrayEntries[0]![1])\n if (unwrapped.success) parsed = unwrapped\n }\n }\n\n return {\n name: 'schema-correctness',\n value: parsed.success ? 1 : 0,\n details: parsed.success\n ? { valid: true }\n : { valid: false, errors: parsed.error.issues.map((i) => i.message) },\n }\n}\n","import type { ScorerFn } from './types.js'\n\nexport const fuzzySimilarityScorer: ScorerFn = ({ task, result }) => {\n if (task.expected === undefined) {\n return { name: 'fuzzy-similarity', value: -1, details: { reason: 'no expected value' } }\n }\n\n const a = stringify(task.expected)\n const b = stringify(result.output)\n const setA = tokenize(a)\n const setB = tokenize(b)\n\n const similarity = jaccardSimilarity(setA, setB)\n\n return {\n name: 'fuzzy-similarity',\n value: Math.round(similarity * 100) / 100,\n details: { method: 'jaccard', expectedTokens: setA.size, actualTokens: setB.size },\n }\n}\n\nfunction stringify(value: unknown): string {\n if (typeof value === 'string') return value.toLowerCase()\n return JSON.stringify(value).toLowerCase()\n}\n\nfunction tokenize(text: string): Set<string> {\n return new Set(text.match(/\\w+/g) ?? [])\n}\n\nfunction jaccardSimilarity(a: Set<string>, b: Set<string>): number {\n if (a.size === 0 && b.size === 0) return 1\n\n let intersection = 0\n for (const token of a) {\n if (b.has(token)) intersection++\n }\n\n const union = a.size + b.size - intersection\n return union === 0 ? 1 : intersection / union\n}\n","import OpenAI, { AzureOpenAI } from 'openai'\nimport { REQUEST_TIMEOUT_MS } from '../providers/openai.js'\nimport type { ScorerFn } from './types.js'\n\nconst JUDGE_PROMPT = `You are a strict scoring judge. Evaluate the actual output against the expected output on three criteria. Score each from 0.0 to 1.0 using the full range (not just 0, 0.5, 1).\n\nCriteria:\n1. Accuracy — are the facts, entities, and claims correct? Penalize hallucinations or wrong details.\n2. Completeness — does it capture all key information from the expected output? Penalize missing points.\n3. Conciseness — is it free of unnecessary filler, repetition, or tangential content? Penalize verbosity.\n\nRespond with ONLY this exact format — three lines, no other text:\naccuracy: <number>\ncompleteness: <number>\nconciseness: <number>\n\nTask: {task}\nExpected: {expected}\nActual: {actual}`\n\ninterface JudgeClientResult {\n client: OpenAI\n model: string\n}\n\nfunction resolveJudgeClient(configModel?: string, timeoutMs = REQUEST_TIMEOUT_MS): JudgeClientResult | undefined {\n const model = configModel ?? process.env.DUELIST_JUDGE_MODEL ?? 'gpt-5-mini'\n\n // If the judge model starts with \"gemini\", use Google's OpenAI-compatible endpoint\n if (model.startsWith('gemini') && process.env.GOOGLE_API_KEY) {\n return {\n client: new OpenAI({\n apiKey: process.env.GOOGLE_API_KEY,\n baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/',\n timeout: timeoutMs,\n }),\n model,\n }\n }\n\n // Azure OpenAI fallback\n if (!process.env.OPENAI_API_KEY && process.env.AZURE_OPENAI_API_KEY) {\n return {\n client: new AzureOpenAI({\n apiKey: process.env.AZURE_OPENAI_API_KEY,\n endpoint: process.env.AZURE_OPENAI_ENDPOINT,\n apiVersion: process.env.AZURE_OPENAI_API_VERSION ?? '2024-12-01-preview',\n deployment: model,\n timeout: timeoutMs,\n }),\n model,\n }\n }\n\n // OpenAI\n const apiKey = process.env.OPENAI_API_KEY\n if (!apiKey) return undefined\n\n return { client: new OpenAI({ apiKey, timeout: timeoutMs }), model }\n}\n\n/** Detect errors caused by temperature being unsupported (reasoning models like o1/o3). */\nfunction isTemperatureError(err: unknown): boolean {\n const msg = err instanceof Error ? err.message : String(err)\n const lower = msg.toLowerCase()\n return lower.includes('temperature') && (\n lower.includes('not supported') ||\n lower.includes('is not allowed') ||\n lower.includes('unsupported') ||\n lower.includes('invalid')\n )\n}\n\n/**\n * Create an LLM-as-judge scorer configured with a specific model.\n *\n * The model can also be set via DUELIST_JUDGE_MODEL env var.\n * Requires OPENAI_API_KEY, AZURE_OPENAI_API_KEY, or GOOGLE_API_KEY\n * depending on the model prefix.\n *\n * Uses temperature: 0 for deterministic scoring. If the model rejects\n * temperature (e.g. reasoning models like o1/o3), automatically retries\n * without it and remembers the preference for subsequent calls.\n */\nexport function createLlmJudgeScorer(judgeModel?: string, timeoutMs = REQUEST_TIMEOUT_MS): ScorerFn {\n let cached: JudgeClientResult | undefined | null = undefined\n let useTemperature = true\n\n return async ({ task, result }) => {\n if (task.expected === undefined) {\n return { name: 'llm-judge-correctness', value: -1, details: { reason: 'no expected value' } }\n }\n\n // Lazy-init and cache the client\n if (cached === undefined) {\n cached = resolveJudgeClient(judgeModel, timeoutMs) ?? null\n }\n\n if (!cached) {\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: 'no API key available for judge model' },\n }\n }\n\n const { client, model } = cached\n\n const prompt = JUDGE_PROMPT\n .replace('{task}', task.prompt)\n .replace('{expected}', JSON.stringify(task.expected))\n .replace('{actual}', JSON.stringify(result.output))\n\n const messages: OpenAI.ChatCompletionMessageParam[] = [{ role: 'user', content: prompt }]\n\n try {\n const response = await callJudge(client, model, messages, useTemperature)\n return parseJudgeResponse(response, model)\n } catch (err) {\n // Auto-fallback: if temperature is rejected, retry without it\n if (useTemperature && isTemperatureError(err)) {\n useTemperature = false\n try {\n const response = await callJudge(client, model, messages, false)\n return parseJudgeResponse(response, model)\n } catch (retryErr) {\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: `judge call failed: ${retryErr instanceof Error ? retryErr.message : String(retryErr)}` },\n }\n }\n }\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: `judge call failed: ${err instanceof Error ? err.message : String(err)}` },\n }\n }\n }\n}\n\nasync function callJudge(\n client: OpenAI,\n model: string,\n messages: OpenAI.ChatCompletionMessageParam[],\n withTemperature: boolean,\n): Promise<OpenAI.ChatCompletion> {\n return client.chat.completions.create({\n model,\n messages,\n max_completion_tokens: 2048,\n ...(withTemperature ? { temperature: 0 } : {}),\n })\n}\n\nfunction parseJudgeResponse(\n response: OpenAI.ChatCompletion,\n model: string,\n): { name: string; value: number; details: Record<string, unknown> } {\n const content = response.choices[0]?.message?.content?.trim() ?? ''\n const parsed: Record<string, number> = {}\n for (const line of content.split('\\n')) {\n const match = line.match(/^(accuracy|completeness|conciseness)\\s*:\\s*([\\d.]+)/i)\n if (match) parsed[match[1].toLowerCase()] = parseFloat(match[2])\n }\n\n const accuracy = parsed.accuracy\n const completeness = parsed.completeness\n const conciseness = parsed.conciseness\n\n if (accuracy == null || completeness == null || conciseness == null ||\n [accuracy, completeness, conciseness].some((s) => isNaN(s) || s < 0 || s > 1)) {\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: `judge returned unparseable scores: \"${content}\"`, model },\n }\n }\n\n const composite = Math.round(((accuracy + completeness + conciseness) / 3) * 100) / 100\n\n return {\n name: 'llm-judge-correctness',\n value: composite,\n details: { model, accuracy, completeness, conciseness },\n }\n}\n","import OpenAI, { AzureOpenAI } from 'openai'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\nimport { registerPricing } from '../pricing/lookup.js'\nimport type { ToolDefinition } from '../tasks/types.js'\nimport type { ArenaProvider, TaskInput, TaskResult, ToolCall } from './types.js'\nimport { buildSchemaSystemMessage, parseSchemaOutput } from './shared.js'\n\n/** Default per-request timeout in ms (60 s). Prevents hanging on unresponsive APIs. */\nexport const REQUEST_TIMEOUT_MS = 60_000\n\nexport interface OpenAIProviderOptions {\n apiKey?: string\n baseURL?: string\n timeoutMs?: number\n}\n\nexport interface AzureOpenAIProviderOptions {\n apiKey?: string\n endpoint?: string\n apiVersion?: string\n deployment?: string\n timeoutMs?: number\n}\n\nexport function openai(model: string, options?: OpenAIProviderOptions): ArenaProvider {\n const client = new OpenAI({\n apiKey: options?.apiKey ?? process.env.OPENAI_API_KEY,\n baseURL: options?.baseURL,\n timeout: options?.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n return makeProvider(`openai/${model}`, 'OpenAI', model, client, model)\n}\n\nexport interface OpenAICompatibleOptions {\n id: string\n name: string\n model: string\n baseURL: string\n apiKey?: string\n apiKeyEnv?: string\n /** Strip `<think>...</think>` blocks from reasoning models (e.g. DeepSeek-R1, MiniMax M2.5) */\n stripThinking?: boolean\n /** Mark this provider as free (e.g. local Ollama models) so it registers zero-cost pricing */\n free?: boolean\n timeoutMs?: number\n}\n\nexport function openaiCompatible(options: OpenAICompatibleOptions): ArenaProvider {\n const apiKey = options.apiKey\n ?? (options.apiKeyEnv ? process.env[options.apiKeyEnv] : undefined)\n ?? 'no-key'\n\n const client = new OpenAI({\n apiKey,\n baseURL: options.baseURL,\n timeout: options.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n if (options.free) {\n registerPricing(options.id, { inputPerToken: 0, outputPerToken: 0 })\n }\n\n return makeProvider(options.id, options.name, options.model, client, options.model, options.stripThinking)\n}\n\n/**\n * Create an Azure OpenAI provider.\n *\n * @param model - The model or deployment name (e.g. \"gpt-4o\", \"gpt-5-mini\").\n * Used as the deployment name unless `options.deployment` overrides it.\n */\nexport function azureOpenai(model: string, options?: AzureOpenAIProviderOptions): ArenaProvider {\n const deployment = options?.deployment ?? model\n\n const client = new AzureOpenAI({\n apiKey: options?.apiKey ?? process.env.AZURE_OPENAI_API_KEY,\n endpoint: options?.endpoint ?? process.env.AZURE_OPENAI_ENDPOINT,\n apiVersion: options?.apiVersion ?? process.env.AZURE_OPENAI_API_VERSION ?? '2024-12-01-preview',\n deployment,\n timeout: options?.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n return makeProvider(`azure/${model}`, 'Azure OpenAI', model, client, deployment)\n}\n\nexport function makeProvider(\n id: string,\n name: string,\n model: string,\n client: OpenAI | AzureOpenAI,\n requestModel: string,\n stripThinking?: boolean,\n): ArenaProvider {\n return {\n id,\n name,\n model,\n\n async run(input: TaskInput): Promise<TaskResult> {\n const start = Date.now()\n\n const params: OpenAI.ChatCompletionCreateParams = {\n model: requestModel,\n messages: [{ role: 'user', content: input.prompt }],\n }\n\n // If a Zod schema is provided, use structured output via response_format\n if (input.schema) {\n params.response_format = { type: 'json_object' }\n params.messages = [\n { role: 'system', content: buildSchemaSystemMessage(input.schema) },\n ...params.messages,\n ]\n }\n\n // If tools are provided, convert to OpenAI tool format\n if (input.tools?.length) {\n params.tools = input.tools.map(toolDefToOpenAI)\n params.tool_choice = 'auto'\n }\n\n const reqOpts: { signal?: AbortSignal; timeout?: number } = { signal: input.signal }\n if (input.timeout) reqOpts.timeout = input.timeout\n const response = await client.chat.completions.create(params, reqOpts)\n let totalPromptTokens = response.usage?.prompt_tokens ?? 0\n let totalCompletionTokens = response.usage?.completion_tokens ?? 0\n\n const choice = response.choices[0]\n const toolCallsRaw = choice?.message?.tool_calls\n const collectedToolCalls: ToolCall[] = []\n let finalResponse = response\n\n // If the model made tool calls, execute handlers and send results back\n if (toolCallsRaw?.length && input.tools?.length) {\n const toolMessages: OpenAI.ChatCompletionMessageParam[] = [\n ...params.messages,\n choice!.message,\n ]\n\n for (const tc of toolCallsRaw) {\n const toolDef = input.tools.find((t) => t.name === tc.function.name)\n let args: unknown\n try {\n args = JSON.parse(tc.function.arguments)\n } catch {\n args = tc.function.arguments\n }\n\n let result: unknown\n if (toolDef?.handler) {\n result = await toolDef.handler(args)\n }\n\n collectedToolCalls.push({ name: tc.function.name, arguments: args, result })\n\n toolMessages.push({\n role: 'tool' as const,\n tool_call_id: tc.id,\n content: JSON.stringify(result ?? {}),\n })\n }\n\n // Follow-up call with tool results\n const followUp = await client.chat.completions.create({\n model: requestModel,\n messages: toolMessages,\n }, reqOpts)\n\n totalPromptTokens += followUp.usage?.prompt_tokens ?? 0\n totalCompletionTokens += followUp.usage?.completion_tokens ?? 0\n finalResponse = followUp\n }\n\n const latencyMs = Date.now() - start\n const finalChoice = finalResponse.choices[0]\n let rawContent = finalChoice?.message?.content ?? ''\n\n if (stripThinking) {\n rawContent = rawContent.replace(/<think>[\\s\\S]*?<\\/think>\\s*/, '')\n }\n\n const output = parseSchemaOutput(rawContent, !!input.schema)\n\n return {\n output,\n usage: {\n promptTokens: totalPromptTokens || undefined,\n completionTokens: totalCompletionTokens || undefined,\n },\n latencyMs,\n raw: finalResponse,\n toolCalls: collectedToolCalls.length > 0 ? collectedToolCalls : undefined,\n }\n },\n }\n}\n\n// ── Gemini (OpenAI-compatible) ──────────────────────────────────────\n\nexport interface GeminiProviderOptions {\n apiKey?: string\n timeoutMs?: number\n}\n\nexport function gemini(model: string, options?: GeminiProviderOptions): ArenaProvider {\n const apiKey = options?.apiKey ?? process.env.GOOGLE_API_KEY\n\n if (!apiKey) {\n throw new Error(\n `Missing API key for google/${model}. Set GOOGLE_API_KEY or pass apiKey option.`,\n )\n }\n\n const client = new OpenAI({\n apiKey,\n baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/',\n timeout: options?.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n return makeProvider(`google/${model}`, 'Google AI', model, client, model)\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────\n\nfunction toolDefToOpenAI(tool: ToolDefinition): OpenAI.ChatCompletionTool {\n return {\n type: 'function',\n function: {\n name: tool.name,\n description: tool.description,\n parameters: zodToJsonSchema(tool.parameters, { target: 'openAi' }) as Record<string, unknown>,\n },\n }\n}\n","import type { ZodSchema } from 'zod'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\n\n/** Build a system message that includes the actual JSON schema when available. */\nexport function buildSchemaSystemMessage(schema?: ZodSchema): string {\n if (!schema) return 'Respond with valid JSON.'\n const jsonSchema = zodToJsonSchema(schema, { target: 'openAi' })\n return [\n 'Respond with ONLY valid JSON data. No markdown, no code fences, no explanation.',\n '',\n 'Your output must conform to this JSON Schema:',\n JSON.stringify(jsonSchema, null, 2),\n '',\n 'IMPORTANT: Output the actual data values, NOT the schema definition itself.',\n 'Do NOT include keys like \"type\", \"$schema\", or \"items\" from the schema definition in your response.',\n ].join('\\n')\n}\n\n/** Try to parse raw content as JSON when a schema is expected, falling back to the raw string. */\nexport function parseSchemaOutput(rawContent: string, hasSchema: boolean): string | Record<string, unknown> | unknown[] {\n if (!hasSchema) return rawContent\n const cleaned = stripCodeFences(rawContent)\n try {\n return JSON.parse(cleaned) as Record<string, unknown> | unknown[]\n } catch {\n return rawContent\n }\n}\n\n/** Strip markdown code fences (```json ... ```) that some models wrap around JSON output. */\nfunction stripCodeFences(content: string): string {\n const match = content.match(/^```(?:json)?\\s*\\n?([\\s\\S]*?)\\n?\\s*```$/m)\n return match ? match[1]! : content\n}\n","import type { ScorerFn } from './types.js'\n\nexport const toolUsageScorer: ScorerFn = ({ task, result }) => {\n const expectedToolName = task.tools?.[0]?.name\n if (!expectedToolName) {\n return { name: 'tool-usage', value: -1, details: { reason: 'no tools configured on task' } }\n }\n\n const usedTool = result.toolCalls?.some((c) => c.name === expectedToolName) ?? false\n\n return {\n name: 'tool-usage',\n value: usedTool ? 1 : 0,\n details: { expectedToolName, usedTool, toolCalls: result.toolCalls ?? [] },\n }\n}\n","import type { BuiltInScorerName, ScorerFn } from './types.js'\nimport { latencyScorer } from './latency.js'\nimport { costScorer } from './cost.js'\nimport { correctnessScorer } from './correctness.js'\nimport { schemaCorrectnessScorer } from './schema-correctness.js'\nimport { fuzzySimilarityScorer } from './fuzzy-similarity.js'\nimport { createLlmJudgeScorer } from './llm-judge.js'\nimport { toolUsageScorer } from './tool-usage.js'\n\nconst staticScorers: Partial<Record<BuiltInScorerName, ScorerFn>> = {\n latency: latencyScorer,\n cost: costScorer,\n correctness: correctnessScorer,\n 'schema-correctness': schemaCorrectnessScorer,\n 'fuzzy-similarity': fuzzySimilarityScorer,\n 'tool-usage': toolUsageScorer,\n}\n\nexport function resolveScorers(names: BuiltInScorerName[], judgeModel?: string, timeoutMs?: number): ScorerFn[] {\n return names.map((name) => {\n if (name === 'llm-judge-correctness') {\n return createLlmJudgeScorer(judgeModel, timeoutMs)\n }\n const scorer = staticScorers[name]\n if (!scorer) {\n throw new Error(`Unknown scorer: \"${name}\"`)\n }\n return scorer\n })\n}\n\nexport type { BuiltInScorerName, ScorerFn, ScoreResult, ScorerContext } from './types.js'\n","import type { ArenaProvider, ToolCall } from './providers/types.js'\nimport type { ArenaTask } from './tasks/types.js'\nimport type { ScoreResult, ScorerFn } from './scorers/types.js'\n\nexport interface BenchmarkResult {\n providerId: string\n taskName: string\n run: number\n scores: ScoreResult[]\n error?: string\n raw: {\n output: string | Record<string, unknown> | unknown[]\n latencyMs: number\n usage?: { promptTokens?: number; completionTokens?: number }\n toolCalls?: ToolCall[]\n }\n}\n\nconst DEFAULT_TIMEOUT_MS = 60_000\n\nexport interface RunOptions {\n providers: ArenaProvider[]\n tasks: ArenaTask[]\n scorers: ScorerFn[]\n runs: number\n timeout?: number\n onResult?: (result: BenchmarkResult) => void\n}\n\nfunction withTimeout<T>(run: (signal: AbortSignal) => Promise<T>, ms: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController()\n const timer = setTimeout(() => {\n controller.abort()\n reject(new Error(`Request timed out after ${ms}ms`))\n }, ms)\n run(controller.signal).then(\n (v) => { clearTimeout(timer); resolve(v) },\n (e) => { clearTimeout(timer); reject(e) },\n )\n })\n}\n\nexport async function runBenchmarks(options: RunOptions): Promise<BenchmarkResult[]> {\n const { providers, tasks, scorers, runs, onResult } = options\n const timeout = options.timeout ?? DEFAULT_TIMEOUT_MS\n\n const results: BenchmarkResult[] = []\n\n // Tasks run sequentially so every provider faces the same conditions per task.\n // Providers within each task run in parallel — fair head-to-head comparison\n // without queue-induced timeout penalties from full parallelism.\n for (const task of tasks) {\n for (let run = 1; run <= runs; run++) {\n const runResults = await Promise.all(\n providers.map(async (provider) => {\n let result: BenchmarkResult\n\n try {\n const taskResult = await withTimeout((signal) => provider.run({\n prompt: task.prompt,\n schema: task.schema,\n tools: task.tools,\n signal,\n timeout,\n }), timeout)\n\n const scores = await Promise.all(\n scorers.map((scorer) => scorer({ task, result: taskResult }, provider.id))\n )\n\n result = {\n providerId: provider.id,\n taskName: task.name,\n run,\n scores,\n raw: {\n output: taskResult.output,\n latencyMs: taskResult.latencyMs,\n usage: taskResult.usage,\n toolCalls: taskResult.toolCalls,\n },\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n\n result = {\n providerId: provider.id,\n taskName: task.name,\n run,\n scores: [],\n error: message,\n raw: { output: '', latencyMs: 0 },\n }\n }\n\n onResult?.(result)\n return result\n })\n )\n\n results.push(...runResults)\n }\n }\n\n return results\n}\n","/** Format a USD cost with adaptive precision (always 2+ significant figures). */\nconst MAX_FRACTION_DIGITS = 100\nexport function formatCost(usd: number | undefined): string {\n if (usd === undefined) return '—'\n if (usd === 0) return '$0.00'\n if (usd >= 0.01) return `~$${usd.toFixed(2)}`\n const digits = Math.min(\n MAX_FRACTION_DIGITS,\n Math.max(4, -Math.floor(Math.log10(Math.abs(usd))) + 1),\n )\n return `~$${usd.toFixed(digits).replace(/0+$/, '')}`\n}\n\n/** Format a numeric delta with explicit sign. */\nexport function formatDelta(delta: number, precision: number = 4): string {\n const sign = delta >= 0 ? '+' : ''\n return `${sign}${delta.toFixed(precision)}`\n}\n","import type { BenchmarkResult } from '../runner.js'\n\n// ── Shared types ────────────────────────────────────────────────────\n\nexport interface AggregatedDetails {\n costUsd: number | undefined\n totalTokens: number | undefined\n}\n\nexport interface ProviderTaskData {\n providerId: string\n avgScores: Record<string, number>\n avgDetails: AggregatedDetails\n latencyMs: number | undefined\n allErrors: boolean\n errorCount: number\n}\n\nexport interface ColumnStats {\n values: Map<string, number | undefined>\n best: number | undefined\n worst: number | undefined\n}\n\nexport type Medal = 'gold' | 'silver' | 'bronze' | 'none'\n\nexport interface GroupedResults {\n tasks: string[]\n providers: string[]\n scorerNames: string[]\n grouped: Map<string, BenchmarkResult[]>\n byProvider: Map<string, BenchmarkResult[]>\n hasErrors: boolean\n maxRun: number\n}\n\n// ── Grouping ────────────────────────────────────────────────────────\n\nexport function groupResults(results: BenchmarkResult[]): GroupedResults {\n const taskSet = new Set<string>()\n const providerSet = new Set<string>()\n const scorerSet = new Set<string>()\n const grouped = new Map<string, BenchmarkResult[]>()\n const byProvider = new Map<string, BenchmarkResult[]>()\n let hasErrors = false\n let maxRun = 0\n\n for (const r of results) {\n taskSet.add(r.taskName)\n providerSet.add(r.providerId)\n for (const s of r.scores) scorerSet.add(s.name)\n if (r.error) hasErrors = true\n if (r.run > maxRun) maxRun = r.run\n\n const key = `${r.taskName}::${r.providerId}`\n let group = grouped.get(key)\n if (!group) { group = []; grouped.set(key, group) }\n group.push(r)\n\n let provGroup = byProvider.get(r.providerId)\n if (!provGroup) { provGroup = []; byProvider.set(r.providerId, provGroup) }\n provGroup.push(r)\n }\n\n return {\n tasks: [...taskSet],\n providers: [...providerSet],\n scorerNames: [...scorerSet],\n grouped,\n byProvider,\n hasErrors,\n maxRun,\n }\n}\n\n// ── Aggregation ─────────────────────────────────────────────────────\n\nexport function aggregateProviderTask(\n providerId: string,\n grouped: Map<string, BenchmarkResult[]>,\n task: string\n): ProviderTaskData {\n const taskResults = grouped.get(`${task}::${providerId}`) ?? []\n const errorResults = taskResults.filter(r => r.error)\n const successResults = taskResults.filter(r => !r.error)\n\n if (successResults.length === 0) {\n return {\n providerId,\n avgScores: {},\n avgDetails: { costUsd: undefined, totalTokens: undefined },\n latencyMs: undefined,\n allErrors: errorResults.length > 0,\n errorCount: errorResults.length,\n }\n }\n\n return {\n providerId,\n avgScores: averageScores(successResults),\n avgDetails: averageDetails(successResults),\n latencyMs: average(successResults.map(r => r.raw.latencyMs)),\n allErrors: false,\n errorCount: errorResults.length,\n }\n}\n\nexport function averageScores(results: BenchmarkResult[]): Record<string, number> {\n const sums: Record<string, number> = {}\n const counts: Record<string, number> = {}\n\n for (const result of results) {\n for (const score of result.scores) {\n if (score.value < 0) continue\n sums[score.name] = (sums[score.name] ?? 0) + score.value\n counts[score.name] = (counts[score.name] ?? 0) + 1\n }\n }\n\n const avgs: Record<string, number> = {}\n for (const name of Object.keys(sums)) {\n avgs[name] = sums[name]! / counts[name]!\n }\n return avgs\n}\n\nexport function averageDetails(results: BenchmarkResult[]): AggregatedDetails {\n let costSum = 0\n let costCount = 0\n let tokenSum = 0\n let tokenCount = 0\n\n for (const result of results) {\n const costScore = result.scores.find((s) => s.name === 'cost')\n const details = costScore?.details as {\n estimatedUsd?: number | null\n totalTokens?: number\n } | undefined\n\n if (details?.estimatedUsd != null) {\n costSum += details.estimatedUsd\n costCount++\n }\n if (details?.totalTokens != null) {\n tokenSum += details.totalTokens\n tokenCount++\n }\n }\n\n return {\n costUsd: costCount > 0 ? costSum / costCount : undefined,\n totalTokens: tokenCount > 0 ? Math.round(tokenSum / tokenCount) : undefined,\n }\n}\n\nexport function average(nums: number[]): number | undefined {\n if (nums.length === 0) return undefined\n return nums.reduce((a, b) => a + b, 0) / nums.length\n}\n\n// ── Column statistics & medals ──────────────────────────────────────\n\nexport function computeColumnStats(\n providerData: ProviderTaskData[],\n scorerNames: string[]\n): Map<string, ColumnStats> {\n const stats = new Map<string, ColumnStats>()\n const valid = providerData.filter(p => !p.allErrors)\n\n if (scorerNames.includes('latency')) {\n const values = new Map<string, number | undefined>()\n for (const p of providerData) {\n values.set(p.providerId, p.allErrors ? undefined : p.latencyMs)\n }\n const nums = valid.map(p => p.latencyMs).filter((v): v is number => v !== undefined)\n stats.set('latency', {\n values,\n best: nums.length > 0 ? Math.min(...nums) : undefined,\n worst: nums.length > 0 ? Math.max(...nums) : undefined,\n })\n }\n\n if (scorerNames.includes('cost')) {\n const costValues = new Map<string, number | undefined>()\n const tokenValues = new Map<string, number | undefined>()\n for (const p of providerData) {\n costValues.set(p.providerId, p.allErrors ? undefined : p.avgDetails.costUsd)\n tokenValues.set(p.providerId, p.allErrors ? undefined : p.avgDetails.totalTokens)\n }\n const costNums = valid.map(p => p.avgDetails.costUsd).filter((v): v is number => v !== undefined)\n const tokenNums = valid.map(p => p.avgDetails.totalTokens).filter((v): v is number => v !== undefined)\n stats.set('cost', {\n values: costValues,\n best: costNums.length > 0 ? Math.min(...costNums) : undefined,\n worst: costNums.length > 0 ? Math.max(...costNums) : undefined,\n })\n stats.set('tokens', {\n values: tokenValues,\n best: tokenNums.length > 0 ? Math.min(...tokenNums) : undefined,\n worst: tokenNums.length > 0 ? Math.max(...tokenNums) : undefined,\n })\n }\n\n for (const name of scorerNames) {\n if (name === 'latency' || name === 'cost') continue\n const values = new Map<string, number | undefined>()\n for (const p of providerData) {\n values.set(p.providerId, p.allErrors ? undefined : p.avgScores[name])\n }\n const nums = valid.map(p => p.avgScores[name]).filter((v): v is number => v !== undefined)\n stats.set(name, {\n values,\n best: nums.length > 0 ? Math.max(...nums) : undefined,\n worst: nums.length > 0 ? Math.min(...nums) : undefined,\n })\n }\n\n return stats\n}\n\n/** Scorers that measure output quality (vs efficiency metrics like latency/cost). */\nconst QUALITY_SCORERS = new Set([\n 'correctness', 'schema-correctness', 'fuzzy-similarity', 'llm-judge-correctness', 'tool-usage',\n])\n\n/**\n * Check whether a provider passes the quality gate: it must score > 0\n * on at least one quality scorer. If no quality scorers are present,\n * all providers pass.\n */\nexport function passesQualityGate(\n providerId: string,\n columnStats: Map<string, ColumnStats>\n): boolean {\n const qualityColumns = [...columnStats.keys()].filter(k => QUALITY_SCORERS.has(k))\n if (qualityColumns.length === 0) return true\n return qualityColumns.some(col => {\n const val = columnStats.get(col)?.values.get(providerId)\n return val !== undefined && val > 0\n })\n}\n\nexport function computeMedals(\n columnStats: Map<string, ColumnStats>,\n providerIds: string[]\n): Map<string, Medal> {\n const medals = new Map<string, Medal>()\n\n if (providerIds.length < 2) {\n for (const id of providerIds) medals.set(id, 'none')\n return medals\n }\n\n // Quality gate: providers that score 0 on ALL quality scorers are ineligible\n const eligible = new Set(providerIds.filter(id => passesQualityGate(id, columnStats)))\n\n // Count quality wins and efficiency wins separately\n const qualityWins = new Map<string, number>()\n const efficiencyWins = new Map<string, number>()\n for (const id of providerIds) {\n qualityWins.set(id, 0)\n efficiencyWins.set(id, 0)\n }\n\n for (const [colName, colStats] of columnStats) {\n if (colStats.best === undefined) continue\n const bestProviders = [...colStats.values.entries()]\n .filter(([, v]) => v !== undefined && v === colStats.best)\n if (bestProviders.length === 1) {\n const winnerId = bestProviders[0]![0]\n if (QUALITY_SCORERS.has(colName)) {\n qualityWins.set(winnerId, (qualityWins.get(winnerId) ?? 0) + 1)\n } else {\n efficiencyWins.set(winnerId, (efficiencyWins.get(winnerId) ?? 0) + 1)\n }\n }\n }\n\n const totalWins = [...qualityWins.values()].reduce((a, b) => a + b, 0)\n + [...efficiencyWins.values()].reduce((a, b) => a + b, 0)\n if (totalWins === 0) {\n for (const id of providerIds) medals.set(id, 'none')\n return medals\n }\n\n // Rank only eligible providers; ineligible ones always get 'none'\n const eligibleSorted = providerIds\n .filter(id => eligible.has(id))\n .sort((a, b) => {\n const qDiff = (qualityWins.get(b) ?? 0) - (qualityWins.get(a) ?? 0)\n if (qDiff !== 0) return qDiff\n const eDiff = (efficiencyWins.get(b) ?? 0) - (efficiencyWins.get(a) ?? 0)\n if (eDiff !== 0) return eDiff\n return a.localeCompare(b)\n })\n\n const medalList: Medal[] = ['gold', 'silver', 'bronze']\n let rank = 0\n for (let i = 0; i < eligibleSorted.length; i++) {\n if (i > 0) {\n const prevQ = qualityWins.get(eligibleSorted[i - 1]!) ?? 0\n const currQ = qualityWins.get(eligibleSorted[i]!) ?? 0\n if (currQ < prevQ) {\n rank = i\n } else if (currQ === prevQ) {\n const prevE = efficiencyWins.get(eligibleSorted[i - 1]!) ?? 0\n const currE = efficiencyWins.get(eligibleSorted[i]!) ?? 0\n if (currE < prevE) rank = i\n }\n }\n medals.set(eligibleSorted[i]!, rank < medalList.length ? medalList[rank]! : 'none')\n }\n for (const id of providerIds) {\n if (!eligible.has(id)) medals.set(id, 'none')\n }\n\n return medals\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────\n\nexport function providerLabel(providerId: string): string {\n const prefix = providerId.split('/')[0]\n switch (prefix) {\n case 'azure': return '(OpenAI via Azure)'\n case 'openai': return '(OpenAI)'\n case 'anthropic': return '(Anthropic)'\n case 'google': return '(Google)'\n case 'mistral': return '(Mistral)'\n case 'meta': return '(Meta)'\n case 'deepseek': return '(DeepSeek)'\n case 'cohere': return '(Cohere)'\n case 'qwen': return '(Qwen)'\n case 'xai': return '(xAI)'\n case 'minimax': return '(MiniMax)'\n case 'moonshot': return '(Moonshot / Kimi)'\n case 'perplexity': return '(Perplexity)'\n case 'amazon': return '(Amazon)'\n case 'nvidia': return '(NVIDIA)'\n case 'microsoft': return '(Microsoft)'\n case 'ai21': return '(AI21 Labs)'\n case 'bytedance': return '(ByteDance)'\n case 'together': return '(Together AI)'\n case 'fireworks': return '(Fireworks AI)'\n case 'groq': return '(Groq)'\n case 'cerebras': return '(Cerebras)'\n default: return `(${prefix})`\n }\n}\n\nexport function apiKeyHint(providerId: string, error: string): string | undefined {\n const lower = error.toLowerCase()\n const isAuthError = lower.includes('api key') || lower.includes('401') ||\n lower.includes('unauthorized') || lower.includes('authentication') ||\n lower.includes('incorrect api key') || lower.includes('apikey')\n\n if (!isAuthError) return undefined\n\n const prefix = providerId.split('/')[0]\n switch (prefix) {\n case 'openai': return 'Set: export OPENAI_API_KEY=sk-...'\n case 'azure': return 'Set: export AZURE_OPENAI_API_KEY=... and AZURE_OPENAI_ENDPOINT=...'\n case 'anthropic': return 'Set: export ANTHROPIC_API_KEY=sk-ant-...'\n case 'google': return 'Set: export GOOGLE_API_KEY=...'\n default: return `Check the API key for ${providerId}`\n }\n}\n\nexport function rankProviders(\n successByProvider: Map<string, BenchmarkResult[]>,\n providers: string[],\n scorerName: string\n): { id: string; avg: number } | undefined {\n const ranked = providers\n .map((id) => {\n const runs = successByProvider.get(id) ?? []\n const scores = runs\n .flatMap((r) => r.scores.filter((s) => s.name === scorerName && s.value >= 0))\n .map((s) => s.value)\n const avg = scores.length > 0 ? scores.reduce((a, b) => a + b, 0) / scores.length : undefined\n return { id, avg }\n })\n .filter((p) => p.avg !== undefined)\n .sort((a, b) => b.avg! - a.avg!)\n\n return ranked[0] ? { id: ranked[0].id, avg: ranked[0].avg! } : undefined\n}\n\nexport function scorerLabel(name: string): string {\n switch (name) {\n case 'correctness': return 'Match'\n case 'schema-correctness': return 'Schema'\n case 'fuzzy-similarity': return 'Fuzzy'\n case 'llm-judge-correctness': return 'Judge'\n case 'tool-usage': return 'Tool'\n default: return name\n }\n}\n\n/** Medal emoji for display */\nexport function medalEmoji(medal: Medal): string {\n switch (medal) {\n case 'gold': return '🥇'\n case 'silver': return '🥈'\n case 'bronze': return '🥉'\n case 'none': return ''\n }\n}\n","import type { BenchmarkResult } from '../runner.js'\nimport { formatCost } from '../utils/format.js'\nimport {\n type ProviderTaskData,\n type ColumnStats,\n groupResults,\n aggregateProviderTask,\n average,\n computeColumnStats,\n computeMedals,\n providerLabel,\n apiKeyHint,\n rankProviders,\n medalEmoji,\n scorerLabel,\n} from './shared.js'\n\n// ── ANSI color palette ──────────────────────────────────────────────────────\n\nconst reset = '\\x1b[0m'\nconst boldCode = '\\x1b[1m'\nconst dimCode = '\\x1b[2m'\nconst green = '\\x1b[32m'\nconst red = '\\x1b[31m'\nconst yellow = '\\x1b[33m'\nconst cyan = '\\x1b[36m'\nconst brightGreen = '\\x1b[92m'\nconst brightWhite = '\\x1b[97m'\n\nfunction bold(s: string) { return `${boldCode}${s}${reset}` }\nfunction dim(s: string) { return `${dimCode}${s}${reset}` }\n\n// ── String utilities ────────────────────────────────────────────────────────\n\nfunction stripAnsi(s: string): string {\n return s.replace(/\\x1b\\[[0-9;]*m/g, '')\n}\n\n/** Display width accounting for wide emoji (medals, trophy = 2 columns) */\nfunction displayWidth(s: string): number {\n const stripped = stripAnsi(s)\n let width = 0\n for (const ch of stripped) {\n const code = ch.codePointAt(0) ?? 0\n if (code >= 0x1F000) width += 2\n else if (code >= 0x2600 && code <= 0x27BF) width += 2\n else width += 1\n }\n return width\n}\n\n/** Pad string to target display width, accounting for ANSI codes and wide chars */\nfunction padCell(str: string, targetWidth: number, align: 'left' | 'right'): string {\n const dw = displayWidth(str)\n const padding = Math.max(0, targetWidth - dw)\n if (align === 'right') return ' '.repeat(padding) + str\n return str + ' '.repeat(padding)\n}\n\n// ── Sparkline bar ───────────────────────────────────────────────────────────\n\ninterface SparkBarParts { fill: string; track: string }\n\nfunction sparkBar(ratio: number, width: number = 8): SparkBarParts {\n const clamped = Math.max(0, Math.min(1, ratio))\n const fillLen = Math.round(clamped * width)\n const fill = '▓'.repeat(fillLen)\n const track = '░'.repeat(width - fillLen)\n return { fill, track }\n}\n\n// ── Box-drawing ─────────────────────────────────────────────────────────────\n\ntype LinePosition = 'top' | 'header' | 'bottom' | 'merge'\n\nfunction drawTableLine(widths: number[], position: LinePosition): string {\n const totalInner = widths.reduce((sum, w) => sum + w + 2, 0) + widths.length - 1\n\n if (position === 'bottom') {\n return dim(`└${'─'.repeat(totalInner)}┘`)\n }\n if (position === 'merge') {\n return dim(`├${'─'.repeat(totalInner)}┤`)\n }\n\n const segments = widths.map(w => '─'.repeat(w + 2))\n if (position === 'top') {\n return dim(`┌${segments.join('┬')}┐`)\n }\n // header separator\n return dim(`├${segments.join('┼')}┤`)\n}\n\nfunction drawTableRow(\n cells: string[],\n widths: number[],\n aligns: ('left' | 'right')[]\n): string {\n const parts = cells.map((cell, i) =>\n ' ' + padCell(cell, widths[i]!, aligns[i]!) + ' '\n )\n return dim('│') + parts.join(dim('│')) + dim('│')\n}\n\n/** Single-cell row spanning the full table width */\nfunction drawSpanRow(content: string, widths: number[]): string {\n const totalInner = widths.reduce((sum, w) => sum + w + 2, 0) + widths.length - 1\n const dw = displayWidth(content)\n const padding = Math.max(0, totalInner - dw - 1)\n return dim('│') + ' ' + content + ' '.repeat(padding) + dim('│')\n}\n\n// ── Column layout ───────────────────────────────────────────────────────────\n\ninterface TableCol {\n label: string\n width: number\n align: 'left' | 'right'\n statsKey?: string\n}\n\nfunction colorByRank(\n text: string,\n value: number | undefined,\n colStats: ColumnStats,\n providerCount: number\n): string {\n if (value === undefined) return dim('—')\n if (providerCount < 2) return text\n if (colStats.best === undefined || colStats.worst === undefined) return text\n if (colStats.best === colStats.worst) return text\n\n if (value === colStats.best) return `${brightGreen}${boldCode}${text}${reset}`\n if (value === colStats.worst) return `${red}${text}${reset}`\n return `${yellow}${text}${reset}`\n}\n\n\n// ── Main reporter ───────────────────────────────────────────────────────────\n\nexport interface ConsoleReporterOptions {\n sparklines?: boolean\n}\n\nexport function consoleReporter(results: BenchmarkResult[], options?: ConsoleReporterOptions): void {\n const showSparklines = options?.sparklines ?? true\n if (results.length === 0) {\n console.log('\\nNo results to display.\\n')\n return\n }\n\n const { tasks, providers, scorerNames, grouped, byProvider, hasErrors, maxRun } = groupResults(results)\n const hasCost = scorerNames.includes('cost')\n const multi = providers.length >= 2\n\n // Title\n const runsPerCell = maxRun\n const runLabel = runsPerCell > 1 ? ` ${dim(`(${runsPerCell} runs each)`)}` : ''\n console.log('')\n console.log(` ${brightWhite}${boldCode}⬡ Agent Duelist${reset}${runLabel}`)\n console.log(` ${dim('━'.repeat(72))}`)\n console.log('')\n\n // Per-task tables\n for (const task of tasks) {\n console.log(` ${bold(`Task: ${task}`)}`)\n console.log('')\n\n // Gather per-provider data for this task (using pre-grouped map)\n const providerData: ProviderTaskData[] = providers.map(providerId =>\n aggregateProviderTask(providerId, grouped, task)\n )\n\n // Compute column stats and medals\n const columnStats = computeColumnStats(providerData, scorerNames)\n const medals = computeMedals(columnStats, providers)\n\n // Build columns — provider width is dynamic, score columns accommodate sparklines\n const maxProviderLen = Math.max(...providers.map(id => id.length))\n const providerWidth = Math.min(35, Math.max(22, maxProviderLen + 5))\n\n const cols: TableCol[] = [\n { label: 'Provider', width: providerWidth, align: 'left' }\n ]\n\n for (const name of scorerNames) {\n if (name === 'latency') {\n cols.push({ label: 'Latency', width: 10, align: 'right', statsKey: 'latency' })\n } else if (name === 'cost') {\n cols.push({ label: 'Cost', width: 12, align: 'right', statsKey: 'cost' })\n cols.push({ label: 'Tokens', width: 9, align: 'right', statsKey: 'tokens' })\n } else {\n cols.push({ label: scorerLabel(name), width: showSparklines ? 15 : 8, align: 'right', statsKey: name })\n }\n }\n\n if (hasErrors) {\n cols.push({ label: 'Status', width: 8, align: 'left' })\n }\n\n const widths = cols.map(c => c.width)\n const aligns = cols.map(c => c.align)\n\n // ┌ top border ┐\n console.log(` ${drawTableLine(widths, 'top')}`)\n\n // │ header row │\n const headerCells = cols.map(c => bold(c.label))\n console.log(` ${drawTableRow(headerCells, widths, aligns)}`)\n\n // ├ header separator ┤\n console.log(` ${drawTableLine(widths, 'header')}`)\n\n // │ data rows │\n for (const pd of providerData) {\n const medal = medalEmoji(medals.get(pd.providerId) ?? 'none')\n const providerCell = medal ? `${medal} ${pd.providerId}` : pd.providerId\n const cells: string[] = [providerCell]\n\n if (pd.allErrors) {\n // All runs failed — dashes everywhere\n for (const col of cols.slice(1)) {\n if (col.label === 'Status') {\n cells.push(`${red}FAIL${reset}`)\n } else {\n cells.push(dim('—'))\n }\n }\n } else {\n for (const col of cols.slice(1)) {\n if (col.label === 'Status') {\n cells.push(\n pd.errorCount > 0\n ? `${yellow}${pd.errorCount} err${reset}`\n : `${green}OK${reset}`\n )\n continue\n }\n\n const statsKey = col.statsKey!\n const colStats = columnStats.get(statsKey)\n\n if (statsKey === 'latency') {\n const ms = pd.latencyMs\n if (ms === undefined) {\n cells.push(dim('—'))\n } else {\n const text = `${Math.round(ms)}ms`\n cells.push(colStats ? colorByRank(text, ms, colStats, providers.length) : text)\n }\n } else if (statsKey === 'cost') {\n const cost = pd.avgDetails.costUsd\n if (cost === undefined) {\n cells.push(dim('—'))\n } else {\n const text = formatCost(cost)\n cells.push(colStats ? colorByRank(text, cost, colStats, providers.length) : text)\n }\n } else if (statsKey === 'tokens') {\n const tokens = pd.avgDetails.totalTokens\n if (tokens === undefined) {\n cells.push(dim('—'))\n } else {\n const text = `${tokens}`\n cells.push(colStats ? colorByRank(text, tokens, colStats, providers.length) : text)\n }\n } else {\n // Score column (0-1 scale) with optional sparkline bar\n const val = pd.avgScores[statsKey]\n if (val === undefined) {\n cells.push(dim('—'))\n } else {\n const pctStr = `${Math.round(val * 100)}%`.padStart(4)\n let coloredPct: string\n if (multi && colStats) {\n coloredPct = colorByRank(pctStr, val, colStats, providers.length)\n } else {\n // Single provider: threshold-based coloring\n if (val >= 0.8) coloredPct = `${green}${pctStr}${reset}`\n else if (val >= 0.5) coloredPct = `${yellow}${pctStr}${reset}`\n else coloredPct = `${red}${pctStr}${reset}`\n }\n if (showSparklines) {\n const { fill, track } = sparkBar(val)\n const barColor = val >= 0.8 ? green : val >= 0.5 ? yellow : red\n cells.push(`${coloredPct} ${barColor}${fill}${reset}${dim(track)}`)\n } else {\n cells.push(coloredPct)\n }\n }\n }\n }\n }\n\n console.log(` ${drawTableRow(cells, widths, aligns)}`)\n }\n\n // Winner row (2+ providers, at least one success)\n if (multi && providerData.some(p => !p.allErrors)) {\n const winnerId = [...medals.entries()].find(([, m]) => m === 'gold')?.[0]\n if (winnerId) {\n console.log(` ${drawTableLine(widths, 'merge')}`)\n const winnerText = `${brightGreen}${boldCode}🏆 Winner: ${winnerId}${reset} ${dim(providerLabel(winnerId))}`\n console.log(` ${drawSpanRow(winnerText, widths)}`)\n }\n }\n\n // └ bottom border ┘\n console.log(` ${drawTableLine(widths, 'bottom')}`)\n console.log('')\n }\n\n // Summary\n printSummary(results, providers, byProvider)\n\n // Errors — deduplicate by provider + error message and add hints\n const errorResults = results.filter((r) => r.error)\n if (errorResults.length > 0) {\n console.log(` ${bold('Errors')}`)\n console.log(` ${dim('━'.repeat(72))}`)\n\n const seen = new Set<string>()\n for (const r of errorResults) {\n const key = `${r.providerId}::${r.error}`\n if (seen.has(key)) continue\n seen.add(key)\n\n const count = errorResults.filter((e) => e.providerId === r.providerId && e.error === r.error).length\n const suffix = count > 1 ? ` (×${count})` : ''\n console.log(` ${red}✖${reset} ${r.providerId}: ${r.error}${suffix}`)\n\n const hint = apiKeyHint(r.providerId, r.error ?? '')\n if (hint) console.log(` ${dim(hint)}`)\n }\n console.log('')\n }\n\n if (hasCost) {\n console.log(dim(` Costs estimated from OpenRouter pricing catalog. Run npx tsx scripts/update-pricing.ts to refresh.`))\n console.log('')\n }\n}\n\n// ── Summary section ─────────────────────────────────────────────────────────\n\nfunction printSummary(results: BenchmarkResult[], providers: string[], byProvider: Map<string, BenchmarkResult[]>) {\n const successResults = results.filter((r) => !r.error)\n if (successResults.length === 0) return\n\n // Pre-compute success results per provider from the grouped map\n const successByProvider = new Map<string, BenchmarkResult[]>()\n for (const id of providers) {\n successByProvider.set(id, (byProvider.get(id) ?? []).filter((r) => !r.error))\n }\n\n console.log(` ${bold('Summary')}`)\n console.log(` ${dim('━'.repeat(72))}`)\n console.log('')\n\n const single = providers.length === 1\n\n // Best correctness (prefer llm-judge, fallback to correctness)\n const correctnessKey = successResults.some((r) => r.scores.some((s) => s.name === 'llm-judge-correctness' && s.value >= 0))\n ? 'llm-judge-correctness'\n : 'correctness'\n\n const byCorrectness = rankProviders(successByProvider, providers, correctnessKey)\n if (byCorrectness) {\n const medal = single ? `${cyan}◆${reset}` : '🥇'\n const pctStr = `${Math.round(byCorrectness.avg * 100)}%`\n if (single) {\n console.log(` ${medal} Avg correctness: ${brightGreen}${boldCode}${pctStr}${reset}`)\n } else {\n console.log(` ${medal} Most correct: ${bold(byCorrectness.id)} ${dim(providerLabel(byCorrectness.id))} ${brightGreen}${boldCode}${pctStr}${reset}`)\n }\n }\n\n // Fastest\n const byLatency = providers\n .map((id) => {\n const runs = successByProvider.get(id) ?? []\n const avg = average(runs.map((r) => r.raw.latencyMs))\n return { id, avg: avg ?? Infinity }\n })\n .sort((a, b) => a.avg - b.avg)[0]\n\n if (byLatency && byLatency.avg !== Infinity) {\n const medal = single ? `${cyan}◆${reset}` : '🥇'\n const msStr = `${Math.round(byLatency.avg)}ms`\n if (single) {\n console.log(` ${medal} Avg latency: ${brightGreen}${boldCode}${msStr}${reset}`)\n } else {\n console.log(` ${medal} Fastest: ${bold(byLatency.id)} ${dim(providerLabel(byLatency.id))} ${brightGreen}${boldCode}${msStr}${reset}`)\n }\n }\n\n // Cheapest\n const byCost = providers\n .map((id) => {\n const runs = successByProvider.get(id) ?? []\n const costs = runs\n .map((r) => {\n const s = r.scores.find((s) => s.name === 'cost')\n return s && s.value >= 0 ? s.value : undefined\n })\n .filter((c): c is number => c !== undefined)\n const avg = costs.length > 0 ? costs.reduce((a, b) => a + b, 0) / costs.length : undefined\n return { id, avg }\n })\n .filter((p) => p.avg !== undefined)\n .sort((a, b) => a.avg! - b.avg!)[0]\n\n if (byCost?.avg !== undefined) {\n const medal = single ? `${cyan}◆${reset}` : '🥇'\n const costStr = formatCost(byCost.avg)\n if (single) {\n console.log(` ${medal} Avg cost: ${brightGreen}${boldCode}${costStr}${reset}`)\n } else {\n console.log(` ${medal} Cheapest: ${bold(byCost.id)} ${dim(providerLabel(byCost.id))} ${brightGreen}${boldCode}${costStr}${reset}`)\n }\n }\n\n // Overall winner (2+ providers) — quality-first\n if (!single && byCorrectness && byCorrectness.avg > 0) {\n console.log('')\n const pct = `${Math.round(byCorrectness.avg * 100)}%`\n console.log(` 🏆 Overall: ${brightGreen}${boldCode}${byCorrectness.id}${reset} ${dim(providerLabel(byCorrectness.id))} ${dim(`(${pct} avg correctness)`)}`)\n }\n\n console.log('')\n}\n\n","import type { BenchmarkResult } from '../runner.js'\n\nexport function jsonReporter(results: BenchmarkResult[]): string {\n return JSON.stringify(\n {\n timestamp: new Date().toISOString(),\n summary: buildSummary(results),\n results,\n },\n null,\n 2\n )\n}\n\nfunction buildSummary(results: BenchmarkResult[]) {\n const tasks = [...new Set(results.map((r) => r.taskName))]\n const providers = [...new Set(results.map((r) => r.providerId))]\n\n return {\n totalBenchmarks: results.length,\n tasks: tasks.length,\n providers: providers.length,\n providerIds: providers,\n taskNames: tasks,\n }\n}\n","import type { ArenaProvider } from './providers/types.js'\nimport type { ArenaTask } from './tasks/types.js'\nimport type { BuiltInScorerName } from './scorers/types.js'\nimport { resolveScorers } from './scorers/index.js'\nimport { runBenchmarks, type BenchmarkResult } from './runner.js'\nimport { consoleReporter } from './reporter/console.js'\nimport { jsonReporter } from './reporter/json.js'\n\nexport interface ArenaConfig {\n providers: ArenaProvider[]\n tasks: ArenaTask[]\n scorers?: BuiltInScorerName[]\n runs?: number\n /** Model to use for llm-judge-correctness (e.g. 'gemini-3.1-pro-preview'). Falls back to DUELIST_JUDGE_MODEL env var, then gpt-5-mini. */\n judgeModel?: string\n /** Show sparkline bars next to percentage scores. Disable if your terminal doesn't render Unicode blocks. Default: true */\n sparklines?: boolean\n /** Per-request timeout in milliseconds. Requests exceeding this are marked as failures. Default: 60000 (60s) */\n timeout?: number\n}\n\nexport interface RunOptions {\n /** Called after each individual benchmark completes */\n onResult?: (result: BenchmarkResult) => void\n}\n\nexport interface Arena {\n config: ArenaConfig\n run(options?: RunOptions): Promise<BenchmarkResult[]>\n}\n\nexport function defineArena(config: ArenaConfig): Arena {\n if (config.providers.length === 0) {\n throw new Error('At least one provider is required')\n }\n\n const scorerNames = config.scorers ?? ['latency', 'cost', 'correctness']\n const scorerFns = resolveScorers(scorerNames, config.judgeModel, config.timeout)\n const runs = config.runs ?? 1\n\n return {\n config,\n\n async run(options?: RunOptions): Promise<BenchmarkResult[]> {\n if (config.tasks.length === 0) {\n throw new Error('At least one task is required')\n }\n return runBenchmarks({\n providers: config.providers,\n tasks: config.tasks,\n scorers: scorerFns,\n runs,\n timeout: config.timeout,\n onResult: options?.onResult,\n })\n },\n }\n}\n\n// Also export reporters for programmatic use\nexport { consoleReporter, jsonReporter }\n","import type { CiReport, ScorerComparison, CostSummary, ScorerStats } from '../ci.js'\nimport type { BenchmarkResult } from '../runner.js'\nimport { formatDelta } from '../utils/format.js'\n\nexport const COMMENT_MARKER = '<!-- duelist-ci-report -->'\n\nexport function markdownReporter(report: CiReport, _current: BenchmarkResult[]): string {\n const lines: string[] = [COMMENT_MARKER, '']\n\n // Header\n const status = report.failed ? '🔴 Failed' : '🟢 Passed'\n lines.push(`## ⬡ Agent Duelist CI — ${status}`)\n lines.push('')\n\n // Comparison table\n if (report.comparisons.length > 0) {\n lines.push(markdownComparisonTable(report.comparisons))\n lines.push('')\n }\n\n // Cost summary\n if (report.cost.totalUsd > 0 || report.cost.budget !== undefined) {\n lines.push(markdownCostSummary(report.cost))\n lines.push('')\n }\n\n // Flakiness warnings\n if (report.flakyResults.length > 0) {\n lines.push('### ⚠️ Flaky Results')\n lines.push('')\n lines.push('These scorer/task combinations have high variance (CV > 0.3). Consider increasing `runs` or tightening prompts.')\n lines.push('')\n for (const f of report.flakyResults) {\n lines.push(`- **${f.providerId}** × ${f.taskName} → ${f.scorerName} (CV = ${f.current.cv.toFixed(2)})`)\n }\n lines.push('')\n }\n\n // Failure reasons\n if (report.failureReasons.length > 0) {\n lines.push('### Failure Reasons')\n lines.push('')\n for (const reason of report.failureReasons) {\n lines.push(`- ${reason}`)\n }\n lines.push('')\n }\n\n lines.push('---')\n lines.push('*Generated by [agent-duelist](https://github.com/DataGobes/agent-duelist) CI*')\n\n return lines.join('\\n')\n}\n\nexport function markdownComparisonTable(comparisons: ScorerComparison[]): string {\n const lines: string[] = []\n\n lines.push('| Provider | Task | Scorer | Baseline | Current | Delta | Status |')\n lines.push('|----------|------|--------|----------|---------|-------|--------|')\n\n for (const c of comparisons) {\n const baselineStr = c.baseline ? formatStats(c.baseline) : '—'\n const currentStr = formatStats(c.current)\n const deltaStr = c.delta !== null ? formatDelta(c.delta, 3) : '—'\n const status = statusIndicator(c)\n\n lines.push(`| ${c.providerId} | ${c.taskName} | ${c.scorerName} | ${baselineStr} | ${currentStr} | ${deltaStr} | ${status} |`)\n }\n\n return lines.join('\\n')\n}\n\nexport function markdownCostSummary(cost: CostSummary): string {\n const lines: string[] = []\n\n lines.push('### 💰 Cost Summary')\n lines.push('')\n lines.push(`**Total:** $${cost.totalUsd.toFixed(4)}`)\n\n if (cost.budget !== undefined) {\n const pct = cost.budget > 0 ? ((cost.totalUsd / cost.budget) * 100).toFixed(0) : '∞'\n const indicator = cost.overBudget ? '🔴' : '🟢'\n lines.push(`**Budget:** $${cost.budget.toFixed(2)} (${pct}% used) ${indicator}`)\n }\n\n if (cost.perProvider.size > 1) {\n lines.push('')\n lines.push('| Provider | Cost |')\n lines.push('|----------|------|')\n for (const [provider, usd] of cost.perProvider) {\n lines.push(`| ${provider} | $${usd.toFixed(4)} |`)\n }\n }\n\n return lines.join('\\n')\n}\n\nfunction formatStats(stats: ScorerStats): string {\n if (stats.n > 1) {\n const margin = (stats.ci95Upper - stats.ci95Lower) / 2\n return `${stats.mean.toFixed(3)} ± ${margin.toFixed(3)}`\n }\n return stats.mean.toFixed(3)\n}\n\nfunction statusIndicator(c: ScorerComparison): string {\n if (c.regressed) return '🔴 regressed'\n if (c.improved) return '🟢 improved'\n if (c.baseline === null) return '🆕 new'\n return '⚪ unchanged'\n}\n","import type { BenchmarkResult } from '../runner.js'\nimport { formatCost } from '../utils/format.js'\nimport {\n type ProviderTaskData,\n type Medal,\n groupResults,\n aggregateProviderTask,\n average,\n computeColumnStats,\n computeMedals,\n providerLabel,\n apiKeyHint,\n rankProviders,\n medalEmoji,\n scorerLabel,\n} from './shared.js'\n\n// ── XSS prevention ──────────────────────────────────────────────────\n\nfunction esc(s: string): string {\n return s\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;')\n}\n\n// ── Main reporter ───────────────────────────────────────────────────\n\nexport function htmlReporter(results: BenchmarkResult[]): string {\n if (results.length === 0) {\n return emptyReport()\n }\n\n const { tasks, providers, scorerNames, grouped, byProvider, maxRun } = groupResults(results)\n const hasCost = scorerNames.includes('cost')\n const multi = providers.length >= 2\n const runsLabel = maxRun > 1 ? `${maxRun} runs each` : '1 run'\n\n // Build per-task table data\n const taskSections = tasks.map(task => {\n const providerData = providers.map(id => aggregateProviderTask(id, grouped, task))\n const columnStats = computeColumnStats(providerData, scorerNames)\n const medals = computeMedals(columnStats, providers)\n const winnerId = multi\n ? [...medals.entries()].find(([, m]) => m === 'gold')?.[0]\n : undefined\n return { task, providerData, columnStats, medals, winnerId }\n })\n\n // Summary stats\n const successResults = results.filter(r => !r.error)\n const successByProvider = new Map<string, BenchmarkResult[]>()\n for (const id of providers) {\n successByProvider.set(id, (byProvider.get(id) ?? []).filter(r => !r.error))\n }\n\n const correctnessKey = successResults.some(r =>\n r.scores.some(s => s.name === 'llm-judge-correctness' && s.value >= 0)\n ) ? 'llm-judge-correctness' : 'correctness'\n\n const byCorrectness = rankProviders(successByProvider, providers, correctnessKey)\n const byLatency = providers\n .map(id => {\n const runs = successByProvider.get(id) ?? []\n const avg = average(runs.map(r => r.raw.latencyMs))\n return { id, avg: avg ?? Infinity }\n })\n .sort((a, b) => a.avg - b.avg)[0]\n\n const byCost = providers\n .map(id => {\n const runs = successByProvider.get(id) ?? []\n const costs = runs\n .map(r => {\n const s = r.scores.find(s => s.name === 'cost')\n return s && s.value >= 0 ? s.value : undefined\n })\n .filter((c): c is number => c !== undefined)\n const avg = costs.length > 0 ? costs.reduce((a, b) => a + b, 0) / costs.length : undefined\n return { id, avg }\n })\n .filter(p => p.avg !== undefined)\n .sort((a, b) => a.avg! - b.avg!)[0]\n\n // Overall winner — quality-first (fastest/cheapest are shown separately)\n let overallWinner: string | undefined\n if (multi && byCorrectness && byCorrectness.avg > 0) {\n overallWinner = byCorrectness.id\n }\n\n // Error details\n const errorResults = results.filter(r => r.error)\n const deduped = dedupeErrors(errorResults)\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Agent Duelist Report</title>\n<meta name=\"description\" content=\"LLM provider benchmark results — ${providers.length} provider${providers.length !== 1 ? 's' : ''}, ${tasks.length} task${tasks.length !== 1 ? 's' : ''}\">\n<meta property=\"og:title\" content=\"Agent Duelist Report\">\n<meta property=\"og:description\" content=\"LLM provider benchmark: ${providers.map(esc).join(' vs ')}\">\n<meta property=\"og:type\" content=\"website\">\n${renderStyle()}\n</head>\n<body>\n<div class=\"bg-mesh\"><div class=\"bg-mesh-extra\"></div></div>\n<div class=\"report\">\n\n${renderHeader(runsLabel, providers.length, tasks.length)}\n\n${tasks.length > 1 ? renderTabs(tasks) : ''}\n\n<main>\n${taskSections.map((s, i) => renderTaskSection(\n s.task, s.providerData, s.columnStats, s.medals, s.winnerId,\n scorerNames, hasCost, multi, i\n )).join('\\n')}\n</main>\n\n${renderSummary(byCorrectness, byLatency, byCost, overallWinner, multi)}\n\n${deduped.length > 0 ? renderErrors(deduped) : ''}\n\n${renderFooter()}\n\n</div>\n${renderScript(tasks.length)}\n</body>\n</html>`\n}\n\n// ── Empty report ────────────────────────────────────────────────────\n\nfunction emptyReport(): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Agent Duelist Report</title>\n${renderStyle()}\n</head>\n<body>\n<div class=\"bg-mesh\"><div class=\"bg-mesh-extra\"></div></div>\n<div class=\"report\">\n${renderHeader('0 runs', 0, 0)}\n<main><p class=\"empty-msg\">No results to display.</p></main>\n${renderFooter()}\n</div>\n</body>\n</html>`\n}\n\n// ── Error deduplication ─────────────────────────────────────────────\n\ninterface DedupedError {\n providerId: string\n error: string\n count: number\n hint?: string\n}\n\nfunction dedupeErrors(errorResults: BenchmarkResult[]): DedupedError[] {\n const seen = new Map<string, DedupedError>()\n for (const r of errorResults) {\n const key = `${r.providerId}::${r.error}`\n const existing = seen.get(key)\n if (existing) {\n existing.count++\n } else {\n seen.set(key, {\n providerId: r.providerId,\n error: r.error ?? 'Unknown error',\n count: 1,\n hint: apiKeyHint(r.providerId, r.error ?? ''),\n })\n }\n }\n return [...seen.values()]\n}\n\n// ── Render: style ───────────────────────────────────────────────────\n\nfunction renderStyle(): string {\n return `<style>\n:root {\n --bg: #0f172a;\n --bg-deep: #020617;\n --panel: rgba(15, 23, 42, 0.85);\n --accent: #f59e0b;\n --accent-soft: rgba(245, 158, 11, 0.15);\n --text: #e2e8f0;\n --muted: #94a3b8;\n --border: rgba(148, 163, 184, 0.15);\n --green: #22c55e;\n --red: #ef4444;\n --yellow: #eab308;\n --radius: 12px;\n --mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Monaco, Consolas, monospace;\n --sans: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n}\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nhtml, body {\n font-family: var(--sans);\n background: var(--bg);\n color: var(--text);\n min-height: 100vh;\n}\nbody { padding: 24px; display: flex; justify-content: center; }\n\n/* Animated gradient mesh */\n.bg-mesh {\n position: fixed; inset: 0; z-index: 0;\n overflow: hidden; pointer-events: none;\n}\n.bg-mesh::before, .bg-mesh::after {\n content: \"\"; position: absolute; border-radius: 50%;\n filter: blur(120px); opacity: 0.4;\n}\n.bg-mesh::before {\n width: 600px; height: 600px;\n background: radial-gradient(circle, rgba(245,158,11,0.18), transparent 70%);\n top: -10%; left: -5%;\n animation: meshDrift1 18s ease-in-out infinite alternate;\n}\n.bg-mesh::after {\n width: 500px; height: 500px;\n background: radial-gradient(circle, rgba(139,92,246,0.12), transparent 70%);\n bottom: -10%; right: -5%;\n animation: meshDrift2 22s ease-in-out infinite alternate;\n}\n.bg-mesh-extra {\n position: absolute; width: 400px; height: 400px;\n border-radius: 50%; filter: blur(100px); opacity: 0.3;\n background: radial-gradient(circle, rgba(56,189,248,0.12), transparent 70%);\n top: 50%; left: 60%;\n animation: meshDrift3 15s ease-in-out infinite alternate;\n}\n@keyframes meshDrift1 { from { transform: translate(0,0) scale(1); } to { transform: translate(80px,60px) scale(1.15); } }\n@keyframes meshDrift2 { from { transform: translate(0,0) scale(1); } to { transform: translate(-60px,-50px) scale(1.1); } }\n@keyframes meshDrift3 { from { transform: translate(0,0) scale(1); } to { transform: translate(-40px,40px) scale(1.2); } }\n\n/* Report container */\n.report {\n position: relative; z-index: 1;\n width: 100%; max-width: 960px;\n}\n\n/* Header */\n.report-header {\n display: flex; justify-content: space-between; align-items: center;\n padding: 20px 0; margin-bottom: 8px;\n}\n.report-brand {\n display: flex; align-items: center; gap: 10px;\n text-decoration: none; color: var(--muted);\n font-weight: 600; font-size: 14px;\n letter-spacing: 0.04em; text-transform: uppercase;\n}\n.report-brand:hover { color: var(--text); }\n.brand-icon {\n width: 32px; height: 32px; border-radius: 8px;\n background: linear-gradient(135deg, var(--accent-soft), rgba(245,158,11,0.05));\n border: 1px solid rgba(245,158,11,0.3);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px;\n}\n.report-meta {\n font-size: 12px; color: var(--muted);\n text-align: right; line-height: 1.6;\n}\n\n/* Task tabs */\n.task-tabs {\n display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap;\n}\n.task-tab {\n padding: 6px 16px; border-radius: 999px;\n border: 1px solid var(--border);\n background: transparent; color: var(--muted);\n font-size: 13px; font-weight: 500; cursor: pointer;\n transition: all 150ms ease;\n}\n.task-tab:hover { border-color: rgba(245,158,11,0.3); color: var(--text); }\n.task-tab.active {\n background: var(--accent-soft);\n border-color: rgba(245,158,11,0.4);\n color: var(--accent);\n}\n\n/* Task sections */\n.task-section { display: none; }\n.task-section.active { display: block; }\n.task-name {\n font-size: 18px; font-weight: 600;\n margin-bottom: 12px; letter-spacing: -0.01em;\n}\n\n/* Results table */\n.results-table {\n width: 100%; border-collapse: collapse;\n font-size: 13px; margin-bottom: 16px;\n border-radius: var(--radius); overflow: hidden;\n border: 1px solid var(--border);\n}\n.results-table th, .results-table td {\n padding: 10px 14px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n}\n.results-table th {\n background: rgba(0,0,0,0.3);\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.05em;\n color: var(--muted); cursor: pointer;\n user-select: none; white-space: nowrap;\n}\n.results-table th:hover { color: var(--text); }\n.results-table th .sort-arrow { margin-left: 4px; font-size: 10px; }\n.results-table tbody tr {\n background: var(--panel);\n transition: background 120ms ease;\n}\n.results-table tbody tr:hover { background: rgba(15,23,42,0.95); }\n.results-table tbody tr:last-child td { border-bottom: none; }\n\n/* Score cell with progress bar */\n.score-cell { position: relative; min-width: 90px; }\n.score-bar {\n position: absolute; left: 0; bottom: 0;\n height: 3px; border-radius: 2px;\n transition: width 300ms ease;\n}\n.score-val { position: relative; z-index: 1; font-family: var(--mono); font-size: 12px; }\n\n/* Color ranking */\n.rank-best { color: var(--green); font-weight: 600; }\n.rank-worst { color: var(--red); }\n.rank-mid { color: var(--yellow); }\n.rank-neutral { color: var(--text); }\n.rank-error { color: var(--muted); }\n\n/* Winner banner */\n.task-winner {\n display: flex; align-items: center; gap: 10px;\n padding: 12px 18px; margin-bottom: 20px;\n border-radius: var(--radius);\n background: linear-gradient(135deg, rgba(34,197,94,0.08), rgba(34,197,94,0.02));\n border: 1px solid rgba(34,197,94,0.2);\n font-size: 14px; font-weight: 500;\n}\n.task-winner .trophy { font-size: 20px; }\n.task-winner .winner-name { color: var(--green); font-weight: 600; }\n.task-winner .winner-label { color: var(--muted); font-size: 12px; margin-left: 4px; }\n\n/* Summary cards */\n.summary-section { margin-top: 32px; }\n.summary-title {\n font-size: 16px; font-weight: 600;\n margin-bottom: 12px; color: var(--text);\n}\n.summary-cards {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px;\n}\n.summary-card {\n padding: 16px; border-radius: var(--radius);\n border: 1px solid var(--border);\n background: var(--panel);\n}\n.summary-card .card-label {\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.05em;\n color: var(--muted); margin-bottom: 6px;\n}\n.summary-card .card-value {\n font-size: 20px; font-weight: 700;\n color: var(--green); font-family: var(--mono);\n}\n.summary-card .card-provider {\n font-size: 12px; color: var(--muted); margin-top: 4px;\n}\n\n/* Errors */\n.errors-section { margin-top: 24px; }\n.errors-title {\n font-size: 16px; font-weight: 600;\n margin-bottom: 8px; color: var(--red);\n cursor: pointer;\n}\n.errors-list {\n border-radius: var(--radius);\n border: 1px solid rgba(239,68,68,0.2);\n background: rgba(239,68,68,0.04);\n overflow: hidden;\n}\n.error-item {\n padding: 10px 16px;\n border-bottom: 1px solid rgba(239,68,68,0.1);\n font-size: 13px;\n}\n.error-item:last-child { border-bottom: none; }\n.error-provider { font-weight: 600; color: var(--text); }\n.error-msg { color: var(--muted); margin-left: 8px; }\n.error-count { color: var(--muted); font-size: 11px; }\n.error-hint { color: var(--muted); font-size: 12px; margin-top: 4px; font-style: italic; }\n\n/* Footer */\n.report-footer {\n margin-top: 40px; padding: 20px 0;\n border-top: 1px solid var(--border);\n display: flex; justify-content: space-between; align-items: center;\n flex-wrap: wrap; gap: 12px;\n}\n.footer-brand {\n font-size: 13px; color: var(--muted);\n}\n.footer-brand a {\n color: var(--accent); text-decoration: none; font-weight: 500;\n}\n.footer-brand a:hover { text-decoration: underline; }\n.footer-cta {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 6px 14px; border-radius: 8px;\n background: var(--accent-soft);\n border: 1px solid rgba(245,158,11,0.3);\n color: var(--accent); font-size: 12px; font-weight: 500;\n text-decoration: none;\n transition: transform 120ms ease, box-shadow 120ms ease;\n}\n.footer-cta:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(245,158,11,0.2); }\n\n/* Empty state */\n.empty-msg {\n text-align: center; color: var(--muted);\n padding: 60px 20px; font-size: 16px;\n}\n\n/* Responsive */\n@media (max-width: 640px) {\n body { padding: 12px; }\n .report-header { flex-direction: column; align-items: flex-start; gap: 8px; }\n .report-meta { text-align: left; }\n .summary-cards { grid-template-columns: 1fr; }\n .results-table { font-size: 12px; }\n .results-table th, .results-table td { padding: 8px 10px; }\n .report-footer { flex-direction: column; align-items: flex-start; }\n}\n</style>`\n}\n\n// ── Render: header ──────────────────────────────────────────────────\n\nfunction renderHeader(runsLabel: string, providerCount: number, taskCount: number): string {\n const now = new Date().toISOString().replace('T', ' ').slice(0, 19) + ' UTC'\n return `<header class=\"report-header\">\n <a class=\"report-brand\" href=\"https://github.com/DataGobes/agent-duelist\" target=\"_blank\" rel=\"noopener\">\n <div class=\"brand-icon\">&#x2B21;</div>\n <span>Agent Duelist</span>\n </a>\n <div class=\"report-meta\">\n ${providerCount} provider${providerCount !== 1 ? 's' : ''} &middot;\n ${taskCount} task${taskCount !== 1 ? 's' : ''} &middot;\n ${esc(runsLabel)}<br>\n ${esc(now)}\n </div>\n</header>`\n}\n\n// ── Render: tabs ────────────────────────────────────────────────────\n\nfunction renderTabs(tasks: string[]): string {\n const buttons = tasks.map((t, i) =>\n `<button class=\"task-tab${i === 0 ? ' active' : ''}\" data-task=\"${i}\">${esc(t)}</button>`\n ).join('\\n ')\n return `<nav class=\"task-tabs\">\n ${buttons}\n </nav>`\n}\n\n// ── Render: task section ────────────────────────────────────────────\n\nfunction renderTaskSection(\n task: string,\n providerData: ProviderTaskData[],\n columnStats: Map<string, import('./shared.js').ColumnStats>,\n medals: Map<string, Medal>,\n winnerId: string | undefined,\n scorerNames: string[],\n _hasCost: boolean,\n multi: boolean,\n index: number\n): string {\n // Build columns\n const cols: { label: string; key: string; isScore: boolean }[] = [\n { label: 'Provider', key: 'provider', isScore: false },\n ]\n\n for (const name of scorerNames) {\n if (name === 'latency') {\n cols.push({ label: 'Latency', key: 'latency', isScore: false })\n } else if (name === 'cost') {\n cols.push({ label: 'Cost', key: 'cost', isScore: false })\n cols.push({ label: 'Tokens', key: 'tokens', isScore: false })\n } else {\n cols.push({ label: scorerLabel(name), key: name, isScore: true })\n }\n }\n\n // Header row\n const ths = cols.map(c =>\n `<th data-col=\"${esc(c.key)}\">${esc(c.label)}<span class=\"sort-arrow\"></span></th>`\n ).join('')\n\n // Data rows\n const rows = providerData.map(pd => {\n const medal = medalEmoji(medals.get(pd.providerId) ?? 'none')\n const cells: string[] = []\n\n // Provider cell\n const medalHtml = medal ? `${medal} ` : ''\n cells.push(`<td>${medalHtml}${esc(pd.providerId)}</td>`)\n\n if (pd.allErrors) {\n for (let ci = 1; ci < cols.length; ci++) {\n cells.push(`<td class=\"rank-error\">&mdash;</td>`)\n }\n } else {\n for (const col of cols.slice(1)) {\n cells.push(renderDataCell(col.key, col.isScore, pd, columnStats, multi))\n }\n }\n\n return `<tr>${cells.join('')}</tr>`\n }).join('\\n')\n\n // Winner banner\n const winnerHtml = winnerId\n ? `<div class=\"task-winner\">\n <span class=\"trophy\">&#x1F3C6;</span>\n <span>Winner: <span class=\"winner-name\">${esc(winnerId)}</span>\n <span class=\"winner-label\">${esc(providerLabel(winnerId))}</span></span>\n </div>`\n : ''\n\n return `<section class=\"task-section${index === 0 ? ' active' : ''}\" data-task-idx=\"${index}\">\n <h2 class=\"task-name\">${esc(task)}</h2>\n <table class=\"results-table\">\n <thead><tr>${ths}</tr></thead>\n <tbody>${rows}</tbody>\n </table>\n ${winnerHtml}\n</section>`\n}\n\n// ── Render: data cell ───────────────────────────────────────────────\n\nfunction renderDataCell(\n key: string,\n _isScore: boolean,\n pd: ProviderTaskData,\n columnStats: Map<string, import('./shared.js').ColumnStats>,\n multi: boolean\n): string {\n const colStats = columnStats.get(key)\n\n if (key === 'latency') {\n const ms = pd.latencyMs\n if (ms === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n const rankClass = multi && colStats ? rankClass_(ms, colStats) : 'rank-neutral'\n return `<td class=\"${rankClass}\" data-sort-val=\"${ms}\">${Math.round(ms)}ms</td>`\n }\n\n if (key === 'cost') {\n const cost = pd.avgDetails.costUsd\n if (cost === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n const rankClass = multi && colStats ? rankClass_(cost, colStats) : 'rank-neutral'\n return `<td class=\"${rankClass}\" data-sort-val=\"${cost}\">${esc(formatCost(cost))}</td>`\n }\n\n if (key === 'tokens') {\n const tokens = pd.avgDetails.totalTokens\n if (tokens === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n const rankClass = multi && colStats ? rankClass_(tokens, colStats) : 'rank-neutral'\n return `<td class=\"${rankClass}\" data-sort-val=\"${tokens}\">${tokens}</td>`\n }\n\n // Score column (0-1)\n const val = pd.avgScores[key]\n if (val === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n\n const pct = Math.round(val * 100)\n let rankCls: string\n if (multi && colStats) {\n rankCls = rankClass_(val, colStats)\n } else {\n rankCls = val >= 0.8 ? 'rank-best' : val >= 0.5 ? 'rank-mid' : 'rank-worst'\n }\n\n const barColor = val >= 0.8 ? 'var(--green)' : val >= 0.5 ? 'var(--yellow)' : 'var(--red)'\n\n return `<td class=\"score-cell ${rankCls}\" data-sort-val=\"${val}\">\n <span class=\"score-val\">${pct}%</span>\n <div class=\"score-bar\" style=\"width:${pct}%;background:${barColor}\"></div>\n </td>`\n}\n\nfunction rankClass_(value: number, colStats: import('./shared.js').ColumnStats): string {\n if (colStats.best === undefined || colStats.worst === undefined) return 'rank-neutral'\n if (colStats.best === colStats.worst) return 'rank-neutral'\n if (value === colStats.best) return 'rank-best'\n if (value === colStats.worst) return 'rank-worst'\n return 'rank-mid'\n}\n\n// ── Render: summary ─────────────────────────────────────────────────\n\nfunction renderSummary(\n byCorrectness: { id: string; avg: number } | undefined,\n byLatency: { id: string; avg: number } | undefined,\n byCost: { id: string; avg: number | undefined } | undefined,\n overallWinner: string | undefined,\n multi: boolean\n): string {\n const cards: string[] = []\n\n if (byCorrectness) {\n const pct = `${Math.round(byCorrectness.avg * 100)}%`\n const provider = multi\n ? `<div class=\"card-provider\">${esc(byCorrectness.id)} ${esc(providerLabel(byCorrectness.id))}</div>`\n : ''\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">${multi ? 'Most Correct' : 'Avg Correctness'}</div>\n <div class=\"card-value\">${pct}</div>\n ${provider}\n </div>`)\n }\n\n if (byLatency && byLatency.avg !== Infinity) {\n const ms = `${Math.round(byLatency.avg)}ms`\n const provider = multi\n ? `<div class=\"card-provider\">${esc(byLatency.id)} ${esc(providerLabel(byLatency.id))}</div>`\n : ''\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">${multi ? 'Fastest' : 'Avg Latency'}</div>\n <div class=\"card-value\">${ms}</div>\n ${provider}\n </div>`)\n }\n\n if (byCost?.avg !== undefined) {\n const cost = esc(formatCost(byCost.avg))\n const provider = multi\n ? `<div class=\"card-provider\">${esc(byCost.id)} ${esc(providerLabel(byCost.id))}</div>`\n : ''\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">${multi ? 'Cheapest' : 'Avg Cost'}</div>\n <div class=\"card-value\">${cost}</div>\n ${provider}\n </div>`)\n }\n\n if (overallWinner) {\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">Overall Winner</div>\n <div class=\"card-value\">&#x1F3C6;</div>\n <div class=\"card-provider\">${esc(overallWinner)} ${esc(providerLabel(overallWinner))}</div>\n </div>`)\n }\n\n if (cards.length === 0) return ''\n\n return `<section class=\"summary-section\">\n <h2 class=\"summary-title\">Summary</h2>\n <div class=\"summary-cards\">\n ${cards.join('\\n ')}\n </div>\n</section>`\n}\n\n// ── Render: errors ──────────────────────────────────────────────────\n\nfunction renderErrors(errors: DedupedError[]): string {\n const items = errors.map(e => {\n const suffix = e.count > 1 ? ` <span class=\"error-count\">(&times;${e.count})</span>` : ''\n const hint = e.hint ? `<div class=\"error-hint\">${esc(e.hint)}</div>` : ''\n return `<div class=\"error-item\">\n <span class=\"error-provider\">${esc(e.providerId)}:</span>\n <span class=\"error-msg\">${esc(e.error)}</span>${suffix}\n ${hint}\n </div>`\n }).join('\\n')\n\n return `<section class=\"errors-section\">\n <h2 class=\"errors-title\" onclick=\"this.nextElementSibling.style.display=this.nextElementSibling.style.display==='none'?'block':'none'\">Errors</h2>\n <div class=\"errors-list\">\n ${items}\n </div>\n</section>`\n}\n\n// ── Render: footer ──────────────────────────────────────────────────\n\nfunction renderFooter(): string {\n return `<footer class=\"report-footer\">\n <div class=\"footer-brand\">\n Powered by <a href=\"https://github.com/DataGobes/agent-duelist\" target=\"_blank\" rel=\"noopener\">Agent Duelist</a>\n </div>\n <a class=\"footer-cta\" href=\"https://github.com/DataGobes/agent-duelist\" target=\"_blank\" rel=\"noopener\">\n &#x2B50; Star on GitHub\n </a>\n</footer>`\n}\n\n// ── Render: script ──────────────────────────────────────────────────\n\nfunction renderScript(taskCount: number): string {\n return `<script>\n(function() {\n /* Tab switching */\n ${taskCount > 1 ? `\n var tabs = document.querySelectorAll('.task-tab');\n var sections = document.querySelectorAll('.task-section');\n tabs.forEach(function(tab) {\n tab.addEventListener('click', function() {\n var idx = parseInt(tab.getAttribute('data-task'));\n tabs.forEach(function(t) { t.classList.remove('active'); });\n sections.forEach(function(s) { s.classList.remove('active'); });\n tab.classList.add('active');\n sections[idx].classList.add('active');\n });\n });` : ''}\n\n /* Column sorting */\n document.querySelectorAll('.results-table th').forEach(function(th, colIdx) {\n var table = th.closest('table');\n var asc = true;\n th.addEventListener('click', function() {\n var tbody = table.querySelector('tbody');\n var rows = Array.from(tbody.querySelectorAll('tr'));\n rows.sort(function(a, b) {\n var aCell = a.children[colIdx];\n var bCell = b.children[colIdx];\n var aVal = aCell.getAttribute('data-sort-val');\n var bVal = bCell.getAttribute('data-sort-val');\n if (aVal !== null && bVal !== null) {\n return asc ? parseFloat(aVal) - parseFloat(bVal) : parseFloat(bVal) - parseFloat(aVal);\n }\n var aText = aCell.textContent || '';\n var bText = bCell.textContent || '';\n return asc ? aText.localeCompare(bText) : bText.localeCompare(aText);\n });\n rows.forEach(function(row) { tbody.appendChild(row); });\n\n /* Update sort arrows */\n table.querySelectorAll('th .sort-arrow').forEach(function(a) { a.textContent = ''; });\n th.querySelector('.sort-arrow').textContent = asc ? ' \\\\u25B2' : ' \\\\u25BC';\n asc = !asc;\n });\n });\n})();\n</script>`\n}\n","import { readFileSync, writeFileSync, mkdirSync } from 'node:fs'\nimport { dirname } from 'node:path'\nimport type { BenchmarkResult } from './runner.js'\nimport { formatDelta } from './utils/format.js'\n\n// ── Types ────────────────────────────────────────────────────────────\n\nexport interface CiOptions {\n configPath: string\n baselinePath: string\n budget?: number\n thresholds: Map<string, number>\n updateBaseline: boolean\n comment: boolean\n quiet: boolean\n}\n\nexport interface ScorerStats {\n mean: number\n stddev: number\n cv: number // coefficient of variation\n n: number\n ci95Lower: number\n ci95Upper: number\n}\n\nexport interface ScorerComparison {\n providerId: string\n taskName: string\n scorerName: string\n baseline: ScorerStats | null\n current: ScorerStats\n delta: number | null // current.mean - baseline.mean (null when no baseline)\n regressed: boolean\n improved: boolean\n flaky: boolean\n}\n\nexport interface CostSummary {\n totalUsd: number\n perProvider: Map<string, number>\n budget: number | undefined\n overBudget: boolean\n}\n\nexport interface CiReport {\n comparisons: ScorerComparison[]\n cost: CostSummary\n failed: boolean\n flakyResults: ScorerComparison[]\n failureReasons: string[]\n}\n\n// ── Constants ────────────────────────────────────────────────────────\n\n/** Scorers where lower values are better */\nconst LOWER_IS_BETTER = new Set(['cost'])\n\n/** CV threshold above which a scorer is flagged as flaky */\nconst FLAKY_CV_THRESHOLD = 0.3\n\n/**\n * T-distribution critical values for 95% two-tailed CI.\n * Index = degrees of freedom (df). For df > 30 we use z ≈ 1.96.\n */\nconst T_CRITICAL_95: Record<number, number> = {\n 1: 12.706, 2: 4.303, 3: 3.182, 4: 2.776, 5: 2.571,\n 6: 2.447, 7: 2.365, 8: 2.306, 9: 2.262, 10: 2.228,\n 15: 2.131, 20: 2.086, 25: 2.060, 30: 2.042,\n}\n\nconst T_CRITICAL_KEYS = Object.keys(T_CRITICAL_95).map(Number).sort((a, b) => a - b)\n\nfunction tCritical(df: number): number {\n if (df <= 0) return 1.96\n if (T_CRITICAL_95[df] !== undefined) return T_CRITICAL_95[df]!\n // Interpolate between known values or fall back to z-approximation\n const keys = T_CRITICAL_KEYS\n if (df > keys[keys.length - 1]!) return 1.96\n // Find surrounding keys and linearly interpolate\n for (let i = 0; i < keys.length - 1; i++) {\n if (df > keys[i]! && df < keys[i + 1]!) {\n const low = keys[i]!, high = keys[i + 1]!\n const ratio = (df - low) / (high - low)\n return T_CRITICAL_95[low]! + ratio * (T_CRITICAL_95[high]! - T_CRITICAL_95[low]!)\n }\n }\n return 1.96\n}\n\n// ── Stats ────────────────────────────────────────────────────────────\n\nexport function computeScorerStats(samples: number[]): ScorerStats {\n const n = samples.length\n if (n === 0) {\n return { mean: 0, stddev: 0, cv: 0, n: 0, ci95Lower: 0, ci95Upper: 0 }\n }\n\n const mean = samples.reduce((a, b) => a + b, 0) / n\n\n if (n === 1) {\n return { mean, stddev: 0, cv: 0, n: 1, ci95Lower: mean, ci95Upper: mean }\n }\n\n const variance = samples.reduce((sum, x) => sum + (x - mean) ** 2, 0) / (n - 1)\n const stddev = Math.sqrt(variance)\n const cv = mean !== 0 ? stddev / Math.abs(mean) : 0\n const se = stddev / Math.sqrt(n)\n const t = tCritical(n - 1)\n\n return {\n mean,\n stddev,\n cv,\n n,\n ci95Lower: mean - t * se,\n ci95Upper: mean + t * se,\n }\n}\n\n// ── Grouping ─────────────────────────────────────────────────────────\n\n/** Group key: providerId::taskName::scorerName */\nfunction groupKey(providerId: string, taskName: string, scorerName: string): string {\n return `${providerId}::${taskName}::${scorerName}`\n}\n\nexport function computeStats(results: BenchmarkResult[]): Map<string, ScorerStats> {\n const grouped = new Map<string, number[]>()\n\n for (const r of results) {\n if (r.error) continue\n for (const score of r.scores) {\n if (score.value < 0) continue // skip unavailable scores (e.g., cost = -1)\n const key = groupKey(r.providerId, r.taskName, score.name)\n if (!grouped.has(key)) grouped.set(key, [])\n grouped.get(key)!.push(score.value)\n }\n }\n\n const stats = new Map<string, ScorerStats>()\n for (const [key, samples] of grouped) {\n stats.set(key, computeScorerStats(samples))\n }\n return stats\n}\n\n// ── Cost ─────────────────────────────────────────────────────────────\n\nexport function computeCostSummary(results: BenchmarkResult[], budget?: number): CostSummary {\n let totalUsd = 0\n const perProvider = new Map<string, number>()\n\n for (const r of results) {\n if (r.error) continue\n const costScore = r.scores.find((s) => s.name === 'cost')\n if (!costScore || costScore.value < 0) continue\n\n const details = costScore.details as { estimatedUsd?: number } | undefined\n const usd = details?.estimatedUsd ?? 0\n if (usd <= 0) continue\n\n totalUsd += usd\n perProvider.set(r.providerId, (perProvider.get(r.providerId) ?? 0) + usd)\n }\n\n return {\n totalUsd,\n perProvider,\n budget,\n overBudget: budget !== undefined && totalUsd > budget,\n }\n}\n\n// ── Comparison ───────────────────────────────────────────────────────\n\nexport function compareResults(\n baselineStats: Map<string, ScorerStats> | null,\n currentStats: Map<string, ScorerStats>,\n thresholds: Map<string, number>,\n budget?: number,\n currentResults?: BenchmarkResult[],\n): CiReport {\n const comparisons: ScorerComparison[] = []\n const failureReasons: string[] = []\n\n for (const [key, current] of currentStats) {\n const [providerId, taskName, scorerName] = key.split('::') as [string, string, string]\n const baseline = baselineStats?.get(key) ?? null\n\n let delta: number | null = null\n let regressed = false\n let improved = false\n\n if (baseline) {\n delta = current.mean - baseline.mean\n const threshold = thresholds.get(scorerName)\n\n if (threshold !== undefined) {\n const lowerIsBetter = LOWER_IS_BETTER.has(scorerName)\n regressed = detectRegression(baseline, current, threshold, lowerIsBetter)\n improved = detectImprovement(baseline, current, threshold, lowerIsBetter)\n }\n }\n\n const flaky = current.n > 1 && current.cv > FLAKY_CV_THRESHOLD\n\n comparisons.push({\n providerId, taskName, scorerName,\n baseline, current, delta,\n regressed, improved, flaky,\n })\n }\n\n // Cost check\n const cost = computeCostSummary(currentResults ?? [], budget)\n\n // Determine failure\n const regressions = comparisons.filter((c) => c.regressed)\n if (regressions.length > 0) {\n for (const r of regressions) {\n failureReasons.push(\n `${r.providerId} × ${r.taskName}: ${r.scorerName} regressed by ${formatDelta(r.delta!)}`\n )\n }\n }\n if (cost.overBudget) {\n failureReasons.push(\n `Total cost $${cost.totalUsd.toFixed(4)} exceeds budget $${cost.budget!.toFixed(2)}`\n )\n }\n\n const flakyResults = comparisons.filter((c) => c.flaky)\n const failed = failureReasons.length > 0\n\n return { comparisons, cost, failed, flakyResults, failureReasons }\n}\n\nfunction detectRegression(\n baseline: ScorerStats,\n current: ScorerStats,\n threshold: number,\n lowerIsBetter: boolean,\n): boolean {\n // For single-run comparisons: simple delta\n if (baseline.n === 1 && current.n === 1) {\n const delta = current.mean - baseline.mean\n if (lowerIsBetter) return delta > threshold\n return delta < -threshold\n }\n\n // Multi-run: conservative CI comparison\n if (lowerIsBetter) {\n // Cost-like: regresses if current lower bound is significantly above baseline upper bound\n return current.ci95Lower - baseline.ci95Upper > threshold\n }\n // Quality-like: regresses if current lower bound is significantly below baseline upper bound\n return baseline.ci95Upper - current.ci95Lower > threshold && current.mean < baseline.mean\n}\n\nfunction detectImprovement(\n baseline: ScorerStats,\n current: ScorerStats,\n threshold: number,\n lowerIsBetter: boolean,\n): boolean {\n if (baseline.n === 1 && current.n === 1) {\n const delta = current.mean - baseline.mean\n if (lowerIsBetter) return delta < -threshold\n return delta > threshold\n }\n\n if (lowerIsBetter) {\n return baseline.ci95Lower - current.ci95Upper > threshold\n }\n return current.ci95Lower - baseline.ci95Upper > threshold\n}\n\n// ── Baseline I/O ─────────────────────────────────────────────────────\n\nexport interface BaselineData {\n timestamp: string\n results: BenchmarkResult[]\n}\n\nexport function loadBaseline(path: string): BaselineData | null {\n try {\n const raw = readFileSync(path, 'utf-8')\n const data = JSON.parse(raw) as Record<string, unknown>\n\n // Support both formats: { results: [...] } and { results: [...], timestamp: ... }\n const results = (data.results ?? data) as BenchmarkResult[]\n if (!Array.isArray(results)) return null\n\n return {\n timestamp: (data.timestamp as string) ?? 'unknown',\n results,\n }\n } catch {\n return null\n }\n}\n\nexport function saveBaseline(path: string, results: BenchmarkResult[]): void {\n mkdirSync(dirname(path), { recursive: true })\n const data: BaselineData = {\n timestamp: new Date().toISOString(),\n results,\n }\n writeFileSync(path, JSON.stringify(data, null, 2))\n}\n","import { readFileSync } from 'node:fs'\n\n// ── Types ────────────────────────────────────────────────────────────\n\nexport interface GitHubContext {\n token: string\n owner: string\n repo: string\n prNumber: number\n}\n\ninterface GitHubComment {\n id: number\n body?: string\n}\n\n// ── Context detection ────────────────────────────────────────────────\n\nexport function detectGitHubContext(): GitHubContext | null {\n const token = process.env.GITHUB_TOKEN\n const repository = process.env.GITHUB_REPOSITORY\n const eventPath = process.env.GITHUB_EVENT_PATH\n\n if (!token || !repository) return null\n\n const [owner, repo] = repository.split('/')\n if (!owner || !repo) return null\n\n let prNumber: number | undefined\n\n // Try to get PR number from event payload\n if (eventPath) {\n try {\n const event = JSON.parse(readFileSync(eventPath, 'utf-8')) as Record<string, unknown>\n\n // pull_request event\n if (event.pull_request && typeof event.pull_request === 'object') {\n const pr = event.pull_request as Record<string, unknown>\n prNumber = pr.number as number\n }\n\n // issue_comment or other events with issue.pull_request\n if (!prNumber && event.issue && typeof event.issue === 'object') {\n const issue = event.issue as Record<string, unknown>\n if (issue.pull_request) {\n prNumber = issue.number as number\n }\n }\n } catch {\n // Can't read event file — not fatal\n }\n }\n\n // Fallback: DUELIST_PR_NUMBER env var for manual use\n if (!prNumber && process.env.DUELIST_PR_NUMBER) {\n prNumber = parseInt(process.env.DUELIST_PR_NUMBER, 10)\n }\n\n if (!prNumber) return null\n\n return { token, owner, repo, prNumber }\n}\n\n// ── PR comment helpers ───────────────────────────────────────────────\n\nconst API_BASE = 'https://api.github.com'\n\nfunction ghHeaders(token: string, extra?: Record<string, string>): Record<string, string> {\n return {\n Authorization: `Bearer ${token}`,\n Accept: 'application/vnd.github+json',\n 'X-GitHub-Api-Version': '2022-11-28',\n ...extra,\n }\n}\n\nexport async function findExistingComment(\n ctx: GitHubContext,\n marker: string,\n): Promise<number | null> {\n let page = 1\n const perPage = 50\n\n while (true) {\n const url = `${API_BASE}/repos/${ctx.owner}/${ctx.repo}/issues/${ctx.prNumber}/comments?per_page=${perPage}&page=${page}`\n const res = await fetch(url, { headers: ghHeaders(ctx.token) })\n\n if (!res.ok) return null\n\n const comments = (await res.json()) as GitHubComment[]\n if (comments.length === 0) break\n\n for (const comment of comments) {\n if (comment.body?.includes(marker)) {\n return comment.id\n }\n }\n\n if (comments.length < perPage) break\n page++\n }\n\n return null\n}\n\nexport async function upsertPrComment(\n ctx: GitHubContext,\n body: string,\n marker: string,\n): Promise<void> {\n const existingId = await findExistingComment(ctx, marker)\n\n if (existingId) {\n // Update existing comment\n const url = `${API_BASE}/repos/${ctx.owner}/${ctx.repo}/issues/comments/${existingId}`\n const res = await fetch(url, {\n method: 'PATCH',\n headers: ghHeaders(ctx.token, { 'Content-Type': 'application/json' }),\n body: JSON.stringify({ body }),\n })\n\n if (!res.ok) {\n const text = await res.text()\n console.warn(`Failed to update PR comment: ${res.status} ${text}`)\n }\n } else {\n // Create new comment\n const url = `${API_BASE}/repos/${ctx.owner}/${ctx.repo}/issues/${ctx.prNumber}/comments`\n const res = await fetch(url, {\n method: 'POST',\n headers: ghHeaders(ctx.token, { 'Content-Type': 'application/json' }),\n body: JSON.stringify({ body }),\n })\n\n if (!res.ok) {\n const text = await res.text()\n console.warn(`Failed to create PR comment: ${res.status} ${text}`)\n }\n }\n}\n","import { z } from 'zod'\nimport type { TaskPack } from './types.js'\n\nexport const structuredOutputPack: TaskPack = {\n name: 'structured-output',\n label: 'Structured Output',\n description: 'Zod schema stress test — flat objects, nesting, arrays, enums, empty arrays, and adversarial input',\n\n tasks: [\n {\n name: 'so:flat-entity',\n prompt:\n \"Extract the person's details from this text: 'Maria Garcia, age 34, works as a software architect in Barcelona, Spain. Her employee ID is EMP-2847.' Return as JSON.\",\n expected: {\n name: 'Maria Garcia',\n age: 34,\n role: 'software architect',\n city: 'Barcelona',\n country: 'Spain',\n employeeId: 'EMP-2847',\n },\n schema: z.object({\n name: z.string(),\n age: z.number(),\n role: z.string(),\n city: z.string(),\n country: z.string(),\n employeeId: z.string(),\n }),\n },\n\n {\n name: 'so:nested-object',\n prompt:\n \"Parse this shipping label into structured JSON: 'Ship to: Acme Corp, Attn: John Lee, 4th Floor, 742 Evergreen Terrace, Springfield, IL 62704, USA. Order #ORD-9912, 3 items, 2.4kg, express shipping.' Use shippingMethod values: standard, express, or overnight. Return as JSON.\",\n expected: {\n recipient: { company: 'Acme Corp', contact: 'John Lee', floor: '4th Floor' },\n address: { street: '742 Evergreen Terrace', city: 'Springfield', state: 'IL', zip: '62704', country: 'USA' },\n order: { id: 'ORD-9912', itemCount: 3, weightKg: 2.4, shippingMethod: 'express' },\n },\n schema: z.object({\n recipient: z.object({ company: z.string(), contact: z.string(), floor: z.string() }),\n address: z.object({\n street: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n }),\n order: z.object({\n id: z.string(),\n itemCount: z.number(),\n weightKg: z.number(),\n shippingMethod: z.enum(['standard', 'express', 'overnight']),\n }),\n }),\n },\n\n {\n name: 'so:array-of-objects',\n prompt:\n \"Extract all mentioned products with their prices and categories from this text: 'Our summer sale includes the UltraWidget Pro ($49.99, Electronics), ComfortMax Chair ($199.00, Furniture), and AquaPure Filter ($24.50, Home & Kitchen). The SmartLamp Mini is also available at $34.99 in the Electronics category.' Return as a JSON array.\",\n expected: [\n { name: 'UltraWidget Pro', price: 49.99, category: 'Electronics' },\n { name: 'ComfortMax Chair', price: 199.0, category: 'Furniture' },\n { name: 'AquaPure Filter', price: 24.5, category: 'Home & Kitchen' },\n { name: 'SmartLamp Mini', price: 34.99, category: 'Electronics' },\n ],\n schema: z.array(z.object({ name: z.string(), price: z.number(), category: z.string() })),\n },\n\n {\n name: 'so:empty-arrays',\n prompt:\n \"Extract all error codes and their severity levels from this log message: 'System health check completed at 14:32 UTC. All services operational. No warnings or errors detected. Uptime: 99.97%.' Classify status as one of: healthy, degraded, or down. Return as JSON.\",\n expected: { errors: [], warnings: [], status: 'healthy', uptimePercent: 99.97 },\n schema: z.object({\n errors: z.array(z.object({ code: z.string(), severity: z.string() })),\n warnings: z.array(z.string()),\n status: z.enum(['healthy', 'degraded', 'down']),\n uptimePercent: z.number(),\n }),\n },\n\n {\n name: 'so:enum-classification',\n prompt:\n 'Classify each of these support tickets by priority (low/medium/high/critical) and category (billing/technical/account/general). Use just the letter (A, B, C, D) as the id.\\nTicket A: \\'My account was charged twice for the same subscription.\\'\\nTicket B: \\'The API returns 500 errors intermittently.\\'\\nTicket C: \\'How do I update my display name?\\'\\nTicket D: \\'Production database is completely unresponsive, all services down.\\'\\nReturn as a JSON array.',\n expected: [\n { id: 'A', priority: 'high', category: 'billing' },\n { id: 'B', priority: 'high', category: 'technical' },\n { id: 'C', priority: 'low', category: 'account' },\n { id: 'D', priority: 'critical', category: 'technical' },\n ],\n schema: z.array(\n z.object({\n id: z.string(),\n priority: z.enum(['low', 'medium', 'high', 'critical']),\n category: z.enum(['billing', 'technical', 'account', 'general']),\n })\n ),\n },\n\n {\n name: 'so:adversarial-input',\n prompt:\n 'Extract the actual product review data from this messy input. Ignore any JSON-like noise in the text.\\n\\nUser said: \\'I bought the {product: \"fake\"} headphones for $59.99 and they\\'re great! Rating: 5/5. The \"noise-cancelling\" feature works well even in {\"noisy\": true} environments. Would recommend to friend=true. Purchased on 01/15/2026.\\'\\nReturn as JSON. Use ISO 8601 date format (YYYY-MM-DD).',\n expected: {\n product: 'headphones',\n price: 59.99,\n rating: 5,\n maxRating: 5,\n features: ['noise-cancelling'],\n recommended: true,\n purchaseDate: '2026-01-15',\n },\n schema: z.object({\n product: z.string(),\n price: z.number(),\n rating: z.number(),\n maxRating: z.number(),\n features: z.array(z.string()),\n recommended: z.boolean(),\n purchaseDate: z.string(),\n }),\n },\n ],\n\n scorers: ['correctness', 'schema-correctness', 'latency', 'cost'],\n}\n","import type { TaskPack } from './types.js'\nimport { structuredOutputPack } from './structured-output.js'\n\nconst registry = new Map<string, TaskPack>()\n\nfunction register(pack: TaskPack): void {\n registry.set(pack.name, pack)\n}\n\nregister(structuredOutputPack)\n\n/** Get a pack by name. Throws if not found. */\nexport function loadPack(name: string): TaskPack {\n const pack = registry.get(name)\n if (!pack) {\n const available = [...registry.keys()].join(', ')\n throw new Error(`Unknown pack \"${name}\". Available packs: ${available}`)\n }\n return pack\n}\n\n/** Get all available pack names */\nexport function listPacks(): Array<{ name: string; label: string; description: string; taskCount: number }> {\n return [...registry.values()].map((p) => ({\n name: p.name,\n label: p.label,\n description: p.description,\n taskCount: p.tasks.length,\n }))\n}\n","import type { ArenaConfig } from '../arena.js'\nimport type { ArenaProvider } from '../providers/types.js'\nimport type { BuiltInScorerName } from '../scorers/types.js'\nimport { loadPack } from './index.js'\n\nexport interface PackRunConfig {\n /** Pack names to load */\n packs: string[]\n /** Providers from user config or CLI defaults */\n providers: ArenaProvider[]\n /** Override runs count. Default: 1 */\n runs?: number\n /** Per-request timeout in ms. Forwarded from arena config. */\n timeout?: number\n}\n\n/**\n * Merge packs into a single ArenaConfig.\n * - Tasks are concatenated across packs\n * - Scorers are merged (union of all pack scorers, deduped)\n */\nexport function buildPackConfig(config: PackRunConfig): ArenaConfig {\n const packs = config.packs.map((name) => loadPack(name))\n\n const tasks = packs.flatMap((p) => p.tasks)\n\n const scorerSet = new Set<BuiltInScorerName>()\n for (const pack of packs) {\n for (const scorer of pack.scorers) {\n scorerSet.add(scorer)\n }\n }\n\n return {\n providers: config.providers,\n tasks,\n scorers: [...scorerSet],\n runs: config.runs ?? 1,\n timeout: config.timeout,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,OAAM;AAAY,OAAO,OAAM;AAAtC,IAA8D,GAAW,GAA8B;AAAvG;AAAA;AAAA;AAAgD,KAAK,EAAC,SAAQ,MAAG;AAAjB,IAAyB,IAAE,IAAE,EAAE,IAAE,EAAE,SAAS,EAAE;AAA9C,IAAuD,IAAE,EAAE,KAAK,EAAE,OAAO,GAAE,OAAO,CAAC,EAAE;AAAA;AAAA;;;ACAtD,SAAO,iBAAiBA,UAAM;AAAS,OAAO,OAAM;AAAnI,IAAI,GAA4BC,IAA0K,GAA2B,GAA6B;AAAlQ;AAAA;AAAA;AAA+I;AAA/I,IAAI,IAAE,OAAO;AAAe,IAAIA,KAAE,CAACC,IAAEC,OAAI,EAAED,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAyH,IAAI,IAAEH,GAAE,YAAY,GAAG;AAAE,IAAM,IAAE,QAAQ,aAAW;AAA3B,IAAmC,IAAEC,GAAE,CAAAC,OAAG;AAAC,YAAMC,KAAE,EAAE,KAAK,GAAE,GAAGD,EAAC,OAAO;AAAE,aAAO,IAAE,gBAAgBC,EAAC,KAAGA;AAAA,IAAC,GAAE,aAAa;AAAA;AAAA;;;ACAkkB,SAAS,EAAEC,IAAEC,IAAE;AAAC,MAAG,CAACA,GAAE,SAASC,EAAC,KAAGF,GAAE,eAAeC,EAAC,EAAE,QAAM,CAACA,EAAC;AAAE,MAAIE,IAAEC;AAAE,aAAUC,MAAK,OAAO,KAAKL,EAAC,EAAE,KAAGK,GAAE,SAASH,EAAC,GAAE;AAAC,UAAK,CAACI,IAAEC,IAAEC,EAAC,IAAEH,GAAE,MAAMH,EAAC;AAAE,QAAGM,OAAI,UAAQP,GAAE,WAAWK,EAAC,KAAGL,GAAE,SAASM,EAAC,GAAE;AAAC,YAAME,KAAER,GAAE,MAAMK,GAAE,QAAO,CAACC,GAAE,UAAQ,MAAM;AAAE,MAAAE,OAAI,CAACN,MAAGO,GAAEP,IAAEE,EAAC,OAAKF,KAAEE,IAAED,KAAEK;AAAA,IAAE;AAAA,EAAC;AAAC,SAAM,CAACN,IAAEC,EAAC;AAAC;AAA1qC,IAAM,GAAkCO,IAA2D,GAA+B,GAA+B,GAAqE,GAAU,GAA8B,GAAc,GAA8D,GAAqeT,IAAMQ,IAA4WE,IAAoL,GAAU;AAA/2C;AAAA;AAAA;AAAA,IAAM,IAAE,CAAAZ,OAAGA,OAAI,QAAM,OAAOA,MAAG;AAA/B,IAAwCW,KAAE,CAACX,IAAEC,OAAI,OAAO,OAAO,IAAI,MAAM,IAAID,EAAC,MAAMC,EAAC,EAAE,GAAE,EAAC,MAAKD,GAAC,CAAC;AAAjG,IAAmG,IAAE;AAArG,IAAkI,IAAE;AAApI,IAAiK,IAAE;AAAnK,IAAsO,IAAE;AAAxO,IAAgP,IAAE;AAAlP,IAA8Q,IAAE;AAAQ,IAAI,KAAG,CAAAA,QAAIA,GAAE,SAAO,WAAUA,GAAE,SAAO,WAAUA,KAAI,KAAG,CAAC,CAAC;AAAE,IAAM,IAAE,CAACA,IAAEC,IAAEE,IAAEC,IAAEC,OAAI;AAAC,UAAGJ,MAAG,KAAK,QAAM,CAAC;AAAE,UAAG,OAAOA,MAAG,UAAS;AAAC,cAAK,CAACK,IAAE,GAAGC,EAAC,IAAEN,GAAE,MAAM,CAAC;AAAE,YAAGK,OAAI,QAAMC,GAAE,KAAK,CAAAC,OAAG,EAAE,KAAKA,EAAC,CAAC,EAAE,OAAMG,GAAE,GAAE,YAAYX,EAAC,aAAaC,EAAC,iCAAiC;AAAE,eAAM,CAACI,KAAEJ,GAAE,QAAQ,OAAMI,EAAC,IAAEJ,EAAC;AAAA,MAAC;AAAC,UAAG,MAAM,QAAQA,EAAC,EAAE,QAAOA,GAAE,QAAQ,CAAAK,OAAG,EAAEN,IAAEM,IAAEH,IAAEC,IAAEC,EAAC,CAAC;AAAE,UAAG,EAAEJ,EAAC,GAAE;AAAC,mBAAUK,MAAK,OAAO,KAAKL,EAAC,GAAE;AAAC,cAAG,EAAE,KAAKK,EAAC,EAAE,OAAMK,GAAE,GAAE,sCAAsC;AAAE,cAAGL,OAAI,aAAWF,GAAE,SAASE,EAAC,EAAE,QAAO,EAAEN,IAAEC,GAAEK,EAAC,GAAEH,IAAEC,IAAEC,EAAC;AAAA,QAAC;AAAC,eAAM,CAAC;AAAA,MAAC;AAAC,YAAMM,GAAE,GAAE,YAAYX,EAAC,aAAaC,EAAC,GAAG;AAAA,IAAC;AAAze,IAA2eC,KAAE;AAA7e,IAAifQ,KAAE,CAACV,IAAEC,OAAI;AAAC,YAAME,KAAEH,GAAE,QAAQE,EAAC,GAAEE,KAAEH,GAAE,QAAQC,EAAC;AAAE,aAAOC,OAAIC,KAAEH,GAAE,SAAOD,GAAE,SAAOI,KAAED;AAAA,IAAC;AAAsR,IAAMS,KAAE,CAAAZ,OAAG,OAAO,KAAKA,EAAC,EAAE,OAAO,CAACC,IAAEE,OAAI;AAAC,YAAMC,KAAED,OAAI,MAAIA,GAAE,CAAC,MAAI;AAAI,UAAGF,OAAI,UAAQA,OAAIG,GAAE,QAAOA;AAAE,YAAMO,GAAE,GAAE,mEAAmE;AAAA,IAAC,GAAE,MAAM;AAAxL,IAA0L,IAAE;AAA5L,IAAoM,IAAE,CAACX,IAAEC,IAAEE,OAAI;AAAC,UAAG,CAACH,GAAE,OAAM,IAAI,MAAM,uBAAuB;AAAE,MAAAC,KAAEA,OAAI,KAAG,MAAI,KAAKA,EAAC,KAAI,OAAOD,MAAG,YAAU,MAAM,QAAQA,EAAC,KAAG,EAAEA,EAAC,KAAGY,GAAEZ,EAAC,OAAKA,KAAE,EAAC,KAAIA,GAAC;AAAG,YAAK,CAACI,IAAEC,EAAC,IAAE,EAAEL,IAAEC,EAAC,GAAEK,KAAE,EAAE,EAAE,QAAON,GAAEI,EAAC,GAAEH,IAAEE,IAAEE,EAAC;AAAE,UAAGC,GAAE,WAAS,EAAE,OAAMK,GAAE,GAAEV,OAAI,MAAI,8BAA4B,oBAAoBA,EAAC,+BAA+B;AAAE,iBAAUM,MAAKD,GAAE,KAAG,CAACC,GAAE,WAAW,IAAI,KAAG,CAAC,EAAE,KAAKA,EAAC,EAAE,OAAMI,GAAE,GAAE,6BAA6BJ,EAAC,iCAAiC;AAAE,aAAOD;AAAA,IAAC;AAAA;AAAA;;;ACArtD,OAAOO,QAAM;AAAY,OAAO,QAAO;AAAU,OAAO,QAAO;AAAiE,OAAO,QAAO;AAAK,OAAO,QAAO;AAAK,OAAO,QAAO;AAAO,SAASC,GAAEC,IAAE;AAAC,SAAOA,GAAE,WAAW,SAAS,IAAEA,KAAEA,GAAE,QAAQ,OAAM,GAAG;AAAC;AAAud,SAAS,GAAGA,IAAEC,KAAE,OAAG;AAAC,QAAMC,KAAEF,GAAE;AAAO,MAAIG,KAAE,GAAEC,KAAE,IAAGC,KAAE,GAAEC,KAAE,IAAGC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,WAASC,GAAEC,IAAEC,IAAE;AAAC,QAAIC,KAAE,GAAEC,KAAE;AAAE,WAAKD,KAAEF,MAAG;AAAC,UAAII,KAAEjB,GAAE,WAAWG,EAAC;AAAE,UAAGc,MAAG,MAAIA,MAAG,GAAG,CAAAD,KAAEA,KAAE,KAAGC,KAAE;AAAA,eAAWA,MAAG,MAAIA,MAAG,GAAG,CAAAD,KAAEA,KAAE,KAAGC,KAAE,KAAG;AAAA,eAAWA,MAAG,MAAIA,MAAG,IAAI,CAAAD,KAAEA,KAAE,KAAGC,KAAE,KAAG;AAAA,UAAQ;AAAM,MAAAd,MAAIY;AAAA,IAAG;AAAC,WAAOA,KAAEF,OAAIG,KAAE,KAAIA;AAAA,EAAC;AAAC,EAAAE,GAAEN,IAAE,eAAe;AAAE,WAASO,GAAEN,IAAE;AAAC,IAAAV,KAAEU,IAAET,KAAE,IAAGC,KAAE,GAAEC,KAAE,IAAGK,KAAE;AAAA,EAAC;AAAC,EAAAO,GAAEC,IAAE,aAAa;AAAE,WAASC,KAAG;AAAC,QAAIP,KAAEV;AAAE,QAAGH,GAAE,WAAWG,EAAC,MAAI,GAAG,CAAAA;AAAA,QAAS,MAAIA,MAAIA,KAAEH,GAAE,UAAQ,EAAEA,GAAE,WAAWG,EAAC,CAAC,IAAG,CAAAA;AAAI,QAAGA,KAAEH,GAAE,UAAQA,GAAE,WAAWG,EAAC,MAAI,GAAG,KAAGA,MAAIA,KAAEH,GAAE,UAAQ,EAAEA,GAAE,WAAWG,EAAC,CAAC,EAAE,MAAIA,MAAIA,KAAEH,GAAE,UAAQ,EAAEA,GAAE,WAAWG,EAAC,CAAC,IAAG,CAAAA;AAAA,QAAS,QAAOQ,KAAE,GAAEX,GAAE,UAAUa,IAAEV,EAAC;AAAE,QAAIW,KAAEX;AAAE,QAAGA,KAAEH,GAAE,WAASA,GAAE,WAAWG,EAAC,MAAI,MAAIH,GAAE,WAAWG,EAAC,MAAI,KAAK,KAAGA,OAAKA,KAAEH,GAAE,UAAQA,GAAE,WAAWG,EAAC,MAAI,MAAIH,GAAE,WAAWG,EAAC,MAAI,OAAKA,MAAIA,KAAEH,GAAE,UAAQ,EAAEA,GAAE,WAAWG,EAAC,CAAC,GAAE;AAAC,WAAIA,MAAIA,KAAEH,GAAE,UAAQ,EAAEA,GAAE,WAAWG,EAAC,CAAC,IAAG,CAAAA;AAAI,MAAAW,KAAEX;AAAA,IAAC,MAAM,CAAAQ,KAAE;AAAE,WAAOX,GAAE,UAAUa,IAAEC,EAAC;AAAA,EAAC;AAAC,EAAAI,GAAEE,IAAE,YAAY;AAAE,WAASC,KAAG;AAAC,QAAIR,KAAE,IAAGC,KAAEX;AAAE,eAAO;AAAC,UAAGA,MAAGD,IAAE;AAAC,QAAAW,MAAGb,GAAE,UAAUc,IAAEX,EAAC,GAAEQ,KAAE;AAAE;AAAA,MAAK;AAAC,YAAMI,KAAEf,GAAE,WAAWG,EAAC;AAAE,UAAGY,OAAI,IAAG;AAAC,QAAAF,MAAGb,GAAE,UAAUc,IAAEX,EAAC,GAAEA;AAAI;AAAA,MAAK;AAAC,UAAGY,OAAI,IAAG;AAAC,YAAGF,MAAGb,GAAE,UAAUc,IAAEX,EAAC,GAAEA,MAAIA,MAAGD,IAAE;AAAC,UAAAS,KAAE;AAAE;AAAA,QAAK;AAAC,gBAAOX,GAAE,WAAWG,IAAG,GAAE;AAAA,UAAC,KAAK;AAAG,YAAAU,MAAG;AAAI;AAAA,UAAM,KAAK;AAAG,YAAAA,MAAG;AAAK;AAAA,UAAM,KAAK;AAAG,YAAAA,MAAG;AAAI;AAAA,UAAM,KAAK;AAAG,YAAAA,MAAG;AAAK;AAAA,UAAM,KAAK;AAAI,YAAAA,MAAG;AAAK;AAAA,UAAM,KAAK;AAAI,YAAAA,MAAG;AAAA;AACl+D;AAAA,UAAM,KAAK;AAAI,YAAAA,MAAG;AAAK;AAAA,UAAM,KAAK;AAAI,YAAAA,MAAG;AAAI;AAAA,UAAM,KAAK;AAAI,kBAAMI,KAAEL,GAAE,CAAC;AAAE,YAAAK,MAAG,IAAEJ,MAAG,OAAO,aAAaI,EAAC,IAAEN,KAAE;AAAE;AAAA,UAAM;AAAQ,YAAAA,KAAE;AAAA,QAAC;AAAC,QAAAG,KAAEX;AAAE;AAAA,MAAQ;AAAC,UAAGY,MAAG,KAAGA,MAAG,GAAG,KAAG,EAAEA,EAAC,GAAE;AAAC,QAAAF,MAAGb,GAAE,UAAUc,IAAEX,EAAC,GAAEQ,KAAE;AAAE;AAAA,MAAK,MAAM,CAAAA,KAAE;AAAE,MAAAR;AAAA,IAAG;AAAC,WAAOU;AAAA,EAAC;AAAC,EAAAK,GAAEG,IAAE,YAAY;AAAE,WAASC,KAAG;AAAC,QAAGlB,KAAE,IAAGO,KAAE,GAAEN,KAAEF,IAAEK,KAAED,IAAEG,KAAED,IAAEN,MAAGD,GAAE,QAAOG,KAAEH,IAAEI,KAAE;AAAG,QAAIO,KAAEb,GAAE,WAAWG,EAAC;AAAE,QAAGoB,GAAEV,EAAC,GAAE;AAAC;AAAG,QAAAV,MAAIC,MAAG,OAAO,aAAaS,EAAC,GAAEA,KAAEb,GAAE,WAAWG,EAAC;AAAA,aAAQoB,GAAEV,EAAC;AAAG,aAAOP,KAAE;AAAA,IAAE;AAAC,QAAG,EAAEO,EAAC,EAAE,QAAOV,MAAIC,MAAG,OAAO,aAAaS,EAAC,GAAEA,OAAI,MAAIb,GAAE,WAAWG,EAAC,MAAI,OAAKA,MAAIC,MAAG;AAAA,IAC/dG,MAAIE,KAAEN,IAAEG,KAAE;AAAG,YAAOO,IAAE;AAAA,MAAC,KAAK;AAAI,eAAOV,MAAIG,KAAE;AAAA,MAAE,KAAK;AAAI,eAAOH,MAAIG,KAAE;AAAA,MAAE,KAAK;AAAG,eAAOH,MAAIG,KAAE;AAAA,MAAE,KAAK;AAAG,eAAOH,MAAIG,KAAE;AAAA,MAAE,KAAK;AAAG,eAAOH,MAAIG,KAAE;AAAA,MAAE,KAAK;AAAG,eAAOH,MAAIG,KAAE;AAAA,MAAE,KAAK;AAAG,eAAOH,MAAIC,KAAEiB,GAAE,GAAEf,KAAE;AAAA,MAAG,KAAK;AAAG,cAAMQ,KAAEX,KAAE;AAAE,YAAGH,GAAE,WAAWG,KAAE,CAAC,MAAI,IAAG;AAAC,eAAIA,MAAG,GAAEA,KAAED,MAAG,CAAC,EAAEF,GAAE,WAAWG,EAAC,CAAC,IAAG,CAAAA;AAAI,iBAAOC,KAAEJ,GAAE,UAAUc,IAAEX,EAAC,GAAEG,KAAE;AAAA,QAAE;AAAC,YAAGN,GAAE,WAAWG,KAAE,CAAC,MAAI,IAAG;AAAC,UAAAA,MAAG;AAAE,gBAAMY,KAAEb,KAAE;AAAE,cAAIc,KAAE;AAAG,iBAAKb,KAAEY,MAAG;AAAC,kBAAME,KAAEjB,GAAE,WAAWG,EAAC;AAAE,gBAAGc,OAAI,MAAIjB,GAAE,WAAWG,KAAE,CAAC,MAAI,IAAG;AAAC,cAAAA,MAAG,GAAEa,KAAE;AAAG;AAAA,YAAK;AAAC,YAAAb,MAAI,EAAEc,EAAC,MAAIA,OAAI,MAAIjB,GAAE,WAAWG,EAAC,MAAI,MAAIA,MAAII,MAAIE,KAAEN;AAAA,UAAE;AAAC,iBAAOa,OAAIb,MAAIQ,KAAE,IAAGP,KAAEJ,GAAE,UAAUc,IAAEX,EAAC,GAAEG,KAAE;AAAA,QAAE;AAAC,eAAOF,MAAG,OAAO,aAAaS,EAAC,GAAEV,MAAIG,KAAE;AAAA,MAAG,KAAK;AAAG,YAAGF,MAAG,OAAO,aAAaS,EAAC,GAAEV,MAAIA,OAAID,MAAG,CAAC,EAAEF,GAAE,WAAWG,EAAC,CAAC,EAAE,QAAOG,KAAE;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAG,eAAOF,MAAGgB,GAAE,GAAEd,KAAE;AAAA,MAAG;AAAQ,eAAKH,KAAED,MAAGsB,GAAEX,EAAC,IAAG,CAAAV,MAAIU,KAAEb,GAAE,WAAWG,EAAC;AAAE,YAAGE,OAAIF,IAAE;AAAC,kBAAOC,KAAEJ,GAAE,UAAUK,IAAEF,EAAC,GAAEC,IAAE;AAAA,YAAC,KAAI;AAAO,qBAAOE,KAAE;AAAA,YAAE,KAAI;AAAQ,qBAAOA,KAAE;AAAA,YAAE,KAAI;AAAO,qBAAOA,KAAE;AAAA,UAAC;AAAC,iBAAOA,KAAE;AAAA,QAAE;AAAC,eAAOF,MAAG,OAAO,aAAaS,EAAC,GAAEV,MAAIG,KAAE;AAAA,IAAE;AAAA,EAAC;AAAC,EAAAY,GAAEI,IAAE,UAAU;AAAE,WAASE,GAAEX,IAAE;AAAC,QAAGU,GAAEV,EAAC,KAAG,EAAEA,EAAC,EAAE,QAAM;AAAG,YAAOA,IAAE;AAAA,MAAC,KAAK;AAAA,MAAI,KAAK;AAAA,MAAG,KAAK;AAAA,MAAI,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAA,MAAG,KAAK;AAAG,eAAM;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAC,EAAAK,GAAEM,IAAE,2BAA2B;AAAE,WAAS,IAAG;AAAC,QAAIX;AAAE;AAAG,MAAAA,KAAES,GAAE;AAAA,WAAQT,MAAG,MAAIA,MAAG;AAAI,WAAOA;AAAA,EAAC;AAAC,SAAOK,GAAE,GAAE,mBAAmB,GAAE,EAAC,aAAYC,IAAE,aAAYD,GAAE,MAAIf,IAAE,aAAa,GAAE,MAAKF,KAAE,IAAEqB,IAAE,UAASJ,GAAE,MAAIZ,IAAE,UAAU,GAAE,eAAcY,GAAE,MAAId,IAAE,eAAe,GAAE,gBAAec,GAAE,MAAIb,IAAE,gBAAgB,GAAE,gBAAea,GAAE,MAAIf,KAAEE,IAAE,gBAAgB,GAAE,mBAAkBa,GAAE,MAAIV,IAAE,mBAAmB,GAAE,wBAAuBU,GAAE,MAAIb,KAAEK,IAAE,wBAAwB,GAAE,eAAcQ,GAAE,MAAIP,IAAE,eAAe,EAAC;AAAC;AAAuB,SAASY,GAAEvB,IAAE;AAAC,SAAOA,OAAI,MAAIA,OAAI;AAAC;AAAqB,SAAS,EAAEA,IAAE;AAAC,SAAOA,OAAI,MAAIA,OAAI;AAAE;AAAoB,SAAS,EAAEA,IAAE;AAAC,SAAOA,MAAG,MAAIA,MAAG;AAAE;AAIxpD,SAAS,GAAGA,IAAEC,KAAE,CAAC,GAAEC,KAAE,EAAE,SAAQ;AAAC,MAAIC,KAAE,MAAKC,KAAE,CAAC;AAAE,QAAMC,KAAE,CAAC;AAAE,WAASC,GAAEE,IAAE;AAAC,UAAM,QAAQJ,EAAC,IAAEA,GAAE,KAAKI,EAAC,IAAEL,OAAI,SAAOC,GAAED,EAAC,IAAEK;AAAA,EAAE;AAAC,SAAOU,GAAEZ,IAAE,SAAS,GAAE,GAAGN,IAAE,EAAC,eAAckB,GAAE,MAAI;AAAC,UAAMV,KAAE,CAAC;AAAE,IAAAF,GAAEE,EAAC,GAAEH,GAAE,KAAKD,EAAC,GAAEA,KAAEI,IAAEL,KAAE;AAAA,EAAI,GAAE,eAAe,GAAE,kBAAiBe,GAAE,CAAAV,OAAG;AAAC,IAAAL,KAAEK;AAAA,EAAC,GAAE,kBAAkB,GAAE,aAAYU,GAAE,MAAI;AAAC,IAAAd,KAAEC,GAAE,IAAI;AAAA,EAAC,GAAE,aAAa,GAAE,cAAaa,GAAE,MAAI;AAAC,UAAMV,KAAE,CAAC;AAAE,IAAAF,GAAEE,EAAC,GAAEH,GAAE,KAAKD,EAAC,GAAEA,KAAEI,IAAEL,KAAE;AAAA,EAAI,GAAE,cAAc,GAAE,YAAWe,GAAE,MAAI;AAAC,IAAAd,KAAEC,GAAE,IAAI;AAAA,EAAC,GAAE,YAAY,GAAE,gBAAeC,IAAE,SAAQY,GAAE,CAACV,IAAEC,IAAEC,OAAI;AAAC,IAAAT,GAAE,KAAK,EAAC,OAAMO,IAAE,QAAOC,IAAE,QAAOC,GAAC,CAAC;AAAA,EAAC,GAAE,SAAS,EAAC,GAAER,EAAC,GAAEE,GAAE,CAAC;AAAC;AAAiB,SAAS,GAAGJ,IAAEC,IAAEC,KAAE,EAAE,SAAQ;AAAC,QAAMC,KAAE,GAAGH,IAAE,KAAE,GAAEI,KAAE,CAAC;AAAE,MAAIC,KAAE;AAAE,WAASC,GAAEmB,IAAE;AAAC,WAAOA,KAAE,MAAIpB,OAAI,KAAGoB,GAAEtB,GAAE,eAAe,GAAEA,GAAE,eAAe,GAAEA,GAAE,kBAAkB,GAAEA,GAAE,uBAAuB,CAAC,IAAE,MAAI;AAAA,EAAE;AAAC,EAAAe,GAAEZ,IAAE,cAAc;AAAE,WAASC,GAAEkB,IAAE;AAAC,WAAOA,KAAE,CAAAC,OAAGrB,OAAI,KAAGoB,GAAEC,IAAEvB,GAAE,eAAe,GAAEA,GAAE,eAAe,GAAEA,GAAE,kBAAkB,GAAEA,GAAE,uBAAuB,CAAC,IAAE,MAAI;AAAA,EAAE;AAAC,EAAAe,GAAEX,IAAE,eAAe;AAAE,WAASC,GAAEiB,IAAE;AAAC,WAAOA,KAAE,CAAAC,OAAGrB,OAAI,KAAGoB,GAAEC,IAAEvB,GAAE,eAAe,GAAEA,GAAE,eAAe,GAAEA,GAAE,kBAAkB,GAAEA,GAAE,uBAAuB,GAAE,MAAIC,GAAE,MAAM,CAAC,IAAE,MAAI;AAAA,EAAE;AAAC,EAAAc,GAAEV,IAAE,uBAAuB;AAAE,WAASC,GAAEgB,IAAE;AAAC,WAAOA,KAAE,MAAI;AAAC,MAAApB,KAAE,IAAEA,OAAIoB,GAAEtB,GAAE,eAAe,GAAEA,GAAE,eAAe,GAAEA,GAAE,kBAAkB,GAAEA,GAAE,uBAAuB,GAAE,MAAIC,GAAE,MAAM,CAAC,MAAI,UAAKC,KAAE;AAAA,IAAE,IAAE,MAAI;AAAA,EAAE;AAAC,EAAAa,GAAET,IAAE,cAAc;AAAE,WAASC,GAAEe,IAAE;AAAC,WAAOA,KAAE,MAAI;AAAC,MAAApB,KAAE,KAAGA,MAAIA,OAAI,KAAGoB,GAAEtB,GAAE,eAAe,GAAEA,GAAE,eAAe,GAAEA,GAAE,kBAAkB,GAAEA,GAAE,uBAAuB,CAAC;AAAA,IAAC,IAAE,MAAI;AAAA,EAAE;AAAC,EAAAe,GAAER,IAAE,YAAY;AAAE,QAAMC,KAAEF,GAAER,GAAE,aAAa,GAAEW,KAAEJ,GAAEP,GAAE,gBAAgB,GAAEkB,KAAET,GAAET,GAAE,WAAW,GAAEmB,KAAEX,GAAER,GAAE,YAAY,GAAEoB,KAAEX,GAAET,GAAE,UAAU,GAAEqB,KAAEd,GAAEP,GAAE,cAAc,GAAEuB,KAAEjB,GAAEN,GAAE,WAAW,GAAE,IAAEK,GAAEL,GAAE,SAAS,GAAEY,KAAEN,GAAEN,GAAE,OAAO,GAAEa,KAAEZ,MAAGA,GAAE,kBAAiBa,KAAEb,MAAGA,GAAE;AAAmB,WAASc,KAAG;AAAC,eAAO;AAAC,YAAMS,KAAEtB,GAAE,KAAK;AAAE,cAAOA,GAAE,cAAc,GAAE;AAAA,QAAC,KAAK;AAAE,UAAAc,GAAE,EAAE;AAAE;AAAA,QAAM,KAAK;AAAE,UAAAA,GAAE,EAAE;AAAE;AAAA,QAAM,KAAK;AAAE,UAAAA,GAAE,EAAE;AAAE;AAAA,QAAM,KAAK;AAAE,UAAAH,MAAGG,GAAE,EAAE;AAAE;AAAA,QAAM,KAAK;AAAE,UAAAA,GAAE,EAAE;AAAE;AAAA,QAAM,KAAK;AAAE,UAAAA,GAAE,EAAE;AAAE;AAAA,MAAK;AAAC,cAAOQ,IAAE;AAAA,QAAC,KAAK;AAAA,QAAG,KAAK;AAAG,UAAAX,KAAEG,GAAE,EAAE,IAAE,EAAE;AAAE;AAAA,QAAM,KAAK;AAAG,UAAAA,GAAE,CAAC;AAAE;AAAA,QAAM,KAAK;AAAA,QAAG,KAAK;AAAG;AAAA,QAAM;AAAQ,iBAAOQ;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAP,GAAEF,IAAE,UAAU;AAAE,WAASC,GAAEQ,IAAEC,KAAE,CAAC,GAAEC,KAAE,CAAC,GAAE;AAAC,QAAGd,GAAEY,EAAC,GAAEC,GAAE,SAAOC,GAAE,SAAO,GAAE;AAAC,UAAIC,KAAEzB,GAAE,SAAS;AAAE,aAAKyB,OAAI,MAAI;AAAC,YAAGF,GAAE,QAAQE,EAAC,MAAI,IAAG;AAAC,UAAAZ,GAAE;AAAE;AAAA,QAAK,WAASW,GAAE,QAAQC,EAAC,MAAI,GAAG;AAAM,QAAAA,KAAEZ,GAAE;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAE,GAAED,IAAE,aAAa;AAAE,WAASY,GAAEJ,IAAE;AAAC,UAAMC,KAAEvB,GAAE,cAAc;AAAE,WAAOsB,KAAEH,GAAEI,EAAC,KAAGd,GAAEc,EAAC,GAAEtB,GAAE,KAAKsB,EAAC,IAAGV,GAAE,GAAE;AAAA,EAAE;AAAC,EAAAE,GAAEW,IAAE,aAAa;AAAE,WAAS,IAAG;AAAC,YAAO1B,GAAE,SAAS,GAAE;AAAA,MAAC,KAAK;AAAG,cAAMsB,KAAEtB,GAAE,cAAc;AAAE,YAAIuB,KAAE,OAAOD,EAAC;AAAE,cAAMC,EAAC,MAAIT,GAAE,CAAC,GAAES,KAAE,IAAGJ,GAAEI,EAAC;AAAE;AAAA,MAAM,KAAK;AAAE,QAAAJ,GAAE,IAAI;AAAE;AAAA,MAAM,KAAK;AAAE,QAAAA,GAAE,IAAE;AAAE;AAAA,MAAM,KAAK;AAAE,QAAAA,GAAE,KAAE;AAAE;AAAA,MAAM;AAAQ,eAAM;AAAA,IAAE;AAAC,WAAON,GAAE,GAAE;AAAA,EAAE;AAAC,EAAAE,GAAE,GAAE,cAAc;AAAE,WAASY,KAAG;AAAC,WAAO3B,GAAE,SAAS,MAAI,MAAIc,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,UAAKY,GAAE,KAAE,GAAE1B,GAAE,SAAS,MAAI,KAAGqB,GAAE,GAAG,GAAER,GAAE,GAAEe,GAAE,KAAGd,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,KAAGA,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAEb,GAAE,IAAI,GAAE;AAAA,EAAG;AAAC,EAAAc,GAAEY,IAAE,eAAe;AAAE,WAASE,KAAG;AAAC,IAAArB,GAAE,GAAEK,GAAE;AAAE,QAAIS,KAAE;AAAG,WAAKtB,GAAE,SAAS,MAAI,KAAGA,GAAE,SAAS,MAAI,MAAI;AAAC,UAAGA,GAAE,SAAS,MAAI,GAAE;AAAC,YAAGsB,MAAGR,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAEO,GAAE,GAAG,GAAER,GAAE,GAAEb,GAAE,SAAS,MAAI,KAAGY,GAAE;AAAA,MAAK,MAAM,CAAAU,MAAGR,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC;AAAE,MAAAa,GAAE,KAAGb,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAEQ,KAAE;AAAA,IAAE;AAAC,WAAON,GAAE,GAAEhB,GAAE,SAAS,MAAI,IAAEc,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,CAAC,IAAED,GAAE,GAAE;AAAA,EAAE;AAAC,EAAAE,GAAEc,IAAE,aAAa;AAAE,WAASC,KAAG;AAAC,IAAAb,GAAE,GAAEJ,GAAE;AAAE,QAAIS,KAAE,MAAGC,KAAE;AAAG,WAAKvB,GAAE,SAAS,MAAI,KAAGA,GAAE,SAAS,MAAI,MAAI;AAAC,UAAGA,GAAE,SAAS,MAAI,GAAE;AAAC,YAAGuB,MAAGT,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAEO,GAAE,GAAG,GAAER,GAAE,GAAEb,GAAE,SAAS,MAAI,KAAGY,GAAE;AAAA,MAAK,MAAM,CAAAW,MAAGT,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC;AAAE,MAAAQ,MAAGrB,GAAE,KAAK,CAAC,GAAEqB,KAAE,SAAIrB,GAAEA,GAAE,SAAO,CAAC,KAAI2B,GAAE,KAAGd,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,CAAC,GAAES,KAAE;AAAA,IAAE;AAAC,WAAOL,GAAE,GAAEI,MAAGrB,GAAE,IAAI,GAAED,GAAE,SAAS,MAAI,IAAEc,GAAE,GAAE,CAAC,CAAC,GAAE,CAAC,CAAC,IAAED,GAAE,GAAE;AAAA,EAAE;AAAC,EAAAE,GAAEe,IAAE,YAAY;AAAE,WAASF,KAAG;AAAC,YAAO5B,GAAE,SAAS,GAAE;AAAA,MAAC,KAAK;AAAE,eAAO8B,GAAE;AAAA,MAAE,KAAK;AAAE,eAAOD,GAAE;AAAA,MAAE,KAAK;AAAG,eAAOH,GAAE,IAAE;AAAA,MAAE;AAAQ,eAAO,EAAE;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOX,GAAEa,IAAE,YAAY,GAAEf,GAAE,GAAEb,GAAE,SAAS,MAAI,KAAGD,GAAE,oBAAkB,QAAIe,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,SAAIc,GAAE,KAAG5B,GAAE,SAAS,MAAI,MAAIc,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,SAAKA,GAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE;AAAG;AANv7G,IAAI,IAA6BC,IAAkU,GAAmLgB,IAAkB,IAAqB,GAAgB,IAAyH,GAAqB,GAEoiC,IAA28C,GAIrrG,GAAq7G,IAAgW,IAA0oB,IAAU,IAA8wB,IAA4C,GAA4BC,IAAiB,IAA0E,IAAuW,IAAkB,IAAmB,IAAq+B,IAA+C,IAAiC,IAAgG,IAAsI,IAAgf,IAA+B,IAA47C,GAA8F,IAA+E,IAA2oH,IAAof,IAAoJ,IAAS,IAAyF,IAAyG,IAA+E,IAA+Z,IAAonB,IAAyB,GAA6D,IAAiI,IAAW,IAAuM,IAA8H,IAAoN,IAAY,IAA2E,IAAoL,IAAmI,IAA+E,IAAuD,IAAgC,IAAsB,IAAU,GAAS,IAAW,IAA8B;AAN/kgB,IAAAC,aAAA;AAAA;AAAA;AAA8J;AAA9J,IAAI,KAAG,OAAO;AAAe,IAAIlB,KAAE,CAAClB,IAAEC,OAAI,GAAGD,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAiQ,IAAAiB,GAAEnB,IAAE,OAAO;AAAE,IAAM,IAAEmB,GAAE,CAAAlB,OAAG;AAAC,YAAMC,KAAE,GAAGD,EAAC;AAAE,aAAM,CAACE,OAAKC,OAAI;AAAC,cAAMC,KAAE,GAAGJ,EAAC,IAAIG,GAAE,KAAK,GAAG,CAAC;AAAG,YAAIE,KAAEH,MAAG,OAAK,SAAOA,GAAE,IAAIE,EAAC;AAAE,eAAOC,OAAI,WAASA,KAAE,QAAQ,MAAMJ,IAAE,IAAGE,EAAC,GAAED,MAAG,QAAMA,GAAE,IAAIE,IAAEC,EAAC,IAAGA;AAAA,MAAC;AAAA,IAAC,GAAE,SAAS;AAAvL,IAAyL6B,KAAE,EAAE,YAAY;AAAzM,IAA2M,KAAG,EAAE,cAAc;AAA9N,IAAgO,IAAE,EAAE,UAAU;AAA9O,IAAgP,KAAGhB,GAAE,CAAClB,IAAEC,IAAEC,OAAI;AAAC,iBAAO;AAAC,cAAMC,KAAEL,GAAE,MAAM,KAAKE,IAAEC,EAAC;AAAE,YAAGiC,GAAEhC,IAAEC,EAAC,EAAE,QAAOA;AAAE,cAAMC,KAAEN,GAAE,QAAQE,EAAC;AAAE,YAAGI,OAAIJ,GAAE;AAAO,QAAAA,KAAEI;AAAA,MAAC;AAAA,IAAC,GAAE,QAAQ;AAAvW,IAAyW,IAAE;AAA3W,IAA8X,IAAEc,GAAE,CAAAlB,OAAG;AAAC,YAAMC,KAAEF,GAAEC,EAAC;AAAE,aAAO,EAAE,KAAKC,EAAC,IAAEA,KAAE,KAAKA,EAAC;AAAA,IAAE,GAAE,uBAAuB;AAEkyB,IAAAiB,GAAE,IAAG,eAAe;AAAqC,IAAAA,GAAEK,IAAE,cAAc;AAAsC,IAAAL,GAAE,GAAE,aAAa;AAAoC,IAAAA,GAAE,GAAE,SAAS;AAAS,KAAC,SAASlB,IAAE;AAAC,MAAAA,GAAEA,GAAE,WAAS,EAAE,IAAE,YAAWA,GAAEA,GAAE,iBAAe,EAAE,IAAE,kBAAiBA,GAAEA,GAAE,QAAM,EAAE,IAAE,SAAQA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,KAAG,EAAE,IAAE,MAAKA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,WAAS,EAAE,IAAE,YAAWA,GAAEA,GAAE,YAAU,EAAE,IAAE,aAAYA,GAAEA,GAAE,aAAW,GAAG,IAAE,cAAaA,GAAEA,GAAE,eAAa,EAAE,IAAE,gBAAeA,GAAEA,GAAE,QAAM,EAAE,IAAE,SAAQA,GAAEA,GAAE,QAAM,EAAE,IAAE,SAAQA,GAAEA,GAAE,MAAI,EAAE,IAAE,OAAMA,GAAEA,GAAE,cAAY,EAAE,IAAE,eAAcA,GAAEA,GAAE,QAAM,EAAE,IAAE,SAAQA,GAAEA,GAAE,YAAU,GAAG,IAAE,aAAYA,GAAEA,GAAE,cAAY,EAAE,IAAE,eAAcA,GAAEA,GAAE,OAAK,EAAE,IAAE,QAAOA,GAAEA,GAAE,QAAM,EAAE,IAAE,SAAQA,GAAEA,GAAE,WAAS,EAAE,IAAE,YAAWA,GAAEA,GAAE,MAAI,CAAC,IAAE;AAAA,IAAK,GAAG,OAAK,KAAG,CAAC,EAAE,GAAE,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAACA,IAAEC,OAAI,IAAI,OAAOA,EAAC,CAAC;AAAE,IAAM,IAAE;AAAI,QAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACD,IAAEC,OAAI;AAAA,IAC9uG,IAAI,OAAOA,EAAC,CAAC,GAAE,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACD,IAAEC,OAAI,OAAK,IAAI,OAAOA,EAAC,CAAC,GAAE,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACD,IAAEC,OAAI;AAAA,IACnG,IAAI,OAAOA,EAAC,CAAC,GAAE,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACD,IAAEC,OAAI;AAAA,IAC/C,IAAI,OAAOA,EAAC,CAAC,GAAE,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACD,IAAEC,OAAI,OAAK,IAAI,OAAOA,EAAC,CAAC,GAAE,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAACD,IAAEC,OAAI;AAAA,IACnG,IAAI,OAAOA,EAAC,CAAC;AAAQ,KAAC,SAASD,IAAE;AAAC,MAAAA,GAAE,UAAQ,EAAC,oBAAmB,MAAE;AAAA,IAAC,GAAG,MAAI,IAAE,CAAC,EAAE;AAAihB,IAAAkB,GAAE,IAAG,SAAS;AAAw0F,IAAAA,GAAE,IAAG,OAAO;AAAS,KAAC,SAASlB,IAAE;AAAC,MAAAA,GAAEA,GAAE,OAAK,CAAC,IAAE,QAAOA,GAAEA,GAAE,yBAAuB,CAAC,IAAE,0BAAyBA,GAAEA,GAAE,wBAAsB,CAAC,IAAE,yBAAwBA,GAAEA,GAAE,wBAAsB,CAAC,IAAE,yBAAwBA,GAAEA,GAAE,iBAAe,CAAC,IAAE,kBAAiBA,GAAEA,GAAE,yBAAuB,CAAC,IAAE,0BAAyBA,GAAEA,GAAE,mBAAiB,CAAC,IAAE;AAAA,IAAkB,GAAG,OAAK,KAAG,CAAC,EAAE;AAAS,KAAC,SAASA,IAAE;AAAC,MAAAA,GAAEA,GAAE,iBAAe,CAAC,IAAE,kBAAiBA,GAAEA,GAAE,kBAAgB,CAAC,IAAE,mBAAkBA,GAAEA,GAAE,mBAAiB,CAAC,IAAE,oBAAmBA,GAAEA,GAAE,oBAAkB,CAAC,IAAE,qBAAoBA,GAAEA,GAAE,aAAW,CAAC,IAAE,cAAaA,GAAEA,GAAE,aAAW,CAAC,IAAE,cAAaA,GAAEA,GAAE,cAAY,CAAC,IAAE,eAAcA,GAAEA,GAAE,cAAY,CAAC,IAAE,eAAcA,GAAEA,GAAE,eAAa,CAAC,IAAE,gBAAeA,GAAEA,GAAE,gBAAc,EAAE,IAAE,iBAAgBA,GAAEA,GAAE,iBAAe,EAAE,IAAE,kBAAiBA,GAAEA,GAAE,oBAAkB,EAAE,IAAE,qBAAoBA,GAAEA,GAAE,qBAAmB,EAAE,IAAE,sBAAqBA,GAAEA,GAAE,kBAAgB,EAAE,IAAE,mBAAkBA,GAAEA,GAAE,SAAO,EAAE,IAAE,UAASA,GAAEA,GAAE,UAAQ,EAAE,IAAE,WAAUA,GAAEA,GAAE,MAAI,EAAE,IAAE;AAAA,IAAK,GAAG,OAAK,KAAG,CAAC,EAAE;AAAE,IAAM,KAAG;AAAU,KAAC,SAASA,IAAE;AAAC,MAAAA,GAAEA,GAAE,gBAAc,CAAC,IAAE,iBAAgBA,GAAEA,GAAE,sBAAoB,CAAC,IAAE,uBAAsBA,GAAEA,GAAE,uBAAqB,CAAC,IAAE,wBAAuBA,GAAEA,GAAE,gBAAc,CAAC,IAAE,iBAAgBA,GAAEA,GAAE,gBAAc,CAAC,IAAE,iBAAgBA,GAAEA,GAAE,gBAAc,CAAC,IAAE,iBAAgBA,GAAEA,GAAE,qBAAmB,CAAC,IAAE,sBAAqBA,GAAEA,GAAE,uBAAqB,CAAC,IAAE,wBAAuBA,GAAEA,GAAE,oBAAkB,CAAC,IAAE,qBAAoBA,GAAEA,GAAE,sBAAoB,EAAE,IAAE,uBAAsBA,GAAEA,GAAE,yBAAuB,EAAE,IAAE,0BAAyBA,GAAEA,GAAE,wBAAsB,EAAE,IAAE,yBAAwBA,GAAEA,GAAE,wBAAsB,EAAE,IAAE,yBAAwBA,GAAEA,GAAE,iBAAe,EAAE,IAAE,kBAAiBA,GAAEA,GAAE,yBAAuB,EAAE,IAAE,0BAAyBA,GAAEA,GAAE,mBAAiB,EAAE,IAAE;AAAA,IAAkB,GAAG,OAAK,KAAG,CAAC,EAAE;AAAE,IAAM,KAAGkB,GAAE,CAAClB,IAAEC,OAAI,GAAG,GAAGA,IAAED,IAAE,MAAM,CAAC,GAAE,WAAW;AAAhD,IAAkD,IAAE,uBAAO,iBAAiB;AAA5E,IAA8EmC,KAAE;AAAhF,IAA+F,KAAGjB,GAAE,MAAI;AAAC,YAAK,EAAC,YAAWlB,GAAC,IAAE;AAAG,aAAOA,MAAGA,GAAE,QAAQ,IAAI,CAAC;AAAA,IAAC,GAAE,WAAW;AAAvK,IAAyK,KAAGkB,GAAE,CAAClB,IAAEC,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAE,8BAA8BJ,EAAC,IAAIC,EAAC,IAAIC,EAAC;AAAG,UAAGC,MAAG,QAAMA,GAAE,IAAIC,EAAC,EAAE,QAAOD,GAAE,IAAIC,EAAC;AAAE,YAAMC,KAAE,GAAGL,IAAEG,EAAC;AAAE,UAAG,CAACE,GAAE;AAAO,UAAIC,KAAEL,MAAG;AAAgB,UAAG,CAACC,MAAGG,GAAE,QAAQ,KAAG;AAAC,cAAK,CAACE,EAAC,IAAE,EAAGF,GAAE,SAAQJ,IAAE,CAAC,WAAU,OAAO,CAAC;AAAE,QAAAK,KAAEC;AAAA,MAAC,QAAM;AAAC,eAAM;AAAA,MAAE;AAAA,UAAK,EAACN,MAAGI,GAAE,aAAWC,KAAED,GAAE;AAAU,aAAOC,KAAER,GAAE,KAAKE,IAAE,MAAKM,EAAC,GAAEH,MAAG,QAAMA,GAAE,IAAIC,IAAEE,EAAC,GAAEA;AAAA,IAAC,GAAE,4BAA4B;AAA9gB,IAAghB,KAAG;AAAnhB,IAAkiB,KAAG;AAAriB,IAAqjB,KAAGY,GAAE,CAAClB,IAAEC,IAAEC,OAAI;AAAC,UAAIC,KAAEH;AAAE,UAAGA,OAAI,SAAOG,KAAEL,GAAE,KAAKK,IAAE,EAAE,IAAGH,GAAE,CAAC,MAAI,QAAMG,KAAEL,GAAE,QAAQG,IAAEE,EAAC,IAAGL,GAAE,WAAWK,EAAC,GAAE;AAAC,YAAG+B,GAAEhC,IAAEC,EAAC,GAAE;AAAC,cAAG,EAAED,IAAEC,EAAC,EAAE,OAAO,EAAE,QAAOA;AAAA,QAAC,WAAS,CAACA,GAAE,SAAS,OAAO,GAAE;AAAC,gBAAMgB,KAAE,GAAGhB,EAAC;AAAQ,cAAG+B,GAAEhC,IAAEiB,EAAC,EAAE,QAAOA;AAAA,QAAC;AAAC;AAAA,MAAM;AAAC,YAAK,CAACf,IAAE,GAAGC,EAAC,IAAEL,GAAE,MAAM,GAAG,GAAEM,KAAEF,GAAE,CAAC,MAAI,MAAI,GAAGA,EAAC,IAAIC,GAAE,MAAM,CAAC,KAAGD,IAAEG,KAAEF,GAAE,KAAK,GAAG,GAAEG,KAAE,GAAG;AAAE,UAAGA,IAAE;AAAC,cAAK,EAAC,gBAAeW,GAAC,IAAEX;AAAE,YAAG;AAAC,cAAGF,OAAIN,IAAE;AAAC,kBAAMoB,KAAED,GAAErB,GAAE,KAAKQ,IAAE,EAAE,GAAEL,EAAC;AAAE,gBAAGmB,IAAE;AAAC,oBAAMC,KAAE,GAAGD,IAAEb,IAAE,OAAGL,EAAC;AAAE,kBAAGmB,MAAGa,GAAEhC,IAAEmB,EAAC,EAAE,QAAOA;AAAA,YAAC;AAAA,UAAC,OAAK;AAAC,gBAAID;AAAE,gBAAG;AAAC,cAAAA,KAAED,GAAEnB,IAAEC,IAAE,EAAC,YAAW,CAAC,OAAO,EAAC,CAAC;AAAA,YAAC,QAAM;AAAC,cAAAmB,KAAED,GAAErB,GAAE,KAAKE,IAAE,EAAE,GAAEC,EAAC;AAAA,YAAC;AAAC,gBAAGmB,GAAE,QAAOA;AAAA,UAAC;AAAA,QAAC,QAAM;AAAA,QAAC;AAAA,MAAC;AAAC,YAAMX,KAAE,GAAGX,GAAE,QAAQG,EAAC,GAAEH,GAAE,KAAK,gBAAeQ,EAAC,GAAEJ,EAAC;AAAE,UAAG,CAACO,MAAG,CAAC,EAAEP,IAAEO,EAAC,EAAE,YAAY,EAAE;AAAO,YAAMC,KAAEZ,GAAE,KAAKW,IAAE,EAAE;AAAE,UAAGyB,GAAEhC,IAAEQ,EAAC,GAAE;AAAC,cAAMS,KAAE,GAAGT,IAAEH,IAAE,OAAGL,EAAC;AAAE,YAAGiB,OAAI,MAAG;AAAO,YAAGA,MAAGe,GAAEhC,IAAEiB,EAAC,KAAG,EAAEjB,IAAEiB,EAAC,EAAE,OAAO,EAAE,QAAOA;AAAA,MAAC;AAAC,YAAMR,KAAEb,GAAE,KAAKW,IAAEF,EAAC,GAAEK,KAAED,GAAE,SAAS,OAAO;AAAE,UAAG,CAACC,IAAE;AAAC,cAAMO,KAAE,GAAGR,EAAC;AAAQ,YAAGuB,GAAEhC,IAAEiB,EAAC,EAAE,QAAOA;AAAA,MAAC;AAAC,UAAGe,GAAEhC,IAAES,EAAC,GAAE;AAAC,YAAG,EAAET,IAAES,EAAC,EAAE,YAAY,GAAE;AAAC,gBAAMQ,KAAErB,GAAE,KAAKa,IAAE,EAAE;AAAE,cAAGuB,GAAEhC,IAAEiB,EAAC,GAAE;AAAC,kBAAME,KAAE,GAAGF,IAAE,IAAG,MAAGjB,EAAC;AAAE,gBAAGmB,MAAGa,GAAEhC,IAAEmB,EAAC,EAAE,QAAOA;AAAA,UAAC;AAAC,gBAAMD,KAAEtB,GAAE,KAAKa,IAAE,EAAE;AAAE,cAAGuB,GAAEhC,IAAEkB,EAAC,EAAE,QAAOA;AAAA,QAAC,WAASR,GAAE,QAAOD;AAAA,MAAC;AAAA,IAAC,GAAE,oBAAoB;AAAxhD,IAA0hD,KAAGO,GAAE,CAAClB,IAAEC,OAAI,EAAEH,GAAE,SAASE,IAAEC,EAAC,CAAC,GAAE,cAAc;AAAvkD,IAAykD,KAAG,CAAC,SAAQ,WAAU,SAAS;AAAxmD,IAA0mD,KAAGiB,GAAE,CAAClB,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAEL,GAAE,KAAKG,IAAEC,EAAC,GAAEE,KAAEN,GAAE,SAASE,IAAEG,EAAC;AAAE,aAAOJ,GAAEK,EAAC,KAAG;AAAA,IAAI,GAAE,sBAAsB;AAAxsD,IAA0sD,KAAGc,GAAE,CAAClB,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAEL,GAAE,SAASE,IAAEC,EAAC;AAAE,UAAG,CAACE,GAAE,QAAOD;AAAE,YAAME,KAAEF,GAAE,WAAW,IAAI,IAAEA,GAAE,MAAM,CAAC,IAAEA;AAAE,aAAOH,GAAE,GAAGI,EAAC,IAAIC,EAAC,EAAE;AAAA,IAAC,GAAE,eAAe;AAA90D,IAAg1D,KAAGc,GAAE,CAAClB,IAAEC,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAE,GAAGJ,IAAEC,IAAEE,EAAC;AAAE,UAAG,CAACC,GAAE,OAAM,IAAI,MAAM,SAASJ,EAAC,cAAc;AAAE,UAAGE,GAAE,IAAIE,EAAC,EAAE,OAAM,IAAI,MAAM,uDAAuDA,EAAC,EAAE;AAAE,MAAAF,GAAE,IAAIE,EAAC;AAAE,YAAMC,KAAEP,GAAE,QAAQM,EAAC,GAAEE,KAAE,GAAGF,IAAED,IAAED,EAAC;AAAE,aAAOI,GAAE;AAAW,YAAK,EAAC,iBAAgBC,GAAC,IAAED;AAAE,UAAGC,IAAE;AAAC,cAAK,EAAC,SAAQC,GAAC,IAAED;AAAE,QAAAC,MAAG,CAACA,GAAE,WAAW2B,EAAC,MAAI5B,GAAE,UAAQ,GAAGN,IAAEI,IAAEG,EAAC;AAAG,cAAK,EAAC,QAAOC,GAAC,IAAEF;AAAE,QAAAE,MAAG,CAACA,GAAE,WAAW0B,EAAC,MAAI5B,GAAE,SAAO,GAAGN,IAAEI,IAAEI,EAAC;AAAA,MAAE;AAAC,iBAAUD,MAAK,IAAG;AAAC,cAAMC,KAAEH,GAAEE,EAAC;AAAE,QAAAC,OAAIH,GAAEE,EAAC,IAAEC,GAAE,IAAI,CAAAC,OAAGA,GAAE,WAAWyB,EAAC,IAAEzB,KAAE,GAAGT,IAAEI,IAAEK,EAAC,CAAC;AAAA,MAAE;AAAC,aAAOJ;AAAA,IAAC,GAAE,gBAAgB;AAA9zE,IAAg0E,KAAG,CAAC,UAAS,gBAAgB;AAA71E,IAA+1E,KAAGY,GAAE,CAAClB,IAAEC,IAAEC,KAAE,oBAAI,UAAM;AAAC,UAAIC;AAAE,UAAG;AAAC,QAAAA,KAAE,GAAGH,IAAEC,EAAC,KAAG,CAAC;AAAA,MAAC,QAAM;AAAC,cAAM,IAAI,MAAM,oCAAoCD,EAAC,EAAE;AAAA,MAAC;AAAC,UAAG,OAAOG,MAAG,SAAS,OAAM,IAAI,YAAY,gCAAgCH,EAAC,EAAE;AAAE,YAAMI,KAAEN,GAAE,QAAQE,EAAC;AAAE,UAAGG,GAAE,iBAAgB;AAAC,cAAK,EAAC,iBAAgBE,GAAC,IAAEF;AAAE,QAAAE,GAAE,SAAO,CAACA,GAAE,YAAUA,GAAE,CAAC,IAAED;AAAA,MAAE;AAAC,UAAGD,GAAE,SAAQ;AAAC,cAAME,KAAE,MAAM,QAAQF,GAAE,OAAO,IAAEA,GAAE,UAAQ,CAACA,GAAE,OAAO;AAAE,eAAOA,GAAE;AAAQ,mBAAUG,MAAKD,GAAE,QAAQ,GAAE;AAAC,gBAAME,KAAE,GAAGD,IAAEF,IAAE,IAAI,IAAIF,EAAC,GAAED,EAAC,GAAEO,KAAE,EAAC,GAAGD,IAAE,GAAGJ,IAAE,iBAAgB,EAAC,GAAGI,GAAE,iBAAgB,GAAGJ,GAAE,gBAAe,EAAC;AAAE,UAAAI,GAAE,iBAAeC,GAAE,eAAa,EAAC,GAAGD,GAAE,cAAa,GAAGJ,GAAE,aAAY,IAAGA,KAAEK;AAAA,QAAC;AAAA,MAAC;AAAC,UAAGL,GAAE,iBAAgB;AAAC,cAAK,EAAC,iBAAgBE,GAAC,IAAEF,IAAEG,KAAE,CAAC,WAAU,SAAS;AAAE,mBAAUC,MAAKD,IAAE;AAAC,gBAAME,KAAEH,GAAEE,EAAC;AAAE,cAAGC,MAAG,CAACA,GAAE,WAAW2B,EAAC,GAAE;AAAC,kBAAM1B,KAAEX,GAAE,QAAQM,IAAEI,EAAC,GAAEE,KAAE,GAAGN,IAAEK,EAAC;AAAE,YAAAJ,GAAEE,EAAC,IAAEG;AAAA,UAAC;AAAA,QAAC;AAAC,mBAAUH,MAAK,IAAG;AAAC,cAAIC,KAAEH,GAAEE,EAAC;AAAE,UAAAC,OAAI,MAAM,QAAQL,GAAE,OAAO,MAAIA,GAAE,UAAQ,GAAG,IAAI,CAAAM,OAAGJ,GAAEI,EAAC,CAAC,EAAE,OAAO,OAAO,IAAGD,GAAE,WAAW2B,EAAC,MAAI3B,KAAE,EAAEA,EAAC,IAAGH,GAAEE,EAAC,IAAEC;AAAA,QAAE;AAAA,MAAC,MAAM,CAAAL,GAAE,kBAAgB,CAAC;AAAE,UAAGA,GAAE,WAASA,GAAE,UAAQA,GAAE,QAAQ,IAAIJ,EAAC,GAAEI,GAAE,SAAO,OAAOA,GAAE,SAAOA,GAAE,UAAQA,GAAE,QAAMA,GAAE,MAAM,IAAI,CAAAE,OAAGA,GAAE,WAAW8B,EAAC,IAAE9B,KAAE,EAAEA,EAAC,CAAC,IAAGF,GAAE,cAAa;AAAC,cAAK,EAAC,cAAaE,GAAC,IAAEF;AAAE,QAAAE,GAAE,uBAAqBA,GAAE,qBAAmBA,GAAE,mBAAmB,IAAI,CAAAC,OAAGP,GAAED,GAAE,QAAQM,IAAEE,EAAC,CAAC,CAAC,IAAGD,GAAE,iBAAeA,GAAE,eAAaA,GAAE,aAAa,IAAI,CAAAC,OAAGP,GAAED,GAAE,QAAQM,IAAEE,EAAC,CAAC,CAAC,IAAGD,GAAE,cAAYA,GAAE,YAAUA,GAAE,UAAU,YAAY,IAAGA,GAAE,mBAAiBA,GAAE,iBAAeA,GAAE,eAAe,YAAY,IAAGA,GAAE,oBAAkBA,GAAE,kBAAgBA,GAAE,gBAAgB,YAAY;AAAA,MAAE;AAAC,aAAOF;AAAA,IAAC,GAAE,gBAAgB;AAAzxH,IAA2xH,IAAEe,GAAE,CAAClB,IAAEC,OAAI;AAAC,UAAGD,GAAE,WAAWmC,EAAC,EAAE,QAAOpC,GAAED,GAAE,KAAKG,IAAED,GAAE,MAAMmC,GAAE,MAAM,CAAC,CAAC;AAAA,IAAC,GAAE,sBAAsB;AAAv3H,IAAy3H,KAAG,CAAC,UAAS,kBAAiB,WAAU,WAAU,WAAU,iBAAiB;AAAt8H,IAAw8H,KAAGjB,GAAE,CAAAlB,OAAG;AAAC,UAAIC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEO,IAAEC,IAAEC,IAAEC,IAAEE,IAAE,GAAEX,IAAEC,IAAEC,IAAEC,IAAEC,IAAEY,IAAE,GAAEC,IAAEE,IAAEC,IAAEF,IAAEN,IAAEC,IAAEC,IAAEC;AAAE,UAAG5B,GAAE,QAAO;AAAC,cAAMqC,KAAE,CAAC,iBAAgB,kBAAiB,oBAAmB,uBAAsB,uBAAsB,gCAA+B,+BAA8B,gBAAe,4BAA4B;AAAE,mBAAUC,MAAKD,GAAE,CAAArC,GAAEsC,EAAC,MAAI,WAAStC,GAAEsC,EAAC,IAAE;AAAA,MAAG;AAAC,UAAGtC,GAAE,eAAaC,KAAED,GAAE,gBAAc,SAAOA,GAAE,cAAY,QAAKE,KAAEF,GAAE,gBAAc,SAAOA,GAAE,cAAY,QAAKA,GAAE,QAAO;AAAC,YAAIqC,KAAErC,GAAE,OAAO,YAAY;AAAE,QAAAqC,OAAI,aAAWA,KAAE,QAAOrC,GAAE,SAAOqC,IAAEA,OAAI,cAAYlC,KAAEH,GAAE,WAAS,SAAOA,GAAE,SAAO,SAAQI,KAAEJ,GAAE,4BAA0B,SAAOA,GAAE,0BAAwB,SAAMqC,OAAI,SAAOA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,eAAahC,KAAEL,GAAE,WAAS,SAAOA,GAAE,SAAO,UAASqC,OAAI,YAAUA,OAAI,YAAUA,OAAI,eAAa/B,KAAEN,GAAE,4BAA0B,SAAOA,GAAE,0BAAwB;AAAA,MAAI;AAAC,UAAGA,GAAE,QAAO;AAAC,YAAIqC,KAAErC,GAAE,OAAO,YAAY;AAAE,YAAGqC,OAAI,aAAWA,KAAE,QAAOrC,GAAE,SAAOqC,KAAGA,OAAI,SAAOA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,UAAQA,OAAI,YAAUA,OAAI,SAAOA,OAAI,YAAU9B,KAAEP,GAAE,qBAAmB,SAAOA,GAAE,mBAAiB,aAAYqC,OAAI,cAAY7B,KAAER,GAAE,iCAA+B,SAAOA,GAAE,+BAA6B,SAAMqC,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,cAAYA,OAAI,iBAAe5B,KAAET,GAAE,oBAAkB,SAAOA,GAAE,kBAAgB,QAAKU,KAAEV,GAAE,iCAA+B,SAAOA,GAAE,+BAA6B,SAAMqC,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,iBAAe1B,KAAEX,GAAE,oBAAkB,SAAOA,GAAE,kBAAgB,WAAUqC,OAAI,cAAYzB,KAAEZ,GAAE,WAAS,SAAOA,GAAE,SAAO,YAAWmB,KAAEnB,GAAE,qBAAmB,SAAOA,GAAE,mBAAiB,YAAWqC,OAAI,cAAYjB,KAAEpB,GAAE,WAAS,SAAOA,GAAE,SAAO,YAAWqB,KAAErB,GAAE,qBAAmB,SAAOA,GAAE,mBAAiB,YAAWqC,OAAI,cAAYf,KAAEtB,GAAE,WAAS,SAAOA,GAAE,SAAO,YAAWwB,KAAExB,GAAE,qBAAmB,SAAOA,GAAE,mBAAiB,YAAW,IAAEA,GAAE,sBAAoB,SAAOA,GAAE,oBAAkB,QAAKqC,OAAI,gBAAcxB,KAAEb,GAAE,WAAS,SAAOA,GAAE,SAAO,YAAWc,KAAEd,GAAE,qBAAmB,SAAOA,GAAE,mBAAiB,cAAae,KAAEf,GAAE,sBAAoB,SAAOA,GAAE,oBAAkB,QAAKqC,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAW;AAAC,gBAAMC,KAAEtC,GAAE;AAAO,WAACsC,OAAI,SAAOA,OAAI,YAAUA,OAAI,YAAUA,OAAI,YAAUA,OAAI,eAAatB,KAAEhB,GAAE,4BAA0B,SAAOA,GAAE,0BAAwB;AAAA,QAAI;AAAC,QAAAqC,OAAI,gBAAcpB,KAAEjB,GAAE,qBAAmB,SAAOA,GAAE,mBAAiB;AAAA,MAAW;AAAC,UAAGA,GAAE,kBAAiB;AAAC,YAAIqC,KAAErC,GAAE,iBAAiB,YAAY;AAAE,QAAAqC,OAAI,WAASA,KAAE,WAAUrC,GAAE,mBAAiBqC,KAAGA,OAAI,YAAUA,OAAI,cAAYA,OAAI,gBAAcR,KAAE7B,GAAE,8BAA4B,SAAOA,GAAE,4BAA0B,QAAK,IAAEA,GAAE,8BAA4B,SAAOA,GAAE,4BAA0B,QAAKqC,OAAI,eAAaP,KAAE9B,GAAE,iCAA+B,SAAOA,GAAE,+BAA6B,QAAKgC,KAAEhC,GAAE,sBAAoB,SAAOA,GAAE,oBAAkB;AAAA,MAAI;AAAC,MAAAA,GAAE,QAAMA,GAAE,MAAIA,GAAE,IAAI,YAAY,IAAGA,GAAE,oBAAkBA,GAAE,kBAAgBA,GAAE,gBAAgB,YAAY,IAAGA,GAAE,2BAAyBA,GAAE,yBAAuBA,GAAE,uBAAuB,YAAY,IAAGA,GAAE,YAAUA,GAAE,UAAQA,GAAE,QAAQ,YAAY,IAAGA,GAAE,qBAAmBiC,KAAEjC,GAAE,iCAA+B,SAAOA,GAAE,+BAA6B,QAAKA,GAAE,0BAAwB+B,KAAE/B,GAAE,oBAAkB,SAAOA,GAAE,kBAAgB,QAAKyB,KAAEzB,GAAE,uBAAqB,SAAOA,GAAE,qBAAmB,QAAKA,GAAE,qBAAmB0B,KAAE1B,GAAE,uBAAqB,SAAOA,GAAE,qBAAmB,QAAKA,GAAE,qCAAmC2B,KAAE3B,GAAE,+BAA6B,SAAOA,GAAE,6BAA2B,QAAKA,GAAE,QAAMA,GAAE,MAAIA,GAAE,IAAI,IAAI,CAAAqC,OAAGA,GAAE,YAAY,CAAC,IAAGrC,GAAE,aAAW4B,KAAE5B,GAAE,YAAU,SAAOA,GAAE,UAAQ;AAAA,IAAI,GAAE,0BAA0B;AAAjlP,IAAmlP,KAAGkB,GAAE,CAAClB,IAAEC,KAAE,oBAAI,UAAM;AAAC,YAAMC,KAAEJ,GAAE,QAAQE,EAAC,GAAEG,KAAE,GAAGD,IAAED,EAAC,GAAEG,KAAEN,GAAE,QAAQI,EAAC,GAAE,EAAC,iBAAgBG,GAAC,IAAEF;AAAE,UAAGE,IAAE;AAAC,mBAAUE,MAAK,IAAG;AAAC,gBAAMC,KAAEH,GAAEE,EAAC;AAAE,cAAGC,IAAE;AAAC,kBAAMC,KAAE,EAAED,IAAEJ,EAAC;AAAE,YAAAC,GAAEE,EAAC,IAAEE,KAAE,GAAGL,IAAEK,EAAC,IAAED;AAAA,UAAC;AAAA,QAAC;AAAC,mBAAUD,MAAI,CAAC,YAAW,WAAW,GAAE;AAAC,gBAAMC,KAAEH,GAAEE,EAAC;AAAE,UAAAC,OAAIH,GAAEE,EAAC,IAAEC,GAAE,IAAI,CAAAC,OAAG;AAAC,kBAAMC,KAAE,EAAED,IAAEL,EAAC;AAAE,mBAAOM,KAAE,GAAGN,IAAEM,EAAC,IAAED;AAAA,UAAC,CAAC;AAAA,QAAE;AAAC,cAAK,EAAC,OAAMH,GAAC,IAAED;AAAE,YAAGC,GAAE,YAAUC,MAAK,OAAO,KAAKD,EAAC,EAAE,CAAAA,GAAEC,EAAC,IAAED,GAAEC,EAAC,EAAE,IAAI,CAAAC,OAAG;AAAC,cAAIC;AAAE,kBAAOA,KAAE,EAAED,IAAEJ,EAAC,MAAI,OAAKK,KAAED;AAAA,QAAC,CAAC;AAAE,WAAGH,EAAC;AAAA,MAAC;AAAC,iBAAUC,MAAK,IAAG;AAAC,cAAMC,KAAEJ,GAAEG,EAAC;AAAE,QAAAC,OAAIJ,GAAEG,EAAC,IAAEC,GAAE,IAAI,CAAAC,OAAG;AAAC,cAAIC;AAAE,kBAAOA,KAAE,EAAED,IAAEJ,EAAC,MAAI,OAAKK,KAAED;AAAA,QAAC,CAAC;AAAA,MAAE;AAAC,aAAOL;AAAA,IAAC,GAAE,eAAe;AAArkQ,IAAukQ,KAAGe,GAAE,CAAClB,KAAE,QAAQ,IAAI,GAAEC,KAAE,iBAAgBC,KAAE,oBAAI,UAAM;AAAC,YAAMC,KAAE,GAAGJ,GAAEC,EAAC,GAAEC,IAAEC,EAAC;AAAE,UAAG,CAACC,GAAE,QAAO;AAAK,YAAMC,KAAE,GAAGD,IAAED,EAAC;AAAE,aAAM,EAAC,MAAKC,IAAE,QAAOC,GAAC;AAAA,IAAC,GAAE,aAAa;AAAztQ,IAA2tQ,KAAG;AAA9tQ,IAAouQ,KAAGc,GAAE,CAAClB,IAAEC,OAAI;AAAC,YAAMC,KAAEF,GAAE,MAAM,EAAE;AAAE,UAAGE,MAAGA,GAAE,SAAO,EAAE,OAAM,IAAI,MAAMD,EAAC;AAAA,IAAC,GAAE,iBAAiB;AAA3zQ,IAA6zQ,KAAGiB,GAAE,CAAAlB,OAAG;AAAC,UAAGA,GAAE,SAAS,GAAG,GAAE;AAAC,cAAK,CAACC,IAAEC,EAAC,IAAEF,GAAE,MAAM,GAAG;AAAE,eAAM,EAAC,QAAOC,IAAE,QAAOC,GAAC;AAAA,MAAC;AAAC,aAAOF;AAAA,IAAC,GAAE,cAAc;AAAp6Q,IAAs6Q,KAAGkB,GAAE,CAAC,EAAC,QAAOlB,IAAE,QAAOC,GAAC,GAAEC,OAAIA,GAAE,WAAWF,EAAC,KAAGE,GAAE,SAASD,EAAC,GAAE,gBAAgB;AAAn/Q,IAAq/Q,KAAGiB,GAAE,CAAClB,IAAEC,IAAEC,OAAI,OAAO,QAAQF,EAAC,EAAE,IAAI,CAAC,CAACG,IAAEC,EAAC,OAAK,GAAGD,IAAE,YAAYA,EAAC,uCAAuC,GAAE,EAAC,SAAQ,GAAGA,EAAC,GAAE,eAAcC,GAAE,IAAI,CAAAC,OAAG;AAAC,UAAG,GAAGA,IAAE,iBAAiBA,EAAC,iBAAiBF,EAAC,uCAAuC,GAAE,CAACF,MAAG,CAAC,EAAE,KAAKI,EAAC,KAAG,CAACP,GAAE,WAAWO,EAAC,EAAE,OAAM,IAAI,MAAM,8FAA8F;AAAE,aAAOP,GAAE,QAAQI,IAAEG,EAAC;AAAA,IAAC,CAAC,EAAC,EAAE,GAAE,YAAY;AAAl5R,IAAo5R,KAAGa,GAAE,CAAAlB,OAAG;AAAC,YAAK,EAAC,iBAAgBC,GAAC,IAAED,GAAE;AAAO,UAAG,CAACC,GAAE,QAAO;AAAK,YAAK,EAAC,SAAQC,IAAE,OAAMC,GAAC,IAAEF;AAAE,UAAG,CAACC,MAAG,CAACC,GAAE,QAAO;AAAK,YAAMC,KAAE,KAAKH,MAAGA,GAAE,CAAC,GAAEI,KAAEP,GAAE,QAAQA,GAAE,QAAQE,GAAE,IAAI,GAAEE,MAAGE,MAAG,GAAG,GAAEE,KAAEH,KAAE,GAAGA,IAAED,IAAEG,EAAC,IAAE,CAAC;AAAE,aAAO,CAAAE,OAAG;AAAC,YAAG,EAAE,KAAKA,EAAC,EAAE,QAAM,CAAC;AAAE,cAAMC,KAAE,CAAC;AAAE,mBAAUI,MAAKN,IAAE;AAAC,cAAGM,GAAE,YAAUL,GAAE,QAAOK,GAAE,cAAc,IAAIb,EAAC;AAAE,iBAAOa,GAAE,WAAS,YAAUJ,GAAE,KAAKI,EAAC;AAAA,QAAC;AAAC,YAAIH,IAAEC,KAAE;AAAG,mBAAUE,MAAKJ,GAAE,IAAGI,GAAE,SAAQL,EAAC,KAAGK,GAAE,QAAQ,OAAO,SAAOF,OAAIA,KAAEE,GAAE,QAAQ,OAAO,QAAOH,KAAEG;AAAG,YAAG,CAACH,GAAE,QAAOP,KAAE,CAACH,GAAED,GAAE,KAAKO,IAAEE,EAAC,CAAC,CAAC,IAAE,CAAC;AAAE,cAAMI,KAAEJ,GAAE,MAAME,GAAE,QAAQ,OAAO,QAAOF,GAAE,SAAOE,GAAE,QAAQ,OAAO,MAAM;AAAE,eAAOA,GAAE,cAAc,IAAI,CAAAG,OAAGb,GAAEa,GAAE,QAAQ,KAAID,EAAC,CAAC,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,oBAAoB;AAAE,IAAI,KAAG,OAAO;AAAd,IAA6B,IAAEO,GAAE,CAAClB,IAAEC,OAAI,GAAGD,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC,GAAE,GAAG;AAAE,IAAM,KAAG,EAAE,CAAAD,OAAG;AAAC,UAAIC,KAAE;AAAG,eAAQC,KAAE,GAAEA,KAAEF,GAAE,QAAOE,MAAG,GAAE;AAAC,cAAMC,KAAEH,GAAEE,EAAC,GAAEE,KAAED,GAAE,YAAY;AAAE,QAAAF,MAAGE,OAAIC,KAAED,GAAE,YAAY,IAAEC;AAAA,MAAC;AAAC,aAAOH;AAAA,IAAC,GAAE,YAAY;AAArI,IAAuI,KAAG,oBAAI;AAA9I,IAAkJ,KAAG,EAAE,CAACD,IAAEC,OAAI;AAAC,YAAMC,KAAE,GAAG,KAAKF,IAAE,8BAA8B,QAAQ,GAAG,EAAE;AAAE,UAAG;AAAC,eAAOC,GAAE,cAAcC,IAAE,EAAE,GAAE,CAACD,GAAE,WAAW,GAAGC,EAAC,CAAC;AAAA,MAAC,UAAC;AAAQ,YAAG;AAAC,UAAAD,GAAE,WAAWC,EAAC;AAAA,QAAC,QAAM;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,GAAE,6BAA6B;AAAvV,IAAyV,KAAG,EAAE,CAACF,IAAEC,IAAEC,OAAI;AAAC,UAAG;AAAC,eAAO,GAAGF,IAAEE,EAAC;AAAA,MAAC,SAAOC,IAAE;AAAC,YAAGF,OAAI,OAAO,QAAO,GAAG,GAAG,OAAO,GAAEC,EAAC;AAAE,cAAMC;AAAA,MAAC;AAAA,IAAC,GAAE,gCAAgC;AAArd,IAAud,KAAG,EAAE,CAACH,IAAEC,KAAE,IAAGC,KAAE,SAAK;AAAC,YAAMC,KAAEH,MAAG,OAAKA,KAAE,QAAQ,IAAI;AAAE,UAAGE,MAAG,GAAG,IAAIC,EAAC,EAAE,QAAO,GAAG,IAAIA,EAAC;AAAE,UAAIC;AAAE,YAAMC,KAAE,GAAGF,EAAC;AAAE,aAAOE,OAAIF,MAAGF,GAAE,WAAWE,EAAC,IAAEC,KAAE,CAACH,GAAE,WAAWI,EAAC,IAAED,KAAE,GAAGD,IAAEH,IAAEC,EAAC,GAAEC,MAAG,GAAG,IAAIC,IAAEC,EAAC,GAAEA;AAAA,IAAC,GAAE,mBAAmB;AAAnqB,KAAqqB,EAAC,MAAK,OAAIN,GAAE;AAAjrB,IAAurB,KAAG,EAAC,IAAG,CAAC,OAAM,QAAO,OAAO,GAAE,KAAI,CAAC,QAAO,QAAQ,GAAE,KAAI,CAAC,QAAO,QAAQ,EAAC;AAAhwB,IAAkwB,KAAGoB,GAAE,CAAAlB,OAAG;AAAC,YAAMC,KAAE,CAAC,GAAG,GAAG,EAAE,GAAEC,KAAE,CAAC,GAAG,GAAG,GAAG,GAAEC,KAAE,CAAC,GAAG,GAAG,GAAG;AAAE,aAAOH,MAAG,QAAMA,GAAE,YAAUC,GAAE,KAAK,OAAM,MAAM,GAAEC,GAAE,KAAK,MAAM,GAAEC,GAAE,KAAK,MAAM,IAAG,CAAC,GAAGF,IAAE,GAAGC,IAAE,GAAGC,EAAC;AAAA,IAAC,GAAE,wBAAwB;AAAp7B,IAAs7B,KAAGe,GAAE,CAAAlB,OAAG;AAAC,YAAMC,KAAE,CAAC;AAAE,UAAG,CAACD,GAAE,QAAOC;AAAE,YAAK,EAAC,QAAOC,IAAE,gBAAeC,GAAC,IAAEH;AAAE,aAAOE,MAAGD,GAAE,KAAKC,EAAC,GAAEC,MAAGF,GAAE,KAAKE,EAAC,GAAEF;AAAA,IAAC,GAAE,uBAAuB;AAAvjC,IAAyjC,KAAGiB,GAAE,CAAAlB,OAAGA,GAAE,WAAW,uBAAsB,OAAO,QAAQ,GAAE,iBAAiB;AAAtoC,IAAwoC,KAAG,CAAC,gBAAe,oBAAmB,eAAe;AAA7rC,IAA+rC,KAAG,OAAO,GAAG,KAAK,GAAG,CAAC;AAArtC,IAA+tC,KAAG;AAAluC,IAAqvC,KAAG;AAAxvC,IAA+vC,IAAE;AAAjwC,IAAwwC,KAAG;AAA3wC,IAAmxC,KAAG,QAAQ,aAAW;AAAzyC,IAAizC,KAAGkB,GAAE,CAAC,EAAC,QAAOlB,IAAE,MAAKC,GAAC,GAAEC,KAAE,GAAG,MAAI;AAAC,UAAG,aAAYF,GAAE,OAAM,IAAI,MAAM,oFAAoF;AAAE,UAAG,CAACF,GAAE,WAAWG,EAAC,EAAE,OAAM,IAAI,MAAM,oCAAoC;AAAE,aAAKA,KAAEF,GAAEE,EAAC;AAAG,YAAME,KAAEL,GAAE,QAAQG,EAAC,GAAE,EAAC,OAAMG,IAAE,SAAQC,IAAE,SAAQC,IAAE,iBAAgBC,GAAC,IAAEP,IAAEQ,KAAEU,GAAE,CAAAI,OAAGxB,GAAE,WAAWwB,EAAC,IAAEA,KAAE,GAAGnB,IAAEmB,EAAC,GAAE,gBAAgB,GAAEb,KAAEL,MAAG,OAAK,SAAOA,GAAE,IAAII,EAAC,GAAEE,KAAE,GAAGH,EAAC,GAAEI,KAAET,KAAE,KAAG,KAAIiB,MAAGb,MAAG,GAAGC,EAAC,GAAG,IAAI,CAAAe,OAAG;AAAC,cAAME,KAAEhB,GAAEc,EAAC,GAAE,IAAE,GAAGE,EAAC,EAAE,WAAW,OAAO,YAAW,QAAQ,EAAE,WAAW,OAAO,SAAQ,GAAG,CAAC,GAAG,EAAE,WAAW,OAAO,SAAQ,CAAC;AAAE,eAAO,IAAI,OAAO,IAAI,CAAC,SAAQb,EAAC;AAAA,MAAC,CAAC,GAAES,KAAEhB,MAAGC,KAAEA,KAAE,CAAC,EAAE,GAAEgB,KAAED,KAAEA,GAAE,IAAI,CAAAE,OAAG;AAAC,YAAIE,KAAEhB,GAAEc,EAAC;AAAE,WAAG,KAAKE,EAAC,MAAIA,KAAE,GAAGA,IAAE,EAAE;AAAG,cAAM,IAAE,GAAGA,EAAC,EAAE,WAAW,OAAO,YAAW,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,cAAa,CAACX,IAAEC,OAAI;AAAC,gBAAMC,KAAE,IAAI,EAAE;AAAyB,iBAAOD,KAAE,IAAI,EAAE,GAAG,EAAE,GAAGC,EAAC,KAAGA;AAAA,QAAC,CAAC,EAAE,WAAW,cAAa,CAACF,IAAEC,OAAI;AAAC,gBAAMC,KAAE;AAAE,iBAAOD,KAAE,IAAI,EAAE,GAAGC,EAAC,KAAGA;AAAA,QAAC,CAAC;AAAE,eAAO,IAAI,OAAO,IAAI,CAAC,KAAIJ,EAAC;AAAA,MAAC,CAAC,IAAE;AAAO,aAAO,CAAAW,OAAG;AAAC,YAAG,CAACxB,GAAE,WAAWwB,EAAC,EAAE,OAAM,IAAI,MAAM,2BAA2B;AAAE,YAAG,OAAKA,KAAEvB,GAAEuB,EAAC,IAAGb,MAAG,QAAMA,GAAE,SAASa,EAAC,EAAE,QAAOtB;AAAE,YAAG,EAAE,CAACU,GAAE,KAAK,CAAAc,OAAGF,GAAE,SAASE,EAAC,CAAC,KAAGL,GAAE,KAAK,CAAAK,OAAGA,GAAE,KAAKF,EAAC,CAAC,MAAID,MAAGA,GAAE,KAAK,CAAAG,OAAGA,GAAE,KAAKF,EAAC,CAAC,EAAE,QAAOtB;AAAA,MAAC;AAAA,IAAC,GAAE,oBAAoB;AAAA;AAAA;;;ACNztiB;AAAA,8CAAAuC,SAAA;AAAA;AAEA,QAAIC,aAAY,OAAO;AACvB,QAAIC,oBAAmB,OAAO;AAC9B,QAAIC,qBAAoB,OAAO;AAE/B,QAAIC,gBAAe,OAAO,UAAU;AACpC,QAAIC,YAAW,CAAC,QAAQ,QAAQ;AAC9B,eAAS,QAAQ;AACf,QAAAJ,WAAU,QAAQ,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,YAAY,KAAK,CAAC;AAAA,IAChE;AACA,QAAIK,eAAc,CAAC,IAAI,MAAM,QAAQ,SAAS;AAC5C,UAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;AAClE,iBAAS,OAAOH,mBAAkB,IAAI;AACpC,cAAI,CAACC,cAAa,KAAK,IAAI,GAAG,KAAK,QAAQ;AACzC,YAAAH,WAAU,IAAI,KAAK,EAAE,KAAK,MAAM,KAAK,GAAG,GAAG,YAAY,EAAE,OAAOC,kBAAiB,MAAM,GAAG,MAAM,KAAK,WAAW,CAAC;AAAA,MACvH;AACA,aAAO;AAAA,IACT;AASA,QAAI,eAAe,CAAC,QAAQI,aAAYL,WAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AAGzF,QAAI,eAAe,CAAC;AACpB,IAAAI,UAAS,cAAc;AAAA,MACrB,iBAAiB,MAAM;AAAA,MACvB,qBAAqB,MAAM;AAAA,MAC3B,OAAO,MAAM;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,SAAS,MAAM;AAAA,MACf,SAAS,MAAM;AAAA,MACf,gBAAgB,MAAM;AAAA,MACtB,oBAAoB,MAAM;AAAA,MAC1B,YAAY,MAAM;AAAA,MAClB,MAAM,MAAM;AAAA,MACZ,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM;AAAA,MACrB,SAAS,MAAM;AAAA,IACjB,CAAC;AACD,IAAAL,QAAO,UAAU,aAAa,YAAY;AAG1C,aAAS,aAAa,QAAQ;AAC5B,UAAI,QAAQ,CAAC,UAAU;AACrB,YAAI,UAAU,MAAM;AAClB,aAAG,OAAO,CAAC;AAAA,QACb,WAAW,OAAO,UAAU,WAAW;AACrC,aAAG,OAAO,CAAC;AACX,aAAG,OAAO,CAAC,KAAK;AAAA,QAClB,WAAW,OAAO,UAAU,UAAU;AACpC,aAAG,OAAO,CAAC;AACX,aAAG,QAAQ,QAAQ,CAAC;AAAA,QACtB,WAAW,OAAO,UAAU,UAAU;AACpC,aAAG,OAAO,CAAC;AACX,aAAG,MAAM,WAAW,KAAK,CAAC;AAAA,QAC5B,WAAW,iBAAiB,YAAY;AACtC,aAAG,OAAO,CAAC;AACX,aAAG,MAAM,KAAK;AAAA,QAChB,WAAW,iBAAiB,OAAO;AACjC,aAAG,OAAO,CAAC;AACX,aAAG,QAAQ,MAAM,MAAM;AACvB,mBAAS,QAAQ,OAAO;AACtB,kBAAM,IAAI;AAAA,UACZ;AAAA,QACF,OAAO;AACL,cAAI,OAAO,OAAO,KAAK,KAAK;AAC5B,aAAG,OAAO,CAAC;AACX,aAAG,QAAQ,KAAK,MAAM;AACtB,mBAAS,OAAO,MAAM;AACpB,eAAG,MAAM,WAAW,GAAG,CAAC;AACxB,kBAAM,MAAM,GAAG,CAAC;AAAA,UAClB;AAAA,QACF;AAAA,MACF;AACA,UAAI,KAAK,IAAI,WAAW;AACxB,SAAG,QAAQ,CAAC;AACZ,SAAG,QAAQ,OAAO,MAAM,IAAI,CAAC,CAAC,OAAO,SAAS;AAC9C,YAAM,OAAO,KAAK;AAClB,oBAAc,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC;AACnC,aAAO,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG;AAAA,IAClC;AACA,aAAS,aAAa,OAAO;AAC3B,UAAI,QAAQ,MAAM;AAChB,gBAAQ,GAAG,MAAM,GAAG;AAAA,UAClB,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO,CAAC,CAAC,GAAG,MAAM;AAAA,UACpB,KAAK;AACH,mBAAO,GAAG,OAAO;AAAA,UACnB,KAAK;AACH,mBAAO,WAAW,GAAG,KAAK,CAAC;AAAA,UAC7B,KAAK;AACH,mBAAO,GAAG,KAAK;AAAA,UACjB,KAAK,GAAG;AACN,gBAAI,QAAQ,GAAG,OAAO;AACtB,gBAAI,SAAS,CAAC;AACd,qBAASO,KAAI,GAAGA,KAAI,OAAOA,MAAK;AAC9B,qBAAO,KAAK,MAAM,CAAC;AAAA,YACrB;AACA,mBAAO;AAAA,UACT;AAAA,UACA,KAAK,GAAG;AACN,gBAAI,QAAQ,GAAG,OAAO;AACtB,gBAAI,SAAS,CAAC;AACd,qBAASA,KAAI,GAAGA,KAAI,OAAOA,MAAK;AAC9B,qBAAO,WAAW,GAAG,KAAK,CAAC,CAAC,IAAI,MAAM;AAAA,YACxC;AACA,mBAAO;AAAA,UACT;AAAA,UACA;AACE,kBAAM,IAAI,MAAM,gBAAgB;AAAA,QACpC;AAAA,MACF;AACA,UAAI,KAAK,IAAI,WAAW,KAAK;AAC7B,UAAI,KAAK,GAAG,OAAO;AACnB,UAAI,aAAa,KAAK,OAAO;AAC7B,cAAQ;AACR,UAAI,QAAQ,MAAM;AAClB,UAAI,GAAG,QAAQ,MAAM,QAAQ;AAC3B,cAAM,IAAI,MAAM,gBAAgB;AAAA,MAClC;AACA,aAAO,EAAE,IAAI,WAAW,MAAM;AAAA,IAChC;AACA,QAAI,aAAa,MAAM;AAAA,MACrB,YAAY,MAAM,IAAI,WAAW,IAAI,GAAG;AACtC,aAAK,MAAM;AACX,aAAK,MAAM;AACX,aAAK,MAAM;AAAA,MACb;AAAA,MACA,OAAO,OAAO;AACZ,YAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,QAAQ;AACtC,cAAI,QAAQ,IAAI,YAAY,KAAK,MAAM,SAAS,CAAC;AACjD,gBAAM,IAAI,KAAK,GAAG;AAClB,eAAK,MAAM;AAAA,QACb;AACA,aAAK,OAAO;AACZ,eAAO,KAAK,MAAM;AAAA,MACpB;AAAA,MACA,OAAO,OAAO;AACZ,YAAI,SAAS,KAAK,OAAO,CAAC;AAC1B,aAAK,IAAI,MAAM,IAAI;AAAA,MACrB;AAAA,MACA,QAAQ,OAAO;AACb,YAAI,SAAS,KAAK,OAAO,CAAC;AAC1B,sBAAc,KAAK,KAAK,OAAO,MAAM;AAAA,MACvC;AAAA,MACA,MAAM,OAAO;AACX,YAAI,SAAS,KAAK,OAAO,IAAI,MAAM,MAAM;AACzC,sBAAc,KAAK,KAAK,MAAM,QAAQ,MAAM;AAC5C,aAAK,IAAI,IAAI,OAAO,SAAS,CAAC;AAAA,MAChC;AAAA,MACA,MAAM,OAAO;AACX,YAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,QAAQ;AACtC,gBAAM,IAAI,MAAM,gBAAgB;AAAA,QAClC;AACA,aAAK,OAAO;AACZ,eAAO,KAAK,MAAM;AAAA,MACpB;AAAA,MACA,QAAQ;AACN,eAAO,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC;AAAA,MAC/B;AAAA,MACA,SAAS;AACP,eAAO,aAAa,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC;AAAA,MAC7C;AAAA,MACA,OAAO;AACL,YAAI,SAAS,KAAK,OAAO;AACzB,YAAI,QAAQ,IAAI,WAAW,MAAM;AACjC,YAAI,MAAM,KAAK,MAAM,MAAM,MAAM;AACjC,cAAM,IAAI,KAAK,IAAI,SAAS,KAAK,MAAM,MAAM,CAAC;AAC9C,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI,OAAO,gBAAgB,eAAe,OAAO,gBAAgB,aAAa;AAC5E,UAAI,UAAU,IAAI,YAAY;AAC9B,UAAI,UAAU,IAAI,YAAY;AAC9B,mBAAa,CAAC,SAAS,QAAQ,OAAO,IAAI;AAC1C,mBAAa,CAAC,UAAU,QAAQ,OAAO,KAAK;AAC5C,wBAAkB;AAAA,IACpB,WAAW,OAAO,WAAW,aAAa;AACxC,mBAAa,CAAC,SAAS,OAAO,KAAK,IAAI;AACvC,mBAAa,CAAC,UAAU;AACtB,YAAI,EAAE,QAAQ,YAAY,WAAW,IAAI;AACzC,eAAO,OAAO,KAAK,QAAQ,YAAY,UAAU,EAAE,SAAS;AAAA,MAC9D;AACA,wBAAkB;AAAA,IACpB,OAAO;AACL,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,QAAI,EAAE,WAAW,EAAE,aAAa;AAC9B,YAAM,IAAI,MAAM,yBAAyB,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,CAKzD;AACD,aAAS,aAAa,QAAQ,QAAQ;AACpC,aAAO,OAAO,QAAQ,IAAI,OAAO,QAAQ,KAAK,IAAI,OAAO,QAAQ,KAAK,KAAK,OAAO,QAAQ,KAAK;AAAA,IACjG;AACA,aAAS,cAAc,QAAQ,OAAO,QAAQ;AAC5C,aAAO,QAAQ,IAAI;AACnB,aAAO,QAAQ,IAAI,SAAS;AAC5B,aAAO,QAAQ,IAAI,SAAS;AAC5B,aAAO,QAAQ,IAAI,SAAS;AAAA,IAC9B;AAGA,QAAI,QAAQ,KAAK;AACjB,QAAI,uBAAuB;AAC3B,QAAI,2BAA2B;AAC/B,aAAS,2BAA2B,QAAQ,MAAM;AAChD,YAAM,SAAS,CAAC;AAChB,iBAAW,SAAS,QAAQ;AAC1B,4BAAoB,OAAO,IAAI;AAC/B,YAAI,MAAM,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,WAAW,IAAI,KAAK,KAAK,EAAE;AACxE,eAAO,KAAK,KAAK;AAAA,MACnB;AACA,aAAO,OAAO,KAAK,GAAG;AAAA,IACxB;AACA,QAAI,gBAAgB,MAAM;AAC1B,QAAI,gBAAgB,CAAC,UAAU,OAAO,UAAU,YAAY,OAAO;AACnE,QAAI,eAAe,CAAC,UAAU,OAAO,UAAU,WAAW,OAAO;AACjE,QAAI,eAAe,CAAC,UAAU,iBAAiB,SAAS,OAAO;AAC/D,QAAI,gBAAgB,CAAC,UAAU,OAAO,UAAU,YAAY,WAAW,QAAQ,KAAK,OAAO;AAC3F,QAAI,wBAAwB,CAAC,UAAU,OAAO,UAAU,YAAY,WAAW,QAAQ,MAAM,SAAS,KAAK,SAAS,QAAQ,OAAO;AACnI,QAAI,iBAAiB,CAAC,UAAU,OAAO,UAAU,aAAa,OAAO;AACrE,QAAI,cAAc,CAAC,UAAU,MAAM,QAAQ,KAAK,IAAI,OAAO;AAC3D,QAAI,uBAAuB,CAAC,UAAU,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,CAAC,MAAM,OAAO,MAAM,QAAQ,IAAI,OAAO;AACjH,QAAI,eAAe,CAAC,UAAU,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAAI,OAAO;AAC5G,QAAI,oBAAoB,CAAC,UAAU,OAAO,UAAU,YAAY,UAAU,OAAO,OAAO;AACxF,QAAI,0BAA0B,CAAC,UAAU,iBAAiB,YAAY,SAAS,OAAO;AACtF,QAAI,qBAAqB,CAAC,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAI,OAAO;AAChG,QAAI,wBAAwB,CAAC,UAAU,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO;AACxG,QAAI,uBAAuB,CAAC,UAAU,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAAI,OAAO;AACjJ,QAAI,+BAA+B,CAAC,UAAU,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,CAAC,MAAM,OAAO,MAAM,QAAQ,IAAI,OAAO;AACtJ,QAAI,2BAA2B,CAAC,UAAU,OAAO,UAAU,YAAY,iBAAiB,aAAa,OAAO;AAC5G,QAAI,oBAAoB,CAAC,UAAU,OAAO,UAAU,YAAY,iBAAiB,MAAM,OAAO;AAC9F,aAAS,QAAQ,QAAQ,MAAM,KAAK,UAAU;AAC5C,UAAI,QAAQ,OAAO,GAAG;AACtB,WAAK,MAAM,EAAE,IAAI;AACjB,UAAI,UAAU,OAAQ,QAAO;AAC7B,UAAI,SAAS,SAAS,KAAK;AAC3B,UAAI,WAAW,KAAM,OAAM,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,MAAM,EAAE;AACtE,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,QAAQ,MAAM,OAAO;AACjD,eAAS,OAAO,QAAQ;AACtB,YAAI,EAAE,OAAO,OAAO;AAClB,gBAAM,IAAI,MAAM,kBAAkB,KAAK,KAAK,MAAM,GAAG,CAAC,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AACA,aAAS,0BAA0B,SAAS;AAC1C,UAAI,OAAuB,uBAAO,OAAO,IAAI;AAC7C,UAAI,UAAU,QAAQ,SAAS,MAAM,WAAW,iBAAiB;AACjE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,uBAAuB;AAC7E,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,aAAa;AAC3D,2BAAqB,SAAS,MAAM,sBAAsB;AAC1D,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,aAAS,oBAAoB,aAAa;AACxC,UAAI;AACJ,UAAI,gBAAgB,QAAQ;AAC1B,oBAA4B,uBAAO,OAAO,IAAI;AAC9C,iBAAS,OAAO,aAAa;AAC3B,cAAI,QAAQ,YAAY,GAAG;AAC3B,cAAI,OAAO,UAAU,YAAY,UAAU,OAAO;AAChD,sBAAU,GAAG,IAAI;AAAA,UACnB,OAAO;AACL,kBAAM,IAAI,MAAM,YAAY,MAAM,GAAG,CAAC,qDAAqD;AAAA,UAC7F;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,aAAS,aAAa,OAAO,SAAS,MAAM,QAAQ,iBAAiB;AACnE,UAAI,QAAQ,QAAQ,SAAS,MAAM,SAAS,aAAa;AACzD,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,YAAY;AAC9D,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,aAAa;AAC/D,UAAI,UAAU,OAAQ,OAAM,KAAK,WAAW,KAAK,EAAE;AAAA,eAC1C,OAAQ,OAAM,KAAK,cAAc;AAC1C,YAAM,KAAK,eAAe,YAAY,eAAe,EAAE;AACvD,YAAM,KAAK,eAAe,YAAY,CAAC,EAAE;AAAA,IAC3C;AACA,aAAS,oBAAoB,OAAO,MAAM,KAAK;AAC7C,UAAI,OAAO,UAAU,UAAU;AAC7B,cAAM,IAAI,MAAM,sBAAsB,IAAI,GAAG,QAAQ,SAAS,MAAM,MAAM,GAAG,IAAI,EAAE,wBAAwB,OAAO,KAAK,UAAU;AAAA,MACnI;AACA,aAAO;AAAA,IACT;AACA,aAAS,gBAAgB,OAAO,SAAS,MAAM;AAC7C,UAAI,gBAAgB,QAAQ,SAAS,MAAM,iBAAiB,YAAY;AACxE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,iBAAiB,QAAQ,SAAS,MAAM,kBAAkB,aAAa;AAC3E,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,4BAA4B;AAC1E,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,YAAY;AACpE,UAAI,eAAe,QAAQ,SAAS,MAAM,gBAAgB,YAAY;AACtE,UAAI,eAAe,QAAQ,SAAS,MAAM,gBAAgB,aAAa;AACvE,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,aAAa;AAC3D,UAAI,eAAe,QAAQ,SAAS,MAAM,gBAAgB,aAAa;AACvE,UAAI,mBAAmB,QAAQ,SAAS,MAAM,oBAAoB,aAAa;AAC/E,UAAI,oBAAoB,QAAQ,SAAS,MAAM,qBAAqB,aAAa;AACjF,UAAI,YAAY,QAAQ,SAAS,MAAM,aAAa,aAAa;AACjE,UAAI,OAAO,QAAQ,SAAS,MAAM,QAAQ,oBAAoB;AAC9D,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,oBAAoB;AAC1E,UAAI,UAAU,QAAQ,SAAS,MAAM,WAAW,YAAY;AAC5D,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,aAAa;AACrE,UAAI,oBAAoB,QAAQ,SAAS,MAAM,qBAAqB,aAAa;AACjF,UAAI,MAAM,QAAQ,SAAS,MAAM,OAAO,YAAY;AACpD,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,YAAY;AACpE,UAAI,kBAAkB,QAAQ,SAAS,MAAM,mBAAmB,YAAY;AAC5E,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,aAAa;AAC3D,UAAI,iBAAiB,QAAQ,SAAS,MAAM,kBAAkB,aAAa;AAC3E,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,YAAY;AACpE,UAAI,YAAY,QAAQ,SAAS,MAAM,aAAa,YAAY;AAChE,UAAI,OAAO,QAAQ,SAAS,MAAM,QAAQ,oBAAoB;AAC9D,UAAI,YAAY,QAAQ,SAAS,MAAM,aAAa,aAAa;AACjE,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,YAAY;AAC9D,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,oBAAoB;AAC5E,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,oBAAoB;AACtE,UAAI,cAAe,OAAM,KAAK,oBAAoB,aAAa,EAAE;AACjE,UAAI,eAAe,OAAQ,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACnE,UAAI,mBAAmB,OAAQ,OAAM,KAAK,qBAAqB,cAAc,EAAE;AAC/E,UAAI,OAAQ,OAAM,KAAK,YAAY,2BAA2B,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE;AACpH,UAAI,OAAQ,OAAM,KAAK,YAAY,MAAM,EAAE;AAC3C,UAAI,WAAY,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,SAAU,OAAM,KAAK,cAAc,QAAQ,EAAE;AACjD,UAAI,YAAa,OAAM,KAAK,kBAAkB,OAAO,gBAAgB,WAAW,cAAc,KAAK,UAAU,WAAW,CAAC,EAAE;AAC3H,UAAI,OAAQ,OAAM,KAAK,UAAU;AACjC,UAAI,aAAc,OAAM,KAAK,iBAAiB;AAC9C,UAAI,iBAAkB,OAAM,KAAK,qBAAqB;AACtD,UAAI,kBAAmB,OAAM,KAAK,sBAAsB;AACxD,UAAI,UAAW,OAAM,KAAK,gBAAgB,SAAS,EAAE;AACrD,UAAI,QAAS,OAAM,KAAK,aAAa,OAAO,EAAE;AAC9C,UAAI,gBAAgB,OAAQ,OAAM,KAAK,kBAAkB,WAAW,EAAE;AACtE,UAAI,kBAAmB,OAAM,KAAK,sBAAsB;AACxD,UAAI,KAAM,UAAS,QAAQ,KAAM,OAAM,KAAK,UAAU,oBAAoB,MAAM,MAAM,CAAC,EAAE;AACzF,UAAI,WAAY,OAAM,KAAK,iBAAiB,2BAA2B,YAAY,YAAY,CAAC,EAAE;AAClG,UAAI,SAAU,OAAM,KAAK,eAAe,2BAA2B,UAAU,WAAW,CAAC,EAAE;AAC3F,UAAI,YAAa,OAAM,KAAK,kBAAkB,mBAAmB,WAAW,CAAC,EAAE;AAC/E,UAAI,aAAc,OAAM,KAAK,mBAAmB,mBAAmB,YAAY,CAAC,EAAE;AAClF,UAAI,iBAAiB,OAAQ,OAAM,KAAK,mBAAmB,YAAY,EAAE;AACzE,UAAI,IAAK,OAAM,KAAK,SAAS,GAAG,EAAE;AAClC,UAAI,WAAY,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,YAAa,OAAM,KAAK,kBAAkB,WAAW,EAAE;AAC3D,UAAI,gBAAiB,OAAM,KAAK,uBAAuB,eAAe,EAAE;AACxE,UAAI,OAAQ,OAAM,KAAK,WAAW;AAClC,UAAI,eAAgB,OAAM,KAAK,oBAAoB;AACnD,UAAI,QAAQ;AACV,iBAAS,OAAO,QAAQ;AACtB,cAAI,IAAI,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,mBAAmB,GAAG,EAAE;AACnE,gBAAM,KAAK,YAAY,GAAG,IAAI,oBAAoB,OAAO,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE;AAAA,QACjF;AAAA,MACF;AACA,UAAI,aAAa;AACf,iBAAS,OAAO,aAAa;AAC3B,cAAI,IAAI,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,yBAAyB,GAAG,EAAE;AACzE,gBAAM,KAAK,kBAAkB,GAAG,IAAI,oBAAoB,YAAY,GAAG,GAAG,gBAAgB,GAAG,CAAC,EAAE;AAAA,QAClG;AAAA,MACF;AACA,UAAI,WAAW;AACb,iBAAS,OAAO,WAAW;AACzB,cAAI,IAAI,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,sBAAsB,GAAG,EAAE;AACtE,gBAAM,QAAQ,UAAU,GAAG;AAC3B,cAAI,OAAO,UAAU,UAAW,OAAM,IAAI,MAAM,gCAAgC,MAAM,GAAG,CAAC,yBAAyB,OAAO,KAAK,UAAU;AACzI,gBAAM,KAAK,eAAe,GAAG,IAAI,KAAK,EAAE;AAAA,QAC1C;AAAA,MACF;AACA,UAAI,KAAM,UAASC,OAAM,KAAM,OAAM,KAAK,UAAU,oBAAoBA,KAAI,MAAM,CAAC,EAAE;AACrF,UAAI,UAAW,OAAM,KAAK,cAAc;AAAA,IAC1C;AACA,aAAS,qBAAqB,UAAU,SAAS,QAAQ,iBAAiB,cAAc;AACtF,UAAI;AACJ,UAAI,QAAQ,CAAC;AACb,UAAI,UAAU,CAAC;AACf,UAAI,OAAuB,uBAAO,OAAO,IAAI;AAC7C,UAAI,gBAAgB;AACpB,UAAI,kBAAkB;AACtB,mBAAa,OAAO,SAAS,MAAM,QAAQ,eAAe;AAC1D,sBAAgB,OAAO,SAAS,IAAI;AACpC,UAAI,YAAY,QAAQ,SAAS,MAAM,aAAa,qBAAqB;AACzE,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,aAAa;AAC3D,UAAI,YAAY,QAAQ,SAAS,MAAM,aAAa,aAAa;AACjE,UAAI,mBAAmB,QAAQ,SAAS,MAAM,oBAAoB,aAAa;AAC/E,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,aAAa;AAC/D,UAAI,UAAU,QAAQ,SAAS,MAAM,WAAW,YAAY;AAC5D,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,UAAU,QAAQ,SAAS,MAAM,WAAW,YAAY;AAC5D,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,YAAY;AAC9D,UAAI,oBAAoB,QAAQ,SAAS,MAAM,qBAAqB,oBAAoB;AACxF,UAAI,iBAAiB,QAAQ,SAAS,MAAM,aAAa,oBAAoB;AAC7E,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,oBAAoB;AAC1E,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,oBAAoB;AAC1E,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,oBAAoB;AACtE,UAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,YAAY;AAC9D,UAAI,QAAQ,QAAQ,SAAS,MAAM,SAAS,YAAY;AACxD,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,eAAe,QAAQ,SAAS,MAAM,gBAAgB,YAAY;AACtE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,oBAAoB;AAClE,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,iBAAiB;AACzE,UAAI,gBAAgB,QAAQ,SAAS,MAAM,iBAAiB,YAAY;AACxE,UAAI,QAAQ,QAAQ,SAAS,MAAM,SAAS,YAAY;AACxD,UAAI,SAAS,MAAM,QAAQ,SAAS,MAAM,SAAS,aAAa,MAAM,OAAO,MAAM;AACnF,UAAI,iBAAiB,QAAQ,SAAS,MAAM,kBAAkB,aAAa;AAC3E,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,YAAY;AACpE,WAAK,UAAU;AACf,2BAAqB,SAAS,MAAM,MAAM,QAAQ,SAAS;AAC3D,UAAI,UAAW,OAAM,KAAK,cAAc,cAAc,OAAO,KAAK,IAAI,SAAS,EAAE,EAAE;AACnF,UAAI,OAAQ,OAAM,KAAK,UAAU;AACjC,UAAI,eAAgB,OAAM,KAAK,mBAAmB;AAClD,UAAI,UAAW,OAAM,KAAK,aAAa;AACvC,UAAI,iBAAkB,OAAM,KAAK,qBAAqB;AACtD,UAAI,SAAU,OAAM,KAAK,YAAY;AACrC,UAAI,QAAS,OAAM,KAAK,aAAa,OAAO,EAAE;AAC9C,UAAI,OAAQ,OAAM,KAAK,YAAY,MAAM,EAAE;AAC3C,UAAI,QAAS,OAAM,KAAK,aAAa,OAAO,EAAE;AAC9C,UAAI,SAAU,OAAM,KAAK,cAAc,QAAQ,EAAE;AACjD,UAAI,SAAU,OAAM,KAAK,cAAc,QAAQ,EAAE;AACjD,UAAI,kBAAmB,OAAM,KAAK,wBAAwB,2BAA2B,mBAAmB,mBAAmB,CAAC,EAAE;AAC9H,UAAI,WAAY,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,WAAY,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,WAAY,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,WAAY,OAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,WAAY,OAAM,KAAK,iBAAiB,2BAA2B,YAAY,YAAY,CAAC,EAAE;AAClG,UAAI,WAAY,OAAM,KAAK,gBAAgB,2BAA2B,YAAY,WAAW,CAAC,EAAE;AAChG,UAAI,SAAU,UAAS,QAAQ,SAAU,OAAM,KAAK,cAAc,oBAAoB,MAAM,UAAU,CAAC,EAAE;AACzG,UAAI,OAAO;AACT,iBAAS,OAAO,OAAO;AACrB,cAAI,IAAI,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,kCAAkC,GAAG,EAAE;AAClF,gBAAM,KAAK,WAAW,GAAG,IAAI,oBAAoB,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,EAAE;AAAA,QAC9E;AAAA,MACF;AACA,UAAI,QAAQ;AACV,iBAAS,QAAQ,QAAQ;AACvB,cAAI,KAAK,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAC/E,gBAAM,KAAK,YAAY,IAAI,IAAI,oBAAoB,OAAO,IAAI,GAAG,UAAU,IAAI,CAAC,EAAE;AAAA,QACpF;AAAA,MACF;AACA,UAAI,QAAQ;AACV,iBAAS,QAAQ,QAAQ;AACvB,cAAI,KAAK,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAC/E,gBAAM,KAAK,YAAY,IAAI,IAAI,oBAAoB,OAAO,IAAI,GAAG,UAAU,IAAI,CAAC,EAAE;AAAA,QACpF;AAAA,MACF;AACA,UAAI,OAAQ,UAAS,SAAS,OAAQ,OAAM,KAAK,YAAY,oBAAoB,OAAO,QAAQ,CAAC,EAAE;AACnG,UAAI,QAAQ;AACV,iBAAS,OAAO,QAAQ;AACtB,cAAI,IAAI,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,6BAA6B,GAAG,EAAE;AAC7E,gBAAM,KAAK,YAAY,GAAG,IAAI,oBAAoB,OAAO,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE;AAAA,QACjF;AAAA,MACF;AACA,UAAI,cAAc;AAChB,iBAAS,OAAO,cAAc;AAC5B,cAAI,IAAI,QAAQ,GAAG,KAAK,EAAG,OAAM,IAAI,MAAM,0BAA0B,GAAG,EAAE;AAC1E,gBAAM,KAAK,mBAAmB,GAAG,IAAI,oBAAoB,aAAa,GAAG,GAAG,iBAAiB,GAAG,CAAC,EAAE;AAAA,QACrG;AAAA,MACF;AACA,UAAI,aAAa;AACf,YAAI,MAAM,QAAQ,WAAW,GAAG;AAC9B,mBAASD,KAAI,GAAGE,KAAI,YAAY,QAAQF,KAAIE,IAAGF,MAAK;AAClD,gBAAI,aAAa,YAAYA,EAAC;AAC9B,gBAAI,OAAO,eAAe,YAAY,eAAe,MAAM;AACzD,kBAAI,iBAAiC,uBAAO,OAAO,IAAI;AACvD,kBAAI,QAAQ,QAAQ,YAAY,gBAAgB,MAAM,YAAY;AAClE,kBAAI,SAAS,QAAQ,YAAY,gBAAgB,OAAO,YAAY;AACpE,mCAAqB,YAAY,gBAAgB,6BAA6BA,EAAC;AAC/E,kBAAI,UAAU,OAAQ,OAAM,IAAI,MAAM,oDAAoDA,EAAC;AAC3F,kBAAI,WAAW,OAAQ,OAAM,IAAI,MAAM,qDAAqDA,EAAC;AAC7F,sBAAQ,KAAK,CAAC,QAAQ,KAAK,CAAC;AAAA,YAC9B,OAAO;AACL,sBAAQ,KAAK,CAAC,IAAI,oBAAoB,YAAY,0BAA0BA,EAAC,CAAC,CAAC;AAAA,YACjF;AAAA,UACF;AAAA,QACF,OAAO;AACL,mBAAS,OAAO,aAAa;AAC3B,oBAAQ,KAAK,CAAC,KAAK,oBAAoB,YAAY,GAAG,GAAG,eAAe,GAAG,CAAC,CAAC;AAAA,UAC/E;AAAA,QACF;AAAA,MACF;AACA,UAAI,OAAO;AACT,YAAI,YAA4B,uBAAO,OAAO,IAAI;AAClD,YAAI,WAAW,QAAQ,OAAO,WAAW,YAAY,wBAAwB;AAC7E,YAAI,aAAa,QAAQ,OAAO,WAAW,cAAc,YAAY;AACrE,YAAI,aAAa,QAAQ,OAAO,WAAW,cAAc,YAAY;AACrE,YAAI,UAAU,QAAQ,OAAO,WAAW,UAAU,YAAY;AAC9D,6BAAqB,OAAO,WAAW,mBAAmB;AAC1D,YAAI,WAAY,OAAM,KAAK,gBAAgB,UAAU,EAAE;AACvD,YAAI,QAAS,OAAM,KAAK,YAAY,OAAO,EAAE;AAC7C,YAAI,WAAY,mBAAkB;AAClC,YAAI,OAAO,aAAa,SAAU,iBAAgB,WAAW,QAAQ;AAAA,iBAC5D,oBAAoB,WAAY,iBAAgB;AAAA,MAC3D;AACA,UAAI,YAAY,CAAC;AACjB,UAAI,gBAAgB;AAClB,iBAAS,SAAS,gBAAgB;AAChC,mBAAS;AACT,oBAAU,KAAK,KAAK;AAAA,QACtB;AAAA,MACF;AACA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAa,oBAAoB,WAAW;AAAA,MAC9C;AAAA,IACF;AACA,aAAS,yBAAyB,UAAU,SAAS,QAAQ,iBAAiB;AAC5E,UAAI,QAAQ,CAAC;AACb,UAAI,OAAuB,uBAAO,OAAO,IAAI;AAC7C,mBAAa,OAAO,SAAS,MAAM,QAAQ,eAAe;AAC1D,sBAAgB,OAAO,SAAS,IAAI;AACpC,UAAI,YAAY,QAAQ,SAAS,MAAM,aAAa,qBAAqB;AACzE,UAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,YAAY;AAC1D,UAAI,cAAc,QAAQ,SAAS,MAAM,eAAe,YAAY;AACpE,2BAAqB,SAAS,MAAM,MAAM,QAAQ,SAAS;AAC3D,UAAI,UAAW,OAAM,KAAK,eAAe,cAAc,OAAO,aAAa,SAAS,EAAE;AACtF,UAAI,WAAY,OAAM,KAAK,gBAAgB,UAAU,EAAE;AACvD,UAAI,OAAQ,OAAM,KAAK,YAAY,MAAM,EAAE;AAC3C,UAAI,OAAQ,OAAM,KAAK,YAAY,MAAM,EAAE;AAC3C,UAAI,OAAQ,OAAM,KAAK,YAAY,MAAM,EAAE;AAC3C,aAAO;AAAA,QACL;AAAA,QACA,aAAa,oBAAoB,WAAW;AAAA,MAC9C;AAAA,IACF;AACA,aAAS,cAAc,UAAU;AAC/B,YAAM,wBAAwB,CAAC;AAC/B,YAAM,YAAY,EAAE,UAAU,OAAO,QAAQ,GAAG;AAChD,UAAI,oBAAoB,CAAC;AACzB,UAAI,gBAAgB;AACpB,UAAI,eAAe;AACnB,UAAI,SAAS,IAAI,WAAW,KAAK,IAAI;AACrC,UAAI,aAAa;AACjB,UAAI,iBAAiB,CAAC,UAAU;AAC9B,YAAI,QAAQ,aAAa,MAAM;AAC/B,YAAI,QAAQ,OAAO,QAAQ;AACzB,cAAI,OAAO,IAAI,WAAW,QAAQ,CAAC;AACnC,eAAK,IAAI,MAAM;AACf,mBAAS;AAAA,QACX;AACA,eAAO,IAAI,OAAO,UAAU;AAC5B,sBAAc,MAAM;AACpB,YAAI,SAAS;AACb,eAAO,SAAS,KAAK,YAAY;AAC/B,cAAI,SAAS,aAAa,QAAQ,MAAM;AACxC,cAAI,SAAS,IAAI,SAAS,YAAY;AACpC;AAAA,UACF;AACA,oBAAU;AACV,+BAAqB,OAAO,SAAS,QAAQ,SAAS,MAAM,CAAC;AAC7D,oBAAU;AAAA,QACZ;AACA,YAAI,SAAS,GAAG;AACd,iBAAO,WAAW,GAAG,QAAQ,UAAU;AACvC,wBAAc;AAAA,QAChB;AAAA,MACF;AACA,UAAI,aAAa,CAAC,UAAU;AAC1B,kBAAU,WAAW;AACrB,YAAI,MAAO,WAAU,SAAS,QAAQ,MAAM,WAAW;AACvD,cAAM,OAAO,4BAA4B,UAAU;AACnD,iBAAS,MAAM,mBAAmB;AAChC,4BAAkB,EAAE,EAAE,MAAM,IAAI;AAAA,QAClC;AACA,4BAAoB,CAAC;AAAA,MACvB;AACA,UAAI,cAAc,CAAC,MAAM,OAAO,aAAa;AAC3C,YAAI,UAAU,SAAU,QAAO,SAAS,qCAAqC,UAAU,QAAQ,IAAI;AACnG,YAAI,KAAK;AACT,0BAAkB,EAAE,IAAI,CAAC,OAAO,aAAa;AAC3C,cAAI;AACF,qBAAS,OAAO,QAAQ;AAAA,UAC1B,UAAE;AACA,gBAAI,KAAM,MAAK,MAAM;AAAA,UACvB;AAAA,QACF;AACA,YAAI,KAAM,MAAK,IAAI;AACnB,iBAAS,aAAa,aAAa,EAAE,IAAI,WAAW,MAAM,MAAM,CAAC,CAAC;AAAA,MACpE;AACA,UAAI,eAAe,CAAC,IAAI,UAAU;AAChC,YAAI,UAAU,SAAU,OAAM,IAAI,MAAM,qCAAqC,UAAU,MAAM;AAC7F,iBAAS,aAAa,aAAa,EAAE,IAAI,WAAW,OAAO,MAAM,CAAC,CAAC;AAAA,MACrE;AACA,UAAI,gBAAgB,OAAO,IAAI,YAAY;AACzC,YAAI;AACF,cAAI,QAAQ,YAAY,QAAQ;AAC9B,yBAAa,IAAI,CAAC,CAAC;AACnB;AAAA,UACF;AACA,cAAI,OAAO,QAAQ,QAAQ,UAAU;AACnC,kBAAM,mBAAmB,sBAAsB,QAAQ,GAAG;AAC1D,gBAAI,CAAC,kBAAkB;AACrB;AAAA,YACF;AACA,kBAAM,WAAW,iBAAiB,QAAQ,OAAO;AACjD,gBAAI,UAAU;AACZ,oBAAM,SAAS,IAAI,OAAO;AAC1B;AAAA,YACF;AAAA,UACF;AACA,gBAAM,IAAI,MAAM,sBAAsB,QAAQ,OAAO;AAAA,QACvD,SAASG,IAAG;AACV,gBAAM,SAAS,CAAC,sBAAsBA,IAAG,UAAU,MAAM,QAAQ,EAAE,CAAC;AACpE,cAAI;AACF,yBAAa,IAAI,EAAE,OAAO,CAAC;AAAA,UAC7B,QAAQ;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,UAAI,gBAAgB;AACpB,UAAI,uBAAuB,CAAC,UAAU;AACpC,YAAI,eAAe;AACjB,0BAAgB;AAChB,cAAI,gBAAgB,OAAO,aAAa,GAAG,KAAK;AAChD,cAAI,kBAAkB,UAAU;AAC9B,kBAAM,IAAI,MAAM,uCAAuC,QAAQ,mCAAmC,MAAM,aAAa,CAAC,EAAE;AAAA,UAC1H;AACA;AAAA,QACF;AACA,YAAI,SAAS,aAAa,KAAK;AAC/B,YAAI,OAAO,WAAW;AACpB,wBAAc,OAAO,IAAI,OAAO,KAAK;AAAA,QACvC,OAAO;AACL,cAAI,WAAW,kBAAkB,OAAO,EAAE;AAC1C,iBAAO,kBAAkB,OAAO,EAAE;AAClC,cAAI,OAAO,MAAM,MAAO,UAAS,OAAO,MAAM,OAAO,CAAC,CAAC;AAAA,cAClD,UAAS,MAAM,OAAO,KAAK;AAAA,QAClC;AAAA,MACF;AACA,UAAI,iBAAiB,CAAC,EAAE,UAAU,MAAM,SAAS,OAAO,QAAQ,WAAW,YAAY,SAAS,MAAM;AACpG,YAAI,WAAW;AACf,cAAM,WAAW;AACjB,cAAM,mBAAmB,CAAC;AAC1B,cAAM,YAAY;AAAA,UAChB,MAAM;AACJ,gBAAI,EAAE,aAAa,GAAG;AACpB,kBAAI,KAAM,MAAK,IAAI;AAAA,YACrB;AAAA,UACF;AAAA,UACA,QAAQ;AACN,gBAAI,EAAE,aAAa,GAAG;AACpB,qBAAO,sBAAsB,QAAQ;AACrC,kBAAI,KAAM,MAAK,MAAM;AAAA,YACvB;AAAA,UACF;AAAA,QACF;AACA,8BAAsB,QAAQ,IAAI;AAClC,kBAAU,IAAI;AACd;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,CAAC,KAAK,QAAQ;AACZ,gBAAI;AACF,uBAAS,KAAK,GAAG;AAAA,YACnB,UAAE;AACA,wBAAU,MAAM;AAAA,YAClB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,UAAI,aAAa,CAAC,EAAE,UAAU,MAAM,OAAO,SAAS,OAAO,QAAQ,IAAI,KAAK,SAAS,MAAM;AACzF,cAAM,UAAU,kBAAkB;AAClC,YAAI,QAAQ,CAAC,cAAc;AACzB,cAAI;AACF,gBAAI,OAAO,UAAU,YAAY,EAAE,iBAAiB;AAClD,oBAAM,IAAI,MAAM,2DAA2D;AAC7E,gBAAI;AAAA,cACF;AAAA,cACA;AAAA,YACF,IAAI,yBAAyB,UAAU,SAAS,QAAQ,wBAAwB;AAChF,gBAAI,UAAU;AAAA,cACZ,SAAS;AAAA,cACT;AAAA,cACA,SAAS,cAAc;AAAA,cACvB,OAAO,cAAc,OAAO,WAAW,SAAS,IAAI,OAAO,UAAU,WAAW,WAAW,KAAK,IAAI;AAAA,YACtG;AACA,gBAAI,YAAa,SAAQ,cAAc;AACvC,wBAAY,MAAM,SAAS,CAAC,OAAO,aAAa;AAC9C,kBAAI,MAAO,QAAO,SAAS,IAAI,MAAM,KAAK,GAAG,IAAI;AACjD,kBAAI,SAAS,yBAAyB,SAAS,QAAQ,OAAO;AAC9D,kBAAI,WAAW,yBAAyB,SAAS,UAAU,OAAO;AAClE,kBAAI,cAAc;AAClB,kBAAI,OAAO,MAAM;AACf,oBAAI,EAAE,gBAAgB,GAAG;AACvB,sBAAI,SAAS;AAAA,oBACX;AAAA,oBACA,MAAM,SAAS;AAAA,oBACf,KAAK,SAAS;AAAA,oBACd,aAAa;AAAA,oBACb,eAAe;AAAA,kBACjB;AACA,sBAAI,mBAAmB,SAAU,QAAO,gBAAgB,YAAY,OAAO,SAAS,SAAS;AAC7F,sBAAI,SAAS,YAAa,QAAO,cAAc,YAAY,OAAO,SAAS,SAAS;AACpF,2BAAS,MAAM,MAAM;AAAA,gBACvB;AAAA,cACF;AACA,kBAAI,OAAO,SAAS,EAAG,QAAO,SAAS,oBAAoB,oBAAoB,QAAQ,QAAQ,GAAG,IAAI;AACtG,kBAAI,SAAS,QAAQ;AACnB;AACA,oBAAI,SAAS,SAAS,MAAM,CAAC,KAAK,aAAa;AAC7C,sBAAI,QAAQ,MAAM;AAChB,6BAAS,KAAK,IAAI;AAAA,kBACpB,OAAO;AACL,6BAAS,OAAO;AAChB,yBAAK;AAAA,kBACP;AAAA,gBACF,CAAC;AAAA,cACH;AACA,kBAAI,SAAS,OAAO;AAClB;AACA,oBAAI,SAAS,SAAS,KAAK,CAAC,KAAK,aAAa;AAC5C,sBAAI,QAAQ,MAAM;AAChB,6BAAS,KAAK,IAAI;AAAA,kBACpB,OAAO;AACL,6BAAS,MAAM;AACf,yBAAK;AAAA,kBACP;AAAA,gBACF,CAAC;AAAA,cACH;AACA,mBAAK;AAAA,YACP,CAAC;AAAA,UACH,SAASA,IAAG;AACV,gBAAI,QAAQ,CAAC;AACb,gBAAI;AACF,2BAAa,OAAO,SAAS,CAAC,GAAG,QAAQ,wBAAwB;AAAA,YACnE,QAAQ;AAAA,YACR;AACA,kBAAM,QAAQ,sBAAsBA,IAAG,UAAU,SAAS,QAAQ,EAAE;AACpE,wBAAY,MAAM,EAAE,SAAS,SAAS,OAAO,MAAM,GAAG,MAAM;AAC1D,oBAAM,SAAS,QAAQ,KAAK,MAAM,MAAM;AACxC,uBAAS,oBAAoB,oBAAoB,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI;AAAA,YACrE,CAAC;AAAA,UACH;AAAA,QACF;AACA,aAAK,OAAO,UAAU,YAAY,iBAAiB,eAAe,MAAM,SAAS,OAAO,MAAM;AAC5F,cAAI,OAAO;AACX,kBAAQ,MAAM,IAAI,UAAU,OAAO,IAAI;AAAA,QACzC;AACA,cAAM,IAAI;AAAA,MACZ;AACA,UAAI,kBAAkB,CAAC,EAAE,UAAU,MAAM,UAAU,SAAS,SAAS,MAAM;AACzE,YAAI,CAAC,QAAS,OAAM,IAAI,MAAM,8BAA8B,QAAQ,SAAS;AAC7E,YAAI,OAAO,CAAC;AACZ,YAAI,OAAO,QAAQ,SAAS,MAAM,QAAQ,YAAY;AACtD,YAAI,QAAQ,QAAQ,SAAS,MAAM,SAAS,aAAa;AACzD,YAAI,gBAAgB,QAAQ,SAAS,MAAM,iBAAiB,aAAa;AACzE,6BAAqB,SAAS,MAAM,MAAM,QAAQ,SAAS;AAC3D,YAAI,SAAS,OAAQ,OAAM,IAAI,MAAM,qBAAqB,QAAQ,SAAS;AAC3E,YAAI,SAAS,WAAW,SAAS,UAAW,OAAM,IAAI,MAAM,iDAAiD,QAAQ,SAAS;AAC9H,YAAI,UAAU;AAAA,UACZ,SAAS;AAAA,UACT,UAAU,iBAAiB,UAAU,YAAY,MAAM,IAAI,aAAa;AAAA,UACxE,WAAW,SAAS;AAAA,QACtB;AACA,YAAI,UAAU,OAAQ,SAAQ,QAAQ;AACtC,YAAI,kBAAkB,OAAQ,SAAQ,gBAAgB;AACtD,oBAAY,MAAM,SAAS,CAAC,OAAO,aAAa;AAC9C,cAAI,MAAO,QAAO,SAAS,IAAI,MAAM,KAAK,GAAG,IAAI;AACjD,mBAAS,MAAM,SAAS,QAAQ;AAAA,QAClC,CAAC;AAAA,MACH;AACA,UAAI,mBAAmB,CAAC,EAAE,UAAU,MAAM,UAAU,SAAS,SAAS,MAAM;AAC1E,YAAI,YAAY,OAAQ,WAAU,CAAC;AACnC,YAAI,OAAO,CAAC;AACZ,YAAI,QAAQ,QAAQ,SAAS,MAAM,SAAS,aAAa;AACzD,YAAI,UAAU,QAAQ,SAAS,MAAM,WAAW,aAAa;AAC7D,6BAAqB,SAAS,MAAM,MAAM,QAAQ,SAAS;AAC3D,YAAI,UAAU;AAAA,UACZ,SAAS;AAAA,UACT;AAAA,QACF;AACA,YAAI,UAAU,OAAQ,SAAQ,QAAQ;AACtC,YAAI,YAAY,OAAQ,SAAQ,UAAU;AAC1C,oBAAY,MAAM,SAAS,CAAC,OAAO,aAAa;AAC9C,cAAI,MAAO,QAAO,SAAS,IAAI,MAAM,KAAK,GAAG,IAAI;AACjD,mBAAS,MAAM,SAAS,MAAM;AAAA,QAChC,CAAC;AAAA,MACH;AACA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,SAAS;AAAA,UACP;AAAA,UACA,WAAW;AAAA,UACX,gBAAgB;AAAA,UAChB,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AACA,aAAS,mBAAmB,UAAU,UAAU,aAAa,cAAc,MAAM,UAAU,kBAAkB,SAAS,QAAQ,YAAY,UAAU;AAClJ,YAAM,UAAU,kBAAkB;AAClC,YAAM,YAAY,aAAa;AAC/B,YAAM,cAAc,CAACA,IAAG,eAAe;AACrC,cAAM,QAAQ,CAAC;AACf,YAAI;AACF,uBAAa,OAAO,SAAS,CAAC,GAAG,QAAQ,oBAAoB;AAAA,QAC/D,QAAQ;AAAA,QACR;AACA,cAAM,UAAU,sBAAsBA,IAAG,UAAU,SAAS,QAAQ,UAAU;AAC9E,oBAAY,MAAM,EAAE,SAAS,SAAS,OAAO,OAAO,QAAQ,GAAG,MAAM;AACnE,kBAAQ,SAAS,QAAQ,KAAK,QAAQ,MAAM;AAC5C,mBAAS,oBAAoB,YAAY,mBAAmB,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;AAAA,QAClG,CAAC;AAAA,MACH;AACA,UAAI;AACJ,UAAI,OAAO,YAAY,UAAU;AAC/B,cAAM,QAAQ,QAAQ;AACtB,YAAI,UAAU,QAAQ;AACpB,cAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,YAAY,IAAI,MAAM,4BAA4B,GAAG,EAAE;AACzF,oBAAU;AAAA,QACZ;AAAA,MACF;AACA,UAAI,WAAW,QAAQ,SAAS,GAAG;AACjC,YAAI,SAAS,OAAQ,QAAO,YAAY,IAAI,MAAM,6CAA6C,GAAG,EAAE;AACpG;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,EAAE;AAAA,UACA,CAAC,WAAW;AACV,gBAAI,CAAC,OAAO,GAAI,QAAO,YAAY,OAAO,OAAO,OAAO,UAAU;AAClE,gBAAI;AACF,qCAAuB,OAAO,gBAAgB,OAAO,mBAAmB,OAAO,0BAA0B;AAAA,YAC3G,SAASA,IAAG;AACV,0BAAYA,IAAG,EAAE;AAAA,YACnB;AAAA,UACF;AAAA,UACA,CAACA,OAAM,YAAYA,IAAG,EAAE;AAAA,QAC1B;AACA;AAAA,MACF;AACA,UAAI;AACF,+BAAuB,MAAM,CAAC,QAAQ,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAAA,QACnE,CAAC;AAAA,MACH,SAASA,IAAG;AACV,oBAAYA,IAAG,EAAE;AAAA,MACnB;AACA,eAAS,uBAAuB,gBAAgB,mBAAmB,4BAA4B;AAC7F,cAAM,eAAe,SAAS;AAC9B,cAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,IAAI,qBAAqB,UAAU,SAAS,QAAQ,sBAAsB,YAAY;AACtF,YAAI,SAAS,CAAC,SAAS,MAAO,OAAM,IAAI,MAAM,uDAAuD;AACrG,cAAM,UAAU;AAAA,UACd,SAAS;AAAA,UACT,KAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,eAAe,iBAAiB;AAAA,UAChC;AAAA,UACA,SAAS;AAAA,QACX;AACA,YAAI,eAAgB,SAAQ,UAAU;AACtC,YAAI,YAAa,SAAQ,cAAc;AACvC,cAAM,wBAAwB,CAAC,UAAU,cAAc;AACrD,gBAAM,SAAS;AAAA,YACb,QAAQ,yBAAyB,SAAS,QAAQ,OAAO;AAAA,YACzD,UAAU,yBAAyB,SAAS,UAAU,OAAO;AAAA,YAC7D,aAAa;AAAA,YACb,UAAU;AAAA,YACV,aAAa;AAAA,UACf;AACA,gBAAM,iBAAiB,OAAO,OAAO,MAAM;AAC3C,gBAAM,mBAAmB,OAAO,SAAS,MAAM;AAC/C,cAAI,SAAS,YAAa,QAAO,cAAc,SAAS,YAAY,IAAI,kBAAkB;AAC1F,cAAI,SAAS,SAAU,QAAO,WAAW,KAAK,MAAM,SAAS,QAAQ;AACrE,cAAI,SAAS,YAAa,QAAO,cAAc,SAAS;AACxD,cAAI,SAAS,kBAAkB,OAAQ,SAAQ,IAAI,WAAW,SAAS,aAAa,EAAE,QAAQ,OAAO,EAAE,CAAC;AACxG,4BAAkB,QAAQ,CAAC,aAAa,kBAAkB;AACxD,gBAAI,eAAe,SAAS,KAAK,YAAY,SAAS,GAAG;AACvD,oBAAM,QAAQ,oBAAoB,gBAAgB,eAAe,OAAO,WAAW,GAAG,iBAAiB,OAAO,aAAa,CAAC;AAC5H,qBAAO,UAAU,OAAO,MAAM,aAAa,aAAa;AAAA,YAC1D;AACA,sBAAU,MAAM,QAAQ,aAAa,aAAa;AAAA,UACpD,CAAC;AAAA,QACH;AACA,YAAI;AACJ,YAAI;AACJ,YAAI;AACF,2BAAiB,QAAQ,IAAI,CAAC,IAAI,aAAa,IAAI,QAAQ,CAACC,aAAY;AACtE,kCAAsB,UAAU,CAAC,KAAK,QAAQ,aAAa,kBAAkB;AAC3E,oBAAM,WAAW;AAAA,gBACf,QAAQ;AAAA,gBACR,UAAU;AAAA,cACZ;AACA,kBAAI,oBAAqB,qBAAoB,KAAK,MAAM;AACxD,oCAAsB;AACtB,oCAAsB;AACtB,2BAAa,IAAI,QAAQ;AACzB,cAAAA,SAAQ;AAAA,YACV,CAAC;AAAA,UACH,CAAC;AACH,oBAAY,MAAM,SAAS,CAAC,OAAO,aAAa;AAC9C,cAAI,MAAO,QAAO,SAAS,IAAI,MAAM,KAAK,GAAG,IAAI;AACjD,cAAI,CAAC,WAAW;AACd,mBAAO,sBAAsB,UAAU,CAAC,KAAK,QAAQ;AACnD,yCAA2B;AAC3B,qBAAO,SAAS,KAAK,GAAG;AAAA,YAC1B,CAAC;AAAA,UACH;AACA,cAAI,SAAS,OAAO,SAAS,GAAG;AAC9B,mBAAO,SAAS,oBAAoB,kBAAkB,SAAS,QAAQ,SAAS,QAAQ,GAAG,IAAI;AAAA,UACjG;AACA,cAAI,aAAa;AACjB,gBAAM,SAAS;AAAA,YACb,SAAS,MAAM;AACb,kBAAI,CAAC,oBAAqB,uBAAsB,IAAI,QAAQ,CAACA,UAAS,WAAW;AAC/E,oBAAI;AACJ,sCAAsB,CAAC,KAAK,YAAY;AACtC,sBAAI,CAAC,cAAe,iBAAgB,MAAM,MAAM,OAAO,GAAG,IAAIA,SAAQ,OAAO;AAAA,gBAC/E;AACA,sBAAM,sBAAsB,MAAM;AAChC,wBAAM,WAAW;AAAA,oBACf,SAAS;AAAA,oBACT,KAAK;AAAA,kBACP;AACA,8BAAY,MAAM,UAAU,CAAC,QAAQ,cAAc;AACjD,wBAAI,QAAQ;AACV,6BAAO,IAAI,MAAM,MAAM,CAAC;AAAA,oBAC1B,WAAW,eAAe;AACxB,oCAAc;AAAA,oBAChB,OAAO;AACL,0CAAoB;AAAA,oBACtB;AAAA,kBACF,CAAC;AAAA,gBACH;AACA,oCAAoB;AAAA,cACtB,CAAC;AACD,qBAAO;AAAA,YACT;AAAA,YACA,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,QAAQ,CAACA,UAAS,WAAW;AACzD,kBAAI,CAAC,SAAS,MAAO,OAAM,IAAI,MAAM,gDAAgD;AACrF,oBAAM,OAAO,CAAC;AACd,oBAAM,QAAQ,QAAQ,UAAU,MAAM,SAAS,aAAa;AAC5D,mCAAqB,UAAU,MAAM,iBAAiB;AACtD,oBAAM,WAAW;AAAA,gBACf,SAAS;AAAA,gBACT,KAAK;AAAA,cACP;AACA,kBAAI,MAAO,UAAS,QAAQ;AAC5B,0BAAY,MAAM,UAAU,CAAC,WAAW;AACtC,oBAAI,OAAQ,QAAO,IAAI,MAAM,MAAM,CAAC;AAAA,oBAC/B,CAAAA,SAAQ,MAAM;AAAA,cACrB,CAAC;AAAA,YACH,CAAC;AAAA,YACD,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,QAAQ,CAACA,UAAS,WAAW;AACzD,kBAAI,CAAC,SAAS,MAAO,OAAM,IAAI,MAAM,gDAAgD;AACrF,oBAAM,OAAO,CAAC;AACd,oBAAM,OAAO,QAAQ,UAAU,MAAM,QAAQ,qBAAqB;AAClE,oBAAM,OAAO,QAAQ,UAAU,MAAM,QAAQ,YAAY;AACzD,oBAAM,WAAW,QAAQ,UAAU,MAAM,YAAY,YAAY;AACjE,oBAAM,UAAU,QAAQ,UAAU,MAAM,WAAW,YAAY;AAC/D,oBAAM,WAAW,QAAQ,UAAU,MAAM,YAAY,YAAY;AACjE,oBAAM,WAAW,QAAQ,UAAU,MAAM,YAAY,YAAY;AACjE,oBAAM,OAAO,QAAQ,UAAU,MAAM,QAAQ,YAAY;AACzD,oBAAM,YAAY,QAAQ,UAAU,MAAM,aAAa,cAAc;AACrE,mCAAqB,UAAU,MAAM,iBAAiB;AACtD,oBAAM,WAAW;AAAA,gBACf,SAAS;AAAA,gBACT,KAAK;AAAA,gBACL,WAAW,CAAC,CAAC;AAAA,cACf;AACA,kBAAI,SAAS,OAAQ,UAAS,OAAO;AACrC,kBAAI,SAAS,OAAQ,UAAS,OAAO;AACrC,kBAAI,aAAa,OAAQ,UAAS,WAAW;AAC7C,kBAAI,YAAY,OAAQ,UAAS,UAAU;AAC3C,kBAAI,aAAa,OAAQ,UAAS,WAAW;AAC7C,kBAAI,aAAa,OAAQ,UAAS,WAAW;AAC7C,kBAAI,MAAM;AACR,sBAAM,WAAW,CAAC;AAClB,sBAAM,SAAS,QAAQ,MAAM,UAAU,UAAU,4BAA4B;AAC7E,qCAAqB,MAAM,UAAU,kBAAkB;AACvD,oBAAI,MAAM,QAAQ,MAAM,EAAG,UAAS,aAAa;AAAA,yBACxC,WAAW,OAAQ,UAAS,aAAa,CAAC,MAAM;AAAA,cAC3D;AACA,0BAAY,MAAM,UAAU,CAAC,QAAQ,cAAc;AACjD,oBAAI,OAAQ,QAAO,OAAO,IAAI,MAAM,MAAM,CAAC;AAC3C,oBAAI,WAAW;AACb,mCAAiB,eAAe,IAAI,CAAC,IAAI,aAAa;AACpD,8BAAU,SAAS,IAAI;AACvB,iCAAa,IAAI,CAAC,CAAC;AAAA,kBACrB;AAAA,gBACF;AACA,gBAAAA,SAAQ,SAAS;AAAA,cACnB,CAAC;AAAA,YACH,CAAC;AAAA,YACD,QAAQ,MAAM,IAAI,QAAQ,CAACA,aAAY;AACrC,kBAAI,WAAY,QAAOA,SAAQ;AAC/B,oBAAM,WAAW;AAAA,gBACf,SAAS;AAAA,gBACT,KAAK;AAAA,cACP;AACA,0BAAY,MAAM,UAAU,MAAM;AAChC,gBAAAA,SAAQ;AAAA,cACV,CAAC;AAAA,YACH,CAAC;AAAA,YACD,SAAS,MAAM,IAAI,QAAQ,CAACA,aAAY;AACtC,kBAAI,WAAY,QAAOA,SAAQ;AAC/B,2BAAa;AACb,oBAAM,WAAW;AAAA,gBACf,SAAS;AAAA,gBACT,KAAK;AAAA,cACP;AACA,0BAAY,MAAM,UAAU,MAAM;AAChC,gBAAAA,SAAQ;AACR,2CAA2B;AAC3B,qBAAK,MAAM;AAAA,cACb,CAAC;AAAA,YACH,CAAC;AAAA,UACH;AACA,eAAK,IAAI;AACT,mBAAS,MAAM,MAAM;AAAA,QACvB,CAAC;AAAA,MACH;AAAA,IACF;AACA,QAAI,gBAAgB,OAAO,UAAU,aAAa,cAAc,MAAM,UAAU,kBAAkB,gBAAgB,SAAS,YAAY;AACrI,UAAI,mBAAmB,CAAC;AACxB,UAAI,iBAAiB,CAAC;AACtB,UAAI,qBAAqB,CAAC;AAC1B,UAAI,kBAAkB,CAAC;AACvB,UAAI,qBAAqB,CAAC;AAC1B,UAAI,iBAAiB;AACrB,UAAIJ,KAAI;AACR,UAAI,iBAAiB,CAAC;AACtB,UAAI,cAAc;AAClB,gBAAU,CAAC,GAAG,OAAO;AACrB,eAAS,QAAQ,SAAS;AACxB,YAAI,OAAO,CAAC;AACZ,YAAI,OAAO,SAAS,SAAU,OAAM,IAAI,MAAM,mBAAmBA,EAAC,oBAAoB;AACtF,cAAM,OAAO,QAAQ,MAAM,MAAM,QAAQ,YAAY;AACrD,YAAI,OAAO,SAAS,YAAY,SAAS,GAAI,OAAM,IAAI,MAAM,mBAAmBA,EAAC,oBAAoB;AACrG,YAAI;AACF,cAAI,QAAQ,QAAQ,MAAM,MAAM,SAAS,cAAc;AACvD,cAAI,OAAO,UAAU,WAAY,OAAM,IAAI,MAAM,oCAAoC;AACrF,+BAAqB,MAAM,MAAM,aAAa,MAAM,IAAI,CAAC,EAAE;AAC3D,cAAI,SAAS;AAAA,YACX;AAAA,YACA,SAAS;AAAA,YACT,OAAO;AAAA,YACP,WAAW,CAAC;AAAA,YACZ,QAAQ,CAAC;AAAA,UACX;AACA,UAAAA;AACA,cAAII,WAAU,CAAC,OAAO,UAAU,CAAC,MAAM;AACrC,gBAAI,CAAC,YAAa,OAAM,IAAI,MAAM,yDAAyD;AAC3F,gBAAI,OAAO,UAAU,SAAU,OAAM,IAAI,MAAM,sCAAsC;AACrF,gBAAI,QAAwB,uBAAO,OAAO,IAAI;AAC9C,gBAAI,aAAa,QAAQ,SAAS,OAAO,cAAc,YAAY;AACnE,gBAAI,WAAW,QAAQ,SAAS,OAAO,YAAY,YAAY;AAC/D,gBAAI,YAAY,QAAQ,SAAS,OAAO,aAAa,YAAY;AACjE,gBAAI,aAAa,QAAQ,SAAS,OAAO,cAAc,YAAY;AACnE,gBAAI,OAAO,QAAQ,SAAS,OAAO,QAAQ,YAAY;AACvD,gBAAI,aAAa,QAAQ,SAAS,OAAO,cAAc,aAAa;AACpE,gBAAI,mBAAmB,QAAQ,SAAS,OAAO,QAAQ,YAAY;AACnE,iCAAqB,SAAS,OAAO,mBAAmB;AACxD,mBAAO,IAAI,QAAQ,CAACC,WAAU,WAAW;AACvC,oBAAM,UAAU;AAAA,gBACd,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,KAAK;AAAA,gBACL,YAAY;AAAA,cACd;AACA,kBAAI,cAAc,KAAM,SAAQ,aAAa;AAC7C,kBAAI,YAAY,KAAM,SAAQ,WAAW;AACzC,kBAAI,aAAa,KAAM,SAAQ,YAAY;AAC3C,kBAAI,cAAc,KAAM,SAAQ,aAAa;AAC7C,kBAAI,QAAQ,KAAM,SAAQ,OAAO;AAAA,kBAC5B,OAAM,IAAI,MAAM,4CAA4C;AACjE,kBAAI,cAAc,KAAM,SAAQ,aAAa,QAAQ,MAAM,UAAU;AACrE,kBAAI,oBAAoB,KAAM,SAAQ,OAAO,kBAAkB,kBAAkB,MAAM;AACvF,0BAAY,MAAM,SAAS,CAAC,OAAO,aAAa;AAC9C,oBAAI,UAAU,KAAM,QAAO,IAAI,MAAM,KAAK,CAAC;AAAA,oBACtC,CAAAA,UAAS;AAAA,kBACZ,QAAQ,yBAAyB,SAAS,QAAQ,OAAO;AAAA,kBACzD,UAAU,yBAAyB,SAAS,UAAU,OAAO;AAAA,kBAC7D,MAAM,SAAS;AAAA,kBACf,UAAU,SAAS;AAAA,kBACnB,aAAa,SAAS;AAAA,kBACtB,WAAW,SAAS;AAAA,kBACpB,QAAQ,SAAS;AAAA,kBACjB,YAAY,QAAQ,KAAK,SAAS,UAAU;AAAA,gBAC9C,CAAC;AAAA,cACH,CAAC;AAAA,YACH,CAAC;AAAA,UACH;AACA,cAAI,UAAU,MAAM;AAAA,YAClB;AAAA,YACA,SAAAD;AAAA,YACA,QAAQ,UAAU;AAChB,kBAAI,iBAAiB;AACrB,kBAAI,iBAAiB,gBAAgB,IAAI,MAAM,cAAc,GAAG,UAAU,SAAS;AACnF,+BAAiB,KAAK,EAAE,MAAM,UAAU,MAAM,eAAe,CAAC;AAC9D,qBAAO,UAAU;AAAA,YACnB;AAAA,YACA,MAAM,UAAU;AACd,kBAAI,iBAAiB;AACrB,kBAAI,iBAAiB,gBAAgB,IAAI,MAAM,cAAc,GAAG,UAAU,OAAO;AACjF,6BAAe,KAAK,EAAE,MAAM,UAAU,MAAM,eAAe,CAAC;AAC5D,qBAAO,QAAQ;AAAA,YACjB;AAAA,YACA,UAAU,SAAS,UAAU;AAC3B,kBAAI,iBAAiB;AACrB,kBAAI,iBAAiB,gBAAgB,IAAI,MAAM,cAAc,GAAG,UAAU,WAAW;AACrF,kBAAI,QAAQ,CAAC;AACb,kBAAI,SAAS,QAAQ,SAAS,OAAO,UAAU,YAAY;AAC3D,kBAAI,YAAY,QAAQ,SAAS,OAAO,aAAa,YAAY;AACjE,mCAAqB,SAAS,OAAO,kCAAkC,MAAM,IAAI,CAAC,EAAE;AACpF,kBAAI,UAAU,KAAM,OAAM,IAAI,MAAM,sCAAsC;AAC1E,kBAAI,KAAK;AACT,iCAAmB,EAAE,IAAI,EAAE,MAAM,UAAU,MAAM,eAAe;AAChE,qBAAO,UAAU,KAAK,EAAE,IAAI,QAAQ,mBAAmB,MAAM,GAAG,WAAW,aAAa,GAAG,CAAC;AAAA,YAC9F;AAAA,YACA,OAAO,SAAS,UAAU;AACxB,kBAAI,iBAAiB;AACrB,kBAAI,iBAAiB,gBAAgB,IAAI,MAAM,cAAc,GAAG,UAAU,QAAQ;AAClF,kBAAI,QAAQ,CAAC;AACb,kBAAI,SAAS,QAAQ,SAAS,OAAO,UAAU,YAAY;AAC3D,kBAAI,YAAY,QAAQ,SAAS,OAAO,aAAa,YAAY;AACjE,mCAAqB,SAAS,OAAO,+BAA+B,MAAM,IAAI,CAAC,EAAE;AACjF,kBAAI,UAAU,KAAM,OAAM,IAAI,MAAM,mCAAmC;AACvE,kBAAI,KAAK;AACT,8BAAgB,EAAE,IAAI,EAAE,MAAM,UAAU,MAAM,eAAe;AAC7D,qBAAO,OAAO,KAAK,EAAE,IAAI,QAAQ,mBAAmB,MAAM,GAAG,WAAW,aAAa,GAAG,CAAC;AAAA,YAC3F;AAAA,YACA,UAAU,UAAU;AAClB,iCAAmB,KAAK,QAAQ;AAAA,YAClC;AAAA,YACA,SAAS,SAAS;AAAA,UACpB,CAAC;AACD,cAAI,QAAS,OAAM;AACnB,yBAAe,KAAK,MAAM;AAAA,QAC5B,SAASD,IAAG;AACV,iBAAO,EAAE,IAAI,OAAO,OAAOA,IAAG,YAAY,KAAK;AAAA,QACjD;AAAA,MACF;AACA,uBAAiB,UAAU,IAAI,OAAO,IAAI,YAAY;AACpD,gBAAQ,MAAM;AACd,YAAI,WAAW,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,EAAE;AAC1C,cAAM,QAAQ,IAAI,iBAAiB,IAAI,OAAO,EAAE,MAAM,UAAU,KAAK,MAAM;AACzE,cAAI;AACF,gBAAI,SAAS,MAAM,SAAS;AAC5B,gBAAI,UAAU,MAAM;AAClB,kBAAI,OAAO,WAAW,SAAU,OAAM,IAAI,MAAM,yCAAyC,MAAM,IAAI,CAAC,sBAAsB;AAC1H,kBAAI,OAAO,CAAC;AACZ,kBAAI,SAAS,QAAQ,QAAQ,MAAM,UAAU,WAAW;AACxD,kBAAI,WAAW,QAAQ,QAAQ,MAAM,YAAY,WAAW;AAC5D,mCAAqB,QAAQ,MAAM,qCAAqC,MAAM,IAAI,CAAC,EAAE;AACrF,kBAAI,UAAU,KAAM,UAAS,OAAO,KAAK,GAAG,iBAAiB,QAAQ,UAAU,SAAS,MAAM,MAAM,CAAC;AACrG,kBAAI,YAAY,KAAM,UAAS,SAAS,KAAK,GAAG,iBAAiB,UAAU,YAAY,SAAS,MAAM,MAAM,CAAC;AAAA,YAC/G;AAAA,UACF,SAASA,IAAG;AACV,qBAAS,OAAO,KAAK,sBAAsBA,IAAG,UAAU,SAAS,QAAQ,KAAK,GAAG,IAAI,CAAC;AAAA,UACxF;AAAA,QACF,CAAC,CAAC;AACF,qBAAa,IAAI,QAAQ;AAAA,MAC3B;AACA,uBAAiB,YAAY,IAAI,OAAO,IAAI,YAAY;AACtD,YAAI,WAAW,CAAC,GAAG,OAAO,IAAI,UAAU;AACxC,iBAAS,OAAO,QAAQ,KAAK;AAC3B,cAAI;AACF,aAAC,EAAE,MAAM,UAAU,KAAK,IAAI,mBAAmB,GAAG;AAClD,gBAAI,SAAS,MAAM,SAAS;AAAA,cAC1B,MAAM,QAAQ;AAAA,cACd,UAAU,QAAQ;AAAA,cAClB,WAAW,QAAQ;AAAA,cACnB,YAAY,QAAQ;AAAA,cACpB,MAAM,QAAQ;AAAA,cACd,YAAY,QAAQ,KAAK,QAAQ,UAAU;AAAA,cAC3C,MAAM,QAAQ;AAAA,YAChB,CAAC;AACD,gBAAI,UAAU,MAAM;AAClB,kBAAI,OAAO,WAAW,SAAU,OAAM,IAAI,MAAM,2CAA2C,MAAM,IAAI,CAAC,sBAAsB;AAC5H,kBAAI,OAAO,CAAC;AACZ,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,YAAY;AACjE,kBAAI,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,YAAY;AACtD,kBAAI,YAAY,QAAQ,QAAQ,MAAM,aAAa,YAAY;AAC/D,kBAAI,SAAS,QAAQ,QAAQ,MAAM,UAAU,YAAY;AACzD,kBAAI,WAAW,QAAQ,QAAQ,MAAM,YAAY,aAAa;AAC9D,kBAAI,cAAc,QAAQ,QAAQ,MAAM,eAAe,aAAa;AACpE,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,aAAa;AAClE,kBAAI,SAAS,QAAQ,QAAQ,MAAM,UAAU,WAAW;AACxD,kBAAI,WAAW,QAAQ,QAAQ,MAAM,YAAY,WAAW;AAC5D,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,oBAAoB;AACzE,kBAAI,YAAY,QAAQ,QAAQ,MAAM,aAAa,oBAAoB;AACvE,mCAAqB,QAAQ,MAAM,uCAAuC,MAAM,IAAI,CAAC,EAAE;AACvF,uBAAS,KAAK;AACd,kBAAI,cAAc,KAAM,UAAS,aAAa;AAC9C,kBAAI,SAAS,KAAM,UAAS,OAAO;AACnC,kBAAI,aAAa,KAAM,UAAS,YAAY;AAC5C,kBAAI,UAAU,KAAM,UAAS,SAAS;AACtC,kBAAI,YAAY,KAAM,UAAS,WAAW;AAC1C,kBAAI,eAAe,KAAM,UAAS,cAAc;AAChD,kBAAI,cAAc,KAAM,UAAS,aAAa,QAAQ,MAAM,UAAU;AACtE,kBAAI,UAAU,KAAM,UAAS,SAAS,iBAAiB,QAAQ,UAAU,SAAS,MAAM,MAAM;AAC9F,kBAAI,YAAY,KAAM,UAAS,WAAW,iBAAiB,UAAU,YAAY,SAAS,MAAM,MAAM;AACtG,kBAAI,cAAc,KAAM,UAAS,aAAa,oBAAoB,YAAY,YAAY;AAC1F,kBAAI,aAAa,KAAM,UAAS,YAAY,oBAAoB,WAAW,WAAW;AACtF;AAAA,YACF;AAAA,UACF,SAASA,IAAG;AACV,uBAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,sBAAsBA,IAAG,UAAU,SAAS,QAAQ,KAAK,GAAG,IAAI,CAAC,EAAE;AAClG;AAAA,UACF;AAAA,QACF;AACA,qBAAa,IAAI,QAAQ;AAAA,MAC3B;AACA,uBAAiB,SAAS,IAAI,OAAO,IAAI,YAAY;AACnD,YAAI,WAAW,CAAC,GAAG,OAAO,IAAI,UAAU;AACxC,iBAAS,OAAO,QAAQ,KAAK;AAC3B,cAAI;AACF,aAAC,EAAE,MAAM,UAAU,KAAK,IAAI,gBAAgB,GAAG;AAC/C,gBAAI,SAAS,MAAM,SAAS;AAAA,cAC1B,MAAM,QAAQ;AAAA,cACd,WAAW,QAAQ;AAAA,cACnB,QAAQ,QAAQ;AAAA,cAChB,YAAY,QAAQ,KAAK,QAAQ,UAAU;AAAA,cAC3C,MAAM,QAAQ;AAAA,YAChB,CAAC;AACD,gBAAI,UAAU,MAAM;AAClB,kBAAI,OAAO,WAAW,SAAU,OAAM,IAAI,MAAM,wCAAwC,MAAM,IAAI,CAAC,sBAAsB;AACzH,kBAAI,OAAO,CAAC;AACZ,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,YAAY;AACjE,kBAAI,WAAW,QAAQ,QAAQ,MAAM,YAAY,wBAAwB;AACzE,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,YAAY;AACjE,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,aAAa;AAClE,kBAAI,SAAS,QAAQ,QAAQ,MAAM,UAAU,YAAY;AACzD,kBAAI,SAAS,QAAQ,QAAQ,MAAM,UAAU,WAAW;AACxD,kBAAI,WAAW,QAAQ,QAAQ,MAAM,YAAY,WAAW;AAC5D,kBAAI,aAAa,QAAQ,QAAQ,MAAM,cAAc,oBAAoB;AACzE,kBAAI,YAAY,QAAQ,QAAQ,MAAM,aAAa,oBAAoB;AACvE,mCAAqB,QAAQ,MAAM,oCAAoC,MAAM,IAAI,CAAC,EAAE;AACpF,uBAAS,KAAK;AACd,kBAAI,cAAc,KAAM,UAAS,aAAa;AAC9C,kBAAI,oBAAoB,WAAY,UAAS,WAAW;AAAA,uBAC/C,YAAY,KAAM,UAAS,WAAW,WAAW,QAAQ;AAClE,kBAAI,cAAc,KAAM,UAAS,aAAa;AAC9C,kBAAI,cAAc,KAAM,UAAS,aAAa,QAAQ,MAAM,UAAU;AACtE,kBAAI,UAAU,KAAM,UAAS,SAAS;AACtC,kBAAI,UAAU,KAAM,UAAS,SAAS,iBAAiB,QAAQ,UAAU,SAAS,MAAM,MAAM;AAC9F,kBAAI,YAAY,KAAM,UAAS,WAAW,iBAAiB,UAAU,YAAY,SAAS,MAAM,MAAM;AACtG,kBAAI,cAAc,KAAM,UAAS,aAAa,oBAAoB,YAAY,YAAY;AAC1F,kBAAI,aAAa,KAAM,UAAS,YAAY,oBAAoB,WAAW,WAAW;AACtF;AAAA,YACF;AAAA,UACF,SAASA,IAAG;AACV,uBAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,sBAAsBA,IAAG,UAAU,SAAS,QAAQ,KAAK,GAAG,IAAI,CAAC,EAAE;AAClG;AAAA,UACF;AAAA,QACF;AACA,qBAAa,IAAI,QAAQ;AAAA,MAC3B;AACA,UAAI,oBAAoB,CAAC,QAAQ,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,UAAI,eAAe,SAAS,GAAG;AAC7B,4BAAoB,CAAC,QAAQ,SAAS;AACpC,WAAC,YAAY;AACX,kBAAM,cAAc,CAAC;AACrB,kBAAM,gBAAgB,CAAC;AACvB,uBAAW,EAAE,MAAM,UAAU,KAAK,KAAK,gBAAgB;AACrD,kBAAI;AACJ,kBAAI;AACJ,kBAAI;AACF,sBAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,oBAAI,SAAS,MAAM;AACjB,sBAAI,OAAO,UAAU,SAAU,OAAM,IAAI,MAAM,uCAAuC,MAAM,IAAI,CAAC,sBAAsB;AACvH,sBAAI,OAAO,CAAC;AACZ,sBAAI,SAAS,QAAQ,OAAO,MAAM,UAAU,WAAW;AACvD,sBAAI,WAAW,QAAQ,OAAO,MAAM,YAAY,WAAW;AAC3D,uCAAqB,OAAO,MAAM,mCAAmC,MAAM,IAAI,CAAC,EAAE;AAClF,sBAAI,UAAU,KAAM,aAAY,iBAAiB,QAAQ,UAAU,SAAS,MAAM,MAAM;AACxF,sBAAI,YAAY,KAAM,eAAc,iBAAiB,UAAU,YAAY,SAAS,MAAM,MAAM;AAAA,gBAClG;AAAA,cACF,SAASA,IAAG;AACV,4BAAY,CAAC,sBAAsBA,IAAG,UAAU,SAAS,QAAQ,KAAK,GAAG,IAAI,CAAC;AAAA,cAChF;AACA,kBAAI,WAAW;AACb,4BAAY,KAAK,GAAG,SAAS;AAC7B,oBAAI;AACF,yBAAO,OAAO,KAAK,GAAG,SAAS;AAAA,gBACjC,QAAQ;AAAA,gBACR;AAAA,cACF;AACA,kBAAI,aAAa;AACf,8BAAc,KAAK,GAAG,WAAW;AACjC,oBAAI;AACF,yBAAO,SAAS,KAAK,GAAG,WAAW;AAAA,gBACrC,QAAQ;AAAA,gBACR;AAAA,cACF;AAAA,YACF;AACA,iBAAK,aAAa,aAAa;AAAA,UACjC,GAAG;AAAA,QACL;AAAA,MACF;AACA,UAAI,6BAA6B,MAAM;AACrC,mBAAW,MAAM,oBAAoB;AACnC,qBAAW,MAAM,GAAG,GAAG,CAAC;AAAA,QAC1B;AAAA,MACF;AACA,oBAAc;AACd,aAAO;AAAA,QACL,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,aAAS,oBAAoB;AAC3B,YAAM,MAAsB,oBAAI,IAAI;AACpC,UAAI,SAAS;AACb,aAAO;AAAA,QACL,QAAQ;AACN,cAAI,MAAM;AAAA,QACZ;AAAA,QACA,KAAK,IAAI;AACP,iBAAO,IAAI,IAAI,EAAE;AAAA,QACnB;AAAA,QACA,MAAM,OAAO;AACX,cAAI,UAAU,OAAQ,QAAO;AAC7B,gBAAM,KAAK;AACX,cAAI,IAAI,IAAI,KAAK;AACjB,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,aAAS,gBAAgBA,IAAG,UAAU,OAAO;AAC3C,UAAI;AACJ,UAAI,QAAQ;AACZ,aAAO,MAAM;AACX,YAAI,MAAO,QAAO;AAClB,gBAAQ;AACR,YAAI;AACF,cAAI,SAASA,GAAE,QAAQ,IAAI,MAAM,IAAI;AACrC,gBAAM,OAAO,GAAG,CAAC;AACjB,cAAI,WAAW,kBAAkB,UAAU,OAAO,KAAK;AACvD,cAAI,UAAU;AACZ,mBAAO,EAAE,MAAMA,GAAE,SAAS,SAAS;AACnC,mBAAO;AAAA,UACT;AAAA,QACF,QAAQ;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,aAAS,sBAAsBA,IAAG,UAAU,OAAO,MAAM,YAAY;AACnE,UAAI,OAAO;AACX,UAAI,WAAW;AACf,UAAI;AACF,gBAAQA,MAAKA,GAAE,WAAWA,MAAK;AAAA,MACjC,QAAQ;AAAA,MACR;AACA,UAAI;AACF,mBAAW,kBAAkB,WAAWA,GAAE,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAAA,MACvE,QAAQ;AAAA,MACR;AACA,aAAO,EAAE,IAAI,IAAI,YAAY,MAAM,UAAU,OAAO,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,QAAQ,QAAQ,MAAM,MAAMA,EAAC,IAAI,GAAG;AAAA,IAC9G;AACA,aAAS,kBAAkB,UAAU,OAAO,OAAO;AACjD,UAAIG,MAAK;AACT,UAAI,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAAE,WAAWA,GAAE,KAAK,MAAM,CAAC,EAAE,WAAWA,GAAE,GAAG;AAChF,iBAASN,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,cAAI,OAAO,MAAMA,EAAC;AAClB,cAAI,CAAC,KAAK,WAAWM,GAAE,EAAG;AAC1B,iBAAO,KAAK,MAAMA,IAAG,MAAM;AAC3B,iBAAO,MAAM;AACX,gBAAI,QAAQ,iCAAiC,KAAK,IAAI;AACtD,gBAAI,OAAO;AACT,qBAAO,MAAM,CAAC;AACd;AAAA,YACF;AACA,oBAAQ,2CAA2C,KAAK,IAAI;AAC5D,gBAAI,OAAO;AACT,qBAAO,MAAM,CAAC;AACd;AAAA,YACF;AACA,oBAAQ,sBAAsB,KAAK,IAAI;AACvC,gBAAI,OAAO;AACT,kBAAI;AACJ,kBAAI;AACF,2BAAW,SAAS,aAAa,MAAM,CAAC,GAAG,MAAM;AAAA,cACnD,QAAQ;AACN;AAAA,cACF;AACA,kBAAI,WAAW,SAAS,MAAM,0BAA0B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC5E,kBAAI,SAAS,CAAC,MAAM,CAAC,IAAI;AACzB,kBAAI,SAAS,SAAS,MAAM,QAAQ,SAAS,MAAM,MAAM,MAAM,QAAQ,MAAM,SAAS;AACtF,qBAAO;AAAA,gBACL,MAAM,MAAM,CAAC;AAAA,gBACb,WAAW;AAAA,gBACX,MAAM,CAAC,MAAM,CAAC;AAAA,gBACd,QAAQ,WAAW,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE;AAAA,gBAC9C,QAAQ,WAAW,SAAS,MAAM,QAAQ,SAAS,MAAM,CAAC,EAAE;AAAA,gBAC5D,UAAU,WAAW,OAAO,MAAM,MAAM,CAAC,EAAE,KAAK,IAAI;AAAA,gBACpD,YAAY;AAAA,cACd;AAAA,YACF;AACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,MAAM,QAAQ,UAAU;AACnD,UAAI,QAAQ;AACZ,cAAQ,OAAO,SAAS,IAAI,KAAK,SAAS,OAAO,MAAM,SAAS,OAAO,SAAS,IAAI,KAAK,GAAG,MAAM,OAAO,MAAM,GAAG,QAAQ,CAAC,EAAE,IAAI,CAACH,IAAGH,OAAM;AACzI,YAAIA,OAAM,MAAO,QAAO;AACxB,YAAI,CAACG,GAAE,SAAU,QAAO;AAAA,SACnBA,GAAE,IAAI;AACX,YAAI,EAAE,MAAM,MAAM,OAAO,IAAIA,GAAE;AAC/B,YAAI,aAAaA,GAAE,aAAa,YAAYA,GAAE,UAAU,OAAO;AAC/D,eAAO;AAAA,EACT,IAAI,IAAI,IAAI,IAAI,MAAM,YAAY,UAAU,GAAGA,GAAE,IAAI;AAAA,MACrD,CAAC,EAAE,KAAK,EAAE;AACV,UAAI,QAAQ,IAAI,MAAM,IAAI;AAC1B,iBAAW,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,UAAU,MAAM,GAAG,CAAC,YAAY,QAAQ,CAAC,GAAG;AACvE,eAAO,eAAe,OAAO,KAAK;AAAA,UAChC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,KAAK,MAAM;AAAA,UACX,KAAK,CAAC,WAAW,OAAO,eAAe,OAAO,KAAK;AAAA,YACjD,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,OAAO;AAAA,UACT,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AACA,aAAS,yBAAyB,UAAU,OAAO;AACjD,iBAAW,WAAW,UAAU;AAC9B,gBAAQ,SAAS,MAAM,KAAK,QAAQ,MAAM;AAAA,MAC5C;AACA,aAAO;AAAA,IACT;AACA,aAAS,iBAAiB,UAAU,OAAO,eAAe;AACxD,UAAI,YAAY,KAAM,QAAO;AAC7B,UAAI,OAAO,CAAC;AACZ,UAAI,OAAO,QAAQ,UAAU,MAAM,QAAQ,YAAY;AACvD,UAAI,YAAY,QAAQ,UAAU,MAAM,aAAa,YAAY;AACjE,UAAI,OAAO,QAAQ,UAAU,MAAM,QAAQ,aAAa;AACxD,UAAI,SAAS,QAAQ,UAAU,MAAM,UAAU,aAAa;AAC5D,UAAI,SAAS,QAAQ,UAAU,MAAM,UAAU,aAAa;AAC5D,UAAI,WAAW,QAAQ,UAAU,MAAM,YAAY,YAAY;AAC/D,UAAI,aAAa,QAAQ,UAAU,MAAM,cAAc,YAAY;AACnE,2BAAqB,UAAU,MAAM,KAAK;AAC1C,UAAI,UAAU;AACZ,cAAM,gBAAgB,SAAS;AAAA,UAC7B;AAAA,WACC,UAAU,SAAS,IAAI,SAAS,MAAM,UAAU,SAAS,IAAI,SAAS,MAAM,iBAAiB,gBAAgB,IAAI,gBAAgB;AAAA,QACpI;AACA,YAAI,CAAC,gBAAgB,KAAK,aAAa,KAAK,CAAC,KAAK,KAAK,QAAQ,GAAG;AAChE,qBAAW;AAAA,QACb;AAAA,MACF;AACA,aAAO;AAAA,QACL,MAAM,QAAQ;AAAA,QACd,WAAW,aAAa;AAAA,QACxB,MAAM,QAAQ;AAAA,QACd,QAAQ,UAAU;AAAA,QAClB,QAAQ,UAAU;AAAA,QAClB,UAAU,YAAY;AAAA,QACtB,YAAY,cAAc;AAAA,MAC5B;AAAA,IACF;AACA,aAAS,iBAAiB,UAAU,UAAU,OAAO,oBAAoB,eAAe;AACtF,UAAI,gBAAgB,CAAC;AACrB,UAAI,QAAQ;AACZ,iBAAW,WAAW,UAAU;AAC9B,YAAI,OAAO,CAAC;AACZ,YAAI,KAAK,QAAQ,SAAS,MAAM,MAAM,YAAY;AAClD,YAAI,aAAa,QAAQ,SAAS,MAAM,cAAc,YAAY;AAClE,YAAI,OAAO,QAAQ,SAAS,MAAM,QAAQ,YAAY;AACtD,YAAI,WAAW,QAAQ,SAAS,MAAM,YAAY,kBAAkB;AACpE,YAAI,QAAQ,QAAQ,SAAS,MAAM,SAAS,WAAW;AACvD,YAAI,SAAS,QAAQ,SAAS,MAAM,UAAU,aAAa;AAC3D,YAAI,QAAQ,cAAc,KAAK,QAAQ,QAAQ;AAC/C,6BAAqB,SAAS,MAAM,KAAK;AACzC,YAAI,aAAa,CAAC;AAClB,YAAI,OAAO;AACT,qBAAW,QAAQ,OAAO;AACxB,gBAAI,WAAW,CAAC;AAChB,gBAAI,WAAW,QAAQ,MAAM,UAAU,QAAQ,YAAY;AAC3D,gBAAI,eAAe,QAAQ,MAAM,UAAU,YAAY,kBAAkB;AACzE,iCAAqB,MAAM,UAAU,KAAK;AAC1C,uBAAW,KAAK;AAAA,cACd,MAAM,YAAY;AAAA,cAClB,UAAU,iBAAiB,cAAc,OAAO,aAAa;AAAA,YAC/D,CAAC;AAAA,UACH;AAAA,QACF;AACA,sBAAc,KAAK;AAAA,UACjB,IAAI,MAAM;AAAA,UACV,YAAY,cAAc;AAAA,UAC1B,MAAM,QAAQ;AAAA,UACd,UAAU,iBAAiB,UAAU,OAAO,aAAa;AAAA,UACzD,OAAO;AAAA,UACP,QAAQ,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,QACxC,CAAC;AACD;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,QAAQ,UAAU;AAC7C,YAAM,SAAS,CAAC;AAChB,iBAAW,SAAS,QAAQ;AAC1B,YAAI,OAAO,UAAU,SAAU,OAAM,IAAI,MAAM,GAAG,MAAM,QAAQ,CAAC,8BAA8B;AAC/F,eAAO,KAAK,KAAK;AAAA,MACnB;AACA,aAAO;AAAA,IACT;AACA,aAAS,kBAAkB,KAAK,UAAU;AACxC,YAAM,SAAyB,uBAAO,OAAO,IAAI;AACjD,iBAAW,OAAO,KAAK;AACrB,cAAM,QAAQ,IAAI,GAAG;AACrB,YAAI,OAAO,UAAU,SAAU,OAAM,IAAI,MAAM,OAAO,MAAM,GAAG,CAAC,cAAc,MAAM,QAAQ,CAAC,mBAAmB;AAChH,eAAO,GAAG,IAAI;AAAA,MAChB;AACA,aAAO;AAAA,IACT;AACA,aAAS,mBAAmB,EAAE,MAAM,OAAO,UAAU,KAAK,GAAG;AAC3D,UAAI,OAAO;AACX,aAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,IAAI,OAAO;AACT,gBAAM,SAAS,KAAK;AACpB,cAAI,SAAS,QAAQ,WAAW,UAAU;AACxC,uBAAW;AACX,mBAAO,WAAW,MAAM;AAAA,UAC1B;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,aAAS,mBAAmB,QAAQ;AAClC,UAAI,SAAS,OAAO;AACpB,UAAI,OAAO,MAAO,UAAS,KAAK,OAAO,KAAK,IAAI,MAAM;AACtD,aAAO;AAAA,IACT;AAGA,QAAI,KAAK,UAAQ,IAAI;AACrB,QAAI,KAAK,UAAQ,IAAI;AACrB,QAAI,OAAO,UAAQ,MAAM;AACzB,QAAI,sBAAsB,QAAQ,IAAI,uBAAuB;AAC7D,QAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC5C,QAAI,sBAAsB;AAC1B,QAAI,oBAAoB;AACxB,QAAI,uBAAuB;AAAA,MACzB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,IAClB;AACA,QAAI,wBAAwB;AAAA,MAC1B,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,IAClB;AACA,QAAI,mCAAmC;AAAA,MACrC,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,wBAAwB;AAAA,IAC1B;AACA,aAAS,kCAAkC;AACzC,UAAI;AACJ,UAAI;AACJ,UAAI,SAAS;AACb,UAAI,cAAc,GAAG,QAAQ,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;AACrE,UAAI,eAAe,sBAAsB;AACvC,cAAM,qBAAqB,WAAW;AACtC,kBAAU;AAAA,MACZ,WAAW,eAAe,uBAAuB;AAC/C,cAAM,sBAAsB,WAAW;AACvC,kBAAU;AAAA,MACZ,WAAW,eAAe,kCAAkC;AAC1D,cAAM,iCAAiC,WAAW;AAClD,kBAAU;AACV,iBAAS;AAAA,MACX,OAAO;AACL,cAAM,IAAI,MAAM,yBAAyB,WAAW,EAAE;AAAA,MACxD;AACA,aAAO,EAAE,KAAK,SAAS,OAAO;AAAA,IAChC;AACA,aAAS,0BAA0B;AACjC,YAAM,YAAY,UAAQ,QAAQ,SAAS;AAC3C,YAAM,uBAAuB,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,SAAS,CAAC,CAAC;AAC/E,UAAI,KAAK,SAAS,oBAAoB,MAAM,gBAAgB;AAC1D,mBAAW,WAAW,uBAAuB;AAC3C,cAAI;AACF,kBAAM,MAAM,sBAAsB,OAAO;AACzC,gBAAI,GAAG,WAAW,KAAK,KAAK,sBAAsB,GAAG,CAAC,EAAG,QAAO;AAAA,UAClE,QAAQ;AAAA,UACR;AAAA,QACF;AACA,mBAAW,cAAc,sBAAsB;AAC7C,cAAI;AACF,kBAAM,MAAM,qBAAqB,UAAU;AAC3C,gBAAI,GAAG,WAAW,KAAK,KAAK,sBAAsB,GAAG,CAAC,EAAG,QAAO;AAAA,UAClE,QAAQ;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,aAAS,kBAAkB,KAAK,SAAS;AACvC,YAAM,gBAAgB,KAAK,QAAQ,UAAQ,QAAQ,SAAS,CAAC;AAC7D,aAAO,KAAK,KAAK,eAAe,cAAc,IAAI,QAAQ,KAAK,GAAG,CAAC,IAAI,KAAK,SAAS,OAAO,CAAC,EAAE;AAAA,IACjG;AACA,aAAS,kBAAkB;AACzB,UAAI,kBAAkB,mBAAmB,GAAG;AAC1C,YAAI,CAAC,GAAG,WAAW,mBAAmB,GAAG;AACvC,kBAAQ,KAAK,6DAA6D,mBAAmB,EAAE;AAAA,QACjG,OAAO;AACL,iBAAO,EAAE,SAAS,qBAAqB,QAAQ,MAAM;AAAA,QACvD;AAAA,MACF;AACA,YAAM,EAAE,KAAK,SAAS,OAAO,IAAI,gCAAgC;AACjE,UAAI;AACJ,UAAI;AACF,kBAAU,UAAQ,QAAQ,GAAG,GAAG,IAAI,OAAO,EAAE;AAAA,MAC/C,SAASA,IAAG;AACV,kBAAU,kBAAkB,KAAK,OAAO;AACxC,YAAI,CAAC,GAAG,WAAW,OAAO,GAAG;AAC3B,cAAI;AACF,sBAAQ,QAAQ,GAAG;AAAA,UACrB,QAAQ;AACN,kBAAM,WAAW,wBAAwB;AACzC,gBAAI,UAAU;AACZ,kBAAI,cAAc;AAAA,oBACR,QAAQ;AAAA,aACf,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBN,kBAAI,QAAQ,qBAAqB,aAAa,uBAAuB,QAAQ,uBAAuB,aAAa,mBAAmB;AAClI,8BAAc;AAAA,oBACN,QAAQ;AAAA,aACf,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAiBN;AACA,oBAAM,IAAI,MAAM;AAAA;AAAA;AAAA;AAAA,EAIxB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,CAKZ;AAAA,YACO;AACA,kBAAM,IAAI,MAAM,gBAAgB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKhB;AAAA,UACrB;AACA,gBAAMA;AAAA,QACR;AAAA,MACF;AACA,UAAI,UAAU,KAAK,OAAO,GAAG;AAC3B,YAAI;AACJ,YAAI;AACF,mBAAS,UAAQ,QAAQ;AAAA,QAC3B,SAASA,IAAG;AAAA,QACZ;AACA,YAAI,QAAQ;AACV,gBAAM,OAAO,OAAO,sBAAsB,OAAO,QAAQ,EAAE;AAC3D,gBAAM,gBAAgB,KAAK;AAAA,YACzB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,IAAI,QAAQ,KAAK,GAAG,CAAC,IAAI,QAAQ,IAAI,KAAK,SAAS,OAAO,CAAC;AAAA,UACvE;AACA,cAAI,CAAC,GAAG,WAAW,aAAa,GAAG;AACjC,eAAG,UAAU,KAAK,QAAQ,aAAa,GAAG,EAAE,WAAW,KAAK,CAAC;AAC7D,eAAG,aAAa,SAAS,aAAa;AACtC,eAAG,UAAU,eAAe,GAAG;AAAA,UACjC;AACA,iBAAO,EAAE,SAAS,eAAe,OAAO;AAAA,QAC1C;AAAA,MACF;AACA,aAAO,EAAE,SAAS,OAAO;AAAA,IAC3B;AAGA,QAAI,gBAAgB,UAAQ,eAAe;AAC3C,QAAI,SAAS,UAAQ,QAAQ;AAC7B,QAAI,QAAQ,UAAQ,MAAM;AAC1B,QAAI,MAAM,UAAQ,IAAI;AACtB,QAAI,MAAM,UAAQ,IAAI;AACtB,QAAI,MAAM,UAAQ,KAAK;AACvB,QAAI;AACJ,QAAI,QAAQ,IAAI,2BAA2B,KAAK;AAC9C,UAAI;AACF,yBAAiB,UAAQ,gBAAgB;AAAA,MAC3C,QAAQ;AAAA,MACR;AACA,UAAI,CAAC,OAAO,KAAK,IAAI,QAAQ,SAAS,KAAK,MAAM,GAAG;AACpD;AAAA;AAAA,QAEE,CAAC,QAAQ,MAAM,CAAC,UAAU,MAAM,CAAC,QAAQ,MAAM,CAAC,UAAU,MAAM,CAAC,QAAQ;AAAA,QACzE;AACA,yBAAiB;AAAA,MACnB;AAAA,IACF;AACA,QAAI;AACJ,QAAI,2BAA2B,KAAK,kBAAkB,OAAO,SAAS,eAAe,eAAe,OAAO,SAAS,GAAG,oBAAoB;AAC3I,QAAI,wBAAwB,MAAM;AAChC,WAAK,CAAC,uBAAuB,WAAW,MAAM,SAAS,UAAU,MAAM,aAAa,MAAM,SAAS,SAAS,MAAM,QAAQ;AACxH,cAAM,IAAI;AAAA,UACR;AAAA;AAAA,+EAEyE,UAAU;AAAA,QACrF;AAAA,MACF;AACA,UAAI,OAAO;AACT,eAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW,MAAM,OAAO,SAAS,CAAC,CAAC;AAAA,MACjE,OAAO;AACL,cAAM,EAAE,SAAS,OAAO,IAAI,gBAAgB;AAC5C,YAAI,QAAQ;AACV,iBAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAA,QAC3B,OAAO;AACL,iBAAO,CAAC,SAAS,CAAC,CAAC;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AACA,QAAI,QAAQ,MAAM,IAAI,OAAO,CAAC;AAC9B,QAAI,SAAS;AAAA,MACX,SAAS,UAAU,UAAU;AAC3B,YAAI;AACF,cAAI,WAAW,IAAI,aAAa,UAAU,MAAM;AAChD,cAAI;AACF,gBAAI,WAAW,QAAQ;AAAA,UACzB,QAAQ;AAAA,UACR;AACA,mBAAS,MAAM,QAAQ;AAAA,QACzB,SAAS,KAAK;AACZ,mBAAS,KAAK,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,MACA,UAAU,UAAU,UAAU;AAC5B,YAAI;AACF,cAAI,WAAW,eAAe;AAC9B,cAAI,cAAc,UAAU,QAAQ;AACpC,mBAAS,QAAQ;AAAA,QACnB,QAAQ;AACN,mBAAS,IAAI;AAAA,QACf;AAAA,MACF;AAAA,IACF;AACA,QAAI,UAAU;AAAA,MACZ,SAAS,UAAU,UAAU;AAC3B,YAAI;AACF,cAAI,SAAS,UAAU,QAAQ,CAAC,KAAK,aAAa;AAChD,gBAAI;AACF,kBAAI,OAAO,UAAU,MAAM,SAAS,KAAK,QAAQ,CAAC;AAAA,YACpD,QAAQ;AACN,uBAAS,KAAK,QAAQ;AAAA,YACxB;AAAA,UACF,CAAC;AAAA,QACH,SAAS,KAAK;AACZ,mBAAS,KAAK,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,MACA,UAAU,UAAU,UAAU;AAC5B,YAAI;AACF,cAAI,WAAW,eAAe;AAC9B,cAAI,UAAU,UAAU,UAAU,CAAC,QAAQ,QAAQ,OAAO,SAAS,IAAI,IAAI,SAAS,QAAQ,CAAC;AAAA,QAC/F,QAAQ;AACN,mBAAS,IAAI;AAAA,QACf;AAAA,MACF;AAAA,IACF;AACA,QAAI,UAAU;AACd,QAAI,QAAQ,CAAC,YAAY,uBAAuB,EAAE,MAAM,OAAO;AAC/D,QAAI,UAAU,CAAC,iBAAiB,uBAAuB,EAAE,QAAQ,YAAY;AAC7E,QAAI,YAAY,CAAC,OAAO,YAAY,uBAAuB,EAAE,UAAU,OAAO,OAAO;AACrF,QAAI,iBAAiB,CAAC,UAAU,YAAY,uBAAuB,EAAE,eAAe,UAAU,OAAO;AACrG,QAAI,kBAAkB,CAAC,UAAU,YAAY,uBAAuB,EAAE,gBAAgB,UAAU,OAAO;AACvG,QAAI,YAAY,CAAC,YAAY;AAC3B,UAAI,kBAAkB,CAAC,wBAAwB;AAC7C,YAAI,CAAC,oBAAqB,uBAAsB,yBAAyB,cAAc;AACvF,eAAO,oBAAoB,UAAU,OAAO;AAAA,MAC9C;AACA,UAAI;AACJ,qBAAe,CAAC,YAAY,QAAQ,eAAe;AAAA,QACjD,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA,UAAU,CAAC,KAAK,QAAQ;AACtB,cAAI,IAAK,OAAM;AACf,mBAAS;AAAA,QACX;AAAA,MACF,CAAC,CAAC;AACF,aAAO;AAAA,IACT;AACA,QAAI,gBAAgB,CAAC,OAAO,YAAY;AACtC,UAAI,kBAAkB,CAAC,wBAAwB;AAC7C,YAAI,CAAC,oBAAqB,uBAAsB,yBAAyB,cAAc;AACvF,eAAO,oBAAoB,cAAc,OAAO,OAAO;AAAA,MACzD;AACA,UAAI;AACJ,qBAAe,CAAC,YAAY,QAAQ,UAAU;AAAA,QAC5C,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA,SAAS,WAAW,CAAC;AAAA,QACrB,OAAO,MAAM;AAAA,QACb,IAAI;AAAA,QACJ,UAAU,CAAC,KAAK,QAAQ;AACtB,cAAI,IAAK,OAAM;AACf,mBAAS;AAAA,QACX;AAAA,MACF,CAAC,CAAC;AACF,aAAO;AAAA,IACT;AACA,QAAI,qBAAqB,CAAC,UAAU,YAAY;AAC9C,UAAI,kBAAkB,CAAC,wBAAwB;AAC7C,YAAI,CAAC,oBAAqB,uBAAsB,yBAAyB,cAAc;AACvF,eAAO,oBAAoB,mBAAmB,UAAU,OAAO;AAAA,MACjE;AACA,UAAI;AACJ,qBAAe,CAAC,YAAY,QAAQ,eAAe;AAAA,QACjD,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,UAAU,CAAC,KAAK,QAAQ;AACtB,cAAI,IAAK,OAAM;AACf,mBAAS;AAAA,QACX;AAAA,MACF,CAAC,CAAC;AACF,aAAO;AAAA,IACT;AACA,QAAI,sBAAsB,CAAC,UAAU,YAAY;AAC/C,UAAI,kBAAkB,CAAC,wBAAwB;AAC7C,YAAI,CAAC,oBAAqB,uBAAsB,yBAAyB,cAAc;AACvF,eAAO,oBAAoB,oBAAoB,UAAU,OAAO;AAAA,MAClE;AACA,UAAI;AACJ,qBAAe,CAAC,YAAY,QAAQ,gBAAgB;AAAA,QAClD,UAAU;AAAA,QACV,MAAM;AAAA,QACN,UAAU,OAAO,aAAa,WAAW,WAAW,KAAK,UAAU,QAAQ;AAAA,QAC3E;AAAA,QACA,UAAU,CAAC,KAAK,QAAQ;AACtB,cAAI,IAAK,OAAM;AACf,mBAAS;AAAA,QACX;AAAA,MACF,CAAC,CAAC;AACF,aAAO;AAAA,IACT;AACA,QAAI,OAAO,MAAM;AACf,UAAI,YAAa,aAAY;AAC7B,UAAI,oBAAqB,qBAAoB,KAAK;AAClD,aAAO,QAAQ,QAAQ;AAAA,IACzB;AACA,QAAI,sBAAsB;AAC1B,QAAI,aAAa,CAAC,YAAY;AAC5B,gBAAU,0BAA0B,WAAW,CAAC,CAAC;AACjD,UAAI,QAAQ,QAAS,OAAM,IAAI,MAAM,gDAAgD;AACrF,UAAI,QAAQ,WAAY,OAAM,IAAI,MAAM,mDAAmD;AAC3F,UAAI,QAAQ,OAAQ,OAAM,IAAI,MAAM,+CAA+C;AACnF,UAAI,oBAAqB,OAAM,IAAI,MAAM,yCAAyC;AAClF,6BAAuB;AACvB,4BAAsB;AACtB,aAAO,QAAQ,QAAQ;AAAA,IACzB;AACA,QAAI,YAAY,QAAQ,IAAI;AAC5B,QAAI;AACJ,QAAI;AACJ,QAAI,yBAAyB,MAAM;AACjC,UAAI,iBAAkB,QAAO;AAC7B,UAAI,CAAC,SAAS,IAAI,IAAI,sBAAsB;AAC5C,UAAI,QAAQ,cAAc,MAAM,SAAS,KAAK,OAAO,aAAa,QAAQ,IAAI,QAAQ,GAAG;AAAA,QACvF,aAAa;AAAA,QACb,OAAO,CAAC,QAAQ,QAAQ,SAAS;AAAA,QACjC,KAAK;AAAA,MACP,CAAC;AACD,UAAI,EAAE,gBAAgB,YAAY,QAAQ,IAAI,cAAc;AAAA,QAC1D,aAAa,OAAO;AAClB,gBAAM,MAAM,MAAM,OAAO,CAAC,QAAQ;AAChC,gBAAI,IAAK,YAAW,GAAG;AAAA,UACzB,CAAC;AAAA,QACH;AAAA,QACA,cAAc,IAAI;AAAA,QAClB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AACD,YAAM,MAAM,GAAG,SAAS,UAAU;AAClC,YAAM,GAAG,SAAS,UAAU;AAC5B,YAAM,QAAQ,MAAM;AACpB,YAAM,SAAS,MAAM;AACrB,aAAO,GAAG,QAAQ,cAAc;AAChC,aAAO,GAAG,OAAO,UAAU;AAC3B,oBAAc,MAAM;AAClB,cAAM,QAAQ;AACd,eAAO,QAAQ;AACf,cAAM,KAAK;AACX,8BAAsB;AACtB,2BAAmB;AACnB,sBAAc;AAAA,MAChB;AACA,UAAI,WAAW;AACf,YAAM,MAAM;AACZ,UAAI,MAAM,OAAO;AACf,cAAM,MAAM;AAAA,MACd;AACA,UAAI,OAAO,OAAO;AAChB,eAAO,MAAM;AAAA,MACf;AACA,YAAM,OAAO;AAAA,QACX,MAAM;AACJ,cAAI,EAAE,aAAa,EAAG,OAAM,IAAI;AAAA,QAClC;AAAA,QACA,QAAQ;AACN,cAAI,EAAE,aAAa,EAAG,OAAM,MAAM;AAAA,QACpC;AAAA,MACF;AACA,yBAAmB;AAAA,QACjB,OAAO,CAAC,YAAY,IAAI,QAAQ,CAACC,UAAS,WAAW;AACnD,kBAAQ,eAAe;AAAA,YACrB,UAAU;AAAA,YACV;AAAA,YACA;AAAA,YACA,OAAO,MAAM;AAAA,YACb;AAAA,YACA,UAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,GAAG,IAAIA,SAAQ,GAAG;AAAA,UACzD,CAAC;AAAA,QACH,CAAC;AAAA,QACD,SAAS,CAAC,YAAY,IAAI,QAAQ,CAACA,UAAS,WAAW,QAAQ,eAAe;AAAA,UAC5E,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA,OAAO,MAAM;AAAA,UACb;AAAA,UACA,UAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,GAAG,IAAIA,SAAQ,GAAG;AAAA,QACzD,CAAC,CAAC;AAAA,QACF,WAAW,CAAC,OAAO,YAAY,IAAI,QAAQ,CAACA,UAAS,WAAW,QAAQ,UAAU;AAAA,UAChF,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA,SAAS,WAAW,CAAC;AAAA,UACrB,OAAO,MAAM;AAAA,UACb,IAAI;AAAA,UACJ,UAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,GAAG,IAAIA,SAAQ,GAAG;AAAA,QACzD,CAAC,CAAC;AAAA,QACF,gBAAgB,CAAC,UAAU,YAAY,IAAI,QAAQ,CAACA,UAAS,WAAW,QAAQ,eAAe;AAAA,UAC7F,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,GAAG,IAAIA,SAAQ,GAAG;AAAA,QACzD,CAAC,CAAC;AAAA,QACF,iBAAiB,CAAC,UAAU,YAAY,IAAI,QAAQ,CAACA,UAAS,WAAW,QAAQ,gBAAgB;AAAA,UAC/F,UAAU;AAAA,UACV;AAAA,UACA,UAAU,OAAO,aAAa,WAAW,WAAW,KAAK,UAAU,QAAQ;AAAA,UAC3E;AAAA,UACA,UAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,GAAG,IAAIA,SAAQ,GAAG;AAAA,QACzD,CAAC,CAAC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,CAAC,aAAa;AACjC,UAAI,CAAC,SAAS,IAAI,IAAI,sBAAsB;AAC5C,UAAI,QAAQ,IAAI,WAAW;AAC3B,UAAI,EAAE,gBAAgB,YAAY,QAAQ,IAAI,cAAc;AAAA,QAC1D,aAAa,OAAO;AAClB,cAAI,MAAM,WAAW,EAAG,OAAM,IAAI,MAAM,8BAA8B;AACtE,kBAAQ;AAAA,QACV;AAAA,QACA,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AACD,eAAS,OAAO;AAChB,UAAI,SAAS,cAAc,aAAa,SAAS,KAAK,OAAO,aAAa,QAAQ,EAAE,GAAG;AAAA,QACrF,KAAK;AAAA,QACL,aAAa;AAAA,QACb,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,QAKP,WAAW,CAAC,QAAQ,IAAI,sBAAsB,KAAK,OAAO;AAAA,MAC5D,CAAC;AACD,qBAAe,MAAM;AACrB,iBAAW,IAAI;AAAA,IACjB;AACA,QAAI,iBAAiB,MAAM;AACzB,aAAO,MAAM,KAAK,IAAI,OAAO,GAAG,WAAW,OAAO,YAAY,EAAE,EAAE,SAAS,KAAK,CAAC,EAAE;AAAA,IACrF;AACA,QAAI,sBAAsB;AAC1B,QAAI,2BAA2B,CAAC,oBAAoB;AAClD,UAAI,EAAE,OAAO,UAAU,OAAO,WAAW,IAAI,IAAI,gBAAgB,eAAe;AAChF,UAAI,SAAS,IAAI,gBAAgB,OAAO,YAAY;AAAA,QAClD,YAAY,EAAE,YAAY,WAAW,gBAAgB,SAAS;AAAA,QAC9D,cAAc,CAAC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAUzB,UAAU,CAAC;AAAA,MACb,CAAC;AACD,UAAI,SAAS;AACb,UAAI,iBAAiB,CAAC,SAAS;AAC7B,YAAI,QAAQ,IAAI,MAAM;AAAA,SACjB,IAAI,EAAE;AACX,YAAI,SAAS,CAAC,EAAE,IAAI,IAAI,YAAY,IAAI,MAAM,UAAU,MAAM,OAAO,CAAC,GAAG,QAAQ,OAAO,CAAC;AACzF,cAAM,SAAS;AACf,cAAM,WAAW,CAAC;AAClB,eAAO;AAAA,MACT;AACA,UAAI,2BAA2B,CAAC,YAAY;AAC1C,YAAI,CAAC,QAAS;AACd,YAAI,UAAU,QAAQ;AACtB,YAAI,WAAW,QAAQ,SAAS,EAAG,OAAM,eAAe,6CAA6C;AAAA,MACvG;AACA,UAAI,kBAAkB,CAAC,QAAQ,eAAe;AAC5C,iBAAS,OAAO,YAAY;AAC1B,iBAAO,GAAG,IAAI,WAAW,GAAG;AAAA,QAC9B;AAAA,MACF;AACA,UAAI,cAAc,CAAC,SAAS,SAAS;AACnC,YAAI,KAAK;AACT,YAAI,eAAe,IAAI,kBAAkB,CAAC;AAC1C,YAAI,mBAAmB,IAAI,WAAW,YAAY;AAClD,YAAI,MAAM,EAAE,cAAc,IAAI,SAAS,KAAK;AAC5C,eAAO,YAAY,GAAG;AACtB,YAAI,SAAS,QAAQ,KAAK,kBAAkB,GAAG,CAAC;AAChD,YAAI,WAAW,QAAQ,WAAW,YAAa,OAAM,IAAI,MAAM,4CAA4C,MAAM;AACjH,YAAI,EAAE,SAAS,EAAE,IAAI,KAAK,SAAAA,UAAS,QAAQ,WAAW,EAAE,IAAI,gBAAgB,qBAAqB,QAAQ;AACzG,YAAI,OAAO,IAAK,OAAM,IAAI,MAAM,+BAA+B,EAAE,eAAe,GAAG,EAAE;AACrF,YAAI,QAAQ;AACV,0BAAgB,QAAQ,UAAU;AAClC,gBAAM;AAAA,QACR;AACA,eAAOA;AAAA,MACT;AACA,aAAO,MAAM;AACb,aAAO;AAAA,QACL,UAAU,SAAS;AACjB,mCAAyB,OAAO;AAChC,iBAAO,YAAY,SAAS,CAAC,OAAO,CAAC;AAAA,QACvC;AAAA,QACA,cAAc,OAAO,SAAS;AAC5B,iBAAO,YAAY,aAAa,CAAC,OAAO,OAAO,CAAC;AAAA,QAClD;AAAA,QACA,mBAAmB,UAAU,SAAS;AACpC,iBAAO,YAAY,kBAAkB,CAAC,UAAU,OAAO,CAAC;AAAA,QAC1D;AAAA,QACA,oBAAoB,UAAU,SAAS;AACrC,iBAAO,YAAY,mBAAmB,CAAC,UAAU,OAAO,CAAC;AAAA,QAC3D;AAAA,QACA,OAAO;AACL,iBAAO,UAAU;AACjB,gCAAsB;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AACA,QAAI,yBAAyB,MAAM;AACjC,UAAI,aAAa,eAAe,WAAW;AAC3C,UAAI,aAAa,eAAe;AAChC,UAAI,oBAAoB,CAAC,WAAW;AAClC,YAAI,aAAa,CAAC;AAClB,YAAI,UAAU,OAAO,WAAW,UAAU;AACxC,mBAAS,OAAO,QAAQ;AACtB,uBAAW,GAAG,IAAI,OAAO,GAAG;AAAA,UAC9B;AAAA,QACF;AACA,eAAO;AAAA,MACT;AACA,UAAI;AACF,YAAI,UAAU,uBAAuB;AACrC,oBAAY,eAAe,WAAW;AACtC,mBAAW,GAAG,WAAW,CAAC,QAAQ;AAChC,WAAC,YAAY;AACX,gBAAI,EAAE,cAAc,IAAI,SAAS,KAAK,IAAI;AAC1C,gBAAI,mBAAmB,IAAI,WAAW,YAAY;AAClD,gBAAI;AACF,sBAAQ,SAAS;AAAA,gBACf,KAAK;AACH,6BAAW,YAAY,EAAE,IAAI,SAAS,MAAM,QAAQ,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;AACpE;AAAA,gBACF,KAAK;AACH,6BAAW,YAAY,EAAE,IAAI,SAAS,MAAM,QAAQ,UAAU,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;AACjF;AAAA,gBACF,KAAK;AACH,6BAAW,YAAY,EAAE,IAAI,SAAS,MAAM,QAAQ,eAAe,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;AACtF;AAAA,gBACF,KAAK;AACH,6BAAW,YAAY,EAAE,IAAI,SAAS,MAAM,QAAQ,gBAAgB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;AACvF;AAAA,gBACF;AACE,wBAAM,IAAI,MAAM,oBAAoB,OAAO,EAAE;AAAA,cACjD;AAAA,YACF,SAAS,QAAQ;AACf,yBAAW,YAAY,EAAE,IAAI,QAAQ,YAAY,kBAAkB,MAAM,EAAE,CAAC;AAAA,YAC9E;AACA,oBAAQ,IAAI,kBAAkB,GAAG,CAAC;AAClC,oBAAQ,OAAO,kBAAkB,GAAG,QAAQ;AAAA,UAC9C,GAAG;AAAA,QACL,CAAC;AAAA,MACH,SAAS,QAAQ;AACf,mBAAW,GAAG,WAAW,CAAC,QAAQ;AAChC,cAAI,EAAE,cAAc,GAAG,IAAI;AAC3B,cAAI,mBAAmB,IAAI,WAAW,YAAY;AAClD,qBAAW,YAAY,EAAE,IAAI,QAAQ,YAAY,kBAAkB,MAAM,EAAE,CAAC;AAC5E,kBAAQ,IAAI,kBAAkB,GAAG,CAAC;AAClC,kBAAQ,OAAO,kBAAkB,GAAG,QAAQ;AAAA,QAC9C,CAAC;AAAA,MACH;AAAA,IACF;AACA,QAAI,wBAAwB;AAC1B,6BAAuB;AAAA,IACzB;AACA,QAAI,eAAe;AAAA;AAAA;;;AClrEnB;AAAA;AAAA;AAAA,cAAAG;AAAA,EAAA;AAAA;AAAqV,SAAS,EAAEC,IAAEC,KAAE,KAAI;AAAC,MAAG,CAACC,GAAE,QAAOH,GAAE,KAAK,MAAI,EAAEC,EAAC,CAAC;AAAE,QAAMG,KAAEH,GAAE,SAAO,GAAEI,MAAGF,GAAE,YAAY,SAAOA,GAAE,eAAa,IAAEC,KAAED,GAAE,OAAO,OAAO;AAAW,EAAAE,KAAE,KAAGF,GAAE,OAAO,KAAK,KAAK,KAAKE,KAAE,KAAK,CAAC;AAAE,QAAMC,KAAEH,GAAE,GAAGC,KAAE,CAAC;AAAE,OAAIG,KAAE,IAAEC,IAAGP,IAAE,IAAI,YAAYE,GAAE,OAAO,QAAOG,IAAEF,EAAC,CAAC,GAAE,CAACD,GAAE,MAAM,EAAE,OAAM,OAAO,OAAO,IAAI,MAAM,eAAeD,EAAC,IAAID,GAAE,MAAM,GAAEE,GAAE,EAAE,CAAC,EAAE,MAAM;AAAA,CAC/pB,EAAE,MAAM,IAAIA,GAAE,EAAE,IAAEF,GAAE,YAAY;AAAA,GAC/BE,GAAE,EAAE,IAAE,CAAC,CAAC,EAAE,GAAE,EAAC,KAAIA,GAAE,EAAE,EAAC,CAAC;AAAE,QAAMM,KAAE,CAAC,GAAEC,KAAE,CAAC;AAAE,SAAKP,GAAE,GAAG,KAAG;AAAC,UAAMQ,KAAER,GAAE,GAAG,GAAES,KAAET,GAAE,GAAG,GAAEU,KAAEV,GAAE,GAAG,GAAEW,KAAEX,GAAE,GAAG,GAAEY,KAAEZ,GAAE,GAAG,GAAEa,KAAEb,GAAE,GAAG,GAAEc,KAAEd,GAAE,GAAG;AAAE,QAAIe;AAAE,IAAAf,GAAE,GAAG,MAAIe,KAAEC,GAAElB,GAAE,MAAMc,OAAI,KAAGJ,KAAE,IAAEA,IAAEI,OAAI,KAAGH,KAAE,IAAEA,EAAC,CAAC,IAAGH,GAAE,KAAK,EAAC,GAAES,IAAE,GAAEL,IAAE,GAAEF,IAAE,GAAEC,IAAE,IAAGI,IAAE,IAAGC,IAAE,GAAEF,IAAE,GAAED,GAAC,CAAC;AAAA,EAAC;AAAC,SAAKX,GAAE,GAAG,KAAG;AAAC,UAAMQ,KAAER,GAAE,GAAG,GAAES,KAAET,GAAE,GAAG,GAAEU,KAAEV,GAAE,IAAI,GAAEW,KAAEX,GAAE,IAAI,GAAEY,KAAEd,GAAE,MAAMU,IAAEC,EAAC,GAAEI,KAAED,GAAE,CAAC,GAAEE,KAAEJ,KAAE,IAAE,SAAOZ,GAAE,MAAMY,IAAEC,EAAC,GAAEI,KAAED,KAAEA,GAAE,CAAC,IAAE;AAAG,IAAAP,GAAE,KAAK,EAAC,GAAEC,IAAE,GAAEC,IAAE,IAAGC,IAAE,IAAGC,IAAE,GAAEE,OAAI,OAAKA,OAAI,MAAIG,GAAEJ,EAAC,IAAEA,IAAE,IAAGG,OAAI,OAAKA,OAAI,MAAIC,GAAEF,EAAC,IAAEA,GAAC,CAAC;AAAA,EAAC;AAAC,WAASE,GAAER,IAAE;AAAC,QAAG;AAAC,cAAO,GAAE,MAAMA,EAAC;AAAA,IAAC,QAAM;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO,EAAEQ,IAAE,GAAG,GAAE,CAACV,IAAEC,IAAE,CAAC,CAACP,GAAE,EAAE,GAAE,CAAC,CAACA,GAAE,GAAG,CAAC;AAAC;AAAc,SAASK,GAAEP,IAAEC,IAAE;AAAC,QAAME,KAAEH,GAAE;AAAO,MAAII,KAAE;AAAE,SAAKA,KAAED,MAAG;AAAC,UAAME,KAAEL,GAAE,WAAWI,EAAC;AAAE,IAAAH,GAAEG,IAAG,KAAG,MAAIC,OAAI,IAAEA,OAAI;AAAA,EAAC;AAAC;AAAU,SAAS,EAAEL,IAAEC,IAAE;AAAC,QAAME,KAAEH,GAAE;AAAO,MAAII,KAAE;AAAE,SAAKA,KAAED,KAAG,CAAAF,GAAEG,EAAC,IAAEJ,GAAE,WAAWI,IAAG;AAAC;AAFhsB,IAAIe,IAA4B,GAAmD,GAA6Mb,IAE8aJ,IAAQH,IAAqsXqB;AAF35Y;AAAA;AAAA;AAAA,IAAID,KAAE,OAAO;AAAe,IAAI,IAAE,CAACnB,IAAEC,OAAIkB,GAAEnB,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAQ,KAAC,SAASD,IAAE;AAAC,MAAAA,GAAEA,GAAE,SAAO,CAAC,IAAE,UAASA,GAAEA,GAAE,UAAQ,CAAC,IAAE,WAAUA,GAAEA,GAAE,aAAW,CAAC,IAAE,cAAaA,GAAEA,GAAE,oBAAkB,CAAC,IAAE,qBAAoBA,GAAEA,GAAE,qBAAmB,CAAC,IAAE;AAAA,IAAoB,GAAG,MAAI,IAAE,CAAC,EAAE;AAAE,IAAMM,KAAE,IAAI,WAAW,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAAI;AAEyK,MAAE,GAAE,OAAO;AAAuG,MAAEC,IAAE,GAAG;AAA4E,MAAE,GAAE,GAAG;AAAQ,IAAMR,KAAE,YAAY,SAASqB,KAAE,whXAAuhX,OAAO,SAAO,MAAI,OAAO,KAAKA,IAAE,QAAQ,IAAE,WAAW,KAAK,KAAKA,EAAC,GAAE,CAAApB,OAAGA,GAAE,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,YAAY,WAAW,EAAE,KAAK,CAAC,EAAC,SAAQA,GAAC,MAAI;AAAC,MAAAE,KAAEF;AAAA,IAAC,CAAC;AAAA;AAAA;;;ACFp0Y,SAAO,iBAAiB,IAAG,iBAAiB,UAAO;AAAkF,OAAO,QAAO;AAAc,OAAO,OAAM;AAAU,OAAOqB,QAAM;AAAY,OAAO,QAAO;AAAmjB,SAAS,GAAGC,IAAE;AAAC,QAAMC,KAAE,IAAI,WAAW,CAAC,GAAEC,KAAE,CAAC;AAAE,MAAIC,KAAE;AAAE,KAAE;AAAC,UAAMC,KAAE,GAAGJ,IAAEG,EAAC,GAAEE,KAAE,CAAC;AAAE,QAAIC,KAAE,MAAGC,KAAE;AAAE,IAAAN,GAAE,CAAC,IAAE;AAAE,aAAQO,KAAEL,IAAEK,KAAEJ,IAAEI,MAAI;AAAC,UAAIC;AAAE,MAAAD,KAAEE,GAAEV,IAAEQ,IAAEP,IAAE,CAAC;AAAE,YAAMU,KAAEV,GAAE,CAAC;AAAE,MAAAU,KAAEJ,OAAID,KAAE,QAAIC,KAAEI,IAAEC,IAAGZ,IAAEQ,IAAEJ,EAAC,KAAGI,KAAEE,GAAEV,IAAEQ,IAAEP,IAAE,CAAC,GAAEO,KAAEE,GAAEV,IAAEQ,IAAEP,IAAE,CAAC,GAAEO,KAAEE,GAAEV,IAAEQ,IAAEP,IAAE,CAAC,GAAEW,IAAGZ,IAAEQ,IAAEJ,EAAC,KAAGI,KAAEE,GAAEV,IAAEQ,IAAEP,IAAE,CAAC,GAAEQ,KAAE,CAACE,IAAEV,GAAE,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC,KAAGQ,KAAE,CAACE,IAAEV,GAAE,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC,KAAGQ,KAAE,CAACE,EAAC,GAAEN,GAAE,KAAKI,EAAC;AAAA,IAAC;AAAC,IAAAH,MAAG,GAAGD,EAAC,GAAEH,GAAE,KAAKG,EAAC,GAAEF,KAAEC,KAAE;AAAA,EAAC,SAAOD,MAAGH,GAAE;AAAQ,SAAOE;AAAC;AAAgB,SAAS,GAAGF,IAAEC,IAAE;AAAC,QAAMC,KAAEF,GAAE,QAAQ,KAAIC,EAAC;AAAE,SAAOC,OAAI,KAAGF,GAAE,SAAOE;AAAC;AAAiB,SAASQ,GAAEV,IAAEC,IAAEC,IAAEC,IAAE;AAAC,MAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,KAAE;AAAC,UAAME,KAAER,GAAE,WAAWC,IAAG;AAAE,IAAAK,KAAEO,IAAGL,EAAC,GAAEJ,OAAIE,KAAE,OAAKD,IAAEA,MAAG;AAAA,EAAC,SAAOC,KAAE;AAAI,QAAMC,KAAEH,KAAE;AAAE,SAAOA,QAAK,GAAEG,OAAIH,KAAE,cAAY,CAACA,KAAGF,GAAEC,EAAC,KAAGC,IAAEH;AAAC;AAAsB,SAASW,IAAGZ,IAAEC,IAAEC,IAAE;AAAC,SAAOD,MAAGC,KAAE,QAAGF,GAAE,WAAWC,EAAC,MAAIa;AAAE;AAAoB,SAAS,GAAGd,IAAE;AAAC,EAAAA,GAAE,KAAKe,GAAE;AAAC;AAAc,SAASA,IAAGf,IAAEC,IAAE;AAAC,SAAOD,GAAE,CAAC,IAAEC,GAAE,CAAC;AAAC;AAA0B,SAASe,IAAGhB,IAAE;AAAC,QAAMC,KAAE,IAAI,WAAW,CAAC,GAAEC,KAAE,OAAK,IAAGC,KAAED,KAAE,IAAGE,KAAE,IAAI,WAAWF,EAAC,GAAEG,KAAED,GAAE,SAAS,GAAED,EAAC;AAAE,MAAIG,KAAE,GAAEC,KAAE;AAAG,WAAQC,KAAE,GAAEA,KAAER,GAAE,QAAOQ,MAAI;AAAC,UAAMC,KAAET,GAAEQ,EAAC;AAAE,QAAGA,KAAE,MAAIF,OAAIJ,OAAIK,MAAGU,IAAG,OAAOb,EAAC,GAAEE,KAAE,IAAGF,GAAEE,IAAG,IAAE,KAAIG,GAAE,WAAS,GAAE;AAAC,MAAAR,GAAE,CAAC,IAAE;AAAE,eAAQU,KAAE,GAAEA,KAAEF,GAAE,QAAOE,MAAI;AAAC,cAAMO,KAAET,GAAEE,EAAC;AAAE,QAAAL,KAAEH,OAAII,MAAGU,IAAG,OAAOZ,EAAC,GAAED,GAAE,WAAW,GAAED,IAAEG,EAAC,GAAEA,MAAGH,KAAGQ,KAAE,MAAIP,GAAEE,IAAG,IAAEQ,MAAIR,KAAEa,GAAEf,IAAEE,IAAEL,IAAEiB,IAAE,CAAC,GAAEA,GAAE,WAAS,MAAIZ,KAAEa,GAAEf,IAAEE,IAAEL,IAAEiB,IAAE,CAAC,GAAEZ,KAAEa,GAAEf,IAAEE,IAAEL,IAAEiB,IAAE,CAAC,GAAEZ,KAAEa,GAAEf,IAAEE,IAAEL,IAAEiB,IAAE,CAAC,GAAEA,GAAE,WAAS,MAAIZ,KAAEa,GAAEf,IAAEE,IAAEL,IAAEiB,IAAE,CAAC;AAAA,MAAG;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOX,KAAEU,IAAG,OAAOb,GAAE,SAAS,GAAEE,EAAC,CAAC;AAAC;AAAgB,SAASa,GAAEnB,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAMC,KAAEF,GAAEC,EAAC;AAAE,MAAIE,KAAED,KAAEH,GAAEE,EAAC;AAAE,EAAAF,GAAEE,EAAC,IAAEC,IAAEC,KAAEA,KAAE,IAAE,CAACA,MAAG,IAAE,IAAEA,MAAG;AAAE,KAAE;AAAC,QAAIC,KAAED,KAAE;AAAG,IAAAA,QAAK,GAAEA,KAAE,MAAIC,MAAG,KAAIP,GAAEC,IAAG,IAAEmB,IAAGb,EAAC;AAAA,EAAC,SAAOD,KAAE;AAAG,SAAOL;AAAC;AAAolE,SAASoB,MAAI;AAAC,SAAO,OAAO,aAAW,OAAK,OAAO,WAAW,QAAM,aAAW,CAAArB,OAAG,WAAW,KAAK,SAAS,mBAAmBA,EAAC,CAAC,CAAC,IAAE,OAAO,UAAQ,aAAW,CAAAA,OAAG,OAAO,KAAKA,IAAE,OAAO,EAAE,SAAS,QAAQ,IAAE,MAAI;AAAC,UAAM,IAAI,MAAM,yEAAyE;AAAA,EAAC;AAAC;AAA8a,SAASsB,IAAGtB,IAAE;AAAC,QAAMC,KAAED,GAAE,MAAM;AAAA,CAC1kK,GAAEE,KAAED,GAAE,OAAO,CAAAI,OAAG,OAAO,KAAKA,EAAC,CAAC,GAAEF,KAAEF,GAAE,OAAO,CAAAI,OAAG,SAAS,KAAKA,EAAC,CAAC;AAAE,MAAGH,GAAE,WAAS,KAAGC,GAAE,WAAS,EAAE,QAAO;AAAK,MAAGD,GAAE,UAAQC,GAAE,OAAO,QAAM;AAAI,QAAMC,KAAED,GAAE,OAAO,CAACE,IAAEC,OAAI;AAAC,UAAMC,KAAE,MAAM,KAAKD,EAAC,EAAE,CAAC,EAAE;AAAO,WAAO,KAAK,IAAIC,IAAEF,EAAC;AAAA,EAAC,GAAE,IAAE,CAAC;AAAE,SAAO,IAAI,MAAMD,KAAE,CAAC,EAAE,KAAK,GAAG;AAAC;AAAqB,SAAS,GAAGJ,IAAEC,IAAE;AAAC,QAAMC,KAAEF,GAAE,MAAM,OAAO,GAAEG,KAAEF,GAAE,MAAM,OAAO;AAAE,OAAIC,GAAE,IAAI,GAAEA,GAAE,CAAC,MAAIC,GAAE,CAAC,IAAG,CAAAD,GAAE,MAAM,GAAEC,GAAE,MAAM;AAAE,MAAGD,GAAE,QAAO;AAAC,QAAIE,KAAEF,GAAE;AAAO,WAAKE,OAAK,CAAAF,GAAEE,EAAC,IAAE;AAAA,EAAI;AAAC,SAAOF,GAAE,OAAOC,EAAC,EAAE,KAAK,GAAG;AAAC;AAA4D,SAAS,GAAGH,IAAE;AAAC,SAAO,GAAG,KAAKA,EAAC,MAAI;AAAiB;AAAkB,SAASuB,IAAGvB,IAAE;AAAC,QAAMC,KAAED,GAAE,MAAM;AAAA,CACzmB,GAAEE,KAAE,CAAC;AAAE,WAAQC,KAAE,GAAEC,KAAE,GAAED,KAAEF,GAAE,QAAOE,KAAI,CAAAD,GAAE,KAAKE,EAAC,GAAEA,MAAGH,GAAEE,EAAC,EAAE,SAAO;AAAE,SAAOqB,GAAE,SAASpB,IAAE;AAAC,QAAIC,KAAE,GAAEC,KAAEJ,GAAE;AAAO,WAAKG,KAAEC,MAAG;AAAC,YAAMG,KAAEJ,KAAEC,MAAG;AAAE,MAAAF,KAAEF,GAAEO,EAAC,IAAEH,KAAEG,KAAEJ,KAAEI,KAAE;AAAA,IAAC;AAAC,UAAMF,KAAEF,KAAE,GAAEG,KAAEJ,KAAEF,GAAEK,EAAC;AAAE,WAAM,EAAC,MAAKA,IAAE,QAAOC,GAAC;AAAA,EAAC,GAAE,QAAQ;AAAC;AAOwmQ,SAAS,GAAGR,IAAEC,KAAE,KAAI;AAAC,EAAAwB,KAAEzB,IAAE0B,MAAGzB;AAAE,QAAMC,KAAE,IAAEuB,GAAE,UAAQ,KAAG;AAAI,MAAGvB,KAAEyB,MAAG,CAACC,IAAE;AAAC,WAAK1B,KAAEyB,KAAG,CAAAA,MAAG;AAAE,IAAAE,MAAG,IAAI,YAAYF,EAAC,GAAEG,IAAG,IAAG,IAAI,YAAYD,KAAG,IAAG,GAAG,CAAC,GAAED,MAAE,SAAStB,IAAEC,IAAEC,IAAE;AAAC,UAAIC,KAAE,IAAIH,GAAE,UAAUE,EAAC,GAAEG,KAAE,IAAIL,GAAE,WAAWE,EAAC,GAAEU,KAAE,IAAIZ,GAAE,WAAWE,EAAC,GAAEuB,KAAE,IAAIzB,GAAE,WAAWE,EAAC,GAAEwB,KAAE,IAAI1B,GAAE,YAAYE,EAAC,GAAEyB,KAAE;AAAK,eAASC,KAAG;AAAC,YAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,QAAAA,KAAER,IAAEA,KAAEA,KAAE,QAAM,GAAExB,GAAE,GAAG,IAAE,GAAEA,GAAE,GAAG,IAAE,GAAEE,GAAE,GAAG,IAAE,GAAEA,GAAE,GAAG,IAAE,GAAEO,GAAE,EAAE,IAAEA,GAAE,CAAC,GAAET,GAAE,GAAG,IAAE,GAAES,GAAE,EAAE,IAAE,GAAET,GAAE,GAAG,IAAE,GAAES,GAAE,EAAE,IAAEuB,KAAE,MAAKvB,GAAE,EAAE,IAAEuB,IAAEhC,GAAE,GAAG,IAAE,GAAE0B,MAAGjB,GAAE,CAAC,IAAE,KAAG,KAAG,GAAEA,GAAE,EAAE,IAAEiB,IAAEC,KAAED,MAAGjB,GAAE,EAAE,KAAG,KAAG,GAAEA,GAAE,EAAE,IAAEkB;AAAE,UAAE,YAAO;AAAC,cAAGC,KAAEF,KAAE,IAAE,GAAEjB,GAAE,EAAE,IAAEmB,IAAEF,OAAI,KAAGC,OAAI,GAAE;AAAC,YAAAE,KAAE;AAAG;AAAA,UAAK;AAAC,YAAE;AAAG,oBAAO3B,GAAE0B,MAAG,CAAC,IAAE,GAAE;AAAA,cAAC,KAAK;AAAA,cAAE,KAAK;AAAA,cAAG,KAAK;AAAA,cAAG,KAAK;AAAA,cAAG,KAAK;AAAA,cAAG,KAAK;AAAG;AAAA,cAAM,KAAK,KAAI;AAAC,oBAAG,EAAE1B,GAAE,GAAG,IAAE,MAAI+B,GAAEL,EAAC,IAAE,KAAG,EAAEM,GAAER,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,OAAKS,GAAE,IAAGnC,GAAE,GAAG,IAAE,MAAI,IAAG;AAAC,kBAAA6B,KAAE;AAAE,wBAAM;AAAA,gBAAC,MAAM,CAAAA,KAAE;AAAG;AAAA,cAAK;AAAA,cAAC,KAAK,KAAI;AAAC,gBAAAI,GAAEL,EAAC,IAAE,KAAG,EAAEM,GAAER,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,MAAI,EAAE,GAAEG,KAAE;AAAG;AAAA,cAAK;AAAA,cAAC,KAAK,IAAG;AAAC,gBAAAA,KAAE;AAAG;AAAA,cAAK;AAAA,cAAC,KAAK;AAAG,wBAAO3B,GAAEwB,KAAE,KAAG,CAAC,IAAE,GAAE;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAU,IAAG;AAAE,0BAAM;AAAA,kBAAC;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAC,IAAG,CAAC;AAAE,0BAAM;AAAA,kBAAC;AAAA,kBAAC,SAAQ;AAAC,oBAAAR,KAAE;AAAG,0BAAM;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC,SAAQ;AAAC,gBAAAA,KAAE;AAAG,sBAAM;AAAA,cAAC;AAAA,YAAC;AAAA,iBAAO;AAAI,WAACA,KAAE,MAAI,OAAKA,KAAE,GAAEpB,GAAE,EAAE,IAAEA,GAAE,EAAE,IAAGiB,KAAEjB,GAAE,EAAE,IAAE,GAAEkB,KAAElB,GAAE,EAAE,IAAE;AAAA,QAAC;AAAC,SAACoB,KAAE,MAAI,KAAGH,KAAEjB,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAEiB,IAAEG,KAAE,OAAKA,KAAE,MAAI,MAAI7B,GAAE,GAAG,IAAE,GAAES,GAAE,EAAE,IAAEiB,IAAEG,KAAE,OAAKA,KAAE,MAAI,OAAK7B,GAAE,GAAG,IAAE,IAAE0B,KAAE,KAAGA,KAAEE,IAAEC,KAAE;AAAK;AAAG,eAAIA,KAAE,MAAI,IAAG;AAAC,cAAE,YAAO;AAAC,kBAAGF,KAAED,KAAE,IAAE,GAAEjB,GAAE,EAAE,IAAEkB,IAAED,OAAI,MAAIjB,GAAE,EAAE,IAAE,OAAK,GAAE;AAAC,gBAAAoB,KAAE;AAAG;AAAA,cAAK;AAAC,gBAAE;AAAG,wBAAO3B,GAAEyB,MAAG,CAAC,IAAE,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAG,KAAK;AAAA,kBAAG,KAAK;AAAA,kBAAG,KAAK;AAAA,kBAAG,KAAK;AAAG;AAAA,kBAAM,KAAK,KAAI;AAAC,sBAAEzB,GAAE,GAAG,IAAE,MAAI+B,GAAEN,EAAC,IAAE,KAAG,EAAEO,GAAER,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,MAAIS,GAAE,GAAEN,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,KAAI;AAAC,oBAAAI,GAAEN,EAAC,IAAE,KAAG,EAAEO,GAAER,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,MAAI,EAAE,GAAEG,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAI,GAAEN,EAAC,IAAE,KAAG,EAAEO,GAAER,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,MAAIY,GAAEpC,GAAEwB,KAAE,MAAI,CAAC,IAAE,CAAC,IAAE,MAAI1B,GAAE,GAAG,IAAE,IAAG6B,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAD,KAAEnB,GAAE,EAAE,IAAE,GAAEiB,KAAExB,GAAE,GAAG,IAAE,GAAE2B,KAAEH,KAAE,OAAMjB,GAAEmB,MAAGC,MAAG,MAAI,CAAC,IAAE,GAAEF,KAAElB,GAAE,EAAE,IAAE,GAAEP,GAAE,GAAG,IAAEwB,KAAE,KAAG,MAAI,IAAGjB,GAAEmB,MAAGC,MAAG,KAAG,KAAG,CAAC,IAAEF,IAAEE,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,IAAG;AAAC,wBAAGF,KAAEzB,GAAE,GAAG,IAAE,GAAE,EAAEyB,MAAG,MAAI,KAAI;AAAC,sBAAAE,KAAE;AAAG,4BAAM;AAAA,oBAAC;AAAC,oBAAAD,KAAED,KAAE,MAAI,MAAI,IAAGzB,GAAE,GAAG,IAAE0B,IAAEC,KAAE3B,GAAE,GAAG,IAAE,GAAEyB,KAAEE,KAAE,OAAMA,MAAG,MAAI,OAAKpB,IAAGA,GAAE,EAAE,IAAE,OAAKmB,KAAE,UAAQ,MAAI,CAAC,IAAE,MAAI,MAAID,KAAElB,IAAGA,GAAE,EAAE,IAAE,MAAIkB,KAAE,MAAI,MAAI,CAAC,IAAE,GAAEC,KAAED,KAAE,IAAE,GAAElB,GAAEmB,MAAG,CAAC,IAAE,MAAInB,GAAEmB,MAAG,CAAC,KAAGnB,GAAE,EAAE,IAAE,KAAG,IAAGA,GAAEkB,KAAE,MAAI,CAAC,IAAED,KAAE,GAAExB,GAAE,GAAG,IAAE2B,KAAE,MAAI,MAAI,KAAIA,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,KAAI;AAAC,oBAAAA,KAAEpB,GAAE,EAAE,IAAE,GAAEmB,KAAEnB,GAAE,EAAE,IAAE,GAAEiB,KAAEG;AAAE;AAAG,2BAAI3B,GAAE2B,MAAG,CAAC,IAAE,MAAI,MAAID,KAAE,MAAI,MAAInB,GAAEmB,KAAE,KAAG,CAAC,IAAE,OAAKC,KAAE,GAAG,KAAGF,KAAElB,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAEkB,IAAEA,IAAE;AAAC,wBAAAlB,GAAEkB,KAAE,MAAI,CAAC,IAAE;AAAE;AAAA,sBAAK,OAAK;AAAC,wBAAAlB,GAAE,EAAE,IAAE;AAAE;AAAA,sBAAK;AAAA,2BAAO;AAAI,oBAAAmB,KAAEnB,GAAE,EAAE,IAAE,GAAEkB,KAAEzB,GAAE,GAAG,IAAE,GAAE2B,KAAEF,KAAE,OAAMlB,GAAEmB,MAAGC,MAAG,MAAI,CAAC,IAAE7B,GAAE,GAAG,IAAE,IAAE,IAAE,GAAEE,GAAE,GAAG,IAAEyB,KAAE,KAAG,MAAI,IAAGlB,GAAEmB,MAAGC,MAAG,KAAG,KAAG,CAAC,IAAEH,IAAE1B,GAAE,GAAG,IAAE,GAAE6B,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,KAAI;AAAC,wBAAGH,KAAExB,GAAE,GAAG,IAAE,GAAE,EAAEwB,MAAG,MAAI,KAAI;AAAC,sBAAAG,KAAE;AAAG,4BAAM;AAAA,oBAAC;AAAC,oBAAAD,KAAEnB,GAAE,EAAE,IAAE,GAAEoB,KAAEH,KAAE,MAAI,MAAI,IAAGxB,GAAE,GAAG,IAAE2B,KAAGpB,GAAEmB,OAAIC,KAAE,UAAQ,MAAI,CAAC,IAAE,MAAI,KAAGU,IAAG,GAAEV,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAW,GAAE,EAAE,GAAEX,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAW,GAAE,EAAE,GAAEX,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC,KAAK;AAAG,4BAAO3B,GAAEwB,KAAE,KAAG,CAAC,IAAE,GAAE;AAAA,sBAAC,KAAK,IAAG;AAAC,wBAAAU,IAAG;AAAE,8BAAM;AAAA,sBAAC;AAAA,sBAAC,KAAK,IAAG;AAAC,wBAAAC,IAAG,CAAC;AAAE,8BAAM;AAAA,sBAAC;AAAA,sBAAC,SAAQ;AAAC,wBAAAX,KAAEjB,GAAE,EAAE,IAAE,GAAEkB,KAAEzB,GAAEwB,MAAG,CAAC,IAAE;AAAE,0BAAE;AAAG,8BAAG,EAAE,GAAGC,EAAC,IAAE,GAAG,CAAAA,MAAG,MAAI,MAAI,MAAIC,KAAE1B,GAAE,GAAG,IAAE,GAAE,GAAGO,IAAGA,GAAE,EAAE,IAAE,OAAKmB,KAAE,UAAQ,KAAG,KAAG,CAAC,IAAE,CAAC,IAAE,MAAIC,KAAE,OAAKA,KAAE;AAAA,8BAAQ,SAAOF,MAAG,MAAI,IAAG;AAAA,4BAAC,KAAK;AAAG,oCAAKzB,GAAEwB,KAAE,MAAI,CAAC,IAAE,KAAG,MAAI,SAAO,IAAG;AAAC,gCAAAG,KAAE;AAAG,sCAAM;AAAA,8BAAC,MAAM,OAAM;AAAA,4BAAE,KAAK;AAAG,mCAAI3B,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,IAAG;AAAC,gCAAAG,KAAE;AAAG,sCAAM;AAAA,8BAAC,MAAM,OAAM;AAAA,4BAAE,KAAK;AAAG,mCAAI3B,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,IAAG;AAAC,gCAAAG,KAAE;AAAG,sCAAM;AAAA,8BAAC,MAAM,OAAM;AAAA,4BAAE;AAAQ,oCAAM;AAAA,0BAAC;AAAA,+BAAO;AAAI,yBAACA,KAAE,MAAI,OAAKD,KAAE1B,GAAE,GAAG,IAAE,GAAE2B,KAAE;AAAI,0BAAE;AAAG,+BAAIA,KAAE,MAAI,IAAG;AAAC,gCAAGA,KAAE,GAAED,MAAG,MAAI,OAAKE,KAAErB,GAAE,EAAE,IAAE,GAAEsB,MAAGH,KAAE,SAAO,KAAG,GAAED,MAAG,MAAI,MAAI,OAAKlB,GAAEqB,MAAGC,MAAG,MAAI,CAAC,IAAE,MAAI,IAAE,IAAG;AAAC,mCAAI7B,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,OAAKe,GAAEhC,GAAEqB,MAAGC,MAAG,KAAG,KAAG,CAAC,IAAE,GAAE,IAAG,CAAC,IAAE,EAAE;AAAA,4BAAK,MAAM,CAAAF,KAAE;AAAG,iCAAIA,KAAE,MAAI,MAAIF,MAAG,MAAI,MAAI,QAAME,KAAEpB,GAAE,EAAE,IAAE,GAAEmB,KAAEA,KAAE,OAAM,GAAGnB,GAAEoB,MAAGD,MAAG,KAAG,KAAG,CAAC,IAAE,CAAC,IAAE,MAAInB,GAAEoB,MAAGD,MAAG,MAAI,CAAC,IAAE,MAAI,GAAG;AAAM,gCAAG,EAAE,GAAGF,EAAC,IAAE,IAAG;AAAC,sCAAOC,MAAG,MAAI,IAAG;AAAA,gCAAC,KAAK;AAAE,wCAAM;AAAA,gCAAE,KAAK,IAAG;AAAC,sCAAG3B,GAAE,GAAG,IAAE,EAAE,OAAM;AAAE;AAAA,gCAAK;AAAA,gCAAC;AAAA,8BAAQ;AAAC,kCAAG6B,KAAEpB,GAAE,EAAE,IAAE,GAAEoB,KAAE,KAAGH,OAAI,MAAIjB,GAAEoB,MAAG,CAAC,IAAE,OAAK,KAAGH,OAAI,MAAIjB,GAAEoB,KAAE,KAAG,CAAC,IAAE,OAAK,GAAE;AAAC,gCAAAa,IAAG,GAAE1C,GAAE,GAAG,IAAE,GAAE6B,KAAE;AAAG,sCAAM;AAAA,8BAAC;AAAC,8BAAAD,KAAEnB,GAAE,CAAC,IAAE;AAAE,iCAAE;AAAC,oCAAGiB,OAAI,KAAGE,OAAI,EAAE;AAAM,gCAAAF,KAAEA,KAAE,KAAG,GAAEjB,GAAE,EAAE,IAAEiB,IAAEC,KAAEzB,GAAEwB,MAAG,CAAC,IAAE;AAAA,8BAAC,SAAO,EAAEiB,IAAGhB,EAAC,IAAE;AAAI,kCAAGiB,IAAGjB,EAAC,IAAE,GAAE;AAAC,mCAAE;AAAC,sCAAGD,OAAI,KAAGE,OAAI,EAAE;AAAM,kCAAAF,KAAEA,KAAE,KAAG,GAAEjB,GAAE,EAAE,IAAEiB;AAAA,gCAAC,SAAOkB,IAAG1C,GAAEwB,MAAG,CAAC,IAAE,CAAC,IAAE;AAAG,oCAAG,GAAGA,EAAC,IAAE,GAAE;AAAC,kCAAAgB,IAAG,GAAE1C,GAAE,GAAG,IAAE,GAAE6B,KAAE;AAAG,wCAAM;AAAA,gCAAC;AAAA,8BAAC;AAAC,8BAAA7B,GAAE,GAAG,IAAE,GAAE6B,KAAE;AAAG,oCAAM;AAAA,4BAAC;AAAA,0BAAC;AAAA,+BAAO;AAAI,wBAAAa,IAAG,GAAE1C,GAAE,GAAG,IAAE,GAAE6B,KAAE;AAAG,8BAAM;AAAA,sBAAC;AAAA,oBAAC;AAAA,kBAAC,KAAK,IAAG;AAAC,oBAAAD,KAAEnB,GAAE,EAAE,IAAE,GAAEkB,KAAEzB,GAAE,GAAG,IAAE,GAAE2B,KAAEF,KAAE,OAAMlB,GAAEmB,MAAGC,MAAG,KAAG,KAAG,CAAC,IAAEpB,GAAE,EAAE,GAAEP,GAAE,GAAG,IAAEyB,KAAE,KAAG,MAAI,IAAGlB,GAAEmB,MAAGC,MAAG,MAAI,CAAC,IAAE,GAAEU,IAAG,GAAEV,KAAE;AAAG;AAAA,kBAAK;AAAA,kBAAC;AAAQ,oBAAAA,KAAE;AAAA,gBAAE;AAAA,qBAAO;AAAI,eAACA,KAAE,MAAI,OAAKA,KAAE,GAAEpB,GAAE,EAAE,IAAEA,GAAE,EAAE,IAAGiB,KAAEjB,GAAE,EAAE,IAAE;AAAA,YAAC;AAAC,iBAAIoB,KAAE,MAAI,IAAG;AAAC,cAAAgB,GAAE,GAAEnB,KAAE;AAAE;AAAA,YAAK,YAAUG,KAAE,MAAI,IAAG;AAAC,cAAAgB,GAAE,GAAEnB,KAAE;AAAE;AAAA,YAAK,YAAUG,KAAE,MAAI,IAAG;AAAC,cAAAH,KAAE1B,GAAE,GAAG,IAAE,IAAE,KAAGE,GAAE,GAAG,IAAEA,GAAE,GAAG,MAAI,MAAI,MAAI;AAAE;AAAA,YAAK;AAAA,UAAC;AAAA,eAAO;AAAI,eAAOsB,KAAEQ,IAAEN,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAEU,IAAE,GAAG;AAAE,eAASU,KAAG;AAAC,YAAIT,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEc,KAAE,GAAEC,MAAG,GAAEC,MAAG,GAAEC,MAAG,GAAEC,MAAG,GAAEC,KAAE,GAAE,IAAE;AAAE,QAAAL,KAAErC,GAAE,EAAE,IAAE,GAAEsC,MAAGtC,GAAE,EAAE,IAAE,GAAE,IAAEqC,KAAE,KAAG,GAAErC,GAAE,EAAE,IAAE,GAAEmB,KAAEwB,GAAE,CAAC,IAAE,GAAE1B,KAAEjB,GAAE,EAAE,IAAE,IAAGiB,KAAE,OAAK,IAAE,MAAI,EAAE2B,IAAGzB,EAAC,IAAE,OAAKuB,KAAE;AAAG,UAAE;AAAG,eAAIA,KAAE,MAAI,GAAE;AAAC,cAAE;AAAG,sBAAOvB,MAAG,MAAI,IAAG;AAAA,gBAAC,KAAK,KAAI;AAAC,uBAAInB,GAAE,EAAE,IAAEiB,KAAE,GAAEA,KAAE0B,GAAE,CAAC,IAAE,GAAEzB,KAAElB,GAAE,EAAE,IAAE,OAAI;AAAC,wBAAG6C,GAAE5B,EAAC,IAAE,KAAGc,GAAEd,EAAC,GAAEA,MAAGjB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEA,GAAE,EAAE,IAAEiB,OAAI6B,GAAE7B,EAAC,IAAE,GAAEA,KAAEjB,GAAE,EAAE,IAAE,IAAG2C,GAAE,CAAC,IAAE,GAAE1B,KAAE8B,IAAG7B,IAAED,EAAC,IAAE,GAAEA,MAAG,MAAI,MAAI,OAAKjB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAEiB,KAAE0B,GAAE,CAAC,IAAE,IAAG1B,MAAG,MAAI,MAAI,KAAI;AAAC,sBAAAyB,KAAE;AAAG;AAAA,oBAAK;AAAC,wBAAG,IAAExB,IAAEA,KAAElB,GAAE,EAAE,IAAE,IAAGkB,KAAE,OAAK,IAAE,IAAG;AAAC,sBAAAwB,KAAE;AAAG;AAAA,oBAAK;AAAC,wBAAGxB,OAAI,KAAGlB,GAAE,EAAE,IAAE,OAAK,GAAE;AAAC,sBAAA0C,KAAE;AAAG;AAAA,oBAAK;AAAA,kBAAC;AAAC,uBAAIA,KAAE,MAAI,IAAG;AAAC,oBAAAN,GAAE;AAAE,0BAAM;AAAA,kBAAC,YAAUM,KAAE,MAAI,IAAG;AAAC,oBAAAN,GAAE;AAAE,0BAAM;AAAA,kBAAC,YAAUM,KAAE,MAAI,IAAG;AAAC,oBAAAnD,GAAE,GAAG,IAAE,GAAES,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAE,0BAAM;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAA,GAAE,EAAE,IAAEiB,KAAE,GAAE0B,GAAE,CAAC,IAAE,GAAE,IAAE3C,GAAE,EAAE,IAAE,GAAE+C,IAAG,GAAE,CAAC,IAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC,SAAQ;AAAC,0BAAOxD,GAAE,GAAG,IAAE,GAAE4B,MAAG,MAAI,IAAG;AAAA,oBAAC,KAAK,KAAI;AAAC,8BAAOkB,KAAEpB,KAAE,KAAG,GAAEjB,GAAE,EAAE,IAAEqC,KAAGM,GAAE,CAAC,IAAE,MAAI,MAAI,IAAG;AAAA,wBAAC,KAAK,IAAG;AAAC,0BAAAzB,KAAElB,GAAE,EAAE,IAAE,GAAE,EAAEyB,GAAEP,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,OAAKG,KAAEH,KAAE,KAAG,GAAEiB,IAAG1C,GAAE4B,MAAG,CAAC,IAAE,CAAC,IAAE,OAAKrB,GAAE,EAAE,IAAEqB,IAAEsB,GAAE,CAAC,IAAE,GAAED,KAAE;AAAI;AAAA,wBAAK;AAAA,wBAAC,KAAK,KAAI;AAAC,0BAAAA,KAAE;AAAG;AAAA,wBAAK;AAAA,wBAAC,KAAK,IAAG;AAAC,0BAAAxB,KAAElB,GAAE,EAAE,IAAE,GAAE,EAAEyB,GAAEP,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,OAAKE,KAAEF,KAAE,KAAG,GAAE,IAAEzB,GAAE2B,MAAG,CAAC,IAAE,GAAES,GAAE,CAAC,IAAE,IAAE,KAAG,MAAI,MAAI,SAAO7B,GAAE,EAAE,IAAEoB,IAAEE,KAAEqB,GAAE,CAAC,IAAE,GAAErB,MAAG,MAAI,MAAI,SAAOmB,MAAGnB,IAAEoB,KAAE;AAAI;AAAA,wBAAK;AAAA,wBAAC;AAAA,sBAAQ;AAAC,wBAAE;AAAG,6BAAIA,KAAE,MAAI,OAAKnB,KAAEvB,GAAE,EAAE,IAAE,IAAGyB,GAAEF,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,MAAI,IAAG;AAAC,8BAAGJ,KAAEI,KAAE,KAAG,GAAEL,KAAEzB,GAAE0B,MAAG,CAAC,IAAE,GAAE,EAAEU,GAAEX,EAAC,IAAE,GAAG,SAAOA,MAAG,MAAI,IAAG;AAAA,4BAAC,KAAK;AAAA,4BAAG,KAAK;AAAG;AAAA,4BAAM;AAAQ,oCAAM;AAAA,0BAAC;AAAC,0BAAAlB,GAAE,EAAE,IAAEmB,IAAED,KAAEyB,GAAE,CAAC,IAAE,GAAEzB,MAAG,MAAI,MAAI,OAAKlB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAEkB,KAAEyB,GAAE,CAAC,IAAE,IAAGzB,MAAG,MAAI,MAAI,OAAKuB,MAAGvB,IAAEwB,KAAE;AAAA,wBAAG;AAAA,6BAAO;AAAI,2BAAIA,KAAE,MAAI,OAAKH,MAAGvC,GAAE,EAAE,IAAE,GAAE8C,GAAEL,GAAE,IAAE,GAAED,MAAGxC,GAAE,EAAE,IAAE,GAAEwC,QAAK,IAAED,QAAK,IAAG;AAAC,wBAAAS,GAAE/B,IAAEoB,IAAEE,KAAGC,GAAE,GAAExC,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAG,8BAAM;AAAA,sBAAC;AAAC,sBAAAgD,GAAE/B,IAAEoB,IAAE,GAAE,CAAC,GAAErC,GAAE,EAAE,IAAEiB,KAAE;AAAG,4BAAM;AAAA,oBAAC;AAAA,oBAAC,KAAK,IAAG;AAAC,sBAAAjB,GAAE,EAAE,IAAEiB,KAAE,IAAG0B,GAAE,CAAC,IAAE,GAAE1B,KAAEjB,GAAE,EAAE,IAAE,GAAE0C,KAAE;AAAG;AAAA,oBAAK;AAAA,oBAAC,KAAK,KAAI;AAAC,sBAAAA,KAAE;AAAG;AAAA,oBAAK;AAAA,oBAAC,KAAK,IAAG;AAAC,0BAAG,EAAEjB,GAAER,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,OAAKC,KAAED,KAAE,KAAG,GAAEiB,IAAGzC,GAAEyB,MAAG,CAAC,IAAE,CAAC,IAAE,IAAG;AAAC,wBAAAlB,GAAE,EAAE,IAAEkB,IAAE,IAAEyB,GAAE,CAAC,IAAE,GAAED,KAAE1C,GAAE,EAAE,IAAE,GAAE8C,GAAE,CAAC,IAAE,GAAE,IAAE9C,GAAE,EAAE,IAAE,GAAEgD,GAAEN,IAAE,GAAEA,IAAE,CAAC,GAAE1C,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAG,8BAAM;AAAA,sBAAC;AAAC,sBAAAiB,KAAEA,KAAE,IAAE,GAAEjB,GAAE,EAAE,IAAEiB;AAAE;AAAA,oBAAK;AAAA,oBAAC,KAAK;AAAA,oBAAI,KAAK;AAAI;AAAA,oBAAM;AAAQ,4BAAM;AAAA,kBAAC;AAAC,uBAAIyB,KAAE,MAAI,IAAG;AAAC,oBAAA1C,GAAE,EAAE,IAAEiB,KAAE,IAAGA,KAAE0B,GAAE,CAAC,IAAE,GAAE1B,MAAG,MAAI,MAAI,OAAKjB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAEiB,KAAE0B,GAAE,CAAC,IAAE,IAAGD,KAAE1C,GAAE,EAAE,IAAE,GAAE8C,GAAE7B,EAAC,IAAE,GAAE,IAAEjB,GAAE,EAAE,IAAE,GAAEgD,GAAEN,IAAE,GAAEA,IAAE,CAAC,GAAE1C,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAG,0BAAM;AAAA,kBAAC;AAAC,kBAAAA,GAAE,EAAE,IAAEiB,KAAE,GAAE1B,GAAE,GAAG,IAAE,GAAE4B,KAAEwB,GAAE,CAAC,IAAE,GAAE1B,KAAEjB,GAAE,EAAE,IAAE,GAAEmB,MAAG2B,GAAE3B,EAAC,IAAE,IAAE,OAAK,MAAI,MAAI,KAAIC,KAAEpB,GAAE,EAAE,IAAE,GAAEmB,OAAInB,GAAE,EAAE,IAAEoB,KAAE,GAAE,IAAEuB,GAAE,CAAC,IAAE,GAAE1B,KAAEjB,GAAE,EAAE,IAAE,GAAE8C,GAAE,CAAC,IAAE;AAAG,oBAAE,QAAK5B,KAAElB,GAAE,EAAE,IAAE,IAAGkB,KAAE,OAAKD,KAAE,MAAI;AAAC,wBAAG+B,GAAE/B,IAAEC,IAAED,IAAEC,EAAC,GAAEA,KAAEyB,GAAE,CAAC,IAAE,GAAExB,GAAE,SAAOD,MAAG,MAAI,IAAG;AAAA,sBAAC,KAAK;AAAA,sBAAG,KAAK;AAAI,8BAAM;AAAA,sBAAE;AAAA,oBAAQ;AAAC,wBAAGD,KAAEjB,GAAE,EAAE,IAAE,GAAEkB,MAAG,MAAI,MAAI,IAAG;AAAC,sBAAAwB,KAAE;AAAG;AAAA,oBAAK;AAAC,4BAAO1C,GAAE,EAAE,IAAEiB,KAAE,GAAEC,KAAEyB,GAAE,CAAC,IAAE,GAAE1B,KAAEjB,GAAE,EAAE,IAAE,GAAEkB,MAAG,MAAI,IAAG;AAAA,sBAAC,KAAK;AAAA,sBAAG,KAAK,KAAI;AAAC,wBAAAwB,KAAE;AAAG,8BAAM;AAAA,sBAAC;AAAA,sBAAC;AAAA,oBAAQ;AAAC,oBAAAI,GAAE5B,EAAC,IAAE;AAAA,kBAAC;AAAC,uBAAIwB,KAAE,MAAI,OAAK1C,GAAE,EAAE,IAAEiB,KAAE,KAAI,CAACE,GAAE,OAAM;AAAE,kBAAAnB,GAAE,EAAE,IAAEoB,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,mBAAO;AAAI,gBAAG,KAAGuB,GAAE,CAAC,IAAE,MAAI,MAAI,MAAI,KAAI1B,KAAEjB,GAAE,EAAE,IAAE,GAAE,KAAG,EAAEyB,GAAER,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,GAAG,MAAIjB,GAAE,EAAE,IAAEiB,KAAE,GAAEgC,GAAEZ,IAAEM,GAAE,CAAC,IAAE,GAAE,CAAC,GAAE1B,KAAEqB,MAAG,IAAEA,MAAG,KAAG,IAAE,SAAM;AAAC,kBAAGrB,KAAEjB,GAAEiB,MAAG,CAAC,IAAE,GAAE,CAACA,GAAE,OAAM;AAAE,cAAAjB,GAAEiB,KAAE,MAAI,CAAC,IAAE,GAAEjB,GAAEiB,KAAE,KAAG,CAAC,IAAE,GAAEA,KAAEA,KAAE,KAAG;AAAA,YAAC;AAAC,YAAAjB,GAAE,EAAE,IAAEiB,KAAE;AAAA,UAAE;AAAA,eAAO;AAAA,MAAG;AAAC,MAAAX,GAAEoB,IAAE,GAAG;AAAE,eAAS,IAAG;AAAC,YAAIT,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,QAAAF,KAAErB,GAAE,EAAE,IAAE,GAAEmB,KAAEE,KAAE,KAAG,GAAErB,GAAE,EAAE,IAAEmB,IAAEC,KAAEuB,GAAE,CAAC,IAAE,GAAEzB,KAAElB,GAAE,EAAE,IAAE;AAAE,UAAE;AAAG,cAAGoB,MAAG,MAAI,MAAI,GAAG,CAAAA,MAAG,MAAI,MAAI,MAAIF,OAAI,IAAEC,OAAI,IAAE,EAAEM,GAAEP,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,OAAKD,KAAEC,KAAE,KAAG,GAAEW,GAAEpC,GAAEwB,MAAG,CAAC,IAAE,CAAC,IAAE,KAAGK,KAAE,MAAIJ,KAAE,GAAEC,KAAE,GAAEG,KAAE,OAAKL,KAAEG,IAAED,KAAE,GAAEG,KAAE;AAAA,cAAS,SAAOtB,GAAE,EAAE,IAAEkB,KAAE,IAAGyB,GAAE,CAAC,IAAE,MAAI,MAAI,IAAG;AAAA,YAAC,KAAK,KAAI;AAAC,kBAAG1B,KAAEjB,GAAE,EAAE,IAAE,GAAEyB,GAAER,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,MAAIC,KAAElB,GAAE,EAAE,IAAE,GAAE,EAAEkD,IAAGhC,EAAC,IAAE,OAAKzB,GAAEyB,MAAG,CAAC,IAAE,MAAI,IAAI,OAAM;AAAE,cAAAiC,IAAG9B,IAAEA,IAAEJ,KAAE,IAAE,GAAE,CAAC;AAAE,oBAAM;AAAA,YAAC;AAAA,YAAC,KAAK,KAAI;AAAC,kBAAGA,KAAEjB,GAAE,EAAE,IAAE,GAAEyB,GAAER,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,MAAIC,KAAElB,GAAE,EAAE,IAAE,GAAE,EAAEkD,IAAGhC,EAAC,IAAE,OAAKzB,GAAEyB,MAAG,CAAC,IAAE,MAAI,IAAI,OAAM;AAAE,cAAAD,KAAEA,KAAE,KAAG,GAAEK,KAAE;AAAG,oBAAM;AAAA,YAAC;AAAA,YAAC;AAAQ,oBAAM;AAAA,UAAC;AAAA,eAAO;AAAI,SAACA,KAAE,MAAI,OAAKtB,GAAE,EAAE,IAAEiB,IAAEA,KAAE0B,GAAE,CAAC,IAAE,GAAExB,KAAE,GAAEG,KAAE;AAAI,UAAE;AAAG,eAAIA,KAAE,MAAI,GAAG,SAAOL,MAAG,MAAI,IAAG;AAAA,YAAC,KAAK,IAAG;AAAC,kBAAGC,KAAElB,GAAE,EAAE,IAAE,GAAEuB,KAAE9B,GAAE,GAAG,IAAE,GAAE2B,KAAEG,KAAE,OAAMvB,GAAEkB,MAAGE,MAAG,MAAI,CAAC,IAAE,GAAEH,KAAEjB,GAAE,EAAE,IAAE,GAAEP,GAAE,GAAG,IAAE8B,KAAE,KAAG,MAAI,IAAGvB,GAAEkB,MAAGE,MAAG,KAAG,KAAG,CAAC,IAAEH,KAAGxB,GAAEO,GAAE,EAAE,KAAG,CAAC,IAAE,MAAI,GAAG,OAAM;AAAE,sBAAOA,GAAE,EAAE,IAAEiB,KAAE,GAAEC,KAAEyB,GAAE,CAAC,IAAE,GAAEQ,IAAG9B,IAAErB,GAAE,EAAE,IAAE,GAAE,GAAEiB,EAAC,GAAEE,MAAGF,KAAEjB,GAAE,EAAE,IAAE,GAAEA,GAAEiB,KAAE,MAAI,CAAC,IAAE,KAAGA,KAAEjB,GAAE,EAAE,IAAE,GAAEqB,KAAErB,GAAE,EAAE,IAAE,GAAEuB,KAAE9B,GAAE,GAAG,IAAE,GAAEA,GAAE,GAAG,IAAE8B,KAAE,KAAG,MAAI,IAAGvB,GAAEqB,OAAIE,KAAE,UAAQ,MAAI,CAAC,IAAEN,IAAEC,MAAG,MAAI,IAAG;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAa,GAAE,EAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAA,GAAE,EAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC,SAAQ;AAAC,kBAAA/B,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAG,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAC,sBAAOiB,MAAGjB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEA,GAAE,EAAE,IAAEiB,KAAG0B,GAAE,CAAC,IAAE,MAAI,MAAI,IAAG;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAA3C,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAE2C,GAAE,CAAC,IAAE,GAAEtB,KAAErB,GAAE,EAAE,IAAE,GAAEA,GAAEqB,KAAE,KAAG,CAAC,IAAEJ,IAAEM,KAAEvB,GAAE,EAAE,IAAE,GAAEA,GAAEqB,KAAE,MAAI,CAAC,IAAEE,IAAEhC,GAAE8B,KAAE,MAAI,CAAC,IAAE,GAAErB,GAAE,EAAE,IAAEuB,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAA9B,GAAE,GAAG,KAAGA,GAAE,GAAG,IAAE,KAAG,MAAI,MAAI,IAAG8B,KAAEvB,GAAE,EAAE,IAAE,GAAEA,GAAEuB,KAAE,KAAG,CAAC,IAAEN,IAAEjB,GAAEuB,KAAE,MAAI,CAAC,KAAGvB,GAAE,EAAE,IAAE,KAAG,GAAET,GAAEgC,KAAE,MAAI,CAAC,IAAE,GAAE9B,GAAE,GAAG,KAAGA,GAAE,GAAG,IAAE,KAAG,MAAI,MAAI;AAAG,wBAAM;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,kBAAAO,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAG,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAA,YAAC,KAAK,KAAI;AAAC,kBAAGmB,IAAE;AAAC,gBAAAD,KAAE,IAAGC,KAAE,GAAEG,KAAE;AAAG,sBAAM;AAAA,cAAC;AAAC,kBAAGL,KAAEjB,GAAE,EAAE,IAAE,GAAEP,GAAE,GAAG,IAAE,GAAE;AAAC,gBAAAO,GAAE,EAAE,IAAEiB,KAAE;AAAG,sBAAM;AAAA,cAAC;AAAC,qBAAK,EAAEA,OAAI,MAAIjB,GAAE,EAAE,IAAE,OAAK,MAAI;AAAC,oBAAGiB,KAAE0B,GAAE,CAAC,IAAE,GAAEE,GAAE5B,EAAC,IAAE,EAAE,CAAAc,GAAEd,EAAC;AAAA,yBAAUA,MAAG,MAAI,MAAI,KAAI;AAAC,kBAAAK,KAAE;AAAG;AAAA,gBAAK;AAAC,gBAAAL,MAAGjB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEA,GAAE,EAAE,IAAEiB;AAAA,cAAC;AAAC,mBAAIK,KAAE,MAAI,OAAKtB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,IAAGuB,MAAGoB,GAAE,CAAC,IAAE,MAAI,MAAI,MAAI,KAAI1B,KAAEjB,GAAE,EAAE,IAAE,GAAEuB,MAAGE,GAAER,KAAE,IAAE,GAAE,IAAG,CAAC,IAAE,GAAE;AAAC,gBAAAmB,GAAE;AAAE,sBAAM;AAAA,cAAC;AAAC,kBAAGpC,GAAE,EAAE,IAAEiB,KAAE,GAAEA,KAAE0B,GAAE,CAAC,IAAE,GAAEE,GAAE5B,EAAC,IAAE,GAAE;AAAC,gBAAAgC,GAAE5B,IAAEJ,IAAE,CAAC;AAAE,sBAAM;AAAA,cAAC,OAAK;AAAC,gBAAAmB,GAAE;AAAE,sBAAM;AAAA,cAAC;AAAA,YAAC;AAAA,YAAC,SAAQ;AAAC,kBAAGjB,IAAE;AAAC,gBAAAD,KAAE,IAAGC,KAAE,GAAEG,KAAE;AAAG,sBAAM;AAAA,cAAC;AAAC,sBAAOL,MAAG,MAAI,IAAG;AAAA,gBAAC,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK,IAAG;AAAC,kBAAAE,KAAE,GAAEG,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,kBAAAJ,KAAE,GAAEC,KAAE,GAAEG,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAA,UAAC;AAAA,eAAO;AAAI,SAACA,KAAE,MAAI,OAAKL,KAAEjB,GAAE,EAAE,IAAE,IAAGiB,KAAE,OAAKI,MAAGH,MAAG,KAAG,KAAGlB,GAAE,EAAE,IAAEiB,KAAE,KAAGK,KAAE;AAAI;AAAG,eAAIA,KAAE,MAAI,IAAG;AAAC,gBAAG7B,GAAE,GAAG,IAAE,GAAE;AAAC,cAAAO,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAG;AAAA,YAAK;AAAC,iBAAIiB,KAAEjB,GAAE,EAAE,IAAE,GAAEkB,KAAElB,GAAE,EAAE,IAAE,OAAI;AAAC,kBAAGkB,OAAI,KAAGD,OAAI,GAAE;AAAC,gBAAAK,KAAE;AAAG;AAAA,cAAK;AAAC,kBAAGF,KAAE3B,GAAEyB,MAAG,CAAC,IAAE,GAAE2B,GAAEzB,EAAC,IAAE,GAAE;AAAC,gBAAAE,KAAE;AAAG;AAAA,cAAK;AAAC,cAAAC,KAAEL,KAAE,IAAE,GAAElB,GAAE,EAAE,IAAEuB,IAAEL,KAAEK;AAAA,YAAC;AAAC,iBAAID,KAAE,MAAI,IAAG;AAAC,cAAA2B,GAAE5B,IAAED,IAAED,EAAC;AAAE;AAAA,YAAK,YAAUG,KAAE,MAAI,IAAG;AAAC,cAAAc,GAAE;AAAE;AAAA,YAAK;AAAA,UAAC;AAAA,eAAO;AAAA,MAAG;AAAC,MAAA9B,GAAE,GAAE,GAAG;AAAE,eAAS2C,GAAEhC,IAAEC,IAAEC,IAAE;AAAC,QAAAF,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE;AAAE,gBAAOD,MAAGpB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEkB,MAAG,MAAI,IAAG;AAAA,UAAC,KAAK,IAAG;AAAC,YAAAa,GAAE,EAAE,GAAEV,KAAE;AAAE;AAAA,UAAK;AAAA,UAAC,KAAK,IAAG;AAAC,YAAAU,GAAE,EAAE,GAAEV,KAAE;AAAE;AAAA,UAAK;AAAA,UAAC;AAAQ,YAAAe,GAAE;AAAA,QAAC;AAAC;AAAG,eAAIf,KAAE,MAAI,GAAE;AAAC,gBAAG8B,IAAGlC,IAAEG,IAAEpB,GAAE,EAAE,IAAE,GAAE,CAAC,GAAEmB,OAAInB,IAAGA,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE,IAAGA,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAEkB,KAAEyB,GAAE,CAAC,IAAE,GAAExB,KAAED,MAAG,MAAI,MAAI,IAAGC,MAAGC,KAAEpB,GAAE,EAAE,IAAE,GAAEyB,GAAEL,KAAE,IAAE,GAAE,IAAG,EAAE,IAAE,MAAIC,KAAE,QAAMD,KAAEpB,GAAE,EAAE,IAAE,GAAEkB,MAAG,MAAI,MAAI,QAAMzB,GAAE2B,KAAE,KAAG,CAAC,IAAE,MAAI,QAAM3B,GAAE2B,KAAE,KAAG,CAAC,IAAE,MAAI,QAAM3B,GAAE2B,KAAE,KAAG,CAAC,IAAE,MAAI,QAAMC,KAAE,OAAMA,KAAE,MAAI,IAAG;AAAC,cAAArB,GAAE,EAAE,IAAEoB,KAAE;AAAG;AAAA,YAAK;AAAC,gBAAGpB,GAAE,EAAE,IAAEoB,OAAID,KAAE,IAAE,MAAI,KAAIwB,GAAE,CAAC,IAAE,MAAI,MAAI,MAAI,KAAI;AAAC,cAAA3C,GAAE,EAAE,IAAEoB;AAAE;AAAA,YAAK;AAAC,YAAAD,KAAEnB,GAAE,EAAE,IAAE,GAAEkB,KAAEC;AAAE,cAAE,YAAO;AAAC,sBAAOnB,GAAE,EAAE,IAAEkB,KAAE,GAAEA,KAAEyB,GAAE,CAAC,IAAE,GAAEzB,MAAG,MAAI,IAAG;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAa,GAAE,EAAE,GAAE/B,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAEkB,KAAEyB,GAAE,CAAC,IAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAZ,GAAE,EAAE,GAAE/B,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,GAAEkB,KAAEyB,GAAE,CAAC,IAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC;AAAQ,kBAAAzB,KAAE4B,GAAE5B,EAAC,IAAE;AAAA,cAAC;AAAC,kBAAGA,MAAG,MAAI,MAAI,IAAG;AAAC,gBAAAG,KAAE;AAAG;AAAA,cAAK;AAAC,sBAAOrB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,IAAG2C,GAAE,CAAC,IAAE,MAAI,MAAI,IAAG;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAZ,GAAE,EAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAA,GAAE,EAAE;AAAE;AAAA,gBAAK;AAAA,gBAAC,SAAQ;AAAC,kBAAAV,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAC,sBAAOrB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,IAAG2C,GAAE,CAAC,IAAE,MAAI,MAAI,IAAG;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAtB,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,gBAAC,KAAK;AAAG;AAAA,gBAAM,SAAQ;AAAC,kBAAAA,KAAE;AAAG,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAGrB,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG,IAAG2C,GAAE,CAAC,IAAE,MAAI,MAAI,MAAI,KAAI;AAAC,gBAAAtB,KAAE;AAAG;AAAA,cAAK;AAAC,cAAAH,KAAElB,GAAE,EAAE,IAAE;AAAA,YAAC;AAAC,iBAAIqB,KAAE,MAAI,IAAG;AAAC,cAAArB,GAAE,EAAE,IAAEoB;AAAE;AAAA,YAAK,YAAUC,KAAE,MAAI,IAAG;AAAC,cAAArB,GAAE,EAAE,IAAEoB;AAAE;AAAA,YAAK,YAAUC,KAAE,MAAI,IAAG;AAAC,cAAArB,GAAE,EAAE,IAAEoB;AAAE;AAAA,YAAK,YAAUC,KAAE,MAAI,IAAG;AAAC,cAAAA,KAAErB,GAAE,EAAE,IAAE,GAAEA,GAAEqB,KAAE,MAAI,CAAC,IAAEF,IAAEnB,GAAEqB,KAAE,MAAI,CAAC,KAAGrB,GAAE,EAAE,IAAE,KAAG;AAAE;AAAA,YAAK;AAAA,UAAC;AAAA,eAAO;AAAA,MAAG;AAAC,MAAAM,GAAE2C,IAAE,GAAG;AAAE,eAAS,GAAGhC,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,UAAE;AAAG,kBAAOxB,GAAEwB,MAAG,CAAC,IAAE,GAAE;AAAA,YAAC,KAAK;AAAI,sBAAOxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,GAAE;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,kBAAAA,KAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC,KAAK;AAAI,sBAAOxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,GAAE;AAAA,gBAAC,KAAK;AAAI,0BAAOxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,GAAE;AAAA,oBAAC,KAAK,KAAI;AAAC,sBAAAA,KAAEmC,GAAEnC,KAAE,KAAG,GAAE,GAAG,IAAE;AAAE,4BAAM;AAAA,oBAAC;AAAA,oBAAC,KAAK,IAAG;AAAC,sBAAAA,KAAEmC,GAAEnC,KAAE,KAAG,GAAE,EAAE,IAAE;AAAE,4BAAM;AAAA,oBAAC;AAAA,oBAAC,SAAQ;AAAC,sBAAAA,KAAE;AAAE,4BAAM;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,kBAAAA,KAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC,KAAK,KAAI;AAAC,mBAAIxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,QAAMxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,IAAI,SAAOxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,GAAE;AAAA,gBAAC,KAAK,IAAG;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,kBAAAA,KAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,kBAAM,CAAAA,KAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK,KAAI;AAAC,cAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK,KAAI;AAAC,cAAAA,KAAEA,KAAE,KAAG,GAAEmC,GAAEnC,IAAE,GAAG,IAAE,IAAEA,KAAE,IAAEA,KAAEe,GAAEf,IAAE,KAAI,CAAC,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK,KAAI;AAAC,cAAAA,KAAEmC,GAAEnC,KAAE,KAAG,GAAE,GAAG,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK,KAAI;AAAC,cAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK,KAAI;AAAC,cAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK;AAAI,sBAAOxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,GAAE;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEmC,GAAEnC,KAAE,KAAG,GAAE,GAAG,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,KAAK,KAAI;AAAC,kBAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,kBAAAA,KAAE;AAAE,wBAAM;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAQ,cAAAA,KAAE;AAAA,UAAC;AAAA,eAAO;AAAI,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAASwB,MAAI;AAAC,YAAIb,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,QAAAF,KAAElB,GAAE,EAAE,IAAE,GAAEmB,KAAEnB,GAAE,EAAE,IAAE;AAAE,UAAE,YAAO;AAAC,cAAGiB,KAAEE,KAAE,IAAE,GAAEA,OAAI,KAAGD,OAAI,GAAE;AAAC,YAAAA,KAAE;AAAG;AAAA,UAAK;AAAC,kBAAOzB,GAAEwB,MAAG,CAAC,IAAE,GAAE;AAAA,YAAC,KAAK,IAAG;AAAC,cAAAC,KAAE;AAAE,oBAAM;AAAA,YAAC;AAAA,YAAC,KAAK,IAAG;AAAC,mBAAIzB,GAAE0B,KAAE,KAAG,CAAC,IAAE,MAAI,KAAI;AAAC,gBAAAD,KAAE;AAAE,sBAAM;AAAA,cAAC;AAAC;AAAA,YAAK;AAAA,YAAC,KAAK,IAAG;AAAC,cAAAD,KAAEE,KAAE,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC;AAAA,UAAQ;AAAC,UAAAA,KAAEF;AAAA,QAAC;AAAC,SAACC,KAAE,MAAI,KAAGD,KAAEE,KAAE,IAAE,GAAEnB,GAAE,EAAE,IAAEiB,IAAEC,KAAElB,GAAE,EAAE,IAAE,GAAEoB,KAAE3B,GAAE,GAAG,IAAE,GAAE0B,KAAEC,KAAE,OAAMpB,GAAEkB,MAAGC,MAAG,MAAI,CAAC,IAAE,GAAE1B,GAAE,GAAG,IAAE2B,KAAE,KAAG,MAAI,IAAGpB,GAAEkB,MAAGC,MAAG,KAAG,KAAG,CAAC,IAAEF,OAAIC,KAAE,MAAI,KAAGlB,GAAE,EAAE,IAAEiB,IAAEE,KAAEnB,GAAE,EAAE,IAAE,GAAEoB,MAAG3B,GAAE,GAAG,IAAE,KAAG,MAAI,MAAI,IAAGA,GAAE,GAAG,IAAE2B,KAAGpB,GAAEmB,OAAIC,KAAE,UAAQ,MAAI,CAAC,IAAE,MAAI,KAAGgB,GAAE,MAAIlB,KAAE,MAAI,OAAKlB,GAAE,EAAE,IAAEiB,IAAEmB,GAAE;AAAA,MAAE;AAAC,MAAA9B,GAAEwB,KAAG,GAAG;AAAE,eAASa,GAAE1B,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,QAAAD,KAAEnB,GAAE,EAAE,IAAE;AAAE,UAAE,IAAE;AAAC,UAAAkB,KAAEzB,GAAE0B,MAAG,CAAC,IAAE;AAAE,YAAE;AAAG,gBAAGD,MAAG,MAAI,MAAI,GAAG,KAAGD,IAAE;AAAC,kBAAGY,GAAEX,EAAC,IAAE,EAAE;AAAM,oBAAM;AAAA,YAAC,OAAK;AAAC,kBAAGiB,IAAGjB,EAAC,IAAE,EAAE;AAAM,oBAAM;AAAA,YAAC;AAAA,gBAAM,SAAOzB,GAAE0B,KAAE,KAAG,CAAC,IAAE,GAAE;AAAA,cAAC,KAAK,IAAG;AAAC,gBAAAQ,IAAG;AAAE,sBAAM;AAAA,cAAC;AAAA,cAAC,KAAK,IAAG;AAAC,gBAAAC,IAAGX,EAAC;AAAE,sBAAM;AAAA,cAAC;AAAA,cAAC,SAAQ;AAAC,gBAAAC,KAAE;AAAG,sBAAM;AAAA,cAAC;AAAA,YAAC;AAAA,iBAAO;AAAI,UAAAE,KAAEpB,GAAE,EAAE,IAAE,GAAEmB,KAAEC,KAAE,IAAE,GAAEpB,GAAE,EAAE,IAAEmB;AAAA,QAAC,SAAOC,OAAI,KAAGpB,GAAE,EAAE,IAAE,OAAK;AAAG,eAAOkB,KAAE;AAAA,MAAC;AAAC,MAAAZ,GAAEqC,IAAE,GAAG;AAAE,eAASQ,IAAGlC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAAH,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE;AAAE,QAAAA,KAAEtB,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAEsB,KAAE,IAAGD,KAAErB,GAAE,EAAE,IAAE,GAAEA,IAAGqB,KAAE,IAAEA,KAAE,KAAG,IAAE,QAAM,CAAC,IAAEC,IAAEtB,GAAE,EAAE,IAAEqB,IAAErB,GAAE,EAAE,IAAEsB,IAAEtB,GAAEsB,KAAE,KAAG,CAAC,IAAEL,KAAGG,KAAE,MAAI,KAAGH,KAAE,GAAEI,KAAEF,OAAIE,MAAGD,KAAE,MAAI,GAAEH,KAAEI,KAAE,IAAE,GAAEA,KAAEA,KAAEF,KAAE,IAAE,IAAE,IAAGnB,GAAEsB,KAAE,MAAI,CAAC,IAAED,IAAErB,GAAEsB,KAAE,MAAI,CAAC,IAAEL,IAAEjB,GAAEsB,MAAG,CAAC,IAAEJ,IAAElB,GAAEsB,KAAE,KAAG,CAAC,IAAEH,IAAEnB,GAAEsB,KAAE,MAAI,CAAC,IAAE,GAAEtB,GAAEsB,KAAE,MAAI,CAAC,IAAEF,IAAEF,MAAGE,KAAE,MAAI,GAAE7B,GAAE+B,KAAE,MAAI,CAAC,IAAEJ,KAAE,GAAElB,GAAEsB,KAAE,MAAI,CAAC,IAAE,GAAEJ,MAAGE,KAAE,MAAI,MAAI7B,GAAE,GAAG,IAAE;AAAA,MAAE;AAAC,MAAAe,GAAE6C,KAAG,GAAG;AAAE,eAASpB,GAAEd,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,aAAIA,KAAErB,GAAE,EAAE,IAAE,GAAEkB,KAAElB,GAAE,EAAE,IAAE,OAAI;AAAC,cAAGoB,KAAEF,KAAE,IAAE,GAAEA,OAAI,KAAGG,OAAI,GAAE;AAAC,YAAAH,KAAE;AAAE;AAAA,UAAK;AAAC,cAAGC,KAAE1B,GAAE2B,MAAG,CAAC,IAAE,GAAED,MAAG,MAAI,MAAIF,MAAG,MAAI,IAAG;AAAC,YAAAC,KAAE;AAAG;AAAA,UAAK;AAAC,cAAGC,MAAG,MAAI,MAAI,GAAG,CAAAA,KAAED,KAAE,IAAE,IAAGzB,GAAE0B,MAAG,CAAC,IAAE,MAAI,MAAID,KAAEA,KAAE,IAAE,GAAEA,MAAGzB,GAAEyB,MAAG,CAAC,IAAE,MAAI,KAAGA,KAAEC,MAAGD,KAAEC;AAAA,mBAAUkC,IAAGlC,EAAC,IAAE,GAAE;AAAC,YAAAD,KAAE;AAAE;AAAA,UAAK,MAAM,CAAAA,KAAEE;AAAA,QAAC;AAAC,SAACF,KAAE,MAAI,KAAGlB,GAAE,EAAE,IAAEoB,IAAEgB,GAAE,MAAIlB,KAAE,MAAI,OAAKlB,GAAE,EAAE,IAAEoB;AAAA,MAAE;AAAC,MAAAd,GAAEyB,IAAE,GAAG;AAAE,eAASgB,IAAG9B,IAAEC,IAAE;AAAC,QAAAD,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,eAAOH,KAAEnB,GAAE,EAAE,IAAE,GAAEoB,KAAE3B,GAAE0B,MAAG,CAAC,IAAE,GAAEG,MAAGL,KAAE,OAAKC,KAAE,IAAGG,KAAEC,KAAE,IAAEL,IAAEK,KAAEA,KAAE,IAAEJ,IAAEE,MAAG,MAAI,MAAI,OAAKpB,GAAE,EAAE,IAAEmB,KAAE,GAAEA,KAAEwB,GAAE,CAAC,IAAE,GAAE1B,KAAEjB,GAAE,EAAE,IAAE,GAAE6C,GAAE1B,EAAC,IAAE,KAAGY,GAAEZ,EAAC,GAAED,MAAGlB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEA,GAAE,EAAE,IAAEkB,OAAI4B,GAAE3B,EAAC,IAAE,GAAED,KAAElB,GAAE,EAAE,IAAE,IAAGoB,KAAEuB,GAAE,CAAC,IAAE,GAAExB,KAAEnB,GAAE,EAAE,IAAE,KAAImB,KAAE,OAAKF,KAAE,MAAI+B,GAAE/B,IAAEC,IAAEG,IAAEC,EAAC,GAAEF,KAAE;AAAA,MAAC;AAAC,MAAAd,GAAEyC,KAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAI9B,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,QAAAA,KAAEnB,GAAE,EAAE,IAAE,GAAEkB,KAAElB,GAAE,EAAE,IAAE;AAAE,UAAE,YAAO;AAAC,cAAGiB,KAAEC,KAAE,IAAE,GAAEA,OAAI,KAAGC,OAAI,GAAE;AAAC,YAAAD,KAAE;AAAE;AAAA,UAAK;AAAC,kBAAOzB,GAAEwB,MAAG,CAAC,IAAE,GAAE;AAAA,YAAC,KAAK;AAAA,YAAG,KAAK,IAAG;AAAC,cAAAC,KAAE;AAAE,oBAAM;AAAA,YAAC;AAAA,YAAC,KAAK,IAAG;AAAC,cAAAA,KAAE;AAAE,oBAAM;AAAA,YAAC;AAAA,YAAC,KAAK,IAAG;AAAC,cAAAD,KAAEC,KAAE,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC;AAAA,UAAQ;AAAC,UAAAA,KAAED;AAAA,QAAC;AAAC,gBAAOC,KAAE,MAAI,KAAGlB,GAAE,EAAE,IAAEiB,IAAEmB,GAAE,GAAEnB,KAAE,MAAIC,KAAE,MAAI,MAAIlB,GAAE,EAAE,IAAEiB,IAAEA,KAAE,KAAIA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS2B,MAAI;AAAC,YAAIhB,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,UAAE,YAAO;AAAC,cAAGF,KAAEjB,GAAE,EAAE,IAAE,GAAEkB,KAAED,KAAE,IAAE,GAAEjB,GAAE,EAAE,IAAEkB,IAAED,OAAI,MAAIjB,GAAE,EAAE,IAAE,OAAK,GAAE;AAAC,YAAAmB,KAAE;AAAE;AAAA,UAAK;AAAC,kBAAO1B,GAAEyB,MAAG,CAAC,IAAE,GAAE;AAAA,YAAC,KAAK;AAAA,YAAG,KAAK,IAAG;AAAC,cAAAC,KAAE;AAAE,oBAAM;AAAA,YAAC;AAAA,YAAC,KAAK;AAAG,oBAAM;AAAA,YAAE,KAAK,IAAG;AAAC,iBAAG,IAAE;AAAE;AAAA,YAAK;AAAA,YAAC,KAAK,IAAG;AAAC,cAAAnB,GAAE,EAAE,IAAEiB,KAAE;AAAE;AAAA,YAAK;AAAA,YAAC;AAAA,UAAQ;AAAA,QAAC;AAAC,SAACE,KAAE,MAAI,KAAGiB,GAAE;AAAA,MAAC;AAAC,MAAA9B,GAAE2B,KAAG,GAAG;AAAE,eAAS,GAAGhB,IAAE;AAAC,gBAAOA,KAAEA,KAAE,GAAExB,GAAEwB,MAAG,CAAC,IAAE,GAAE;AAAA,UAAC,KAAK,IAAG;AAAC,YAAAA,MAAGxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI;AAAG;AAAA,UAAK;AAAA,UAAC,KAAK;AAAA,UAAG,KAAK,IAAG;AAAC,YAAAA,KAAE;AAAE;AAAA,UAAK;AAAA,UAAC,KAAK,KAAI;AAAC,YAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,UAAK;AAAA,UAAC,KAAK,KAAI;AAAC,YAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,UAAK;AAAA,UAAC,KAAK,KAAI;AAAC,YAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,UAAK;AAAA,UAAC;AAAQ,YAAAA,KAAE;AAAA,QAAC;AAAC,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAASsB,IAAGX,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,aAAID,MAAGrB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEA,GAAE,EAAE,IAAEqB,IAAEF,KAAEnB,GAAE,EAAE,IAAE,GAAEkB,KAAEG,KAAE,IAAE,GAAE,EAAEA,OAAI,KAAGF,OAAI,MAAIC,KAAE3B,GAAEyB,MAAG,CAAC,IAAE,GAAE,CAACD,MAAGoC,IAAGjC,EAAC,IAAE,OAAK;AAAC,cAAGA,MAAG,MAAI,MAAI,OAAK3B,GAAE4B,KAAE,KAAG,CAAC,IAAE,MAAI,IAAG;AAAC,YAAAC,KAAE;AAAE;AAAA,UAAK;AAAC,UAAAD,KAAEH;AAAA,QAAC;AAAC,SAACI,KAAE,MAAI,MAAItB,GAAE,EAAE,IAAEkB,IAAEA,KAAEG,KAAE,IAAE,IAAGrB,GAAE,EAAE,IAAEkB;AAAA,MAAC;AAAC,MAAAZ,GAAEsB,KAAG,GAAG;AAAE,eAASH,GAAER,IAAEC,IAAEC,IAAE;AAAC,QAAAF,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE;AAAE,UAAE;AAAG,cAAG,CAACF,GAAE,CAAAF,KAAE;AAAA,eAAM;AAAC,mBAAKG,KAAE7B,GAAE0B,MAAG,CAAC,IAAE,GAAEI,KAAE9B,GAAE2B,MAAG,CAAC,IAAE,GAAEE,MAAG,MAAI,MAAIC,MAAG,MAAI,KAAI,KAAGF,KAAEA,KAAE,KAAG,GAAEA,GAAE,CAAAF,KAAEA,KAAE,IAAE,GAAEC,KAAEA,KAAE,IAAE;AAAA,iBAAM;AAAC,cAAAD,KAAE;AAAE,oBAAM;AAAA,YAAC;AAAC,YAAAA,MAAGG,KAAE,QAAMC,KAAE,OAAK;AAAA,UAAC;AAAA,eAAO;AAAI,eAAOJ,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAEmB,IAAE,GAAG;AAAE,eAASmB,IAAG3B,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,UAAE;AAAG,kBAAOA,MAAG,MAAI,IAAG;AAAA,YAAC,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK,IAAG;AAAC,cAAAA,KAAE;AAAE;AAAA,YAAK;AAAA,YAAC;AAAQ,mBAAIA,KAAE,OAAK,MAAI,MAAI,MAAIA,KAAE,MAAI,SAAO,EAAE,CAAAA,KAAE;AAAA,mBAAM;AAAC,wBAAOA,MAAG,MAAI,IAAG;AAAA,kBAAC,KAAK;AAAA,kBAAG,KAAK;AAAA,kBAAG,KAAK,IAAG;AAAC,oBAAAA,KAAE;AAAE,0BAAM;AAAA,kBAAC;AAAA,kBAAC;AAAA,gBAAQ;AAAC,gBAAAA,MAAGA,KAAE,OAAK,SAAO;AAAA,cAAC;AAAA,UAAC;AAAA,eAAO;AAAI,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAEsC,KAAG,GAAG;AAAE,eAAS,GAAG3B,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,UAAE;AAAG,kBAAOA,MAAG,MAAI,IAAG;AAAA,YAAC,KAAK;AAAA,YAAG,KAAK;AAAA,YAAG,KAAK;AAAG;AAAA,YAAM;AAAQ,kBAAG,GAAGA,KAAE,MAAI,SAAO,KAAGA,KAAE,MAAI,SAAO,IAAEA,MAAG,MAAI,MAAI,KAAI;AAAC,wBAAOA,MAAG,MAAI,IAAG;AAAA,kBAAC,KAAK;AAAA,kBAAG,KAAK;AAAG,0BAAM;AAAA,kBAAE;AAAA,gBAAQ;AAAC,uBAAOA,MAAG,MAAI,MAAI,OAAKA,KAAE,OAAK,SAAO,IAAE;AAAA,cAAC;AAAA,UAAC;AAAA,eAAO;AAAI,eAAO;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAASgD,IAAGrC,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,YAAIC,KAAE;AAAE,QAAAA,KAAEzB,GAAEwB,MAAG,CAAC,IAAE;AAAE,UAAE;AAAG,eAAIC,KAAE,KAAG,UAAQ,GAAE;AAAC,oBAAOA,MAAG,MAAI,IAAG;AAAA,cAAC,KAAK;AAAA,cAAI,KAAK,IAAG;AAAC,gBAAAA,KAAE;AAAE,sBAAM;AAAA,cAAC;AAAA,cAAC;AAAA,YAAQ;AAAC,gBAAG0B,IAAG1B,EAAC,IAAE,EAAE,QAAOA,MAAG,MAAI,MAAI,MAAIgC,IAAGjC,EAAC,IAAE,KAAG;AAAE,YAAAC,KAAE;AAAA,UAAC,MAAM,CAAAA,KAAE;AAAA,eAAQ;AAAI,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAZ,GAAEgD,KAAG,GAAG;AAAE,eAAS,GAAGrC,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,eAAOF,KAAEJ,IAAEA,KAAEA,KAAE,KAAG,GAAEK,KAAED,IAAEnB,GAAEoB,MAAG,CAAC,IAAE,GAAEpB,GAAE,EAAE,IAAEiB,IAAEC,KAAElB,GAAE,CAAC,IAAE,GAAEqB,KAAEH,MAAGD,MAAG,KAAG,GAAEA,KAAEI,KAAE,IAAE,GAAE5B,GAAE4B,MAAG,CAAC,IAAE,GAAErB,GAAEoB,MAAG,CAAC,IAAEH,IAAEjB,GAAE,EAAE,IAAEiB,IAAEjB,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAE,GAAEe,KAAEI,IAAED,KAAE;AAAA,MAAC;AAAC,MAAAZ,GAAE,IAAG,GAAG;AAAE,eAAS0C,GAAE/B,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAAH,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE;AAAE,QAAAD,KAAErB,GAAE,EAAE,IAAE,GAAEA,GAAE,EAAE,IAAEqB,KAAE,IAAGC,KAAEtB,GAAE,EAAE,IAAE,GAAEA,IAAGsB,KAAE,IAAEA,KAAE,KAAG,IAAE,QAAM,CAAC,IAAED,IAAErB,GAAE,EAAE,IAAEqB,IAAErB,GAAEqB,MAAG,CAAC,IAAEJ,IAAEjB,GAAEqB,KAAE,KAAG,CAAC,IAAEH,IAAElB,GAAEqB,KAAE,KAAG,CAAC,IAAEF,IAAEnB,GAAEqB,KAAE,MAAI,CAAC,IAAED,IAAEpB,GAAEqB,KAAE,MAAI,CAAC,IAAE,GAAE9B,GAAE,GAAG,IAAE;AAAA,MAAC;AAAC,MAAAe,GAAE0C,IAAE,GAAG;AAAE,eAAShB,GAAEf,IAAEC,IAAEC,IAAE;AAAC,QAAAF,KAAEA,KAAE,GAAEC,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE,GAAEC,KAAE;AAAE,eAAOD,KAAEH,MAAG,IAAEE,MAAG,KAAG,GAAEE,KAAED,KAAE,IAAE,GAAEH,KAAEjB,GAAE,CAAC,IAAE,GAAEqB,OAAI,KAAGJ,OAAI,KAAG,EAAEQ,GAAEJ,IAAEH,IAAEC,MAAG,CAAC,IAAE,MAAIE,KAAE,OAAKJ,KAAE,KAAGA,KAAE,IAAEA,KAAEqC,IAAGlC,EAAC,IAAE,IAAEH,KAAE,GAAEA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE0B,IAAE,GAAG;AAAE,eAAS,GAAGf,IAAE;AAAC,gBAAOA,KAAEA,KAAE,GAAExB,GAAEwB,MAAG,CAAC,IAAE,GAAE;AAAA,UAAC,KAAK,KAAI;AAAC,YAAAA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE;AAAE;AAAA,UAAK;AAAA,UAAC,KAAK,KAAI;AAAC,aAACxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,MAAIA,KAAEe,GAAEf,KAAE,KAAG,GAAE,KAAI,CAAC,IAAE,IAAEA,KAAE;AAAE;AAAA,UAAK;AAAA,UAAC;AAAQ,YAAAA,KAAE;AAAA,QAAC;AAAC,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS8C,GAAEnC,IAAEC,IAAE;AAAC,QAAAD,KAAEA,KAAE,GAAEC,KAAEA,KAAE;AAAE,YAAIC,KAAE;AAAE,eAAOA,KAAEnB,GAAE,CAAC,IAAE,GAAEmB,OAAI,KAAGF,OAAI,MAAIxB,GAAEwB,MAAG,CAAC,IAAE,MAAIC,MAAG,MAAI,MAAIC,KAAE,OAAKF,KAAE,KAAGE,KAAE,IAAEA,KAAEe,IAAGzC,GAAEwB,KAAE,MAAI,CAAC,IAAE,CAAC,IAAE,IAAEE,KAAE,GAAEA,KAAE;AAAA,MAAC;AAAC,MAAAb,GAAE8C,IAAE,GAAG;AAAE,eAASlB,IAAGjB,IAAE;AAAC,QAAAA,KAAEA,KAAE;AAAE,UAAE;AAAG,eAAIA,KAAE,KAAG,SAAO,EAAE,CAAAA,KAAE;AAAA,eAAM;AAAC,oBAAOA,MAAG,MAAI,IAAG;AAAA,cAAC,KAAK;AAAA,cAAG,KAAK,KAAI;AAAC,gBAAAA,KAAE;AAAE,sBAAM;AAAA,cAAC;AAAA,cAAC;AAAA,YAAQ;AAAC,YAAAA,KAAEA,MAAG,MAAI,MAAI,MAAI2B,IAAG3B,EAAC,IAAE;AAAA,UAAE;AAAA,eAAO;AAAI,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE4B,KAAG,GAAG;AAAE,eAASP,MAAI;AAAC,YAAIV,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAE,QAAAF,KAAEjB,GAAE,EAAE,IAAE,GAAEmB,KAAEnB,GAAE,EAAE,IAAE;AAAE,UAAE,QAAKkB,KAAEC,KAAE,IAAE,GAAE,EAAEA,OAAI,KAAGF,OAAI,KAAI,SAAOxB,GAAEyB,MAAG,CAAC,IAAE,GAAE;AAAA,UAAC,KAAK;AAAA,UAAG,KAAK;AAAG,kBAAM;AAAA,UAAE;AAAQ,YAAAC,KAAED;AAAA,QAAC;AAAC,QAAAlB,GAAE,EAAE,IAAEkB;AAAA,MAAC;AAAC,MAAAZ,GAAEqB,KAAG,GAAG;AAAE,eAASmB,GAAE7B,IAAE;AAAC,aAAIA,KAAEA,KAAE,GAAE,EAAEY,GAAEZ,EAAC,IAAE,KAAG2B,IAAG3B,EAAC,IAAE,KAAI,KAAGA,MAAGjB,GAAE,EAAE,IAAE,KAAG,IAAE,GAAEA,GAAE,EAAE,IAAEiB,IAAEA,KAAExB,GAAEwB,MAAG,CAAC,IAAE,GAAE,EAAEA,MAAG,MAAI,KAAI;AAAC,UAAAA,KAAE;AAAE;AAAA,QAAK;AAAC,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAEwC,IAAE,GAAG;AAAE,eAAS,KAAI;AAAC,YAAI7B,KAAE;AAAE,gBAAOA,KAAEjB,IAAGA,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE,GAAEiB,KAAE,GAAE;AAAA,UAAC,KAAK,GAAE;AAAC,YAAAA,KAAE;AAAG;AAAA,UAAK;AAAA,UAAC,KAAK,GAAE;AAAC,YAAAA,KAAE;AAAG;AAAA,UAAK;AAAA,UAAC;AAAQ,YAAAA,KAAEA,MAAGjB,GAAE,CAAC,IAAE,MAAI;AAAA,QAAC;AAAC,eAAOiB,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,GAAGW,IAAE;AAAC,eAAOA,KAAEA,KAAE,GAAE,EAAEe,GAAEf,IAAE,KAAI,CAAC,IAAE,MAAI,EAAEe,GAAEf,IAAE,IAAG,CAAC,IAAE,KAAGA,KAAEe,GAAEf,IAAE,KAAI,CAAC,IAAE,IAAEA,KAAE,GAAEA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS6B,IAAGlB,IAAE;AAAC,gBAAOA,KAAEA,KAAE,GAAEA,MAAG,MAAI,IAAG;AAAA,UAAC,KAAK;AAAA,UAAI,KAAK;AAAA,UAAG,KAAK;AAAA,UAAG,KAAK;AAAA,UAAG,KAAK,GAAE;AAAC,YAAAA,KAAE;AAAE;AAAA,UAAK;AAAA,UAAC;AAAQ,YAAAA,KAAE;AAAA,QAAC;AAAC,eAAOA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE6B,KAAG,GAAG;AAAE,eAASe,IAAGjC,IAAE;AAAC,eAAOA,KAAEA,KAAE,IAAGxB,GAAEwB,MAAG,CAAC,IAAE,MAAI,OAAKxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,KAAGA,MAAGxB,GAAEwB,KAAE,MAAI,CAAC,IAAE,MAAI,KAAGA,KAAE,GAAEA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE4C,KAAG,GAAG;AAAE,eAAS1B,GAAEP,IAAE;AAAC,eAAOA,KAAEA,KAAE,IAAGjB,GAAE,CAAC,IAAE,OAAKiB,KAAE,KAAGA,KAAE,IAAEA,KAAEqC,IAAGrC,KAAE,KAAG,CAAC,IAAE,GAAEA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAEkB,IAAE,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIP,KAAE;AAAE,eAAOA,KAAEjB,IAAGA,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE,GAAEiB,KAAEA,KAAEA,MAAGjB,GAAE,CAAC,IAAE,MAAI,IAAEiB,KAAE,IAAGA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIW,KAAE;AAAE,eAAOA,KAAEjB,IAAGA,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE,GAAEiB,KAAEA,KAAEA,MAAGjB,GAAE,CAAC,IAAE,MAAI,IAAEiB,KAAE,IAAGA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIW,KAAE;AAAE,eAAOA,KAAEjB,IAAGA,GAAE,EAAE,IAAE,KAAG,KAAG,CAAC,IAAE,GAAEiB,KAAEA,KAAEA,MAAGjB,GAAE,CAAC,IAAE,MAAI,IAAEiB,KAAE,IAAGA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIW,KAAE;AAAE,eAAOA,KAAEjB,IAAGA,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE,GAAEiB,KAAEA,KAAEA,MAAGjB,GAAE,CAAC,IAAE,MAAI,IAAEiB,KAAE,IAAGA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIW,KAAE;AAAE,eAAOA,KAAEjB,IAAGA,GAAE,EAAE,IAAE,KAAG,KAAG,CAAC,IAAE,GAAEiB,KAAEA,KAAEA,MAAGjB,GAAE,CAAC,IAAE,MAAI,IAAEiB,KAAE,IAAGA,KAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIW,KAAE;AAAE,eAAOA,KAAEjB,GAAE,EAAE,IAAE,GAAEiB,KAAEjB,IAAGiB,KAAE,IAAEA,KAAE,KAAG,IAAE,QAAM,CAAC,IAAE,GAAEjB,GAAE,EAAE,IAAEiB,KAAGA,KAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,YAAIW,KAAE;AAAE,eAAOA,KAAEjB,GAAE,EAAE,IAAE,GAAEiB,KAAEjB,IAAGiB,KAAE,IAAEA,KAAE,KAAG,IAAE,QAAM,CAAC,IAAE,GAAEjB,GAAE,EAAE,IAAEiB,KAAGA,KAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,GAAG;AAAE,eAAS8B,KAAG;AAAC,QAAA7C,GAAE,GAAG,IAAE,GAAES,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAI,GAAEA,GAAE,EAAE,KAAGA,GAAE,EAAE,IAAE,KAAG;AAAA,MAAC;AAAC,MAAAM,GAAE8B,IAAE,GAAG;AAAE,eAASP,GAAEZ,IAAE;AAAC,eAAOA,KAAEA,KAAE,IAAGA,KAAE,QAAM,MAAI,MAAI,OAAKA,KAAE,KAAG,SAAO,IAAE;AAAA,MAAC;AAAC,MAAAX,GAAEuB,IAAE,GAAG;AAAE,eAASgB,GAAE5B,IAAE;AAAC,eAAOA,KAAEA,KAAE,GAAEA,MAAG,MAAI,MAAI,KAAGA,MAAG,MAAI,MAAI,KAAG;AAAA,MAAC;AAAC,MAAAX,GAAEuC,IAAE,GAAG;AAAE,eAAS,KAAI;AAAC,gBAAO7C,IAAGA,GAAE,EAAE,IAAE,KAAG,KAAG,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,gBAAON,IAAGA,GAAE,EAAE,IAAE,KAAG,KAAG,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,GAAG;AAAE,eAAS+C,IAAGpC,IAAE;AAAC,eAAOA,KAAEA,KAAE,GAAEA,MAAG,MAAI,MAAI,KAAGA,MAAG,MAAI,MAAI,KAAG;AAAA,MAAC;AAAC,MAAAX,GAAE+C,KAAG,GAAG;AAAE,eAAS,KAAI;AAAC,gBAAOrD,GAAEA,GAAE,EAAE,KAAG,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,GAAG;AAAE,eAAS,KAAI;AAAC,gBAAON,GAAEA,GAAE,EAAE,KAAG,CAAC,IAAE,MAAIA,GAAE,CAAC,IAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,IAAI;AAAE,eAAS,KAAI;AAAC,eAAOO,IAAGb,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,IAAI;AAAE,eAAS,GAAGW,IAAE;AAAC,QAAAA,KAAEA,KAAE,GAAEjB,GAAE,CAAC,IAAEiB;AAAA,MAAC;AAAC,MAAAX,GAAE,IAAG,IAAI;AAAE,eAAS,KAAI;AAAC,eAAON,IAAGA,GAAE,EAAE,IAAE,KAAG,MAAI,CAAC,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,IAAI;AAAE,eAAS,KAAI;AAAC,gBAAOf,GAAE,GAAG,IAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAe,GAAE,IAAG,IAAI;AAAE,eAAS,KAAI;AAAC,gBAAOf,GAAE,GAAG,IAAE,MAAI,IAAE;AAAA,MAAC;AAAC,MAAAe,GAAE,IAAG,IAAI;AAAE,eAAS,KAAI;AAAC,eAAON,GAAE,EAAE,IAAE;AAAA,MAAC;AAAC,MAAAM,GAAE,IAAG,IAAI;AAAE,eAAS,GAAGW,IAAE;AAAC,eAAOA,KAAEA,KAAE,GAAEF,KAAEE,KAAE,MAAI,KAAG,KAAI;AAAA,MAAG;AAAC,aAAOX,GAAE,IAAG,IAAI,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAEU,IAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,GAAE;AAAA,IAAC,GAAE,OAAO,OAAK,MAAI,OAAK,QAAO,CAAC,GAAEL,GAAE,GAAE4C,MAAG7C,GAAE,GAAGD,MAAG,KAAG,GAAG;AAAA,EAAC;AAAC,QAAMxB,KAAEsB,GAAE,SAAO;AAAE,EAAAG,GAAE,IAAI6C,GAAE,GAAE7C,GAAE,GAAGzB,KAAE,CAAC,GAAE2B,IAAGL,IAAE,IAAI,YAAYI,KAAG4C,KAAGtE,EAAC,CAAC,GAAEyB,GAAE,EAAE,MAAI,IAAEA,GAAE,EAAE,GAAE,EAAE;AAAG,QAAMxB,KAAE,CAAC,GAAEC,KAAE,CAAC;AAAE,SAAKuB,GAAE,GAAG,KAAG;AAAC,UAAMtB,KAAEsB,GAAE,GAAG,GAAErB,KAAEqB,GAAE,GAAG,GAAEpB,KAAEoB,GAAE,GAAG,GAAEnB,KAAEmB,GAAE,GAAG,GAAEjB,KAAEiB,GAAE,GAAG,GAAEV,KAAEU,GAAE,GAAG,GAAEG,KAAEH,GAAE,GAAG;AAAE,QAAII;AAAE,IAAAJ,GAAE,GAAG,MAAII,KAAE0C,IAAGjE,OAAI,KAAGH,KAAEA,KAAE,GAAEmB,GAAE,WAAWhB,OAAI,KAAGH,KAAE,IAAEA,EAAC,CAAC,IAAGF,GAAE,KAAK,EAAC,GAAE2B,IAAE,GAAEC,IAAE,GAAE1B,IAAE,GAAEC,IAAE,IAAGI,IAAE,IAAGO,IAAE,GAAET,IAAE,GAAED,GAAC,CAAC;AAAA,EAAC;AAAC,SAAKoB,GAAE,GAAG,KAAG;AAAC,UAAMtB,KAAEsB,GAAE,GAAG,GAAErB,KAAEqB,GAAE,GAAG,GAAEpB,KAAEoB,GAAE,IAAI,GAAEnB,KAAEmB,GAAE,IAAI,GAAEjB,KAAEc,GAAE,WAAWnB,EAAC,GAAEY,KAAEV,MAAG,IAAEiB,GAAE,WAAWjB,EAAC,IAAE;AAAG,IAAAH,GAAE,KAAK,EAAC,GAAEC,IAAE,GAAEC,IAAE,IAAGC,IAAE,IAAGC,IAAE,GAAEE,OAAI,MAAIA,OAAI,KAAG+D,IAAGpE,KAAE,GAAEK,EAAC,IAAEc,GAAE,MAAMnB,IAAEC,EAAC,GAAE,IAAGC,KAAE,IAAE,SAAOU,OAAI,MAAIA,OAAI,KAAGwD,IAAGlE,KAAE,GAAEU,EAAC,IAAEO,GAAE,MAAMjB,IAAEC,EAAC,EAAC,CAAC;AAAA,EAAC;AAAC,SAAM,CAACL,IAAEC,IAAE,CAAC,CAACuB,GAAE,EAAE,GAAE,CAAC,CAACA,GAAE,GAAG,CAAC;AAAC;AAAe,SAAS8C,IAAG1E,IAAEC,IAAE;AAAC,MAAED;AAAE,MAAIE,KAAE,IAAGC,KAAE;AAAE,aAAO;AAAC,SAAGsB,GAAE,UAAQ,EAAE;AAAE,UAAMrB,KAAEqB,GAAE,WAAW,CAAC;AAAE,QAAGrB,OAAIH,GAAE;AAAM,IAAAG,OAAI,MAAIF,MAAGuB,GAAE,MAAMtB,IAAE,CAAC,GAAED,MAAG,GAAG,GAAEC,KAAE,MAAIC,OAAI,QAAMA,OAAI,QAAMuE,IAAGvE,EAAC,KAAG,EAAE,GAAE,EAAE;AAAA,EAAE;AAAC,SAAOF,MAAGuB,GAAE,MAAMtB,IAAE,GAAG,GAAED;AAAC;AAAW,SAAS,KAAI;AAAC,MAAIF,KAAEyB,GAAE,WAAW,EAAE,CAAC;AAAE,UAAO,EAAE,GAAEzB,IAAE;AAAA,IAAC,KAAK;AAAI,aAAM;AAAA;AAAA,IAC900B,KAAK;AAAI,aAAM;AAAA,IAAK,KAAK;AAAI,aAAO,OAAO,aAAa4E,IAAG,CAAC,CAAC;AAAA,IAAE,KAAK;AAAI,cAAO,WAAU;AAAC,cAAM3E,KAAEwB,GAAE,WAAW,CAAC;AAAE,YAAIvB;AAAE,eAAOD,OAAI,OAAK,EAAE,GAAEC,KAAE0E,IAAGnD,GAAE,QAAQ,KAAI,CAAC,IAAE,CAAC,GAAE,EAAE,GAAEvB,KAAE,WAAS,EAAE,KAAGA,KAAE0E,IAAG,CAAC,GAAE1E,MAAG,QAAM,OAAO,aAAaA,EAAC,KAAGA,MAAG,OAAM,OAAO,aAAa,SAAOA,MAAG,KAAI,SAAO,OAAKA,GAAE;AAAA,MAAE,GAAE;AAAA,IAAE,KAAK;AAAI,aAAM;AAAA,IAAI,KAAK;AAAG,aAAM;AAAA,IAAK,KAAK;AAAI,aAAM;AAAA,IAAK,KAAK;AAAI,aAAM;AAAA,IAAK,KAAK;AAAG,MAAAuB,GAAE,WAAW,CAAC,MAAI,MAAI,EAAE;AAAA,IAAE,KAAK;AAAG,aAAM;AAAA,IAAG,KAAK;AAAA,IAAG,KAAK;AAAG,QAAE;AAAA,IAAE;AAAQ,UAAGzB,MAAG,MAAIA,MAAG,IAAG;AAAC,YAAIC,KAAEwB,GAAE,OAAO,IAAE,GAAE,CAAC,EAAE,MAAM,SAAS,EAAE,CAAC,GAAEvB,KAAE,SAASD,IAAE,CAAC;AAAE,eAAOC,KAAE,QAAMD,KAAEA,GAAE,MAAM,GAAE,EAAE,GAAEC,KAAE,SAASD,IAAE,CAAC,IAAG,KAAGA,GAAE,SAAO,GAAED,KAAEyB,GAAE,WAAW,CAAC,GAAExB,OAAI,OAAKD,OAAI,MAAIA,OAAI,MAAI,EAAE,GAAE,OAAO,aAAaE,EAAC;AAAA,MAAC;AAAC,aAAOyE,IAAG3E,EAAC,IAAE,KAAG,OAAO,aAAaA,EAAC;AAAA,EAAC;AAAC;AAAW,SAAS4E,IAAG5E,IAAE;AAAC,QAAMC,KAAE;AAAE,MAAIC,KAAE,GAAEC,KAAE;AAAE,WAAQC,KAAE,GAAEA,KAAEJ,IAAE,EAAEI,IAAE,EAAE,GAAE;AAAC,QAAIC,IAAEC,KAAEmB,GAAE,WAAW,CAAC;AAAE,QAAGnB,OAAI,IAAG;AAAC,UAAGA,MAAG,GAAG,CAAAD,KAAEC,KAAE,KAAG;AAAA,eAAWA,MAAG,GAAG,CAAAD,KAAEC,KAAE,KAAG;AAAA,WAAO;AAAC,YAAG,EAAEA,MAAG,MAAIA,MAAG,IAAI;AAAM,QAAAD,KAAEC,KAAE;AAAA,MAAE;AAAC,UAAGD,MAAG,GAAG;AAAM,MAAAF,KAAEG,IAAEJ,KAAE,KAAGA,KAAEG;AAAA,IAAC,MAAM,CAAAF,OAAI,MAAIC,OAAI,KAAG,EAAE,GAAED,KAAEG;AAAA,EAAC;AAAC,SAAOH,OAAI,MAAI,IAAEF,OAAID,MAAG,EAAE,GAAEE;AAAC;AAAW,SAASyE,IAAG3E,IAAE;AAAC,SAAOA,OAAI,MAAIA,OAAI;AAAE;AAAW,SAAS,IAAG;AAAC,QAAM,OAAO,OAAO,MAAM,eAAe0B,GAAE,IAAID,GAAE,MAAM,GAAE,CAAC,EAAE,MAAM;AAAA,CAC/kC,EAAE,MAAM,IAAI,IAAEA,GAAE,YAAY;AAAA,GAC3B,IAAE,CAAC,CAAC,EAAE,GAAE,EAAC,KAAI,EAAC,CAAC;AAAC;AAAi0E,SAAS,GAAGzB,IAAE;AAAC,SAAO,GAAG,KAAKA,EAAC;AAAC;AAAuB,SAAS,GAAGA,IAAE;AAAC,SAAOA,GAAE,WAAW,IAAI;AAAC;AAA6B,SAAS6E,IAAG7E,IAAE;AAAC,SAAOA,GAAE,WAAW,GAAG;AAAC;AAAwB,SAAS,GAAGA,IAAE;AAAC,SAAOA,GAAE,WAAW,OAAO;AAAC;AAAmB,SAAS8E,IAAG9E,IAAE;AAAC,SAAM,SAAS,KAAKA,EAAC;AAAC;AAAoB,SAAS+E,IAAG/E,IAAE;AAAC,QAAMC,KAAE,GAAG,KAAKD,EAAC;AAAE,SAAOgF,IAAG/E,GAAE,CAAC,GAAEA,GAAE,CAAC,KAAG,IAAGA,GAAE,CAAC,GAAEA,GAAE,CAAC,KAAG,IAAGA,GAAE,CAAC,KAAG,KAAIA,GAAE,CAAC,KAAG,IAAGA,GAAE,CAAC,KAAG,EAAE;AAAC;AAA0B,SAAS,GAAGD,IAAE;AAAC,QAAMC,KAAE,GAAG,KAAKD,EAAC,GAAEE,KAAED,GAAE,CAAC;AAAE,SAAO+E,IAAG,SAAQ,IAAG/E,GAAE,CAAC,KAAG,IAAG,IAAG4E,IAAG3E,EAAC,IAAEA,KAAE,MAAIA,IAAED,GAAE,CAAC,KAAG,IAAGA,GAAE,CAAC,KAAG,EAAE;AAAC;AAAsB,SAAS+E,IAAGhF,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,SAAM,EAAC,QAAON,IAAE,MAAKC,IAAE,MAAKC,IAAE,MAAKC,IAAE,MAAKC,IAAE,OAAMC,IAAE,MAAKC,IAAE,MAAK,EAAC;AAAC;AAAiB,SAAS2E,IAAGjF,IAAE;AAAC,MAAG,GAAGA,EAAC,GAAE;AAAC,UAAME,KAAE6E,IAAG,UAAQ/E,EAAC;AAAE,WAAOE,GAAE,SAAO,IAAGA,GAAE,OAAK,GAAEA;AAAA,EAAC;AAAC,MAAG2E,IAAG7E,EAAC,GAAE;AAAC,UAAME,KAAE6E,IAAG,mBAAiB/E,EAAC;AAAE,WAAOE,GAAE,SAAO,IAAGA,GAAE,OAAK,IAAGA,GAAE,OAAK,GAAEA;AAAA,EAAC;AAAC,MAAG,GAAGF,EAAC,EAAE,QAAO,GAAGA,EAAC;AAAE,MAAG,GAAGA,EAAC,EAAE,QAAO+E,IAAG/E,EAAC;AAAE,QAAMC,KAAE8E,IAAG,oBAAkB/E,EAAC;AAAE,SAAOC,GAAE,SAAO,IAAGA,GAAE,OAAK,IAAGA,GAAE,OAAKD,KAAEA,GAAE,WAAW,GAAG,IAAE,IAAEA,GAAE,WAAW,GAAG,IAAE,IAAE,IAAE,GAAEC;AAAC;AAAkB,SAAS,GAAGD,IAAE;AAAC,MAAGA,GAAE,SAAS,KAAK,EAAE,QAAOA;AAAE,QAAMC,KAAED,GAAE,YAAY,GAAG;AAAE,SAAOA,GAAE,MAAM,GAAEC,KAAE,CAAC;AAAC;AAA2B,SAAS,GAAGD,IAAEC,IAAE;AAAC,EAAAiF,IAAGjF,IAAEA,GAAE,IAAI,GAAED,GAAE,SAAO,MAAIA,GAAE,OAAKC,GAAE,OAAKD,GAAE,OAAK,GAAGC,GAAE,IAAI,IAAED,GAAE;AAAI;AAAoB,SAASkF,IAAGlF,IAAEC,IAAE;AAAC,QAAMC,KAAED,MAAG,GAAEE,KAAEH,GAAE,KAAK,MAAM,GAAG;AAAE,MAAII,KAAE,GAAEC,KAAE,GAAEC,KAAE;AAAG,WAAQE,KAAE,GAAEA,KAAEL,GAAE,QAAOK,MAAI;AAAC,UAAMC,KAAEN,GAAEK,EAAC;AAAE,QAAG,CAACC,IAAE;AAAC,MAAAH,KAAE;AAAG;AAAA,IAAQ;AAAC,QAAGA,KAAE,OAAGG,OAAI,KAAI;AAAC,UAAGA,OAAI,MAAK;AAAC,QAAAJ,MAAGC,KAAE,MAAGD,MAAID,QAAKF,OAAIC,GAAEC,IAAG,IAAEK;AAAG;AAAA,MAAQ;AAAC,MAAAN,GAAEC,IAAG,IAAEK,IAAEJ;AAAA,IAAG;AAAA,EAAC;AAAC,MAAIE,KAAE;AAAG,WAAQC,KAAE,GAAEA,KAAEJ,IAAEI,KAAI,CAAAD,MAAG,MAAIJ,GAAEK,EAAC;AAAE,GAAC,CAACD,MAAGD,MAAG,CAACC,GAAE,SAAS,KAAK,OAAKA,MAAG,MAAKP,GAAE,OAAKO;AAAC;AAAuB,SAAS,GAAGP,IAAEC,IAAE;AAAC,MAAG,CAACD,MAAG,CAACC,GAAE,QAAM;AAAG,QAAMC,KAAE+E,IAAGjF,EAAC;AAAE,MAAIG,KAAED,GAAE;AAAK,MAAGD,MAAGE,OAAI,GAAE;AAAC,UAAME,KAAE4E,IAAGhF,EAAC,GAAEK,KAAED,GAAE;AAAK,YAAOF,IAAE;AAAA,MAAC,KAAK;AAAE,QAAAD,GAAE,OAAKG,GAAE;AAAA,MAAK,KAAK;AAAE,QAAAH,GAAE,QAAMG,GAAE;AAAA,MAAM,KAAK;AAAA,MAAE,KAAK;AAAE,WAAGH,IAAEG,EAAC;AAAA,MAAE,KAAK;AAAE,QAAAH,GAAE,OAAKG,GAAE,MAAKH,GAAE,OAAKG,GAAE,MAAKH,GAAE,OAAKG,GAAE;AAAA,MAAK,KAAK;AAAE,QAAAH,GAAE,SAAOG,GAAE;AAAA,IAAM;AAAC,IAAAC,KAAEH,OAAIA,KAAEG;AAAA,EAAE;AAAC,EAAA4E,IAAGhF,IAAEC,EAAC;AAAE,QAAMC,KAAEF,GAAE,QAAMA,GAAE;AAAK,UAAOC,IAAE;AAAA,IAAC,KAAK;AAAA,IAAE,KAAK;AAAE,aAAOC;AAAA,IAAE,KAAK,GAAE;AAAC,YAAMC,KAAEH,GAAE,KAAK,MAAM,CAAC;AAAE,aAAOG,KAAEyE,IAAG7E,MAAGD,EAAC,KAAG,CAAC8E,IAAGzE,EAAC,IAAE,OAAKA,KAAED,KAAEC,KAAED,KAAEA,MAAG;AAAA,IAAG;AAAA,IAAC,KAAK;AAAE,aAAOF,GAAE,OAAKE;AAAA,IAAE;AAAQ,aAAOF,GAAE,SAAO,OAAKA,GAAE,OAAKA,GAAE,OAAKA,GAAE,OAAKA,GAAE,OAAKE;AAAA,EAAC;AAAC;AAAmB,SAAS+E,IAAGnF,IAAEC,IAAE;AAAC,SAAOA,MAAG,CAACA,GAAE,SAAS,GAAG,MAAIA,MAAG,MAAK,GAAGD,IAAEC,EAAC;AAAC;AAAiB,SAAS,GAAGD,IAAE;AAAC,MAAG,CAACA,GAAE,QAAM;AAAG,QAAMC,KAAED,GAAE,YAAY,GAAG;AAAE,SAAOA,GAAE,MAAM,GAAEC,KAAE,CAAC;AAAC;AAAiC,SAAS,GAAGD,IAAEC,IAAE;AAAC,QAAMC,KAAEkF,IAAGpF,IAAE,CAAC;AAAE,MAAGE,OAAIF,GAAE,OAAO,QAAOA;AAAE,EAAAC,OAAID,KAAEA,GAAE,MAAM;AAAG,WAAQG,KAAED,IAAEC,KAAEH,GAAE,QAAOG,KAAEiF,IAAGpF,IAAEG,KAAE,CAAC,EAAE,CAAAH,GAAEG,EAAC,IAAE,GAAGH,GAAEG,EAAC,GAAEF,EAAC;AAAE,SAAOD;AAAC;AAAmB,SAASoF,IAAGpF,IAAEC,IAAE;AAAC,WAAQC,KAAED,IAAEC,KAAEF,GAAE,QAAOE,KAAI,KAAG,CAAC,GAAGF,GAAEE,EAAC,CAAC,EAAE,QAAOA;AAAE,SAAOF,GAAE;AAAM;AAAiC,SAAS,GAAGA,IAAE;AAAC,WAAQC,KAAE,GAAEA,KAAED,GAAE,QAAOC,KAAI,KAAGD,GAAEC,EAAC,EAAEoF,EAAC,IAAErF,GAAEC,KAAE,CAAC,EAAEoF,EAAC,EAAE,QAAM;AAAG,SAAM;AAAE;AAAkB,SAAS,GAAGrF,IAAEC,IAAE;AAAC,SAAOA,OAAID,KAAEA,GAAE,MAAM,IAAGA,GAAE,KAAK,EAAE;AAAC;AAAsB,SAAS,GAAGA,IAAEC,IAAE;AAAC,SAAOD,GAAEqF,EAAC,IAAEpF,GAAEoF,EAAC;AAAC;AAAkC,SAAS,GAAGrF,IAAEC,IAAEC,IAAEC,IAAE;AAAC,SAAKD,MAAGC,MAAG;AAAC,UAAMC,KAAEF,MAAGC,KAAED,MAAG,IAAGG,KAAEL,GAAEI,EAAC,EAAEiF,EAAC,IAAEpF;AAAE,QAAGI,OAAI,EAAE,QAAOiF,MAAG,MAAGlF;AAAE,IAAAC,KAAE,IAAEH,KAAEE,KAAE,IAAED,KAAEC,KAAE;AAAA,EAAC;AAAC,SAAOkF,MAAG,OAAGpF,KAAE;AAAC;AAAsB,SAAS,GAAGF,IAAEC,IAAEC,IAAE;AAAC,WAAQC,KAAED,KAAE,GAAEC,MAAG,KAAGH,GAAEG,EAAC,EAAEkF,EAAC,MAAIpF,IAAEC,KAAEC,KAAI;AAAC,SAAOD;AAAC;AAAoB,SAAS,KAAI;AAAC,SAAM,EAAC,SAAQ,IAAG,YAAW,IAAG,WAAU,GAAE;AAAC;AAAuB,SAAS,GAAGF,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAK,EAAC,SAAQC,IAAE,YAAWC,IAAE,WAAUC,GAAC,IAAEJ;AAAE,MAAIK,KAAE,GAAEC,KAAER,GAAE,SAAO;AAAE,MAAGG,OAAIC,IAAE;AAAC,QAAGH,OAAII,GAAE,QAAOiF,MAAGhF,OAAI,MAAIN,GAAEM,EAAC,EAAE+E,EAAC,MAAIpF,IAAEK;AAAE,IAAAL,MAAGI,KAAEE,KAAED,OAAI,KAAG,IAAEA,KAAEE,KAAEF;AAAA,EAAC;AAAC,SAAOJ,GAAE,UAAQC,IAAED,GAAE,aAAWD,IAAEC,GAAE,YAAU,GAAGF,IAAEC,IAAEM,IAAEC,EAAC;AAAC;AAAkpB,SAAS,GAAGR,IAAE;AAAC,SAAOA;AAAC;AAAgB,SAAS,GAAGA,IAAE;AAAC,MAAIC;AAAE,UAAOA,KAAED,IAAG,aAAWC,GAAE,WAAS,GAAGD,GAAE,QAAQ;AAAE;AAAyB,SAAS,GAAGA,IAAEC,IAAEC,IAAE;AAAC,QAAMC,KAAE,GAAGH,EAAC;AAAE,MAAGC,MAAGE,GAAE,OAAO,QAAO;AAAK,QAAMC,KAAED,GAAEF,EAAC,GAAEI,KAAE,GAAGD,IAAEJ,GAAE,cAAaC,IAAEC,EAAC;AAAE,SAAOG,OAAI,KAAG,OAAKD,GAAEC,EAAC;AAAC;AAAsB,SAAS,GAAGL,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,MAAIC,KAAE,GAAGL,IAAEG,IAAEF,IAAEC,EAAC;AAAE,SAAOoF,QAAKjF,KAAE,GAAGL,IAAEG,IAAEE,EAAC,IAAGA,OAAI,MAAIA,OAAIL,GAAE,SAAO,KAAGK;AAAC;AAA6H,SAAS,GAAGL,IAAE;AAAC,SAAOA;AAAC;AAAgB,SAAS,GAAGA,IAAEC,IAAE;AAAC,SAAOD,GAAE,SAASC,EAAC;AAAC;AAAa,SAAS,EAAED,IAAEC,IAAE;AAAC,QAAMC,KAAE,GAAGF,IAAEC,EAAC;AAAE,MAAGC,OAAI,OAAO,QAAOA;AAAE,QAAK,EAAC,OAAMC,IAAE,UAASC,GAAC,IAAEJ,IAAEK,KAAEF,GAAE,KAAKF,EAAC;AAAE,SAAOG,GAAEH,EAAC,IAAEI,KAAE;AAAC;AAAY,SAAS,GAAGL,IAAEC,IAAE;AAAC,QAAMC,KAAE,GAAGF,IAAEC,EAAC;AAAE,MAAGC,OAAI,OAAO;AAAO,QAAK,EAAC,OAAMC,IAAE,UAASC,GAAC,IAAEJ;AAAE,WAAQK,KAAEH,KAAE,GAAEG,KAAEF,GAAE,QAAOE,MAAI;AAAC,UAAMC,KAAEH,GAAEE,EAAC;AAAE,IAAAF,GAAEE,KAAE,CAAC,IAAEC,IAAEF,GAAEE,EAAC;AAAA,EAAG;AAAC,EAAAF,GAAEH,EAAC,IAAE,QAAOE,GAAE,IAAI;AAAC;AAAyQ,SAAS,GAAGH,IAAE;AAAC,SAAOA;AAAC;AAAoF,SAAS,GAAGA,IAAEC,IAAEC,IAAE;AAAC,QAAK,EAAC,UAASC,IAAE,iBAAgBC,GAAC,IAAEJ,IAAEK,KAAE,EAAEF,IAAEF,EAAC;AAAE,EAAAG,GAAEC,EAAC,IAAEH;AAAC;AAA0B,SAAS,GAAGF,IAAEC,IAAEC,KAAE,MAAG;AAAC,QAAK,EAAC,UAASC,IAAE,iBAAgBC,IAAE,aAAYC,GAAC,IAAEL,IAAEM,KAAE,EAAEH,IAAEF,EAAC;AAAE,EAAAK,OAAIF,GAAE,WAASA,GAAEE,EAAC,IAAE,OAAMJ,KAAE,EAAEG,IAAEC,EAAC,IAAE,GAAGD,IAAEC,EAAC;AAAC;AAAmB,SAAS,GAAGN,IAAE;AAAC,QAAK,EAAC,WAAUC,IAAE,UAASC,IAAE,iBAAgBC,IAAE,QAAOC,IAAE,aAAYC,GAAC,IAAEL;AAAE,SAAO,GAAGC,EAAC,GAAE,EAAC,SAAQ,GAAE,MAAKD,GAAE,QAAM,QAAO,OAAMI,GAAE,OAAM,YAAWJ,GAAE,cAAY,QAAO,SAAQE,GAAE,OAAM,gBAAeC,IAAE,UAASF,IAAE,YAAWI,GAAE,MAAK;AAAC;AAAsB,SAAS,GAAGL,IAAE;AAAC,QAAMC,KAAE,GAAGD,EAAC;AAAE,SAAO,OAAO,OAAO,OAAO,OAAO,CAAC,GAAEC,EAAC,GAAE,EAAC,UAASe,IAAGf,GAAE,QAAQ,EAAC,CAAC;AAAC;AAAsB,SAAS,GAAGD,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAK,EAAC,WAAUC,IAAE,UAASE,IAAE,iBAAgBO,IAAE,QAAOa,GAAC,IAAE9B,IAAE+B,KAAE,GAAGvB,IAAEP,EAAC,GAAE+B,KAAE,GAAGD,IAAE7B,EAAC;AAAE,MAAG,CAACC,GAAE,QAAO,GAAG4B,IAAEC,EAAC,IAAE,SAAO,GAAGD,IAAEC,IAAE,CAAC9B,EAAC,CAAC;AAAE,QAAM+B,KAAE,EAAEvB,IAAEP,EAAC,GAAEwC,KAAErC,KAAE,EAAEwB,IAAExB,EAAC,IAAE;AAAG,MAAG2B,OAAIhB,GAAE,WAASA,GAAEgB,EAAC,IAAE,OAAM,CAAC,GAAGF,IAAEC,IAAEC,IAAE7B,IAAEC,IAAEsC,EAAC,EAAE,QAAO,GAAGZ,IAAEC,IAAE1B,KAAE,CAACJ,IAAE+B,IAAE7B,IAAEC,IAAEsC,EAAC,IAAE,CAACzC,IAAE+B,IAAE7B,IAAEC,EAAC,CAAC;AAAC;AAA4B,SAAS,GAAGN,IAAEC,IAAE;AAAC,WAAQC,KAAEF,GAAE,QAAOE,MAAGD,IAAEC,KAAI,CAAAF,GAAEE,EAAC,IAAE,CAAC;AAAE,SAAOF,GAAEC,EAAC;AAAC;AAAiB,SAAS,GAAGD,IAAEC,IAAE;AAAC,MAAIC,KAAEF,GAAE;AAAO,WAAQG,KAAED,KAAE,GAAEC,MAAG,GAAED,KAAEC,MAAI;AAAC,UAAMC,KAAEJ,GAAEG,EAAC;AAAE,QAAGF,MAAGG,GAAE,EAAE,EAAE;AAAA,EAAK;AAAC,SAAOF;AAAC;AAAwB,SAAS,GAAGF,IAAEC,IAAEC,IAAE;AAAC,WAAQC,KAAEH,GAAE,QAAOG,KAAEF,IAAEE,KAAI,CAAAH,GAAEG,EAAC,IAAEH,GAAEG,KAAE,CAAC;AAAE,EAAAH,GAAEC,EAAC,IAAEC;AAAC;AAAgB,SAAS,GAAGF,IAAE;AAAC,QAAK,EAAC,QAAOC,GAAC,IAAED;AAAE,MAAIE,KAAED;AAAE,WAAQE,KAAED,KAAE,GAAEC,MAAG,KAAG,EAAEH,GAAEG,EAAC,EAAE,SAAO,IAAGD,KAAEC,IAAEA,KAAI;AAAC,EAAAD,KAAED,OAAID,GAAE,SAAOE;AAAE;AAA+B,SAAS,GAAGF,IAAEC,IAAE;AAAC,SAAOA,OAAI,IAAE,OAAGD,GAAEC,KAAE,CAAC,EAAE,WAAS;AAAC;AAAwB,SAAS,GAAGD,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,MAAGJ,OAAI,EAAE,QAAM;AAAG,QAAMK,KAAEN,GAAEC,KAAE,CAAC;AAAE,SAAOK,GAAE,WAAS,IAAE,QAAGJ,OAAII,GAAE,EAAE,KAAGH,OAAIG,GAAE,EAAE,KAAGF,OAAIE,GAAE,EAAE,KAAGD,QAAKC,GAAE,WAAS,IAAEA,GAAE,EAAE,IAAE;AAAG;AAA2D,SAAS,GAAGN,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,SAAM,EAAC,QAAOL,IAAE,MAAKC,IAAE,QAAOC,IAAE,MAAKC,IAAE,SAAQC,IAAE,QAAOC,GAAC;AAAC;AAAuB,SAAS,GAAGL,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,SAAM,EAAC,KAAIJ,IAAE,SAAQC,IAAE,QAAOC,IAAE,SAAQC,IAAE,QAAOC,GAAC;AAAC;AAAgB,SAAS,GAAGJ,IAAEC,IAAE;AAAC,SAAO,GAAGD,IAAEC,IAAE,IAAG,MAAK,KAAE;AAAC;AAAmB,SAAS,GAAGD,IAAEC,IAAEC,IAAE;AAAC,SAAO,GAAG,MAAK,IAAGF,IAAEC,IAAEC,EAAC;AAAC;AAAwB,SAAS,GAAGF,IAAE;AAAC,QAAMC,KAAE,IAAI,GAAG,EAAC,MAAKD,GAAE,IAAI,KAAI,CAAC,GAAE,EAAC,SAAQE,IAAE,KAAIC,GAAC,IAAEH,IAAEI,KAAED,GAAE,OAAME,KAAE,GAAGF,EAAC;AAAE,WAAQG,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,UAAMC,KAAEF,GAAEC,EAAC;AAAE,aAAQE,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,YAAMC,KAAEF,GAAEC,EAAC,GAAEG,KAAEF,GAAE,CAAC;AAAE,UAAIS,KAAE;AAAG,UAAGT,GAAE,WAAS,GAAE;AAAC,cAAM0D,KAAEjE,GAAEO,GAAE,CAAC,CAAC;AAAE,YAAGS,KAAE,GAAGiD,IAAE1D,GAAE,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,WAAS,IAAEL,GAAEK,GAAE,CAAC,CAAC,IAAE,EAAE,GAAES,MAAG,KAAK;AAAA,MAAQ;AAAC,YAAK,EAAC,QAAOa,IAAE,MAAKC,IAAE,MAAKC,IAAE,SAAQC,IAAE,QAAOU,IAAE,QAAO,EAAC,IAAE1B;AAAE,SAAGjB,IAAEK,IAAEK,IAAEiC,IAAEZ,IAAED,IAAEE,EAAC,GAAEW,MAAGV,MAAG,QAAM,GAAGjC,IAAE2C,IAAEV,EAAC,GAAE,KAAG,GAAGjC,IAAE2C,IAAE,IAAE;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO3C;AAAC;AAAuB,SAAS,GAAGD,IAAEC,IAAEC,IAAEC,IAAE;AAAC,MAAG,CAACH,GAAE,IAAI,QAAO,GAAGA,GAAE,QAAOC,IAAEC,IAAEC,IAAEH,GAAE,SAAQA,GAAE,MAAM;AAAE,QAAMI,KAAE,GAAGJ,GAAE,KAAIC,IAAEC,EAAC;AAAE,SAAOE,MAAG,OAAK,OAAKA,GAAE,WAAS,IAAE,KAAG,GAAGJ,GAAE,QAAQI,GAAE,CAAC,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,CAAC,GAAEA,GAAE,WAAS,IAAEJ,GAAE,IAAI,MAAMI,GAAE,CAAC,CAAC,IAAED,EAAC;AAAC;AAA6B,SAAS,GAAGH,IAAE;AAAC,SAAO,MAAM,QAAQA,EAAC,IAAEA,KAAE,CAACA,EAAC;AAAC;AAAiB,SAAS,GAAGA,IAAEC,IAAE;AAAC,QAAMC,KAAE,GAAGF,EAAC,EAAE,IAAI,CAAAK,OAAG,IAAI,GAAGA,IAAE,EAAE,CAAC,GAAEF,KAAED,GAAE,IAAI;AAAE,WAAQG,KAAE,GAAEA,KAAEH,GAAE,QAAOG,KAAI,KAAGH,GAAEG,EAAC,EAAE,QAAQ,SAAO,EAAE,OAAM,IAAI,MAAM,sBAAsBA,EAAC;AAAA,sEACviU;AAAE,MAAID,KAAE,GAAGD,IAAEF,IAAE,IAAG,CAAC;AAAE,WAAQI,KAAEH,GAAE,SAAO,GAAEG,MAAG,GAAEA,KAAI,CAAAD,KAAE,GAAGF,GAAEG,EAAC,GAAE,CAACD,EAAC,CAAC;AAAE,SAAOA;AAAC;AAA4B,SAAS,GAAGJ,IAAEC,IAAEC,IAAEC,IAAE;AAAC,QAAK,EAAC,iBAAgBC,IAAE,gBAAeC,IAAE,YAAWC,GAAC,IAAEN,IAAEO,KAAEJ,KAAE,GAAEK,KAAEJ,GAAE,IAAI,CAACK,IAAEE,OAAI;AAAC,UAAMO,KAAE,EAAC,UAAShB,IAAE,OAAMK,IAAE,QAAOE,MAAG,IAAG,SAAQ,QAAO,QAAO,OAAM,GAAEsB,KAAE9B,GAAEiB,GAAE,QAAOA,EAAC,GAAE,EAAC,QAAOc,IAAE,SAAQC,IAAE,QAAOC,GAAC,IAAEhB;AAAE,QAAGa,GAAE,QAAO,GAAG,IAAI,GAAGA,IAAEC,EAAC,GAAE/B,IAAE+B,IAAEzB,EAAC;AAAE,UAAMqC,KAAEX,OAAI,SAAOA,KAAE5B,KAAEA,GAAEM,EAAC,IAAE,MAAK,IAAEuB,OAAI,SAAOA,KAAE5B,KAAEA,GAAE,SAASK,EAAC,IAAE;AAAG,WAAO,GAAGqB,IAAEY,IAAE,CAAC;AAAA,EAAC,CAAC;AAAE,SAAO,GAAG5C,IAAEQ,EAAC;AAAC;AAAgX,SAAS,GAAGR,IAAEC,IAAEC,IAAE;AAAC,QAAMC,KAAE,EAAC,gBAAe,CAAC,CAACD,IAAE,iBAAgB,MAAE,GAAEE,KAAE,GAAGJ,IAAEC,EAAC;AAAE,SAAO,IAAI,GAAG,GAAGG,EAAC,GAAED,EAAC;AAAC;AAbh+B,IAA+I,gBAA3I,IAA6BqB,IAAuV+D,KAA8DzE,KAAM,IAAM0E,KAAsEpE,KAAsBP,KAAmGI,KAA2pDwE,KAA0KC,KAA+sEC,KAAY,IACzrI,IAClQ,IAAc,IAItCC,IAC5MC,IAAoDC,KAEs4PlE,IAAEC,KAAG4C,KAAG9C,IAAcG,KAAmO,IAAwHL,IAAEC,KAAG,GAGlxQqE,KAAwHC,KAA2C,IAAgHC,KAAO,IAAsG,IAAkBC,KAAqVC,KAA4FC,KAAoBC,KAAqD,IAA0sCC,KAAsD,IAAoB,IAA8E,IAAkwEjB,IAAufC,KAAwjB,IAAogCiB,KAAke,IAAK,IAAK,IAAK,IAAK,IAAK,IAAY,IAAyP,IAAomD,IAA2B,IACh6Q,IAAud,IAA8K,IAAqL,IAA2E,IAAyD,IAAwC,IAA2G,IAA8V,IAAkG,IAAsjB;AAbzmF;AAAA;AAAA;AAA+I,qBAA6D;AAA8G;AAA1T,IAAI,KAAG,OAAO;AAAe,IAAI/E,KAAE,CAACxB,IAAEC,OAAI,GAAGD,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAmS,IAAMsF,MAAG/D,GAAE,CAAAxB,OAAG,GAAG,WAAW,MAAM,EAAE,OAAOA,EAAC,EAAE,OAAO,KAAK,GAAE,MAAM;AAAlE,IAAoEc,MAAG;AAAvE,IAA0E,KAAG;AAA7E,IAAgF0E,MAAG;AAAnF,IAAsJpE,MAAG,IAAI,WAAW,EAAE;AAA1K,IAA4KP,MAAG,IAAI,WAAW,GAAG;AAAE,aAAQb,KAAE,GAAEA,KAAEwF,IAAG,QAAOxF,MAAI;AAAC,YAAMC,KAAEuF,IAAG,WAAWxF,EAAC;AAAE,MAAAoB,IAAGpB,EAAC,IAAEC,IAAEY,IAAGZ,EAAC,IAAED;AAAA,IAAC;AAAC,IAAMiB,MAAG,OAAO,cAAY,MAAI,IAAI,gBAAY,OAAO,SAAO,MAAI,EAAC,OAAOjB,IAAE;AAAC,aAAO,OAAO,KAAKA,GAAE,QAAOA,GAAE,YAAWA,GAAE,UAAU,EAAE,SAAS;AAAA,IAAC,EAAC,IAAE,EAAC,OAAOA,IAAE;AAAC,UAAIC,KAAE;AAAG,eAAQC,KAAE,GAAEA,KAAEF,GAAE,QAAOE,KAAI,CAAAD,MAAG,OAAO,aAAaD,GAAEE,EAAC,CAAC;AAAE,aAAOD;AAAA,IAAC,EAAC;AAAyW,IAAAuB,GAAE,IAAG,QAAQ;AAAqE,IAAAA,GAAE,IAAG,SAAS;AAAmK,IAAAA,GAAEd,IAAE,eAAe;AAAyD,IAAAc,GAAEZ,KAAG,YAAY;AAA4B,IAAAY,GAAE,IAAG,MAAM;AAAoC,IAAAA,GAAET,KAAG,kBAAkB;AAAyd,IAAAS,GAAER,KAAG,QAAQ;AAA+I,IAAAQ,GAAEL,IAAE,eAAe;AAAE,IAAMsE,MAAN,MAAM,IAAE;AAAA,MAAC,OAAM;AAAC,QAAAjE,GAAE,MAAK,QAAQ;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAE;AAAC,aAAK,OAAKA,cAAa,MAAGA,GAAE,KAAK,MAAM,IAAE,CAAC;AAAA,MAAC;AAAA,MAAC,IAAIA,IAAE;AAAC,aAAK,KAAKA,MAAG,CAAC,KAAG,MAAIA,KAAE;AAAA,MAAG;AAAA,MAAC,IAAIA,IAAE;AAAC,eAAM,CAAC,EAAE,KAAK,KAAKA,MAAG,CAAC,IAAE,MAAIA,KAAE;AAAA,MAAI;AAAA,IAAC;AAAC,IAAMyF,MAAN,MAAM,IAAE;AAAA,MAAC,OAAM;AAAC,QAAAlE,GAAE,MAAK,OAAO;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAEC,IAAEC,IAAE;AAAC,aAAK,QAAMF,IAAE,KAAK,MAAIC,IAAE,KAAK,WAASC,IAAE,KAAK,QAAM,IAAG,KAAK,QAAM,IAAG,KAAK,UAAQA,IAAE,KAAK,YAAU,OAAG,KAAK,SAAO,OAAG,KAAK,WAAS,MAAK,KAAK,OAAK;AAAA,MAAI;AAAA,MAAC,WAAWF,IAAE;AAAC,aAAK,SAAOA;AAAA,MAAC;AAAA,MAAC,YAAYA,IAAE;AAAC,aAAK,QAAM,KAAK,QAAMA;AAAA,MAAC;AAAA,MAAC,QAAO;AAAC,cAAMA,KAAE,IAAI,IAAG,KAAK,OAAM,KAAK,KAAI,KAAK,QAAQ;AAAE,eAAOA,GAAE,QAAM,KAAK,OAAMA,GAAE,QAAM,KAAK,OAAMA,GAAE,UAAQ,KAAK,SAAQA,GAAE,YAAU,KAAK,WAAUA,GAAE,SAAO,KAAK,QAAOA;AAAA,MAAC;AAAA,MAAC,SAASA,IAAE;AAAC,eAAO,KAAK,QAAMA,MAAGA,KAAE,KAAK;AAAA,MAAG;AAAA,MAAC,SAASA,IAAE;AAAC,YAAIC,KAAE;AAAK,eAAKA,KAAG,CAAAD,GAAEC,EAAC,GAAEA,KAAEA,GAAE;AAAA,MAAI;AAAA,MAAC,aAAaD,IAAE;AAAC,YAAIC,KAAE;AAAK,eAAKA,KAAG,CAAAD,GAAEC,EAAC,GAAEA,KAAEA,GAAE;AAAA,MAAQ;AAAA,MAAC,KAAKD,IAAEC,IAAEC,IAAE;AAAC,eAAO,KAAK,UAAQF,IAAEE,OAAI,KAAK,QAAM,IAAG,KAAK,QAAM,KAAI,KAAK,YAAUD,IAAE,KAAK,SAAO,MAAG;AAAA,MAAI;AAAA,MAAC,YAAYD,IAAE;AAAC,aAAK,QAAMA,KAAE,KAAK;AAAA,MAAK;AAAA,MAAC,aAAaA,IAAE;AAAC,aAAK,QAAMA,KAAE,KAAK;AAAA,MAAK;AAAA,MAAC,QAAO;AAAC,aAAK,QAAM,IAAG,KAAK,QAAM,IAAG,KAAK,WAAS,KAAK,UAAQ,KAAK,UAAS,KAAK,YAAU,OAAG,KAAK,SAAO;AAAA,MAAG;AAAA,MAAC,MAAMA,IAAE;AAAC,cAAMC,KAAED,KAAE,KAAK,OAAME,KAAE,KAAK,SAAS,MAAM,GAAED,EAAC,GAAEE,KAAE,KAAK,SAAS,MAAMF,EAAC;AAAE,aAAK,WAASC;AAAE,cAAME,KAAE,IAAI,IAAGJ,IAAE,KAAK,KAAIG,EAAC;AAAE,eAAOC,GAAE,QAAM,KAAK,OAAM,KAAK,QAAM,IAAG,KAAK,MAAIJ,IAAE,KAAK,UAAQI,GAAE,KAAK,IAAG,KAAE,GAAE,KAAK,UAAQ,MAAI,KAAK,UAAQF,IAAEE,GAAE,OAAK,KAAK,MAAKA,GAAE,SAAOA,GAAE,KAAK,WAASA,KAAGA,GAAE,WAAS,MAAK,KAAK,OAAKA,IAAEA;AAAA,MAAC;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,QAAM,KAAK,UAAQ,KAAK;AAAA,MAAK;AAAA,MAAC,QAAQJ,IAAE;AAAC,YAAG,KAAK,QAAM,KAAK,MAAM,QAAQA,IAAE,EAAE,GAAE,KAAK,MAAM,OAAO,QAAM;AAAG,cAAMC,KAAE,KAAK,QAAQ,QAAQD,IAAE,EAAE;AAAE,YAAGC,GAAE,OAAO,QAAOA,OAAI,KAAK,YAAU,KAAK,MAAM,KAAK,QAAMA,GAAE,MAAM,EAAE,KAAK,IAAG,QAAO,IAAE,GAAE,KAAK,UAAQ,KAAK,KAAKA,IAAE,KAAK,WAAU,IAAE,IAAG;AAAG,YAAG,KAAK,KAAK,IAAG,QAAO,IAAE,GAAE,KAAK,QAAM,KAAK,MAAM,QAAQD,IAAE,EAAE,GAAE,KAAK,MAAM,OAAO,QAAM;AAAA,MAAE;AAAA,MAAC,UAAUA,IAAE;AAAC,YAAG,KAAK,QAAM,KAAK,MAAM,QAAQA,IAAE,EAAE,GAAE,KAAK,MAAM,OAAO,QAAM;AAAG,cAAMC,KAAE,KAAK,QAAQ,QAAQD,IAAE,EAAE;AAAE,YAAGC,GAAE,QAAO;AAAC,cAAGA,OAAI,KAAK,SAAQ;AAAC,kBAAMC,KAAE,KAAK,MAAM,KAAK,MAAID,GAAE,MAAM;AAAE,iBAAK,UAAQC,GAAE,KAAKD,IAAE,KAAK,WAAU,IAAE,GAAE,KAAK,KAAK,IAAG,QAAO,IAAE;AAAA,UAAC;AAAC,iBAAM;AAAA,QAAE,WAAS,KAAK,KAAK,IAAG,QAAO,IAAE,GAAE,KAAK,QAAM,KAAK,MAAM,QAAQD,IAAE,EAAE,GAAE,KAAK,MAAM,OAAO,QAAM;AAAA,MAAE;AAAA,IAAC;AAA4S,IAAAuB,GAAEH,KAAG,SAAS;AAAE,IAAMsE,MAAGtE,IAAG;AAAE,IAAI,KAAG,MAAK;AAAA,MAAC,OAAM;AAAC,QAAAG,GAAE,MAAK,WAAW;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAE;AAAC,aAAK,UAAQ,GAAE,KAAK,OAAKA,GAAE,MAAK,KAAK,UAAQA,GAAE,SAAQ,KAAK,iBAAeA,GAAE,gBAAe,KAAK,QAAMA,GAAE,OAAM,KAAK,WAASe,IAAGf,GAAE,QAAQ,GAAE,OAAOA,GAAE,sBAAoB,QAAM,KAAK,sBAAoBA,GAAE;AAAA,MAAoB;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,UAAU,IAAI;AAAA,MAAC;AAAA,MAAC,QAAO;AAAC,eAAM,gDAA8C0F,IAAG,KAAK,SAAS,CAAC;AAAA,MAAC;AAAA,IAAC;AAC3yJ,IAAAnE,GAAEF,KAAG,aAAa;AAAyL,IAAAE,GAAE,IAAG,iBAAiB;AAAE,IAAM,KAAG,OAAO,UAAU;AAA8D,IAAAA,GAAE,IAAG,UAAU;AAC5X,IAAAA,GAAED,KAAG,YAAY;AAAE,IAAM,KAAG;AAAK,IAAM,KAAN,MAAQ;AAAA,MAAC,OAAM;AAAC,QAAAC,GAAE,MAAK,UAAU;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAE;AAAC,aAAK,QAAMA,IAAE,KAAK,oBAAkB,GAAE,KAAK,sBAAoB,GAAE,KAAK,MAAI,CAAC,GAAE,KAAK,cAAY,KAAK,IAAI,KAAK,iBAAiB,IAAE,CAAC,GAAE,KAAK,UAAQ;AAAA,MAAI;AAAA,MAAC,QAAQA,IAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAGF,GAAE,QAAO;AAAC,gBAAMG,KAAEH,GAAE,SAAO;AAAE,cAAII,KAAEJ,GAAE,QAAQ;AAAA,GACnf,CAAC,GAAEK,KAAE;AAAG,iBAAKD,MAAG,KAAGD,KAAEC,MAAG;AAAC,kBAAMG,KAAE,CAAC,KAAK,qBAAoBR,IAAEE,GAAE,MAAKA,GAAE,MAAM;AAAE,YAAAC,MAAG,KAAGK,GAAE,KAAKL,EAAC,GAAE,KAAK,YAAY,KAAKK,EAAC,GAAE,KAAK,qBAAmB,GAAE,KAAK,IAAI,KAAK,iBAAiB,IAAE,KAAK,cAAY,CAAC,GAAE,KAAK,sBAAoB,GAAEF,KAAED,IAAEA,KAAEJ,GAAE,QAAQ;AAAA,GACjPI,KAAE,CAAC;AAAA,UAAC;AAAC,gBAAME,KAAE,CAAC,KAAK,qBAAoBP,IAAEE,GAAE,MAAKA,GAAE,MAAM;AAAE,UAAAC,MAAG,KAAGI,GAAE,KAAKJ,EAAC,GAAE,KAAK,YAAY,KAAKI,EAAC,GAAE,KAAK,QAAQN,GAAE,MAAMK,KAAE,CAAC,CAAC;AAAA,QAAC,MAAM,MAAK,YAAU,KAAK,YAAY,KAAK,KAAK,OAAO,GAAE,KAAK,QAAQL,EAAC;AAAG,aAAK,UAAQ;AAAA,MAAI;AAAA,MAAC,iBAAiBD,IAAEC,IAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAIC,KAAEJ,GAAE,OAAMK,KAAE,MAAGC,KAAE;AAAG,eAAKF,KAAEJ,GAAE,OAAK;AAAC,cAAG,KAAK,SAAOK,MAAGF,GAAE,IAAIC,EAAC,GAAE;AAAC,kBAAMG,KAAE,CAAC,KAAK,qBAAoBR,IAAEG,GAAE,MAAKA,GAAE,MAAM;AAAE,iBAAK,UAAQ,aAAW,GAAG,KAAKD,GAAEG,EAAC,CAAC,IAAEE,OAAI,KAAK,YAAY,KAAKC,EAAC,GAAED,KAAE,SAAK,KAAK,YAAY,KAAKC,EAAC,GAAED,KAAE,SAAI,KAAK,YAAY,KAAKC,EAAC;AAAA,UAAC;AAAC,UAAAN,GAAEG,EAAC,MAAI;AAAA,KACrfF,GAAE,QAAM,GAAEA,GAAE,SAAO,GAAE,KAAK,qBAAmB,GAAE,KAAK,IAAI,KAAK,iBAAiB,IAAE,KAAK,cAAY,CAAC,GAAE,KAAK,sBAAoB,GAAEG,KAAE,SAAKH,GAAE,UAAQ,GAAE,KAAK,uBAAqB,GAAEG,KAAE,QAAID,MAAG;AAAA,QAAC;AAAC,aAAK,UAAQ;AAAA,MAAI;AAAA,MAAC,QAAQL,IAAE;AAAC,YAAG,CAACA,GAAE;AAAO,cAAMC,KAAED,GAAE,MAAM;AAAA,CACrP;AAAE,YAAGC,GAAE,SAAO,GAAE;AAAC,mBAAQC,KAAE,GAAEA,KAAED,GAAE,SAAO,GAAEC,KAAI,MAAK,qBAAoB,KAAK,IAAI,KAAK,iBAAiB,IAAE,KAAK,cAAY,CAAC;AAAE,eAAK,sBAAoB;AAAA,QAAC;AAAC,aAAK,uBAAqBD,GAAEA,GAAE,SAAO,CAAC,EAAE;AAAA,MAAM;AAAA,IAAC;AAAC,IAAM0F,KAAE;AAAA;AAAR,IACtMC,KAAE,EAAC,YAAW,OAAG,aAAY,OAAG,WAAU,MAAE;AAAE,IAAMC,MAAN,MAAM,IAAE;AAAA,MAAC,OAAM;AAAC,QAAAtE,GAAE,MAAK,aAAa;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAEC,KAAE,CAAC,GAAE;AAAC,cAAMC,KAAE,IAAIuF,IAAG,GAAEzF,GAAE,QAAOA,EAAC;AAAE,eAAO,iBAAiB,MAAK,EAAC,UAAS,EAAC,UAAS,MAAG,OAAMA,GAAC,GAAE,OAAM,EAAC,UAAS,MAAG,OAAM,GAAE,GAAE,OAAM,EAAC,UAAS,MAAG,OAAM,GAAE,GAAE,YAAW,EAAC,UAAS,MAAG,OAAME,GAAC,GAAE,WAAU,EAAC,UAAS,MAAG,OAAMA,GAAC,GAAE,mBAAkB,EAAC,UAAS,MAAG,OAAMA,GAAC,GAAE,SAAQ,EAAC,UAAS,MAAG,OAAM,CAAC,EAAC,GAAE,OAAM,EAAC,UAAS,MAAG,OAAM,CAAC,EAAC,GAAE,UAAS,EAAC,UAAS,MAAG,OAAMD,GAAE,SAAQ,GAAE,uBAAsB,EAAC,UAAS,MAAG,OAAMA,GAAE,sBAAqB,GAAE,oBAAmB,EAAC,UAAS,MAAG,OAAM,IAAIuF,MAAE,GAAE,aAAY,EAAC,UAAS,MAAG,OAAM,CAAC,EAAC,GAAE,WAAU,EAAC,UAAS,MAAG,OAAM,OAAM,GAAE,YAAW,EAAC,UAAS,MAAG,OAAMvF,GAAE,WAAU,EAAC,CAAC,GAAE,KAAK,QAAQ,CAAC,IAAEC,IAAE,KAAK,MAAMF,GAAE,MAAM,IAAEE;AAAA,MAAC;AAAA,MAAC,qBAAqBF,IAAE;AAAC,aAAK,mBAAmB,IAAIA,EAAC;AAAA,MAAC;AAAA,MAAC,OAAOA,IAAE;AAAC,YAAG,OAAOA,MAAG,SAAS,OAAM,IAAI,UAAU,gCAAgC;AAAE,eAAO,KAAK,SAAOA,IAAE;AAAA,MAAI;AAAA,MAAC,WAAWA,IAAEC,IAAE;AAAC,YAAG,OAAOA,MAAG,SAAS,OAAM,IAAI,UAAU,mCAAmC;AAAE,aAAK,OAAOD,EAAC;AAAE,cAAME,KAAE,KAAK,MAAMF,EAAC;AAAE,eAAOE,KAAEA,GAAE,WAAWD,EAAC,IAAE,KAAK,SAAOA,IAAE;AAAA,MAAI;AAAA,MAAC,YAAYD,IAAEC,IAAE;AAAC,YAAG,OAAOA,MAAG,SAAS,OAAM,IAAI,UAAU,mCAAmC;AAAE,aAAK,OAAOD,EAAC;AAAE,cAAME,KAAE,KAAK,QAAQF,EAAC;AAAE,eAAOE,KAAEA,GAAE,YAAYD,EAAC,IAAE,KAAK,SAAOA,IAAE;AAAA,MAAI;AAAA,MAAC,QAAO;AAAC,cAAMD,KAAE,IAAI,IAAG,KAAK,UAAS,EAAC,UAAS,KAAK,SAAQ,CAAC;AAAE,YAAIC,KAAE,KAAK,YAAWC,KAAEF,GAAE,aAAWA,GAAE,oBAAkBC,GAAE,MAAM;AAAE,eAAKA,MAAG;AAAC,UAAAD,GAAE,QAAQE,GAAE,KAAK,IAAEA,IAAEF,GAAE,MAAME,GAAE,GAAG,IAAEA;AAAE,gBAAMC,KAAEF,GAAE,MAAKG,KAAED,MAAGA,GAAE,MAAM;AAAE,UAAAC,OAAIF,GAAE,OAAKE,IAAEA,GAAE,WAASF,IAAEA,KAAEE,KAAGH,KAAEE;AAAA,QAAC;AAAC,eAAOH,GAAE,YAAUE,IAAE,KAAK,0BAAwBF,GAAE,wBAAsB,KAAK,sBAAsB,MAAM,IAAGA,GAAE,qBAAmB,IAAIwF,IAAG,KAAK,kBAAkB,GAAExF,GAAE,QAAM,KAAK,OAAMA,GAAE,QAAM,KAAK,OAAMA;AAAA,MAAC;AAAA,MAAC,mBAAmBA,IAAE;AAAC,QAAAA,KAAEA,MAAG,CAAC;AAAE,cAAMC,KAAE,GAAEC,KAAE,OAAO,KAAK,KAAK,WAAW,GAAEC,KAAE,IAAI,GAAGH,GAAE,KAAK,GAAEI,KAAEkB,IAAG,KAAK,QAAQ;AAAE,eAAO,KAAK,SAAOnB,GAAE,QAAQ,KAAK,KAAK,GAAE,KAAK,WAAW,SAAS,CAAAE,OAAG;AAAC,gBAAMC,KAAEF,GAAEC,GAAE,KAAK;AAAE,UAAAA,GAAE,MAAM,UAAQF,GAAE,QAAQE,GAAE,KAAK,GAAEA,GAAE,SAAOF,GAAE,QAAQF,IAAEI,GAAE,SAAQC,IAAED,GAAE,YAAUH,GAAE,QAAQG,GAAE,QAAQ,IAAE,EAAE,IAAEF,GAAE,iBAAiBF,IAAEI,IAAE,KAAK,UAASC,IAAE,KAAK,kBAAkB,GAAED,GAAE,MAAM,UAAQF,GAAE,QAAQE,GAAE,KAAK;AAAA,QAAC,CAAC,GAAE,EAAC,MAAKL,GAAE,OAAKA,GAAE,KAAK,MAAM,OAAO,EAAE,IAAI,IAAE,QAAO,SAAQ,CAACA,GAAE,SAAO,GAAGA,GAAE,QAAM,IAAGA,GAAE,MAAM,IAAEA,GAAE,QAAM,EAAE,GAAE,gBAAeA,GAAE,iBAAe,CAAC,KAAK,QAAQ,IAAE,QAAO,OAAME,IAAE,UAASC,GAAE,KAAI,qBAAoB,KAAK,aAAW,CAACF,EAAC,IAAE,OAAM;AAAA,MAAC;AAAA,MAAC,YAAYD,IAAE;AAAC,eAAO,IAAI,GAAG,KAAK,mBAAmBA,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,mBAAkB;AAAC,aAAK,cAAY,WAAS,KAAK,YAAUqB,IAAG,KAAK,QAAQ;AAAA,MAAE;AAAA,MAAC,sBAAqB;AAAC,eAAO,KAAK,iBAAiB,GAAE,KAAK;AAAA,MAAS;AAAA,MAAC,kBAAiB;AAAC,eAAO,KAAK,iBAAiB,GAAE,KAAK,cAAY,OAAK,MAAI,KAAK;AAAA,MAAS;AAAA,MAAC,OAAOrB,IAAEC,IAAE;AAAC,cAAMC,KAAE;AAAa,YAAG,GAAGF,EAAC,MAAIC,KAAED,IAAEA,KAAE,SAAQA,OAAI,WAAS,KAAK,iBAAiB,GAAEA,KAAE,KAAK,aAAW,MAAKA,OAAI,GAAG,QAAO;AAAK,QAAAC,KAAEA,MAAG,CAAC;AAAE,cAAME,KAAE,CAAC;AAAE,QAAAF,GAAE,YAAU,OAAOA,GAAE,QAAQ,CAAC,KAAG,WAAS,CAACA,GAAE,OAAO,IAAEA,GAAE,SAAS,QAAQ,CAAAS,OAAG;AAAC,mBAAQO,KAAEP,GAAE,CAAC,GAAEO,KAAEP,GAAE,CAAC,GAAEO,MAAG,EAAE,CAAAd,GAAEc,EAAC,IAAE;AAAA,QAAE,CAAC;AAAE,YAAIb,KAAEH,GAAE,gBAAc;AAAG,cAAMI,KAAEkB,GAAE,CAAAf,OAAGJ,KAAE,GAAGJ,EAAC,GAAGQ,EAAC,MAAIJ,KAAE,MAAGI,KAAG,UAAU;AAAE,aAAK,QAAM,KAAK,MAAM,QAAQN,IAAEG,EAAC;AAAE,YAAIC,KAAE,GAAEC,KAAE,KAAK;AAAW,eAAKA,MAAG;AAAC,gBAAMC,KAAED,GAAE;AAAI,cAAGA,GAAE,OAAO,CAAAJ,GAAEG,EAAC,MAAIC,GAAE,UAAQA,GAAE,QAAQ,QAAQL,IAAEG,EAAC,GAAEE,GAAE,QAAQ,WAASH,KAAEG,GAAE,QAAQA,GAAE,QAAQ,SAAO,CAAC,MAAI;AAAA;AAAA,cAC5kG,MAAID,KAAEC,GAAE,OAAMD,KAAEE,MAAG;AAAC,gBAAG,CAACL,GAAEG,EAAC,GAAE;AAAC,oBAAMI,KAAE,KAAK,SAASJ,EAAC;AAAE,cAAAI,OAAI;AAAA,IAClEN,KAAE,OAAGM,OAAI,QAAMN,OAAIA,KAAE,OAAGE,OAAIC,GAAE,UAAQ,KAAK,YAAYA,IAAED,EAAC,GAAEC,KAAEA,GAAE,OAAMA,GAAE,aAAaP,EAAC;AAAA,YAAE;AAAC,YAAAM,MAAG;AAAA,UAAC;AAAC,UAAAA,KAAEC,GAAE,KAAIA,KAAEA,GAAE;AAAA,QAAI;AAAC,eAAO,KAAK,QAAM,KAAK,MAAM,QAAQL,IAAEG,EAAC,GAAE;AAAA,MAAI;AAAA,MAAC,SAAQ;AAAC,cAAM,IAAI,MAAM,iFAAiF;AAAA,MAAC;AAAA,MAAC,WAAWL,IAAEC,IAAE;AAAC,eAAO2F,GAAE,eAAa,QAAQ,KAAK,oFAAoF,GAAEA,GAAE,aAAW,OAAI,KAAK,WAAW5F,IAAEC,EAAC;AAAA,MAAC;AAAA,MAAC,YAAYD,IAAEC,IAAE;AAAC,eAAO2F,GAAE,gBAAc,QAAQ,KAAK,uFAAuF,GAAEA,GAAE,cAAY,OAAI,KAAK,aAAa5F,IAAEC,EAAC;AAAA,MAAC;AAAA,MAAC,KAAKD,IAAEC,IAAEC,IAAE;AAAC,YAAGA,MAAGF,MAAGE,MAAGD,GAAE,OAAM,IAAI,MAAM,uCAAuC;AAAE,aAAK,OAAOD,EAAC,GAAE,KAAK,OAAOC,EAAC,GAAE,KAAK,OAAOC,EAAC;AAAE,cAAMC,KAAE,KAAK,QAAQH,EAAC,GAAEI,KAAE,KAAK,MAAMH,EAAC,GAAEI,KAAEF,GAAE,UAASG,KAAEF,GAAE,MAAKG,KAAE,KAAK,QAAQL,EAAC;AAAE,YAAG,CAACK,MAAGH,OAAI,KAAK,UAAU,QAAO;AAAK,cAAMI,KAAED,KAAEA,GAAE,WAAS,KAAK;AAAU,eAAOF,OAAIA,GAAE,OAAKC,KAAGA,OAAIA,GAAE,WAASD,KAAGG,OAAIA,GAAE,OAAKL,KAAGI,OAAIA,GAAE,WAASH,KAAGD,GAAE,aAAW,KAAK,aAAWC,GAAE,OAAMA,GAAE,SAAO,KAAK,YAAUD,GAAE,UAAS,KAAK,UAAU,OAAK,OAAMA,GAAE,WAASK,IAAEJ,GAAE,OAAKG,MAAG,MAAKC,OAAI,KAAK,aAAWL,KAAGI,OAAI,KAAK,YAAUH,KAAG;AAAA,MAAI;AAAA,MAAC,UAAUJ,IAAEC,IAAEC,IAAEC,IAAE;AAAC,eAAOA,KAAEA,MAAG,CAAC,GAAE,KAAK,OAAOH,IAAEC,IAAEC,IAAE,EAAC,GAAGC,IAAE,WAAU,CAACA,GAAE,YAAW,CAAC;AAAA,MAAC;AAAA,MAAC,OAAOH,IAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAG,OAAOD,MAAG,SAAS,OAAM,IAAI,UAAU,sCAAsC;AAAE,eAAKF,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,eAAKC,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,YAAGA,KAAE,KAAK,SAAS,OAAO,OAAM,IAAI,MAAM,sBAAsB;AAAE,YAAGD,OAAIC,GAAE,OAAM,IAAI,MAAM,oFAAoF;AAAE,aAAK,OAAOD,EAAC,GAAE,KAAK,OAAOC,EAAC,GAAEE,OAAI,SAAKyF,GAAE,cAAY,QAAQ,KAAK,+HAA+H,GAAEA,GAAE,YAAU,OAAIzF,KAAE,EAAC,WAAU,KAAE;AAAG,cAAMC,KAAED,OAAI,SAAOA,GAAE,YAAU,OAAGE,KAAEF,OAAI,SAAOA,GAAE,YAAU;AAAG,YAAGC,IAAE;AAAC,gBAAMI,KAAE,KAAK,SAAS,MAAMR,IAAEC,EAAC;AAAE,iBAAO,eAAe,KAAK,aAAYO,IAAE,EAAC,UAAS,MAAG,OAAM,MAAG,YAAW,KAAE,CAAC;AAAA,QAAC;AAAC,cAAMF,KAAE,KAAK,QAAQN,EAAC,GAAEO,KAAE,KAAK,MAAMN,EAAC;AAAE,YAAGK,IAAE;AAAC,cAAIE,KAAEF;AAAE,iBAAKE,OAAID,MAAG;AAAC,gBAAGC,GAAE,SAAO,KAAK,QAAQA,GAAE,GAAG,EAAE,OAAM,IAAI,MAAM,uCAAuC;AAAE,YAAAA,KAAEA,GAAE,MAAKA,GAAE,KAAK,IAAG,KAAE;AAAA,UAAC;AAAC,UAAAF,GAAE,KAAKJ,IAAEE,IAAE,CAACC,EAAC;AAAA,QAAC,OAAK;AAAC,gBAAMG,KAAE,IAAIiF,IAAGzF,IAAEC,IAAE,EAAE,EAAE,KAAKC,IAAEE,EAAC;AAAE,UAAAG,GAAE,OAAKC,IAAEA,GAAE,WAASD;AAAA,QAAC;AAAC,eAAO;AAAA,MAAI;AAAA,MAAC,QAAQP,IAAE;AAAC,YAAG,OAAOA,MAAG,SAAS,OAAM,IAAI,UAAU,gCAAgC;AAAE,eAAO,KAAK,QAAMA,KAAE,KAAK,OAAM;AAAA,MAAI;AAAA,MAAC,YAAYA,IAAEC,IAAE;AAAC,YAAG,OAAOA,MAAG,SAAS,OAAM,IAAI,UAAU,mCAAmC;AAAE,aAAK,OAAOD,EAAC;AAAE,cAAME,KAAE,KAAK,MAAMF,EAAC;AAAE,eAAOE,KAAEA,GAAE,YAAYD,EAAC,IAAE,KAAK,QAAMA,KAAE,KAAK,OAAM;AAAA,MAAI;AAAA,MAAC,aAAaD,IAAEC,IAAE;AAAC,YAAG,OAAOA,MAAG,SAAS,OAAM,IAAI,UAAU,mCAAmC;AAAE,aAAK,OAAOD,EAAC;AAAE,cAAME,KAAE,KAAK,QAAQF,EAAC;AAAE,eAAOE,KAAEA,GAAE,aAAaD,EAAC,IAAE,KAAK,QAAMA,KAAE,KAAK,OAAM;AAAA,MAAI;AAAA,MAAC,OAAOD,IAAEC,IAAE;AAAC,eAAKD,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,eAAKC,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,YAAGD,OAAIC,GAAE,QAAO;AAAK,YAAGD,KAAE,KAAGC,KAAE,KAAK,SAAS,OAAO,OAAM,IAAI,MAAM,4BAA4B;AAAE,YAAGD,KAAEC,GAAE,OAAM,IAAI,MAAM,gCAAgC;AAAE,aAAK,OAAOD,EAAC,GAAE,KAAK,OAAOC,EAAC;AAAE,YAAIC,KAAE,KAAK,QAAQF,EAAC;AAAE,eAAKE,KAAG,CAAAA,GAAE,QAAM,IAAGA,GAAE,QAAM,IAAGA,GAAE,KAAK,EAAE,GAAEA,KAAED,KAAEC,GAAE,MAAI,KAAK,QAAQA,GAAE,GAAG,IAAE;AAAK,eAAO;AAAA,MAAI;AAAA,MAAC,MAAMF,IAAEC,IAAE;AAAC,eAAKD,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,eAAKC,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,YAAGD,OAAIC,GAAE,QAAO;AAAK,YAAGD,KAAE,KAAGC,KAAE,KAAK,SAAS,OAAO,OAAM,IAAI,MAAM,4BAA4B;AAAE,YAAGD,KAAEC,GAAE,OAAM,IAAI,MAAM,gCAAgC;AAAE,aAAK,OAAOD,EAAC,GAAE,KAAK,OAAOC,EAAC;AAAE,YAAIC,KAAE,KAAK,QAAQF,EAAC;AAAE,eAAKE,KAAG,CAAAA,GAAE,MAAM,GAAEA,KAAED,KAAEC,GAAE,MAAI,KAAK,QAAQA,GAAE,GAAG,IAAE;AAAK,eAAO;AAAA,MAAI;AAAA,MAAC,WAAU;AAAC,YAAG,KAAK,MAAM,OAAO,QAAO,KAAK,MAAM,KAAK,MAAM,SAAO,CAAC;AAAE,YAAIF,KAAE,KAAK;AAAU,WAAE;AAAC,cAAGA,GAAE,MAAM,OAAO,QAAOA,GAAE,MAAMA,GAAE,MAAM,SAAO,CAAC;AAAE,cAAGA,GAAE,QAAQ,OAAO,QAAOA,GAAE,QAAQA,GAAE,QAAQ,SAAO,CAAC;AAAE,cAAGA,GAAE,MAAM,OAAO,QAAOA,GAAE,MAAMA,GAAE,MAAM,SAAO,CAAC;AAAA,QAAC,SAAOA,KAAEA,GAAE;AAAU,eAAO,KAAK,MAAM,SAAO,KAAK,MAAM,KAAK,MAAM,SAAO,CAAC,IAAE;AAAA,MAAE;AAAA,MAAC,WAAU;AAAC,YAAIA,KAAE,KAAK,MAAM,YAAY2F,EAAC;AAAE,YAAG3F,OAAI,GAAG,QAAO,KAAK,MAAM,OAAOA,KAAE,CAAC;AAAE,YAAIC,KAAE,KAAK,OAAMC,KAAE,KAAK;AAAU,WAAE;AAAC,cAAGA,GAAE,MAAM,SAAO,GAAE;AAAC,gBAAGF,KAAEE,GAAE,MAAM,YAAYyF,EAAC,GAAE3F,OAAI,GAAG,QAAOE,GAAE,MAAM,OAAOF,KAAE,CAAC,IAAEC;AAAE,YAAAA,KAAEC,GAAE,QAAMD;AAAA,UAAC;AAAC,cAAGC,GAAE,QAAQ,SAAO,GAAE;AAAC,gBAAGF,KAAEE,GAAE,QAAQ,YAAYyF,EAAC,GAAE3F,OAAI,GAAG,QAAOE,GAAE,QAAQ,OAAOF,KAAE,CAAC,IAAEC;AAAE,YAAAA,KAAEC,GAAE,UAAQD;AAAA,UAAC;AAAC,cAAGC,GAAE,MAAM,SAAO,GAAE;AAAC,gBAAGF,KAAEE,GAAE,MAAM,YAAYyF,EAAC,GAAE3F,OAAI,GAAG,QAAOE,GAAE,MAAM,OAAOF,KAAE,CAAC,IAAEC;AAAE,YAAAA,KAAEC,GAAE,QAAMD;AAAA,UAAC;AAAA,QAAC,SAAOC,KAAEA,GAAE;AAAU,eAAOF,KAAE,KAAK,MAAM,YAAY2F,EAAC,GAAE3F,OAAI,KAAG,KAAK,MAAM,OAAOA,KAAE,CAAC,IAAEC,KAAE,KAAK,QAAMA;AAAA,MAAC;AAAA,MAAC,MAAMD,KAAE,GAAEC,KAAE,KAAK,SAAS,QAAO;AAAC,eAAKD,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,eAAKC,KAAE,IAAG,CAAAA,MAAG,KAAK,SAAS;AAAO,YAAIC,KAAE,IAAGC,KAAE,KAAK;AAAW,eAAKA,OAAIA,GAAE,QAAMH,MAAGG,GAAE,OAAKH,OAAI;AAAC,cAAGG,GAAE,QAAMF,MAAGE,GAAE,OAAKF,GAAE,QAAOC;AAAE,UAAAC,KAAEA,GAAE;AAAA,QAAI;AAAC,YAAGA,MAAGA,GAAE,UAAQA,GAAE,UAAQH,GAAE,OAAM,IAAI,MAAM,iCAAiCA,EAAC,yBAAyB;AAAE,cAAMI,KAAED;AAAE,eAAKA,MAAG;AAAC,UAAAA,GAAE,UAAQC,OAAID,MAAGA,GAAE,UAAQH,QAAKE,MAAGC,GAAE;AAAO,gBAAME,KAAEF,GAAE,QAAMF,MAAGE,GAAE,OAAKF;AAAE,cAAGI,MAAGF,GAAE,UAAQA,GAAE,QAAMF,GAAE,OAAM,IAAI,MAAM,iCAAiCA,EAAC,uBAAuB;AAAE,gBAAMK,KAAEF,OAAID,KAAEH,KAAEG,GAAE,QAAM,GAAEI,KAAEF,KAAEF,GAAE,QAAQ,SAAOF,KAAEE,GAAE,MAAIA,GAAE,QAAQ;AAAO,cAAGD,MAAGC,GAAE,QAAQ,MAAMG,IAAEC,EAAC,GAAEJ,GAAE,UAAQ,CAACE,MAAGF,GAAE,QAAMF,QAAKC,MAAGC,GAAE,QAAOE,GAAE;AAAM,UAAAF,KAAEA,GAAE;AAAA,QAAI;AAAC,eAAOD;AAAA,MAAC;AAAA,MAAC,KAAKF,IAAEC,IAAE;AAAC,cAAMC,KAAE,KAAK,MAAM;AAAE,eAAOA,GAAE,OAAO,GAAEF,EAAC,GAAEE,GAAE,OAAOD,IAAEC,GAAE,SAAS,MAAM,GAAEA;AAAA,MAAC;AAAA,MAAC,OAAOF,IAAE;AAAC,YAAG,KAAK,QAAQA,EAAC,KAAG,KAAK,MAAMA,EAAC,EAAE;AAAO,YAAIC,KAAE,KAAK;AAAkB,cAAMC,KAAEF,KAAEC,GAAE;AAAI,eAAKA,MAAG;AAAC,cAAGA,GAAE,SAASD,EAAC,EAAE,QAAO,KAAK,YAAYC,IAAED,EAAC;AAAE,UAAAC,KAAEC,KAAE,KAAK,QAAQD,GAAE,GAAG,IAAE,KAAK,MAAMA,GAAE,KAAK;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,YAAYD,IAAEC,IAAE;AAAC,YAAGD,GAAE,UAAQA,GAAE,QAAQ,QAAO;AAAC,gBAAMG,KAAEmB,IAAG,KAAK,QAAQ,EAAErB,EAAC;AAAE,gBAAM,IAAI,MAAM,sDAAsDE,GAAE,IAAI,IAAIA,GAAE,MAAM,YAAYH,GAAE,QAAQ,IAAI;AAAA,QAAC;AAAC,cAAME,KAAEF,GAAE,MAAMC,EAAC;AAAE,eAAO,KAAK,MAAMA,EAAC,IAAED,IAAE,KAAK,QAAQC,EAAC,IAAEC,IAAE,KAAK,MAAMA,GAAE,GAAG,IAAEA,IAAEF,OAAI,KAAK,cAAY,KAAK,YAAUE,KAAG,KAAK,oBAAkBF,IAAE;AAAA,MAAE;AAAA,MAAC,WAAU;AAAC,YAAIA,KAAE,KAAK,OAAMC,KAAE,KAAK;AAAW,eAAKA,KAAG,CAAAD,MAAGC,GAAE,SAAS,GAAEA,KAAEA,GAAE;AAAK,eAAOD,KAAE,KAAK;AAAA,MAAK;AAAA,MAAC,UAAS;AAAC,YAAIA,KAAE,KAAK;AAAW;AAAG,cAAGA,GAAE,MAAM,UAAQA,GAAE,MAAM,KAAK,KAAGA,GAAE,QAAQ,UAAQA,GAAE,QAAQ,KAAK,KAAGA,GAAE,MAAM,UAAQA,GAAE,MAAM,KAAK,EAAE,QAAM;AAAA,eAASA,KAAEA,GAAE;AAAM,eAAM;AAAA,MAAE;AAAA,MAAC,SAAQ;AAAC,YAAIA,KAAE,KAAK,YAAWC,KAAE;AAAE;AAAG,UAAAA,MAAGD,GAAE,MAAM,SAAOA,GAAE,QAAQ,SAAOA,GAAE,MAAM;AAAA,eAAaA,KAAEA,GAAE;AAAM,eAAOC;AAAA,MAAC;AAAA,MAAC,YAAW;AAAC,eAAO,KAAK,KAAK,UAAU;AAAA,MAAC;AAAA,MAAC,KAAKD,IAAE;AAAC,eAAO,KAAK,UAAUA,EAAC,EAAE,QAAQA,EAAC;AAAA,MAAC;AAAA,MAAC,eAAeA,IAAE;AAAC,cAAMC,KAAE,IAAI,QAAQD,MAAG,SAAO,IAAI;AAAE,YAAG,KAAK,QAAM,KAAK,MAAM,QAAQC,IAAE,EAAE,GAAE,KAAK,MAAM,OAAO,QAAM;AAAG,YAAIC,KAAE,KAAK;AAAU,WAAE;AAAC,gBAAMC,KAAED,GAAE,KAAIE,KAAEF,GAAE,QAAQD,EAAC;AAAE,cAAGC,GAAE,QAAMC,OAAI,KAAK,cAAYD,OAAI,KAAK,YAAUA,GAAE,OAAM,KAAK,MAAMA,GAAE,GAAG,IAAEA,IAAE,KAAK,QAAQA,GAAE,KAAK,KAAK,IAAEA,GAAE,MAAK,KAAK,MAAMA,GAAE,KAAK,GAAG,IAAEA,GAAE,OAAME,GAAE,QAAM;AAAG,UAAAF,KAAEA,GAAE;AAAA,QAAQ,SAAOA;AAAG,eAAM;AAAA,MAAE;AAAA,MAAC,QAAQF,IAAE;AAAC,eAAO,KAAK,eAAeA,EAAC,GAAE;AAAA,MAAI;AAAA,MAAC,iBAAiBA,IAAE;AAAC,cAAMC,KAAE,IAAI,OAAO,OAAKD,MAAG,SAAO,GAAG;AAAE,YAAG,KAAK,QAAM,KAAK,MAAM,QAAQC,IAAE,EAAE,GAAE,KAAK,MAAM,OAAO,QAAM;AAAG,YAAIC,KAAE,KAAK;AAAW,WAAE;AAAC,gBAAMC,KAAED,GAAE,KAAIE,KAAEF,GAAE,UAAUD,EAAC;AAAE,cAAGC,GAAE,QAAMC,OAAID,OAAI,KAAK,cAAY,KAAK,YAAUA,GAAE,OAAM,KAAK,MAAMA,GAAE,GAAG,IAAEA,IAAE,KAAK,QAAQA,GAAE,KAAK,KAAK,IAAEA,GAAE,MAAK,KAAK,MAAMA,GAAE,KAAK,GAAG,IAAEA,GAAE,OAAME,GAAE,QAAM;AAAG,UAAAF,KAAEA,GAAE;AAAA,QAAI,SAAOA;AAAG,eAAM;AAAA,MAAE;AAAA,MAAC,UAAUF,IAAE;AAAC,eAAO,KAAK,iBAAiBA,EAAC,GAAE;AAAA,MAAI;AAAA,MAAC,aAAY;AAAC,eAAO,KAAK,aAAW,KAAK,SAAS;AAAA,MAAC;AAAA,MAAC,eAAeA,IAAEC,IAAE;AAAC,iBAASC,GAAEE,IAAEC,IAAE;AAAC,iBAAO,OAAOJ,MAAG,WAASA,GAAE,QAAQ,iBAAgB,CAACK,IAAEC,OAAIA,OAAI,MAAI,MAAIA,OAAI,MAAIH,GAAE,CAAC,IAAE,CAACG,KAAEH,GAAE,SAAOA,GAAE,CAACG,EAAC,IAAE,IAAIA,EAAC,EAAE,IAAEN,GAAE,GAAGG,IAAEA,GAAE,OAAMC,IAAED,GAAE,MAAM;AAAA,QAAC;AAAC,QAAAmB,GAAErB,IAAE,gBAAgB;AAAE,iBAASC,GAAEC,IAAEC,IAAE;AAAC,cAAIC;AAAE,gBAAMC,KAAE,CAAC;AAAE,iBAAKD,KAAEF,GAAE,KAAKC,EAAC,IAAG,CAAAE,GAAE,KAAKD,EAAC;AAAE,iBAAOC;AAAA,QAAC;AAAC,YAAGgB,GAAEpB,IAAE,UAAU,GAAEH,GAAE,OAAO,CAAAG,GAAEH,IAAE,KAAK,QAAQ,EAAE,QAAQ,CAAAK,OAAG;AAAC,cAAGA,GAAE,SAAO,MAAK;AAAC,kBAAMC,KAAEJ,GAAEG,IAAE,KAAK,QAAQ;AAAE,YAAAC,OAAID,GAAE,CAAC,KAAG,KAAK,UAAUA,GAAE,OAAMA,GAAE,QAAMA,GAAE,CAAC,EAAE,QAAOC,EAAC;AAAA,UAAC;AAAA,QAAC,CAAC;AAAA,aAAM;AAAC,gBAAMF,KAAE,KAAK,SAAS,MAAMJ,EAAC;AAAE,cAAGI,MAAGA,GAAE,SAAO,MAAK;AAAC,kBAAMC,KAAEH,GAAEE,IAAE,KAAK,QAAQ;AAAE,YAAAC,OAAID,GAAE,CAAC,KAAG,KAAK,UAAUA,GAAE,OAAMA,GAAE,QAAMA,GAAE,CAAC,EAAE,QAAOC,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,eAAO;AAAA,MAAI;AAAA,MAAC,eAAeL,IAAEC,IAAE;AAAC,cAAK,EAAC,UAASC,GAAC,IAAE,MAAKC,KAAED,GAAE,QAAQF,EAAC;AAAE,eAAOG,OAAI,MAAI,KAAK,UAAUA,IAAEA,KAAEH,GAAE,QAAOC,EAAC,GAAE;AAAA,MAAI;AAAA,MAAC,QAAQD,IAAEC,IAAE;AAAC,eAAO,OAAOD,MAAG,WAAS,KAAK,eAAeA,IAAEC,EAAC,IAAE,KAAK,eAAeD,IAAEC,EAAC;AAAA,MAAC;AAAA,MAAC,kBAAkBD,IAAEC,IAAE;AAAC,cAAK,EAAC,UAASC,GAAC,IAAE,MAAKC,KAAEH,GAAE;AAAO,iBAAQI,KAAEF,GAAE,QAAQF,EAAC,GAAEI,OAAI,IAAGA,KAAEF,GAAE,QAAQF,IAAEI,KAAED,EAAC,EAAE,CAAAD,GAAE,MAAME,IAAEA,KAAED,EAAC,MAAIF,MAAG,KAAK,UAAUG,IAAEA,KAAED,IAAEF,EAAC;AAAE,eAAO;AAAA,MAAI;AAAA,MAAC,WAAWD,IAAEC,IAAE;AAAC,YAAG,OAAOD,MAAG,SAAS,QAAO,KAAK,kBAAkBA,IAAEC,EAAC;AAAE,YAAG,CAACD,GAAE,OAAO,OAAM,IAAI,UAAU,2EAA2E;AAAE,eAAO,KAAK,eAAeA,IAAEC,EAAC;AAAA,MAAC;AAAA,IAAC;AAAC,IAAYyB,KAAE,KAAG;AAAG,IAAMG,MAAG,IAAI,WAAW,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAAI,IAAE,SAAS9B,IAAEC,IAAE;AAAC,YAAMC,KAAEF,GAAE;AAAO,UAAIG,KAAE;AAAE,aAAKA,KAAED,KAAG,CAAAD,GAAEE,EAAC,IAAEH,GAAE,WAAWG,IAAG;AAAA,IAAC,IAAE,SAASH,IAAEC,IAAE;AAAC,YAAMC,KAAEF,GAAE;AAAO,UAAIG,KAAE;AAAE,aAAKA,KAAED,MAAG;AAAC,cAAME,KAAEJ,GAAE,WAAWG,EAAC;AAAE,QAAAF,GAAEE,IAAG,KAAG,MAAIC,OAAI,IAAEA,OAAI;AAAA,MAAC;AAAA,IAAC;AAAvO,IAAyO,KAAG;AAAs3jB,IAAAoB,GAAE,IAAG,OAAO;AAAyM,IAAAA,GAAEkD,KAAG,GAAG;AACplzB,IAAAlD,GAAE,IAAG,GAAG;AAAyQ,IAAAA,GAAEoD,KAAG,GAAG;AAAuC,IAAApD,GAAEmD,KAAG,GAAG;AAE5+B,IAAAnD,GAAE,GAAE,GAAG;AAAS,WAAO,cAAY,QAAM,YAAS;AAAC,YAAK,EAAC,OAAMxB,IAAE,MAAKC,GAAC,IAAE,MAAM;AAA+B,YAAMA,IAAE8F,MAAG/F;AAAA,IAAC,GAAG;AAAE,IAAMgG,MAAGxE,GAAE,CAACxB,IAAEC,OAAI8F,MAAGA,IAAG/F,IAAEC,EAAC,IAAE,GAAGD,IAAEC,EAAC,GAAE,UAAU;AAA/C,IAAiD,KAAGuB,GAAE,CAAAxB,OAAG;AAAC,UAAG,CAACA,GAAE,SAAS,QAAQ,KAAG,CAACA,GAAE,SAAS,QAAQ,EAAE,QAAM;AAAG,UAAG;AAAC,eAAOgG,IAAGhG,EAAC,EAAE,CAAC;AAAA,MAAC,QAAM;AAAC,eAAM;AAAA,MAAE;AAAA,IAAC,GAAE,OAAO;AAA/J,IAAiKiG,MAAG;AAApK,IAAwK,MAAI,CAAAjG,OAAG;AAAC,YAAMC,KAAE;AAAU,aAAOD,GAAEC,EAAC,KAAG,OAAOD,GAAEC,EAAC,KAAG,YAAU,gBAAeD,GAAEC,EAAC,IAAED,GAAEC,EAAC,IAAED;AAAA,IAAC,GAAG,SAAS;AAA5Q,IAA8Q,KAAG,SAAS,EAAE;AAA5R,IAAgSkG,MAAG1E,GAAE,CAACxB,IAAEC,IAAEC,OAAI;AAAC,UAAGA,IAAE;AAAC,YAAG,CAACD,GAAE,SAAS,SAAS,EAAE;AAAA,MAAM,WAAS,CAACA,GAAE,SAAS,QAAQ,EAAE;AAAO,YAAMG,KAAE4F,IAAG/F,IAAED,EAAC,EAAE,CAAC,EAAE,OAAO,CAAAQ,OAAGA,GAAE,IAAE,EAAE;AAAE,UAAGJ,GAAE,WAAS,EAAE;AAAO,YAAMC,KAAE,IAAIyF,IAAG7F,EAAC;AAAE,iBAAUO,MAAKJ,GAAE,CAAAC,GAAE,YAAYG,GAAE,IAAG,EAAE;AAAE,YAAMF,KAAED,GAAE,SAAS,GAAEE,KAAEF,GAAE,YAAY,EAAC,QAAOL,IAAE,gBAAe,OAAG,OAAM,WAAU,CAAC;AAAE,aAAM,EAAC,MAAKM,IAAE,KAAIC,GAAC;AAAA,IAAC,GAAE,wBAAwB;AAAnnB,IAAqnB4F,MAAG3E,GAAE,CAAAxB,OAAG;AAAC,UAAG;AAAC,cAAMC,KAAE,EAAE,aAAaD,IAAE,MAAM;AAAE,eAAO,KAAK,MAAMC,EAAC;AAAA,MAAC,QAAM;AAAA,MAAC;AAAA,IAAC,GAAE,cAAc;AAA/sB,IAAitBmG,MAAG5E,GAAE,MAAI;AAAA,IAAC,GAAE,MAAM;AAAnuB,IAAquB6E,MAAG7E,GAAE,MAAI,KAAK,MAAM,KAAK,IAAI,IAAE,GAAG,GAAE,SAAS;AAAE,IAAM,KAAN,cAAiB,IAAG;AAAA,MAAC,OAAM;AAAC,QAAAA,GAAE,MAAK,WAAW;AAAA,MAAC;AAAA,MAAC,iBAAe;AAAA,MAAG,oBAAkBzB,GAAE,KAAK,GAAG,OAAO,GAAE,KAAK;AAAA,MAAE;AAAA,MAAW,cAAa;AAAC,cAAM,GAAE,EAAE,UAAU,KAAK,gBAAe,EAAC,WAAU,KAAE,CAAC,GAAE,KAAK,aAAW,EAAE,YAAY,KAAK,cAAc,EAAE,IAAI,CAAAE,OAAG;AAAC,gBAAK,CAACC,IAAEC,EAAC,IAAEF,GAAE,MAAM,GAAG;AAAE,iBAAM,EAAC,MAAK,OAAOC,EAAC,GAAE,KAAIC,IAAE,UAASF,GAAC;AAAA,QAAC,CAAC,GAAE,aAAa,MAAI;AAAC,eAAK,gBAAgB,GAAE,KAAK,wBAAwB;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,MAAC,IAAIA,IAAE;AAAC,cAAMC,KAAE,MAAM,IAAID,EAAC;AAAE,YAAGC,GAAE,QAAOA;AAAE,cAAMC,KAAE,KAAK,WAAW,KAAK,CAAAG,OAAGA,GAAE,QAAML,EAAC;AAAE,YAAG,CAACE,GAAE;AAAO,cAAMC,KAAEL,GAAE,KAAK,KAAK,gBAAeI,GAAE,QAAQ,GAAEE,KAAE8F,IAAG/F,EAAC;AAAE,YAAG,CAACC,IAAE;AAAC,YAAE,SAAS,OAAOD,EAAC,EAAE,KAAK,MAAI;AAAC,kBAAME,KAAE,KAAK,WAAW,QAAQH,EAAC;AAAE,iBAAK,WAAW,OAAOG,IAAE,CAAC;AAAA,UAAC,GAAE,MAAI;AAAA,UAAC,CAAC;AAAE;AAAA,QAAM;AAAC,eAAO,MAAM,IAAIL,IAAEI,EAAC,GAAEA;AAAA,MAAC;AAAA,MAAC,IAAIJ,IAAEC,IAAE;AAAC,YAAG,MAAM,IAAID,IAAEC,EAAC,GAAEA,IAAE;AAAC,gBAAMC,KAAEkG,IAAG;AAAE,YAAE,SAAS,UAAUtG,GAAE,KAAK,KAAK,gBAAe,GAAGI,EAAC,IAAIF,EAAC,EAAE,GAAE,KAAK,UAAUC,EAAC,CAAC,EAAE,MAAMkG,GAAE;AAAA,QAAC;AAAC,eAAO;AAAA,MAAI;AAAA,MAAC,kBAAiB;AAAC,cAAMnG,KAAEoG,IAAG;AAAE,mBAAUnG,MAAK,KAAK,WAAW,CAAAD,KAAEC,GAAE,OAAK,KAAG,EAAE,SAAS,OAAOH,GAAE,KAAK,KAAK,gBAAeG,GAAE,QAAQ,CAAC,EAAE,MAAMkG,GAAE;AAAA,MAAC;AAAA,MAAC,MAAM,0BAAyB;AAAC,YAAG;AAAC,gBAAM,EAAE,SAAS,OAAO,KAAK,iBAAiB,EAAE,KAAK,MAAI,IAAE,MAAI,QAAO,EAAE,WAAS,MAAM,EAAE,SAAS,GAAG,KAAK,mBAAkB,EAAC,WAAU,MAAG,OAAM,KAAE,CAAC,IAAE,MAAM,EAAE,SAAS,MAAM,KAAK,mBAAkB,EAAC,WAAU,KAAE,CAAC;AAAA,QAAE,QAAM;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,IAAIE,MAAG,QAAQ,IAAI,oBAAkB,oBAAI,QAAI,IAAI;AAAG,IAAM,KAAG;AAAT,IAA0B,KAAG;AAA7B,IAAwG,KAAG;AAAmG,IAAA9E,GAAE,IAAG,eAAe;AAA2C,IAAAA,GAAE,IAAG,qBAAqB;AAA0C,IAAAA,GAAEqD,KAAG,gBAAgB;AAA8C,IAAArD,GAAE,IAAG,WAAW;AAAwC,IAAAA,GAAEsD,KAAG,YAAY;AAAuG,IAAAtD,GAAEuD,KAAG,kBAAkB;AAA6G,IAAAvD,GAAE,IAAG,cAAc;AAAgG,IAAAA,GAAEwD,KAAG,SAAS;AAAgU,IAAAxD,GAAEyD,KAAG,UAAU;AAAgG,IAAAzD,GAAE,IAAG,mBAAmB;AAAoF,IAAAA,GAAE,IAAG,YAAY;AAA+S,IAAAA,GAAE0D,KAAG,eAAe;AAAue,IAAA1D,GAAE,IAAG,WAAW;AAAgE,IAAAA,GAAE2D,KAAG,SAAS;AAAiF,IAAA3D,GAAE,IAAG,eAAe;AAAE,IAAM6D,KAAE;AAAyI,IAAA7D,GAAE,IAAG,WAAW;AAAoF,IAAAA,GAAE4D,KAAG,yBAAyB;AAAmF,IAAA5D,GAAE,IAAG,UAAU;AAAsD,IAAAA,GAAE,IAAG,cAAc;AAAoC,IAAAA,GAAE,IAAG,gBAAgB;AAAE,IAAI8D,MAAG;AAA4H,IAAA9D,GAAE,IAAG,cAAc;AAAqE,IAAAA,GAAE,IAAG,YAAY;AAA8D,IAAAA,GAAE,IAAG,eAAe;AAA2N,IAAAA,GAAE,IAAG,sBAAsB;AAAE,IAAM,KAAN,MAAQ;AAAA,MAAC,OAAM;AAAC,QAAAA,GAAE,MAAK,UAAU;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAEC,IAAE;AAAC,cAAMC,KAAE,OAAOF,MAAG;AAAS,YAAG,CAACE,MAAGF,GAAE,aAAa,QAAOA;AAAE,cAAMG,KAAED,KAAE,KAAK,MAAMF,EAAC,IAAEA,IAAE,EAAC,SAAQI,IAAE,MAAKC,IAAE,OAAMC,IAAE,YAAWC,IAAE,SAAQC,IAAE,gBAAeE,GAAC,IAAEP;AAAE,aAAK,UAAQC,IAAE,KAAK,OAAKC,IAAE,KAAK,QAAMC,MAAG,CAAC,GAAE,KAAK,aAAWC,IAAE,KAAK,UAAQC,IAAE,KAAK,iBAAeE,IAAE,KAAK,aAAWP,GAAE,cAAYA,GAAE,uBAAqB;AAAO,cAAMc,KAAEiE,IAAG3E,MAAG,IAAG,GAAGN,EAAC,CAAC;AAAE,aAAK,kBAAgBO,GAAE,IAAI,CAAAuB,OAAGmD,IAAGnD,MAAG,IAAGd,EAAC,CAAC;AAAE,cAAK,EAAC,UAASa,GAAC,IAAE3B;AAAE,eAAO2B,MAAG,YAAU,KAAK,WAASA,IAAE,KAAK,WAAS,WAAS,KAAK,WAAS,QAAO,KAAK,WAAS,GAAGA,IAAE5B,EAAC,IAAG,KAAK,eAAa,GAAG,GAAE,KAAK,aAAW,QAAO,KAAK,iBAAe;AAAA,MAAM;AAAA,IAAC;AAAyB,IAAAqB,GAAE,IAAG,QAAQ;AAAyE,IAAAA,GAAE,IAAG,iBAAiB;AAA8H,IAAAA,GAAE,IAAG,cAAc;AAA8F,IAAAA,GAAE,IAAG,sBAAsB;AAAE,IAAM+E,MAAN,MAAQ;AAAA,MAAC,OAAM;AAAC,QAAA/E,GAAE,MAAK,UAAU;AAAA,MAAC;AAAA,MAAC,cAAa;AAAC,aAAK,WAAS,EAAC,WAAU,KAAI,GAAE,KAAK,QAAM,CAAC;AAAA,MAAC;AAAA,IAAC;AAAyB,IAAAA,GAAE,IAAG,QAAQ;AAAwC,IAAAA,GAAE,IAAG,KAAK;AAAiH,IAAAA,GAAE,GAAE,KAAK;AAAmK,IAAAA,GAAE,IAAG,QAAQ;AAAE,IAAM,KAAG;AAAT,IAAW,KAAG;AAAd,IAAgB,KAAG;AAAnB,IAAqB,KAAG;AAAxB,IAA0B,KAAG;AAA7B,IAA+B,KAAG;AAAG,IAAM,KAAN,MAAQ;AAAA,MAAC,OAAM;AAAC,QAAAA,GAAE,MAAK,YAAY;AAAA,MAAC;AAAA,MAAC,YAAY,EAAC,MAAKvB,IAAE,YAAWC,GAAC,IAAE,CAAC,GAAE;AAAC,aAAK,SAAO,IAAIqG,OAAG,KAAK,WAAS,IAAIA,OAAG,KAAK,kBAAgB,CAAC,GAAE,KAAK,YAAU,CAAC,GAAE,KAAK,OAAKtG,IAAE,KAAK,aAAWC,IAAE,KAAK,cAAY,IAAIqG;AAAA,MAAE;AAAA,IAAC;AAAyB,IAAA/E,GAAE,IAAG,MAAM;AAAE,IAAM,KAAGA,GAAE,CAACxB,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,OAAI,GAAG,MAAGP,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,IAAEC,EAAC,GAAE,iBAAiB;AAA2E,IAAAkB,GAAE,IAAG,kBAAkB;AAAgI,IAAAA,GAAE,IAAG,WAAW;AAAoP,IAAAA,GAAE,IAAG,cAAc;AAAmG,IAAAA,GAAE,IAAG,cAAc;AAA0Q,IAAAA,GAAE,IAAG,oBAAoB;AAAmE,IAAAA,GAAE,IAAG,SAAS;AAAoG,IAAAA,GAAE,IAAG,gBAAgB;AAAmE,IAAAA,GAAE,IAAG,QAAQ;AAA2G,IAAAA,GAAE,IAAG,uBAAuB;AAAqD,IAAAA,GAAE,IAAG,gBAAgB;AAAgJ,IAAAA,GAAE,IAAG,YAAY;AAAE,IAAM,KAAG,GAAG,IAAG,IAAG,IAAG,IAAG,MAAK,KAAE;AAA/B,IAAiC,KAAG,CAAC;AAAsF,IAAAA,GAAE,IAAG,eAAe;AAA6E,IAAAA,GAAE,IAAG,QAAQ;AAA6C,IAAAA,GAAE,IAAG,WAAW;AAA8C,IAAAA,GAAE,IAAG,gBAAgB;AAAsZ,IAAAA,GAAE,IAAG,eAAe;AAAuM,IAAAA,GAAE,IAAG,qBAAqB;AAA+C,IAAAA,GAAE,IAAG,SAAS;AACj0T,IAAAA,GAAE,IAAG,oBAAoB;AAAoW,IAAAA,GAAE,IAAG,OAAO;AAAE,IAAM,KAAN,MAAQ;AAAA,MAAC,OAAM;AAAC,QAAAA,GAAE,MAAK,WAAW;AAAA,MAAC;AAAA,MAAC,YAAYvB,IAAEC,IAAE;AAAC,cAAMC,KAAED,GAAE,kBAAgB,GAAGD,EAAC,IAAE,GAAGA,EAAC;AAAE,aAAK,UAAQE,GAAE,SAAQ,KAAK,OAAKA,GAAE,MAAK,KAAK,WAASA,GAAE,UAAS,KAAK,QAAMA,GAAE,OAAM,KAAK,aAAWA,GAAE,YAAW,KAAK,aAAWA,GAAE,YAAW,KAAK,UAAQA,GAAE,SAAQD,GAAE,mBAAiB,KAAK,iBAAeC,GAAE;AAAA,MAAe;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,UAAU,IAAI;AAAA,MAAC;AAAA,IAAC;AAAqG,IAAAqB,GAAE,IAAG,WAAW;AAAE,IAAM,KAAGA,GAAE,CAACxB,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAE,CAAC,GAAEC,KAAE,EAAC,MAAKH,GAAC;AAAE,iBAAUI,MAAKH,IAAE;AAAC,cAAMI,KAAED,GAAEL,IAAEI,GAAE,IAAI;AAAE,QAAAE,OAAI,OAAO,OAAOF,IAAEE,EAAC,GAAEH,GAAE,QAAQG,GAAE,GAAG;AAAA,MAAE;AAAC,aAAM,EAAC,GAAGF,IAAE,KAAI,GAAGD,IAAE,MAAI,IAAI,EAAC;AAAA,IAAC,GAAE,uBAAuB;AAAlL,IAAoL,KAAGqB,GAAE,OAAMxB,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAE,CAAC,GAAEC,KAAE,EAAC,MAAKH,GAAC;AAAE,iBAAUI,MAAKH,IAAE;AAAC,cAAMI,KAAE,MAAMD,GAAEL,IAAEI,GAAE,IAAI;AAAE,QAAAE,OAAI,OAAO,OAAOF,IAAEE,EAAC,GAAEH,GAAE,QAAQG,GAAE,GAAG;AAAA,MAAE;AAAC,aAAM,EAAC,GAAGF,IAAE,KAAI,GAAGD,IAAE,MAAI,IAAI,EAAC;AAAA,IAAC,GAAE,mBAAmB;AAAvW,IAAyW,KAAG,OAAO,OAAO,EAAC,QAAO,OAAO,QAAQ,SAAS,IAAI,IAAG,QAAO,UAAS,CAAC;AAAlb,IAAob,KAAG;AAAvb,IAA6e,KAAG,QAAQ,SAAS,KAAK,CAAAH,OAAG,GAAG,KAAKA,EAAC,CAAC;AAAnhB,IAAqhB,KAAG,EAAC,GAAG,IAAG,WAAU,MAAG,gBAAe,CAAC,CAAC,QAAQ,IAAI,oBAAkB,IAAG,kBAAiB,MAAG,WAAU,KAAE;AAA9nB,IAAgoB,KAAGwB,GAAE,CAAAxB,OAAG;AAAC,YAAMC,KAAED,GAAE;AAAW,UAAGC,IAAE;AAAC,cAAMC,KAAEH,GAAE,QAAQE,GAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAAE,QAAAC,KAAEA,OAAI,UAAQA,OAAI,SAAOF,GAAE,aAAW,GAAGC,GAAE,MAAM,GAAE,EAAE,CAAC,OAAKC,OAAI,WAASF,GAAE,aAAW,GAAGC,GAAE,MAAM,GAAE,EAAE,CAAC,QAAMD,GAAE,cAAY;AAAA,MAAK;AAAC,aAAO,CAAAE,QAAIA,GAAE,QAAMF,GAAE,eAAaC,OAAIC,GAAE,MAAIA,GAAE,IAAI,QAAQ,KAAK,UAAUF,GAAE,UAAU,GAAE,KAAK,UAAUC,EAAC,CAAC,IAAGC,GAAE,MAAI,KAAK,MAAMA,GAAE,GAAG,IAAGA;AAAA,IAAE,GAAE,cAAc;AAA59B,IAA89B,KAAGsB,GAAE,CAAAxB,OAAG;AAAC,YAAMA,GAAE,OAAK,kBAAiB,OAAOA,GAAE,QAAO,OAAOA,GAAE,UAASA;AAAA,IAAC,GAAE,oBAAoB;AAA9jC,IAAgkC,KAAGwB,GAAE,CAACxB,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAE,CAAC;AAAE,UAAIC,IAAEC,IAAEC;AAAE,UAAGL,GAAE,WAAW,SAAS,GAAE;AAAC,QAAAG,KAAEH;AAAE,cAAMU,KAAE,IAAI,IAAIV,EAAC;AAAE,QAAAI,KAAE,GAAGM,EAAC;AAAA,MAAC,MAAK,EAACN,IAAEC,EAAC,IAAEL,GAAE,MAAM,GAAG,GAAEG,KAAE,GAAGC,EAAC,KAAGC,KAAE,IAAIA,EAAC,KAAG;AAAI,MAAAD,GAAE,SAAS,MAAM,KAAGA,GAAE,SAAS,MAAM,MAAIF,GAAE,iBAAiB,IAAE,KAAK,UAAUC,EAAC;AAAG,YAAMG,KAAE,EAAC,GAAG,IAAG,QAAO,OAAM,YAAWF,IAAE,QAAOF,IAAE,QAAO,cAAc,KAAK,UAAUE,EAAC,CAAC,WAAU,QAAO,QAAO,UAAS,QAAO,GAAGH,GAAC,GAAEM,KAAE+E,IAAG,CAACvF,IAAE,KAAK,UAAUO,EAAC,GAAE,eAAAiG,SAAGP,GAAE,EAAE,KAAK,GAAG,CAAC;AAAE,UAAIxF,KAAE6F,IAAG,IAAI9F,EAAC;AAAE,aAAOC,OAAIA,KAAE,GAAGR,IAAED,IAAE,CAAC,CAACW,IAAEO,OAAI;AAAC,cAAMa,KAAE,GAAGxB,EAAC;AAAE,YAAIyB;AAAE,YAAG;AAAC,UAAAA,SAAE,eAAAyE,eAAGvF,IAAEX,EAAC;AAAA,QAAC,SAAO0B,IAAE;AAAC,gBAAM,GAAGA,EAAC;AAAA,QAAC;AAAC,eAAOF,GAAEC,EAAC;AAAA,MAAC,GAAE,CAACrB,IAAEO,OAAIgF,IAAGvF,IAAEO,IAAE,IAAE,CAAC,CAAC,GAAEoF,IAAG,IAAI9F,IAAEC,EAAC,IAAGA;AAAA,IAAC,GAAE,eAAe;AAApnD,IAAsnD,KAAGe,GAAE,OAAMxB,IAAEC,IAAEC,OAAI;AAAC,YAAMC,KAAE,EAAC,GAAG,IAAG,QAAO,OAAM,YAAWF,IAAE,GAAGC,GAAC,GAAEE,KAAEmF,IAAG,CAACvF,IAAE,KAAK,UAAUG,EAAC,GAAE,eAAAqG,SAAGP,GAAE,EAAE,KAAK,GAAG,CAAC;AAAE,UAAI5F,KAAEiG,IAAG,IAAIlG,EAAC;AAAE,aAAOC,OAAIA,KAAE,MAAM,GAAGJ,IAAED,IAAE,CAAC,OAAMM,IAAEC,OAAI;AAAC,cAAMC,KAAE,GAAGL,EAAC;AAAE,YAAIM;AAAE,YAAG;AAAC,UAAAA,KAAE,UAAM,eAAAiG,WAAGnG,IAAEJ,EAAC;AAAA,QAAC,SAAOQ,IAAE;AAAC,gBAAM,GAAGA,EAAC;AAAA,QAAC;AAAC,eAAOH,GAAEC,EAAC;AAAA,MAAC,GAAE,CAACH,IAAEC,OAAI2F,IAAG5F,IAAEC,IAAE,IAAE,CAAC,CAAC,GAAE+F,IAAG,IAAIlG,IAAEC,EAAC,IAAGA;AAAA,IAAC,GAAE,WAAW;AAAA;AAAA;;;ACb1zF,OAAOsG,QAAM;AAA5F,IAAIC,IAA4BC,IAAyHC,IAAiRC,IAAgBC;AAA1b;AAAA;AAAA;AAAuG;AAAvG,IAAIJ,KAAE,OAAO;AAAe,IAAIC,KAAE,CAACI,IAAEC,OAAIN,GAAEK,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAsE,IAAMJ,KAAED,GAAE,MAAI,IAAI,QAAQ,CAAAI,OAAG;AAAC,YAAMC,KAAE,EAAE,QAAQ,IAAI,GAAEC,KAAER,GAAE,iBAAiBO,IAAE,MAAI;AAAC,QAAAD,GAAEJ,GAAE,CAAAO,OAAG;AAAC,gBAAMC,KAAE,OAAO,KAAK,KAAK,UAAUD,EAAC,CAAC,GAAEE,KAAE,OAAO,MAAM,CAAC;AAAE,UAAAA,GAAE,aAAaD,GAAE,QAAO,CAAC,GAAEF,GAAE,MAAM,OAAO,OAAO,CAACG,IAAED,EAAC,CAAC,CAAC;AAAA,QAAC,GAAE,cAAc,CAAC;AAAA,MAAC,CAAC;AAAE,MAAAF,GAAE,GAAG,SAAQ,MAAI;AAAC,QAAAF,GAAE;AAAA,MAAC,CAAC,GAAEE,GAAE,MAAM;AAAA,IAAC,CAAC,GAAE,iBAAiB;AAArR,IAAuRJ,KAAE,EAAC,MAAK,OAAM;AAArS,IAAuSC,KAAEF,GAAE;AAAE,IAAAE,GAAE,KAAK,CAAAC,OAAG;AAAC,MAAAF,GAAE,OAAKE;AAAA,IAAC,GAAE,MAAI;AAAA,IAAC,CAAC;AAAA;AAAA;;;ACA+N,SAASM,GAAEC,IAAEC,IAAEC,KAAE,GAAE;AAAC,QAAMC,KAAE,QAAQH,EAAC,KAAII,KAAE,QAAQH,EAAC,KAAII,KAAE,IAAI,OAAO,WAAWJ,EAAC,KAAI,GAAG;AAAE,SAAO,CAAAK,OAAGC,GAAE,WAASA,GAAE,gBAAcL,KAAEC,MAAG,KAAGG,IAAG,QAAQD,IAAEF,EAAC,IAAEC,KAAE,KAAGE;AAAC;AAAv1B,IAAIE,IAA4B,GAAmDC,IAAW,GAAgFC,IAA+eH,IAAiN,GAAWI,IAAWC,IAAWC,IAAWC,IAAWC,IAAWC,IAAWC,IAAY;AAAv8B;AAAA;AAAA;AAAA,IAAIT,KAAE,OAAO;AAAe,IAAI,IAAE,CAACR,IAAEC,OAAIO,GAAER,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAE,IAAIQ,KAAE;AAAG,IAAM,IAAE,OAAO,OAAK,MAAI,OAAK,OAAO,SAAO,MAAI,SAAO,OAAO,SAAO,MAAI,SAAO,CAAC;AAAE,IAAIC,KAAE;AAAE,QAAG,EAAE,WAAS,EAAE,QAAQ,OAAK,EAAE,QAAQ,QAAO;AAAC,YAAK,EAAC,aAAYV,IAAE,qBAAoBC,IAAE,UAASC,IAAE,MAAKC,IAAE,WAAUC,GAAC,IAAE,EAAE,QAAQ;AAAI,MAAAH,MAAGC,MAAGF,OAAI,MAAIS,KAAE,QAAGT,OAAI,OAAKA,OAAI,OAAKA,OAAI,MAAIS,KAAE,OAAGN,OAAI,SAAOM,KAAE,QAAG,QAAO,EAAE,QAAQ,OAAK,CAAC,UAAS,YAAW,YAAW,aAAY,kBAAiB,aAAY,OAAO,EAAE,KAAK,CAAAJ,OAAGA,MAAK,EAAE,QAAQ,GAAG,IAAEI,KAAE,OAAGA,KAAE,QAAQ,OAAO,OAAMA,OAAI,QAAQ,aAAW,WAASL,OAAIA,OAAI,eAAaA,OAAI,WAASM,KAAE,IAAEP,OAAIA,GAAE,SAAS,WAAW,KAAGA,GAAE,SAAS,KAAK,KAAGO,KAAE,IAAEA,KAAE;AAAA,IAAE;AAAC,IAAIH,KAAE,EAAC,SAAQE,IAAE,cAAaC,GAAC;AAAgK,MAAEX,IAAE,UAAU;AAAE,IAAM,IAAEA,GAAE,IAAG,EAAE;AAAf,IAAiBY,KAAEZ,GAAE,IAAG,EAAE;AAA1B,IAA4Ba,KAAEb,GAAE,IAAG,EAAE;AAArC,IAAuCc,KAAEd,GAAE,IAAG,EAAE;AAAhD,IAAkDe,KAAEf,GAAE,IAAG,EAAE;AAA3D,IAA6DgB,KAAEhB,GAAE,IAAG,EAAE;AAAtE,IAAwEiB,KAAEjB,GAAE,IAAG,EAAE;AAAjF,IAAmFkB,KAAElB,GAAE,KAAI,EAAE;AAA7F,IAA+F,IAAEA,GAAE,KAAI,EAAE;AAAA;AAAA;;;ACAj1B,OAAOmB,QAAM;AAAc,OAAOC,QAAM;AAAY,SAAO,iBAAiBC,UAAM;AAA0H,OAAOC,OAAI,aAAaC,WAAO;AAA8G,SAAO,WAAWC,WAAO;AAAlf,IAAIC,IAA4BC,IAA6iBC,IAAiMC,IAAwGC,KAA4EC,IAA0E,GAA2CC,KAAqFC,IAAmDC,IAA6BC,KAAoDC,IAAeC,KAA4BC,IAAqC,GAAEC,IAAE,GAAWC,IAAiLC,IAAgFC,KAC5jDC,IAA8DC,IAAuGC,IAAyEC,IACjRC,IAAqBC,KAAkBC,KAAuCC,KAAyBC,IAAwB,GAAsRC,KAAs1B,IAAiT,GAAkBC,IAAwBC,KAAeC,KAAeC,IAA6IC,IAA6RC,IAAsSC,KAAyhBC,IAA+CC,KACp0FC,KAA4dC,KAAsKC,KAAkbC,IAAgSC;AAH75C;AAAA;AAAA;AAA+E;AAA8I,IAAAC;AAAwJ;AAA0D;AAA+E;AAA9f,IAAIzC,KAAE,OAAO;AAAe,IAAIC,KAAE,CAACyC,IAAEC,OAAI3C,GAAE0C,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAA0f,IAAMzC,KAAED,GAAE,CAAAyC,OAAG;AAAC,UAAG,CAACA,GAAE,WAAW,uBAAuB,EAAE;AAAO,YAAMC,KAAED,GAAE,QAAQ,GAAG;AAAE,UAAGC,OAAI,GAAG;AAAO,YAAMC,KAAE,IAAI,gBAAgBF,GAAE,MAAMC,KAAE,CAAC,CAAC,EAAE,IAAI,UAAU;AAAE,UAAGC,GAAE,QAAOA;AAAA,IAAC,GAAE,qBAAqB;AAArM,IAAuMzC,KAAEF,GAAE,CAAAyC,OAAG;AAAC,YAAMC,KAAEzC,GAAEwC,EAAC;AAAE,aAAOC,OAAIjD,GAAE,OAAOiD,EAAC,IAAEjD,GAAE,OAAOgD,EAAC,GAAE,OAAOhD,GAAE,OAAOgD,EAAC,GAAEA,KAAEC,KAAGD;AAAA,IAAC,GAAE,mBAAmB;AAA7S,IAA+StC,MAAGH,GAAE,CAAAyC,OAAG;AAAC,YAAMC,KAAED,GAAE,QAAQ,GAAG;AAAE,UAAGC,OAAI,GAAG,QAAOD,GAAE,MAAM,GAAEC,EAAC;AAAA,IAAC,GAAE,WAAW;AAAzX,IAA2XtC,KAAEJ,GAAE,CAAAyC,OAAGA,GAAE,CAAC,MAAI,QAAMA,GAAE,CAAC,MAAI,OAAKA,GAAE,CAAC,MAAI,OAAKA,GAAE,CAAC,MAAI,MAAK,gBAAgB;AAAnc,IAAqc,IAAEzC,GAAE,CAAAyC,OAAGrC,GAAEqC,EAAC,KAAG/C,GAAE,WAAW+C,EAAC,GAAE,YAAY;AAA9e,IAAgfpC,MAAGL,GAAE,CAAAyC,OAAG;AAAC,UAAG,EAAEA,EAAC,EAAE,QAAM;AAAG,YAAMC,KAAEvC,IAAGsC,EAAC;AAAE,aAAOC,MAAGA,OAAI;AAAA,IAAM,GAAE,qBAAqB;AAAnkB,IAAqkBpC,KAAE;AAAvkB,IAAwnBC,KAAE;AAA1nB,IAAqpBC,MAAG;AAAxpB,IAAysBC,KAAE;AAA3sB,IAAwtBC,MAAG;AAA3tB,IAAovBC,KAAE,GAAGjB,GAAE,GAAG,eAAeA,GAAE,GAAG;AAAG,IAAQ,IAAE;AAAG,IAAMmB,KAAEb,GAAE,CAAAyC,OAAG;AAAC,UAAIC,KAAE;AAAK,UAAGD,IAAE;AAAC,cAAMG,KAAElD,GAAE,QAAQ+C,EAAC;AAAE,QAAAC,KAAE,EAAC,MAAKE,IAAE,QAAO,GAAEA,EAAC,EAAC;AAAA,MAAC,OAAK;AAAC,YAAG;AAAC,UAAAF,KAAE,GAAE;AAAA,QAAC,QAAM;AAAA,QAAC;AAAC,YAAG,CAACA,GAAE;AAAA,MAAM;AAAC,UAAE,GAAEA,EAAC,GAAE9B,KAAE,GAAG8B,EAAC,GAAE,IAAEA,IAAG,OAAO,iBAAiB,WAAS;AAAA,IAAE,GAAE,cAAc;AAArL,IAAuL5B,KAAEd,GAAE,CAAAyC,OAAG,MAAM,KAAKA,EAAC,EAAE,SAAO,IAAE,IAAIA,GAAE,SAAS,CAAC,KAAG,IAAG,0BAA0B;AAArQ,IAAuQ1B,MAAG;AAAA;AAA1Q,IACrzCC,KAAEhB,GAAE,MAAI,QAAQ,qBAAmB,MAAG,sBAAsB;AADyvC,IACvvCiB,KAAEjB,GAAE,CAAC,EAAC,MAAKyC,IAAE,KAAIC,GAAC,MAAID,KAAE1B,MAAG,OAAO,KAAK,KAAK,UAAU2B,EAAC,GAAE,MAAM,EAAE,SAAS,QAAQ,GAAE,iBAAiB;AADkpC,IAChpCxB,KAAE,OAAO,QAAQ,IAAI,SAAS;AAAE,IAAAA,OAAI2B,GAAE,UAAQ,MAAGA,GAAE,eAAa;AAAG,IAAM1B,KAAEnB,GAAE,CAAAyC,OAAG,CAACC,OAAKE,OAAI;AAAC,UAAG,CAAC1B,MAAGwB,KAAExB,GAAE;AAAO,YAAMyB,KAAE,GAAGlC,GAAG,SAAS,QAAQ,GAAG,GAAG,CAAC,IAAIgC,EAAC,IAAGK,KAAEF,GAAE,IAAI,CAAAG,OAAG,OAAOA,MAAG,WAASA,KAAEjD,IAAGiD,IAAE,EAAC,QAAO,KAAE,CAAC,CAAC,EAAE,KAAK,GAAG;AAAE,MAAAlD,IAAG,GAAE,GAAG8C,EAAC,IAAIG,EAAC;AAAA,CAC9b;AAAA,IAAC,GAAE,WAAW;AAD6Q,IAC3Q1B,KAAED,GAAE,EAAG,EAAG,OAAO,CAAC,CAAC;AADwP,IACtPE,MAAGF,GAAE6B,GAAG,OAAO,CAAC;AADsO,IACpO1B,MAAG,CAAC,QAAO,QAAO,OAAM,QAAO,MAAM;AAD+L,IAC7LC,MAAG,CAAC,OAAM,QAAO,MAAM;AADsK,IACpKC,KAAE,CAAC,OAAM,QAAO,MAAM;AAD8I,IAC5I,IAAExB,GAAE,CAACyC,IAAEC,IAAEE,IAAED,OAAI;AAAC,YAAMG,KAAE,OAAO,yBAAyBL,IAAEC,EAAC;AAAE,MAAAI,IAAG,MAAIL,GAAEC,EAAC,IAAEE,MAAG,CAACE,MAAGA,GAAE,iBAAe,OAAO,eAAeL,IAAEC,IAAE,EAAC,OAAME,IAAE,YAAWE,IAAG,cAAYH,IAAG,YAAW,UAASA,IAAG,aAAWG,KAAEA,GAAE,WAAS,OAAI,cAAaH,IAAG,iBAAeG,KAAEA,GAAE,eAAa,MAAG,CAAC;AAAA,IAAC,GAAE,SAAS;AADxI,IAC0IrB,MAAGzB,GAAE,CAACyC,IAAEC,IAAEE,OAAI;AAAC,YAAMD,KAAED,GAAE,KAAK,GAAEI,KAAE9C,GAAE,CAAC+C,IAAEE,OAAI;AAAC,YAAGR,GAAE,YAAU,MAAG,QAAOE,GAAEI,IAAEE,EAAC;AAAE,cAAK,CAACC,IAAEL,EAAC,IAAEI,GAAE,MAAM,GAAG;AAAE,aAAI,IAAI,gBAAgBJ,EAAC,EAAE,IAAI,WAAW,KAAG,YAAUD,GAAE,QAAOD,GAAEI,IAAEE,EAAC;AAAE,QAAA7B,GAAE,GAAE,QAAO,EAAC,UAAS6B,GAAC,CAAC,GAAEF,GAAE,GAAG,WAAW,uBAAuB,MAAIA,GAAE,OAAKrD,GAAE,QAAQwD,EAAC,IAAGD,IAAG,QAAMA,GAAE,KAAK,EAAC,MAAK,cAAa,MAAKC,GAAC,CAAC;AAAE,cAAMC,KAAE7B,IAAG,KAAK,CAAA8B,OAAGF,GAAE,SAASE,EAAC,CAAC,GAAEC,KAAE9B,IAAG,KAAK,CAAA6B,OAAGF,GAAE,SAASE,EAAC,CAAC;AAAE,YAAG,CAACD,MAAG,CAACE,GAAE,QAAOV,GAAEI,IAAEG,EAAC;AAAE,YAAII,KAAE1D,IAAG,aAAasD,IAAE,MAAM;AAAE,YAAGA,GAAE,SAAS,MAAM,GAAE;AAAC,gBAAME,KAAE7B,IAAG0B,IAAEK,EAAC;AAAE,UAAAF,OAAIE,KAAEtC,GAAE,IAAEC,GAAEmC,EAAC,IAAEA,GAAE;AAAA,QAAK,WAASD,MAAG,GAAGG,EAAC,GAAE;AAAC,gBAAMF,KAAE,GAAGE,IAAEL,IAAE,EAAC,aAAY,IAAIC,EAAC,EAAC,CAAC;AAAE,UAAAI,KAAEtC,GAAE,IAAEC,GAAEmC,EAAC,IAAEA,GAAE;AAAA,QAAI;AAAC,QAAAhC,GAAE,GAAE,UAAS,EAAC,UAAS8B,GAAC,CAAC,GAAEH,GAAE,SAASO,IAAEJ,EAAC;AAAA,MAAC,GAAE,aAAa;AAAE,QAAER,IAAE,OAAMI,EAAC;AAAE,iBAAUC,MAAKvB,GAAE,GAAEkB,IAAEK,IAAED,IAAE,EAAC,YAAW,CAACF,IAAE,UAAS,MAAG,cAAa,KAAE,CAAC;AAAE,aAAO,EAAEF,IAAE,QAAOI,IAAE,EAAC,UAAS,MAAG,cAAa,KAAE,CAAC,GAAE,MAAI;AAAC,QAAAJ,GAAE,KAAK,MAAII,OAAIJ,GAAE,KAAK,IAAEC;AAAG,mBAAUI,MAAI,CAAC,GAAGvB,IAAE,MAAM,EAAE,CAAAkB,GAAEK,EAAC,MAAID,MAAG,OAAOJ,GAAEK,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,kBAAkB;AAD99B,IACg+B,KAAG/C,GAAE,CAAAyC,OAAG,CAAAC,OAAG;AAAC,WAAIA,OAAI,OAAKA,OAAI,QAAMA,GAAE,SAAS,KAAK,OAAKA,MAAG,MAAKjC,GAAE,KAAKiC,EAAC,GAAE;AAAC,YAAIE,KAAElD,GAAE,KAAKgD,IAAE,UAAU;AAAE,QAAAA,GAAE,WAAW,IAAI,MAAIE,KAAE,KAAKA,EAAC;AAAI,YAAG;AAAC,iBAAOH,GAAEG,EAAC;AAAA,QAAC,QAAM;AAAA,QAAC;AAAA,MAAC;AAAC,UAAG;AAAC,eAAOH,GAAEC,EAAC;AAAA,MAAC,SAAOE,IAAE;AAAC,cAAMD,KAAEC;AAAE,YAAGD,GAAE,SAAO,mBAAmB,KAAG;AAAC,iBAAOF,GAAE,GAAGC,EAAC,GAAGhD,GAAE,GAAG,UAAU;AAAA,QAAC,QAAM;AAAA,QAAC;AAAC,cAAMiD;AAAA,MAAC;AAAA,IAAC,GAAE,wBAAwB;AAD/wC,IACixC,IAAE,CAAC,OAAM,OAAO;AADjyC,IACmyCjB,KAAE,CAAC,OAAM,QAAO,MAAM;AADzzC,IAC2zCC,MAAG,CAAC,GAAGD,IAAE,GAAG,CAAC;AADx0C,IAC00CE,MAAG,CAAC,GAAG,GAAE,GAAGF,EAAC;AADv1C,IACy1CG,KAAE,uBAAO,OAAO,IAAI;AAAE,IAAAA,GAAE,KAAK,IAAE,CAAC,OAAM,QAAO,OAAM,MAAM,GAAEA,GAAE,MAAM,IAAE,CAAC,QAAO,OAAM,QAAO,KAAK,GAAEA,GAAE,MAAM,IAAE,CAAC,MAAM,GAAEA,GAAE,MAAM,IAAE,CAAC,MAAM;AAAE,IAAMC,KAAE9B,GAAE,CAAAyC,OAAG;AAAC,YAAMC,KAAED,GAAE,MAAM,GAAG,GAAEG,KAAEF,GAAE,CAAC,IAAE,IAAIA,GAAE,CAAC,CAAC,KAAG,IAAG,CAACC,EAAC,IAAED,IAAEI,KAAEpD,GAAE,QAAQiD,EAAC,GAAEI,KAAE,CAAC,GAAEE,KAAEpB,GAAEiB,EAAC;AAAE,UAAGG,IAAE;AAAC,cAAMJ,KAAEF,GAAE,MAAM,GAAE,CAACG,GAAE,MAAM;AAAE,QAAAC,GAAE,KAAK,GAAGE,GAAE,IAAI,CAAAM,OAAGV,KAAEU,KAAEX,EAAC,CAAC;AAAA,MAAC;AAAC,YAAMM,KAAE,EAAET,GAAE,WAAWnC,EAAC,KAAG,EAAEqC,EAAC,MAAIA,GAAE,SAAShC,EAAC,KAAGgC,GAAE,SAAS,gBAAgB,IAAEf,MAAGD;AAAG,aAAOoB,GAAE,KAAK,GAAGG,GAAE,IAAI,CAAAL,OAAGF,KAAEE,KAAED,EAAC,CAAC,GAAEG;AAAA,IAAC,GAAE,iBAAiB;AAAjS,IAAmShB,KAAE/B,GAAE,CAACyC,IAAEC,IAAEE,OAAI;AAAC,UAAGxB,GAAE,GAAE,qBAAoB,EAAC,SAAQsB,IAAE,aAAYjC,GAAE,KAAKiC,EAAC,GAAE,YAAWE,IAAE,SAAQ,EAAC,CAAC,GAAEnC,GAAE,KAAKiC,EAAC,KAAG,CAACE,MAAG,CAAC,EAAE;AAAO,YAAMD,KAAEb,GAAEY,EAAC;AAAE,UAAGC,GAAE,YAAUG,MAAKH,GAAE,KAAG;AAAC,eAAOF,GAAEK,EAAC;AAAA,MAAC,SAAOC,IAAE;AAAC,cAAK,EAAC,MAAKE,GAAC,IAAEF;AAAE,YAAGE,OAAI,sBAAoBA,OAAI,gCAAgC,OAAMF;AAAA,MAAC;AAAA,IAAC,GAAE,mBAAmB;AAAvkB,IAAykBf,MAAGhC,GAAE,CAACyC,IAAEC,OAAI,CAAAE,OAAG;AAAC,UAAGxB,GAAE,GAAE,qBAAoB,EAAC,SAAQwB,IAAE,YAAWF,IAAE,YAAW,EAAEE,EAAC,EAAC,CAAC,GAAE,EAAEA,EAAC,GAAE;AAAC,cAAMD,KAAEZ,GAAEU,IAAEG,IAAEF,EAAC;AAAE,YAAGC,GAAE,QAAOA;AAAA,MAAC;AAAC,UAAG;AAAC,eAAOF,GAAEG,EAAC;AAAA,MAAC,SAAOD,IAAE;AAAC,cAAMG,KAAEH;AAAE,YAAGG,GAAE,SAAO,oBAAmB;AAAC,cAAGA,GAAE,MAAK;AAAC,kBAAMG,KAAEH,GAAE,QAAQ,MAAM,gCAAgC;AAAE,gBAAGG,IAAE;AAAC,oBAAMJ,KAAEI,GAAE,CAAC,GAAEM,KAAExB,GAAEU,IAAEI,IAAEH,EAAC;AAAE,kBAAGa,GAAE,QAAOA;AAAA,YAAC;AAAC,kBAAML,KAAEJ,GAAE,QAAQ,MAAM,8FAA8F;AAAE,gBAAGI,IAAE;AAAC,oBAAML,KAAEK,GAAE,CAAC,GAAEK,KAAExB,GAAEU,IAAEI,IAAEH,EAAC;AAAE,kBAAGa,GAAE,QAAOA;AAAA,YAAC;AAAA,UAAC;AAAC,gBAAMR,KAAEhB,GAAEU,IAAEG,IAAEF,EAAC;AAAE,cAAGK,GAAE,QAAOA;AAAA,QAAC;AAAC,cAAMD;AAAA,MAAC;AAAA,IAAC,GAAE,2BAA2B;AAAhmC,IAAkmCb,KAAE;AAApmC,IAAipCC,MAAGlC,GAAE,CAAAyC,OAAG;AAAC,YAAMC,KAAED,GAAE,MAAM,MAAM;AAAA,CAC36F,EAAE,MAAM,CAAC;AAAE,aAAOC,GAAE,CAAC,EAAE,SAAST,EAAC,KAAGS,GAAE,CAAC,EAAE,SAAST,EAAC;AAAA,IAAC,GAAE,gBAAgB;AADqrD,IACnrDE,MAAGnC,GAAE,CAACyC,IAAEC,OAAI;AAAC,YAAME,KAAEH,GAAE,MAAM,GAAG,GAAEE,KAAE,IAAI,gBAAgBC,GAAE,CAAC,CAAC;AAAE,UAAGF,IAAG,UAAS;AAAC,cAAMI,KAAE7C,GAAEyC,GAAE,QAAQ;AAAE,YAAIK;AAAE,YAAGD,IAAE;AAAC,gBAAMD,KAAEC,GAAE,MAAM,GAAG,GAAES,KAAEV,GAAE,CAAC;AAAE,UAAAE,KAAEF,GAAE,CAAC,GAAEH,GAAE,WAASa,IAAEb,GAAE,OAAKhD,GAAE,QAAQ6D,EAAC,GAAEb,GAAE,QAAMjD,GAAE,iBAAiBiD,GAAE,IAAI,GAAEjD,GAAE,OAAO8D,EAAC,IAAEb;AAAA,QAAC;AAAC,QAAAK,OAAIA,KAAEL,GAAE,SAAS,MAAM,GAAG,EAAE,CAAC;AAAG,cAAMQ,KAAE,IAAI,gBAAgBH,EAAC,EAAE,IAAI,WAAW;AAAE,QAAAG,MAAGP,GAAE,OAAO,aAAYO,EAAC;AAAA,MAAC;AAAC,aAAM,CAACN,GAAE,CAAC,GAAED,IAAE,CAACG,IAAEC,QAAKrD,GAAE,WAAWoD,EAAC,KAAG,CAACA,GAAE,SAAS,OAAO,KAAG,CAACA,GAAE,SAAS,OAAO,KAAG,EAAEC,OAAI,KAAGb,IAAG,IAAI,OAAK,OAAKY,MAAGhC,GAAE6B,EAAC,IAAGG,GAAE;AAAA,IAAC,GAAE,eAAe;AADytC,IACvtCV,MAAGpC,GAAE,CAACyC,IAAEC,IAAEE,OAAI;AAAC,UAAGH,GAAE,WAAWnC,EAAC,MAAImC,KAAE9C,GAAE8C,EAAC,IAAG7B,MAAG,CAAC,EAAE6B,EAAC,KAAG,CAACC,IAAG,UAAU,SAAS/B,EAAC,GAAE;AAAC,cAAMgC,KAAE/B,GAAE6B,EAAC;AAAE,mBAAUK,MAAKH,GAAE,KAAG;AAAC,iBAAOC,GAAEE,EAAC;AAAA,QAAC,QAAM;AAAA,QAAC;AAAA,MAAC;AAAC,aAAOF,GAAEH,EAAC;AAAA,IAAC,GAAE,gBAAgB;AADmjC,IACjjCJ,MAAGrC,GAAE,CAACyC,IAAEC,IAAEE,OAAI,CAACD,IAAEG,OAAKC,OAAI;AAAC,UAAGN,GAAE,YAAU,MAAG,QAAOC,GAAEC,IAAEG,IAAE,GAAGC,EAAC;AAAE,MAAAJ,KAAEzC,GAAEyC,EAAC;AAAE,YAAK,CAACM,IAAEC,IAAEL,EAAC,IAAEV,IAAGQ,IAAEG,EAAC;AAAE,WAAII,GAAE,IAAI,WAAW,KAAG,YAAUN,GAAE,QAAOF,GAAEC,IAAEG,IAAE,GAAGC,EAAC;AAAE,MAAA3B,GAAE,GAAE,WAAU,EAAC,SAAQuB,IAAE,QAAOG,IAAG,YAAUA,IAAE,YAAWC,GAAC,CAAC;AAAE,UAAIQ,KAAEvD,GAAE,CAAAqD,OAAGX,GAAEW,IAAEP,IAAE,GAAGC,EAAC,GAAE,mBAAmB;AAAE,MAAAQ,KAAEvB,IAAGuB,IAAE,CAAC,EAAEX,MAAGE,IAAG,YAAUvC,GAAE,KAAKuC,GAAE,QAAQ,EAAE,GAAES,KAAE,GAAGA,EAAC;AAAE,YAAMJ,KAAEN,GAAET,IAAGa,IAAEH,IAAES,EAAC,GAAER,GAAE,MAAM;AAAE,aAAO3B,GAAE,GAAE,YAAW,EAAC,SAAQuB,IAAE,QAAOG,IAAG,YAAUA,IAAE,UAASK,GAAC,CAAC,GAAEA;AAAA,IAAC,GAAE,uBAAuB;AADioB,IAC/nBb,KAAEtC,GAAE,CAACyC,IAAEC,OAAI;AAAC,UAAG,CAACA,GAAE,OAAM,IAAI,MAAM,gHAAgH;AAAE,aAAOD,GAAE,WAAW,GAAG,MAAI,OAAOC,MAAG,YAAUA,GAAE,WAAWpC,EAAC,KAAGoC,cAAa,SAAOA,KAAE/C,GAAE+C,EAAC,IAAGhD,GAAE,QAAQA,GAAE,QAAQgD,EAAC,GAAED,EAAC,KAAGA;AAAA,IAAC,GAAE,gBAAgB;AADiW,IAC/VF,MAAGvC,GAAE,CAAAyC,OAAG;AAAC,YAAK,EAAC,mBAAkBC,GAAC,IAAE,SAAQE,KAAE,EAAC,SAAQ,KAAE;AAAE,MAAA/B,GAAE,QAAQ,IAAI,iBAAiB,GAAE,QAAQ,qBAAqB,IAAE;AAAE,YAAM8B,KAAElD,GAAE,kBAAiBqD,KAAET,IAAGO,IAAED,IAAEF,IAAG,SAAS;AAAE,MAAAhD,GAAE,mBAAiBqD;AAAE,YAAMC,KAAEtB,IAAGmB,IAAEnD,GAAE,aAAYgD,IAAG,SAAS,GAAEQ,KAAEjD,GAAE,MAAI;AAAC,QAAA0C,OAAI,SAAI,QAAQ,qBAAqB,KAAE,GAAEE,GAAE,UAAQ,OAAGnD,GAAE,qBAAmBqD,OAAIrD,GAAE,mBAAiBkD,KAAGI,GAAE;AAAA,MAAC,GAAE,YAAY;AAAE,UAAGN,IAAG,WAAU;AAAC,cAAMS,KAAElD,GAAE,CAACuD,IAAEJ,OAAI;AAAC,gBAAME,KAAEf,GAAEiB,IAAEJ,EAAC,GAAE,CAACG,IAAEF,EAAC,IAAEC,GAAE,MAAM,GAAG,GAAE,IAAE,IAAI,gBAAgBD,EAAC;AAAE,iBAAOX,GAAE,aAAW,CAACa,GAAE,WAAW,OAAO,KAAG,EAAE,IAAI,aAAYb,GAAE,SAAS,GAAE,EAAEa,KAAExC,GAAE,CAAC,CAAC;AAAA,QAAC,GAAE,eAAe;AAAE,QAAAmC,GAAE,UAAQC;AAAE,cAAML,KAAE7C,GAAE,CAACuD,IAAEJ,IAAEE,OAAI;AAAC,gBAAMC,KAAEhB,GAAEiB,IAAEJ,EAAC,GAAE,CAACC,IAAE,CAAC,IAAEE,GAAE,MAAM,GAAG,GAAEN,KAAE,IAAI,gBAAgB,CAAC;AAAE,iBAAOP,GAAE,aAAW,CAACW,GAAE,WAAW,OAAO,KAAGJ,GAAE,IAAI,aAAYP,GAAE,SAAS,GAAEK,GAAEM,KAAEtC,GAAEkC,EAAC,GAAE,QAAO,OAAGK,EAAC;AAAA,QAAC,GAAE,eAAe;AAAE,QAAAJ,GAAE,UAAQJ,IAAEI,GAAE,aAAWA;AAAA,MAAC;AAAC,aAAOA;AAAA,IAAC,GAAE,UAAU;AAAA;AAAA;;;ACH9nE,OAAOO,QAAM;AAAc,SAAO,kBAAkBC,UAAM;AAAyE,SAAO,iBAAiBC,UAAM;AAAhP,IAAIC,IAA4BC,IAAiOC,IAA2RC,IAAWC;AAAviB;AAAA;AAAA;AAA+J;AAA/J,IAAIJ,KAAE,OAAO;AAAe,IAAIC,KAAE,CAACI,IAAEC,OAAIN,GAAEK,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAA8K,IAAMJ,KAAED,GAAE,CAAAI,OAAG,CAACC,IAAEC,OAAI;AAAC,UAAG,CAACA,GAAE,OAAM,IAAI,MAAM,+FAA+F;AAAE,YAAMC,KAAED,GAAE,WAAWE,EAAC,IAAEF,KAAER,GAAEQ,EAAC,EAAE,SAAS;AAAE,aAAO,OAAO,SAAS,KAAK,UAAU,EAAC,WAAUD,IAAE,WAAUE,IAAE,WAAUH,GAAC,CAAC,CAAC;AAAA,IAAG,GAAE,oBAAoB;AAAE,IAAIF,KAAE;AAAG,IAAMC,KAAEH,GAAE,CAAAI,OAAG;AAAC,UAAG,CAACR,GAAE,SAAS,OAAM,IAAI,MAAM,4BAA4B,QAAQ,OAAO,yFAAyF;AAAE,UAAG,CAACM,IAAE;AAAC,cAAK,EAAC,kBAAiBO,GAAC,IAAEb;AAAE,QAAAA,GAAE,mBAAiB,CAACc,OAAKC,OAAIF,GAAEG,GAAEF,EAAC,GAAE,GAAGC,EAAC,GAAET,KAAE;AAAA,MAAE;AAAC,YAAK,EAAC,mBAAkBG,GAAC,IAAE;AAAQ,cAAQ,qBAAqB,IAAE;AAAE,YAAK,EAAC,OAAMC,IAAE,OAAMC,GAAC,IAAE,IAAIV;AAAE,MAAAD,GAAE,SAAS,mBAAmB,KAAK,IAAI,CAAC,IAAG,EAAC,WAAU,YAAY,KAAI,MAAK,EAAC,MAAKW,IAAE,WAAUH,IAAG,WAAU,UAASA,IAAG,SAAQ,GAAE,cAAa,CAACG,EAAC,EAAC,CAAC;AAAE,YAAMM,KAAET,IAAG,UAASU,KAAED,OAAI,CAAAJ,OAAG;AAAC,QAAAA,GAAE,SAAO,UAAQI,GAAEJ,GAAE,GAAG;AAAA,MAAC;AAAG,MAAAK,OAAIR,GAAE,GAAG,WAAUQ,EAAC,GAAER,GAAE,MAAM;AAAG,YAAMS,KAAEf,GAAE,OAAKK,OAAI,SAAI,QAAQ,qBAAqB,KAAE,GAAES,MAAGR,GAAE,IAAI,WAAUQ,EAAC,GAAER,GAAE,YAAY,YAAY,GAAE,IAAI,QAAQ,CAAAG,OAAG;AAAC,cAAMC,KAAEV,GAAE,CAAAW,OAAG;AAAC,UAAAA,GAAE,SAAO,kBAAgBF,GAAE,GAAEH,GAAE,IAAI,WAAUI,EAAC;AAAA,QAAE,GAAE,eAAe;AAAE,QAAAJ,GAAE,GAAG,WAAUI,EAAC;AAAA,MAAC,CAAC,IAAG,YAAY;AAAE,aAAON,IAAG,cAAYW,GAAE,SAAOd,GAAEG,GAAE,SAAS,GAAEW,GAAE,aAAWA,KAAGA;AAAA,IAAC,GAAE,UAAU;AAAA;AAAA;;;ACA96C,IAAIC,IAA4BC,IAAgJC,IAAQC,IAAsFC;AAA9Q;AAAA;AAAA;AAA+E;AAAiD;AAAhI,IAAIJ,KAAE,OAAO;AAAe,IAAIC,KAAE,CAACI,IAAEC,OAAIN,GAAEK,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAqG,IAAMH,KAAEF,GAAE,CAACI,IAAEC,QAAKJ,OAAIA,KAAEK,IAAE,EAAC,WAAU,KAAK,IAAI,EAAE,SAAS,EAAC,CAAC,IAAGL,GAAE,QAAQG,IAAEC,EAAC,IAAG,YAAY;AAA1F,IAA4FF,KAAEH,GAAE,CAACI,IAAEC,IAAEE,QAAKN,OAAIA,KAAEK,IAAE,EAAC,WAAU,KAAK,IAAI,EAAE,SAAS,EAAC,CAAC,IAAGL,GAAE,QAAQG,IAAEC,IAAEE,EAAC,IAAG,SAAS;AAAE,IAAAJ,GAAE,QAAM,EAAE,QAAQ,OAAMD,GAAE,UAAQC,IAAED,GAAE,OAAK,EAAE,MAAKA,GAAE,aAAW,EAAE,YAAWA,GAAE,QAAM,EAAE;AAAA;AAAA;;;ACA3b,IAAIM,IAA4BC,IAAqDC,IAA6HC,IAA+CC,IAA0MC;AAA3c;AAAA;AAAA;AAAA,IAAIL,KAAE,OAAO;AAAe,IAAIC,KAAE,CAACK,IAAEC,OAAIP,GAAEM,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAE,IAAML,KAAED,GAAE,CAACK,IAAEC,OAAI;AAAC,YAAMC,KAAEF,GAAE,CAAC,IAAEC,GAAE,CAAC;AAAE,UAAGC,OAAI,GAAE;AAAC,cAAMC,KAAEH,GAAE,CAAC,IAAEC,GAAE,CAAC;AAAE,eAAOE,OAAI,IAAEH,GAAE,CAAC,KAAGC,GAAE,CAAC,IAAEE,KAAE;AAAA,MAAC;AAAC,aAAOD,KAAE;AAAA,IAAC,GAAE,yBAAyB;AAAjI,IAAmIL,KAAE,QAAQ,SAAS,KAAK,MAAM,GAAG,EAAE,IAAI,MAAM;AAAhL,IAAkLC,KAAEH,GAAE,CAACK,IAAEC,KAAEJ,OAAI;AAAC,eAAQK,KAAE,GAAEA,KAAEF,GAAE,QAAOE,MAAG,GAAE;AAAC,cAAMC,KAAEH,GAAEE,EAAC;AAAE,YAAGA,OAAIF,GAAE,SAAO,KAAGC,GAAE,CAAC,MAAIE,GAAE,CAAC,EAAE,QAAOP,GAAEK,IAAEE,EAAC;AAAA,MAAC;AAAC,aAAM;AAAA,IAAE,GAAE,oBAAoB;AAArT,IAA4XJ,KAAE,CAAC,CAAC,IAAG,IAAG,CAAC,GAAE,CAAC,IAAG,GAAE,CAAC,CAAC;AAAA;AAAA;;;ACAhe;AAAA;AAAA,kBAAAK;AAAA,EAAA,gBAAAC;AAAA;AAAqU,OAAM;AAAc,OAAM;AAAsB,OAAM;AAA0B,OAAM;AAA2D,OAAM;AAA+B,OAAM;AAA2D,OAAM;AAAgD,OAAM;AAAW,OAAM;AAAzoB,IAA4iBC,iBAAxiBC,IAA4BC,IAA4pBH;AAA5rB;AAAA;AAAA;AAA+E;AAAgD;AAAyC;AAA8D;AAAmC;AAA8J;AAA+D,IAAAI;AAAqC;AAAiC,IAAAH,kBAAM;AAA8B;AAAqE;AAArpB,IAAIC,KAAE,OAAO;AAAe,IAAIC,KAAE,CAACE,IAAEC,OAAIJ,GAAEG,IAAE,QAAO,EAAC,OAAMC,IAAE,cAAa,KAAE,CAAC;AAAymB,IAAMN,KAAEG,GAAE,CAACE,IAAEC,OAAI;AAAC,UAAG,CAACA,MAAG,OAAOA,MAAG,YAAU,CAACA,GAAE,UAAU,OAAM,IAAI,MAAM,+FAA+F;AAAE,YAAMC,KAAE,OAAOD,MAAG,UAASE,KAAED,KAAED,KAAEA,GAAE,WAAUG,KAAE,KAAK,IAAI,EAAE,SAAS,GAAEC,KAAEC,IAAE,EAAC,WAAUF,GAAC,CAAC;AAAE,aAAM,CAACG,GAAEH,EAAC,KAAG,CAACI,IAAE,KAAKR,EAAC,KAAGS,IAAE,KAAKT,EAAC,IAAE,QAAQ,QAAQK,GAAE,QAAQL,IAAEG,EAAC,CAAC,IAAET,GAAE,EAAC,WAAUU,IAAE,GAAGF,KAAE,CAAC,IAAED,GAAC,CAAC,EAAE,OAAOD,IAAEG,EAAC;AAAA,IAAC,GAAE,UAAU;AAAA;AAAA;;;ACA9iC,OAAO;AACP,SAAS,eAAe;AACxB,SAAS,gBAAAO,eAAc,iBAAAC,gBAAe,aAAAC,YAAW,kBAAkB;AACnE,SAAS,SAAS,MAAM,WAAAC,gBAAe;AACvC,SAAS,eAAe,qBAAqB;;;ACD7C,IAAM,SAAS;AACf,IAAM,SAAS;AAER,IAAM,gBAA0B,CAAC,EAAE,OAAO,MAAM;AACrD,QAAM,UAAU,KAAK,IAAI,QAAQ,KAAK,IAAI,QAAQ,OAAO,SAAS,CAAC;AACnE,QAAM,QAAQ,KAAK,UAAU,WAAW,SAAS;AAEjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AAAA,IACjC,SAAS,EAAE,IAAI,OAAO,UAAU;AAAA,EAClC;AACF;;;ACfA;AAAA,EACE,OAAS;AAAA,IACP,QAAU;AAAA,IACV,WAAa;AAAA,IACb,MAAQ;AAAA,EACV;AAAA,EACA,QAAU;AAAA,IACR,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6CAA6C;AAAA,MAC3C,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uCAAuC;AAAA,MACrC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wCAAwC;AAAA,MACtC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0CAA0C;AAAA,MACxC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yCAAyC;AAAA,MACvC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mCAAmC;AAAA,MACjC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0CAA0C;AAAA,MACxC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mCAAmC;AAAA,MACjC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gDAAgD;AAAA,MAC9C,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uCAAuC;AAAA,MACrC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qCAAqC;AAAA,MACnC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yCAAyC;AAAA,MACvC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6CAA6C;AAAA,MAC3C,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mCAAmC;AAAA,MACjC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wCAAwC;AAAA,MACtC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sCAAsC;AAAA,MACpC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mBAAmB;AAAA,MACjB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2CAA2C;AAAA,MACzC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0CAA0C;AAAA,MACxC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0CAA0C;AAAA,MACxC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wCAAwC;AAAA,MACtC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wCAAwC;AAAA,MACtC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uCAAuC;AAAA,MACrC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0CAA0C;AAAA,MACxC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4CAA4C;AAAA,MAC1C,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gBAAgB;AAAA,MACd,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qCAAqC;AAAA,MACnC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gBAAgB;AAAA,MACd,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,aAAa;AAAA,MACX,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,aAAa;AAAA,MACX,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sCAAsC;AAAA,MACpC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mBAAmB;AAAA,MACjB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gCAAgC;AAAA,MAC9B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qCAAqC;AAAA,MACnC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oCAAoC;AAAA,MAClC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kCAAkC;AAAA,MAChC,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,8BAA8B;AAAA,MAC5B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gBAAgB;AAAA,MACd,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,MACvB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,2BAA2B;AAAA,MACzB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,0BAA0B;AAAA,MACxB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,+BAA+B;AAAA,MAC7B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA,MAC3B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iCAAiC;AAAA,MAC/B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,4BAA4B;AAAA,MAC1B,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,MACZ,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mBAAmB;AAAA,MACjB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mBAAmB;AAAA,MACjB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,MACZ,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,mBAAmB;AAAA,MACjB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,qBAAqB;AAAA,MACnB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,wBAAwB;AAAA,MACtB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,MAChB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gBAAgB;AAAA,MACd,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,oBAAoB;AAAA,MAClB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gBAAgB;AAAA,MACd,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,uBAAuB;AAAA,MACrB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,iBAAiB;AAAA,MACf,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,gBAAgB;AAAA,MACd,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,sBAAsB;AAAA,MACpB,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,MACZ,eAAiB;AAAA,MACjB,gBAAkB;AAAA,IACpB;AAAA,EACF;AACF;;;ACjvCA,IAAM,SAAS,gBAAQ;AAIvB,IAAM,iBAAiB,oBAAI,IAAoB;AAC/C,WAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,QAAM,OAAO,IAAI,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAC7C,MAAI,QAAQ,CAAC,eAAe,IAAI,IAAI,GAAG;AACrC,mBAAe,IAAI,MAAM,GAAG;AAAA,EAC9B;AACF;AAWO,SAAS,cAAc,YAA8C;AAE1E,MAAI,OAAO,UAAU,EAAG,QAAO,OAAO,UAAU;AAEhD,QAAM,QAAQ,WAAW,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AACrD,MAAI,CAAC,MAAO,QAAO;AAGnB,QAAM,WAAW,UAAU,KAAK;AAChC,MAAI,OAAO,QAAQ,EAAG,QAAO,OAAO,QAAQ;AAG5C,QAAM,WAAW,eAAe,IAAI,KAAK;AACzC,MAAI,SAAU,QAAO,OAAO,QAAQ;AAEpC,SAAO;AACT;AAMO,SAAS,aACd,SACA,cACA,kBACQ;AACR,SAAO,QAAQ,gBAAgB,eAAe,QAAQ,iBAAiB;AACzE;;;ACrDO,IAAM,aAAuB,CAAC,EAAE,OAAO,GAAG,eAAe;AAC9D,QAAM,eAAe,OAAO,OAAO,gBAAgB;AACnD,QAAM,mBAAmB,OAAO,OAAO,oBAAoB;AAC3D,QAAM,cAAc,eAAe;AAEnC,QAAM,UAAU,cAAc,UAAU;AAExC,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,QACP,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,MAAM,aAAa,SAAS,cAAc,gBAAgB;AAEhE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;AC1BO,IAAM,oBAA8B,CAAC,EAAE,MAAM,OAAO,MAAM;AAC/D,MAAI,KAAK,aAAa,QAAW;AAC/B,WAAO,EAAE,MAAM,eAAe,OAAO,KAAK,SAAS,EAAE,QAAQ,oBAAoB,EAAE;AAAA,EACrF;AAEA,QAAM,SAAS,gBAAgB,KAAK,UAAU,OAAO,MAAM;AAC3D,QAAM,QAAQ,UAAU,KAAK,UAAU,MAAM;AAE7C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,QAAQ,IAAI;AAAA,IACnB,SAAS,EAAE,UAAU,KAAK,UAAU,QAAQ,OAAO,OAAO;AAAA,EAC5D;AACF;AAYA,SAAS,gBAAgB,UAAmB,QAA0B;AACpE,MAAI,MAAM,QAAQ,QAAQ,KAAK,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,YAAY,WAAW,MAAM;AACtG,UAAM,UAAU,OAAO,QAAQ,MAAiC;AAChE,UAAM,eAAe,QAAQ,OAAO,CAAC,CAAC,EAAEC,EAAC,MAAM,MAAM,QAAQA,EAAC,CAAC;AAC/D,QAAI,aAAa,WAAW,GAAG;AAC7B,aAAO,aAAa,CAAC,EAAG,CAAC;AAAA,IAC3B;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,UAAU,UAAmB,QAA0B;AAC9D,MAAI,aAAa,OAAQ,QAAO;AAEhC,MAAI,OAAO,aAAa,YAAY,OAAO,WAAW,UAAU;AAC9D,WAAO,SAAS,KAAK,EAAE,YAAY,MAAM,OAAO,KAAK,EAAE,YAAY;AAAA,EACrE;AAEA,MAAI,OAAO,aAAa,OAAO,OAAQ,QAAO;AAC9C,MAAI,aAAa,QAAQ,WAAW,KAAM,QAAO,aAAa;AAE9D,MAAI,MAAM,QAAQ,QAAQ,KAAK,MAAM,QAAQ,MAAM,GAAG;AACpD,QAAI,SAAS,WAAW,OAAO,OAAQ,QAAO;AAC9C,WAAO,SAAS,MAAM,CAAC,KAAKC,OAAM,UAAU,KAAK,OAAOA,EAAC,CAAC,CAAC;AAAA,EAC7D;AAEA,MAAI,OAAO,aAAa,YAAY,OAAO,WAAW,UAAU;AAC9D,UAAM,cAAc;AACpB,UAAM,YAAY;AAClB,UAAM,eAAe,OAAO,KAAK,WAAW;AAG5C,WAAO,aAAa,MAAM,CAAC,QAAQ,OAAO,aAAa,UAAU,YAAY,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC;AAAA,EACpG;AAEA,SAAO,aAAa;AACtB;;;ACrEO,IAAM,0BAAoC,CAAC,EAAE,MAAM,OAAO,MAAM;AACrE,MAAI,CAAC,KAAK,QAAQ;AAChB,WAAO,EAAE,MAAM,sBAAsB,OAAO,IAAI,SAAS,EAAE,QAAQ,oBAAoB,EAAE;AAAA,EAC3F;AAEA,MAAI,OAAgB,OAAO;AAC3B,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI;AACF,aAAO,KAAK,MAAM,IAAI;AAAA,IACxB,QAAQ;AACN,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,EAAE,QAAQ,2BAA2B;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS,KAAK,OAAO,UAAU,IAAI;AAIvC,MAAI,CAAC,OAAO,WAAW,CAAC,MAAM,QAAQ,IAAI,KAAK,OAAO,SAAS,YAAY,SAAS,MAAM;AACxF,UAAM,eAAe,OAAO,QAAQ,IAA+B,EAAE,OAAO,CAAC,CAAC,EAAEC,EAAC,MAAM,MAAM,QAAQA,EAAC,CAAC;AACvG,QAAI,aAAa,WAAW,GAAG;AAC7B,YAAM,YAAY,KAAK,OAAO,UAAU,aAAa,CAAC,EAAG,CAAC,CAAC;AAC3D,UAAI,UAAU,QAAS,UAAS;AAAA,IAClC;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,OAAO,UAAU,IAAI;AAAA,IAC5B,SAAS,OAAO,UACZ,EAAE,OAAO,KAAK,IACd,EAAE,OAAO,OAAO,QAAQ,OAAO,MAAM,OAAO,IAAI,CAACC,OAAMA,GAAE,OAAO,EAAE;AAAA,EACxE;AACF;;;ACrCO,IAAM,wBAAkC,CAAC,EAAE,MAAM,OAAO,MAAM;AACnE,MAAI,KAAK,aAAa,QAAW;AAC/B,WAAO,EAAE,MAAM,oBAAoB,OAAO,IAAI,SAAS,EAAE,QAAQ,oBAAoB,EAAE;AAAA,EACzF;AAEA,QAAMC,KAAI,UAAU,KAAK,QAAQ;AACjC,QAAMC,KAAI,UAAU,OAAO,MAAM;AACjC,QAAM,OAAO,SAASD,EAAC;AACvB,QAAM,OAAO,SAASC,EAAC;AAEvB,QAAM,aAAa,kBAAkB,MAAM,IAAI;AAE/C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,KAAK,MAAM,aAAa,GAAG,IAAI;AAAA,IACtC,SAAS,EAAE,QAAQ,WAAW,gBAAgB,KAAK,MAAM,cAAc,KAAK,KAAK;AAAA,EACnF;AACF;AAEA,SAAS,UAAU,OAAwB;AACzC,MAAI,OAAO,UAAU,SAAU,QAAO,MAAM,YAAY;AACxD,SAAO,KAAK,UAAU,KAAK,EAAE,YAAY;AAC3C;AAEA,SAAS,SAAS,MAA2B;AAC3C,SAAO,IAAI,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC,CAAC;AACzC;AAEA,SAAS,kBAAkBD,IAAgBC,IAAwB;AACjE,MAAID,GAAE,SAAS,KAAKC,GAAE,SAAS,EAAG,QAAO;AAEzC,MAAI,eAAe;AACnB,aAAW,SAASD,IAAG;AACrB,QAAIC,GAAE,IAAI,KAAK,EAAG;AAAA,EACpB;AAEA,QAAM,QAAQD,GAAE,OAAOC,GAAE,OAAO;AAChC,SAAO,UAAU,IAAI,IAAI,eAAe;AAC1C;;;ACxCA,OAAOC,WAAU,eAAAC,oBAAmB;;;ACApC,OAAO,UAAU,mBAAmB;AACpC,SAAS,mBAAAC,wBAAuB;;;ACAhC,SAAS,uBAAuB;;;ADOzB,IAAM,qBAAqB;;;ADJlC,IAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBrB,SAAS,mBAAmB,aAAsB,YAAY,oBAAmD;AAC/G,QAAM,QAAQ,eAAe,QAAQ,IAAI,uBAAuB;AAGhE,MAAI,MAAM,WAAW,QAAQ,KAAK,QAAQ,IAAI,gBAAgB;AAC5D,WAAO;AAAA,MACL,QAAQ,IAAIC,QAAO;AAAA,QACjB,QAAQ,QAAQ,IAAI;AAAA,QACpB,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAGA,MAAI,CAAC,QAAQ,IAAI,kBAAkB,QAAQ,IAAI,sBAAsB;AACnE,WAAO;AAAA,MACL,QAAQ,IAAIC,aAAY;AAAA,QACtB,QAAQ,QAAQ,IAAI;AAAA,QACpB,UAAU,QAAQ,IAAI;AAAA,QACtB,YAAY,QAAQ,IAAI,4BAA4B;AAAA,QACpD,YAAY;AAAA,QACZ,SAAS;AAAA,MACX,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAGA,QAAM,SAAS,QAAQ,IAAI;AAC3B,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO,EAAE,QAAQ,IAAID,QAAO,EAAE,QAAQ,SAAS,UAAU,CAAC,GAAG,MAAM;AACrE;AAGA,SAAS,mBAAmB,KAAuB;AACjD,QAAM,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC3D,QAAM,QAAQ,IAAI,YAAY;AAC9B,SAAO,MAAM,SAAS,aAAa,MACjC,MAAM,SAAS,eAAe,KAC9B,MAAM,SAAS,gBAAgB,KAC/B,MAAM,SAAS,aAAa,KAC5B,MAAM,SAAS,SAAS;AAE5B;AAaO,SAAS,qBAAqB,YAAqB,YAAY,oBAA8B;AAClG,MAAI,SAA+C;AACnD,MAAI,iBAAiB;AAErB,SAAO,OAAO,EAAE,MAAM,OAAO,MAAM;AACjC,QAAI,KAAK,aAAa,QAAW;AAC/B,aAAO,EAAE,MAAM,yBAAyB,OAAO,IAAI,SAAS,EAAE,QAAQ,oBAAoB,EAAE;AAAA,IAC9F;AAGA,QAAI,WAAW,QAAW;AACxB,eAAS,mBAAmB,YAAY,SAAS,KAAK;AAAA,IACxD;AAEA,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,EAAE,QAAQ,uCAAuC;AAAA,MAC5D;AAAA,IACF;AAEA,UAAM,EAAE,QAAQ,MAAM,IAAI;AAE1B,UAAM,SAAS,aACZ,QAAQ,UAAU,KAAK,MAAM,EAC7B,QAAQ,cAAc,KAAK,UAAU,KAAK,QAAQ,CAAC,EACnD,QAAQ,YAAY,KAAK,UAAU,OAAO,MAAM,CAAC;AAEpD,UAAM,WAAgD,CAAC,EAAE,MAAM,QAAQ,SAAS,OAAO,CAAC;AAExF,QAAI;AACF,YAAM,WAAW,MAAM,UAAU,QAAQ,OAAO,UAAU,cAAc;AACxE,aAAO,mBAAmB,UAAU,KAAK;AAAA,IAC3C,SAAS,KAAK;AAEZ,UAAI,kBAAkB,mBAAmB,GAAG,GAAG;AAC7C,yBAAiB;AACjB,YAAI;AACF,gBAAM,WAAW,MAAM,UAAU,QAAQ,OAAO,UAAU,KAAK;AAC/D,iBAAO,mBAAmB,UAAU,KAAK;AAAA,QAC3C,SAAS,UAAU;AACjB,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,OAAO;AAAA,YACP,SAAS,EAAE,QAAQ,sBAAsB,oBAAoB,QAAQ,SAAS,UAAU,OAAO,QAAQ,CAAC,GAAG;AAAA,UAC7G;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,EAAE,QAAQ,sBAAsB,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC,GAAG;AAAA,MAC9F;AAAA,IACF;AAAA,EACF;AACF;AAEA,eAAe,UACb,QACA,OACA,UACA,iBACgC;AAChC,SAAO,OAAO,KAAK,YAAY,OAAO;AAAA,IACpC;AAAA,IACA;AAAA,IACA,uBAAuB;AAAA,IACvB,GAAI,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC;AAAA,EAC9C,CAAC;AACH;AAEA,SAAS,mBACP,UACA,OACmE;AACnE,QAAM,UAAU,SAAS,QAAQ,CAAC,GAAG,SAAS,SAAS,KAAK,KAAK;AACjE,QAAM,SAAiC,CAAC;AACxC,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,UAAM,QAAQ,KAAK,MAAM,sDAAsD;AAC/E,QAAI,MAAO,QAAO,MAAM,CAAC,EAAE,YAAY,CAAC,IAAI,WAAW,MAAM,CAAC,CAAC;AAAA,EACjE;AAEA,QAAM,WAAW,OAAO;AACxB,QAAM,eAAe,OAAO;AAC5B,QAAM,cAAc,OAAO;AAE3B,MAAI,YAAY,QAAQ,gBAAgB,QAAQ,eAAe,QAC3D,CAAC,UAAU,cAAc,WAAW,EAAE,KAAK,CAACE,OAAM,MAAMA,EAAC,KAAKA,KAAI,KAAKA,KAAI,CAAC,GAAG;AACjF,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS,EAAE,QAAQ,uCAAuC,OAAO,KAAK,MAAM;AAAA,IAC9E;AAAA,EACF;AAEA,QAAM,YAAY,KAAK,OAAQ,WAAW,eAAe,eAAe,IAAK,GAAG,IAAI;AAEpF,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS,EAAE,OAAO,UAAU,cAAc,YAAY;AAAA,EACxD;AACF;;;AGzLO,IAAM,kBAA4B,CAAC,EAAE,MAAM,OAAO,MAAM;AAC7D,QAAM,mBAAmB,KAAK,QAAQ,CAAC,GAAG;AAC1C,MAAI,CAAC,kBAAkB;AACrB,WAAO,EAAE,MAAM,cAAc,OAAO,IAAI,SAAS,EAAE,QAAQ,8BAA8B,EAAE;AAAA,EAC7F;AAEA,QAAM,WAAW,OAAO,WAAW,KAAK,CAACC,OAAMA,GAAE,SAAS,gBAAgB,KAAK;AAE/E,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,WAAW,IAAI;AAAA,IACtB,SAAS,EAAE,kBAAkB,UAAU,WAAW,OAAO,aAAa,CAAC,EAAE;AAAA,EAC3E;AACF;;;ACNA,IAAM,gBAA8D;AAAA,EAClE,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,cAAc;AAChB;AAEO,SAAS,eAAe,OAA4B,YAAqB,WAAgC;AAC9G,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,QAAI,SAAS,yBAAyB;AACpC,aAAO,qBAAqB,YAAY,SAAS;AAAA,IACnD;AACA,UAAM,SAAS,cAAc,IAAI;AACjC,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,oBAAoB,IAAI,GAAG;AAAA,IAC7C;AACA,WAAO;AAAA,EACT,CAAC;AACH;;;ACXA,IAAM,qBAAqB;AAW3B,SAAS,YAAe,KAA0C,IAAwB;AACxF,SAAO,IAAI,QAAW,CAACC,UAAS,WAAW;AACzC,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,QAAQ,WAAW,MAAM;AAC7B,iBAAW,MAAM;AACjB,aAAO,IAAI,MAAM,2BAA2B,EAAE,IAAI,CAAC;AAAA,IACrD,GAAG,EAAE;AACL,QAAI,WAAW,MAAM,EAAE;AAAA,MACrB,CAACC,OAAM;AAAE,qBAAa,KAAK;AAAG,QAAAD,SAAQC,EAAC;AAAA,MAAE;AAAA,MACzC,CAACC,OAAM;AAAE,qBAAa,KAAK;AAAG,eAAOA,EAAC;AAAA,MAAE;AAAA,IAC1C;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,cAAc,SAAiD;AACnF,QAAM,EAAE,WAAW,OAAO,SAAS,MAAM,SAAS,IAAI;AACtD,QAAM,UAAU,QAAQ,WAAW;AAEnC,QAAM,UAA6B,CAAC;AAKpC,aAAW,QAAQ,OAAO;AACxB,aAAS,MAAM,GAAG,OAAO,MAAM,OAAO;AACpC,YAAM,aAAa,MAAM,QAAQ;AAAA,QAC/B,UAAU,IAAI,OAAO,aAAa;AAChC,cAAI;AAEJ,cAAI;AACF,kBAAM,aAAa,MAAM,YAAY,CAAC,WAAW,SAAS,IAAI;AAAA,cAC1D,QAAQ,KAAK;AAAA,cACb,QAAQ,KAAK;AAAA,cACb,OAAO,KAAK;AAAA,cACZ;AAAA,cACA;AAAA,YACF,CAAC,GAAG,OAAO;AAEb,kBAAM,SAAS,MAAM,QAAQ;AAAA,cAC3B,QAAQ,IAAI,CAAC,WAAW,OAAO,EAAE,MAAM,QAAQ,WAAW,GAAG,SAAS,EAAE,CAAC;AAAA,YAC3E;AAEA,qBAAS;AAAA,cACP,YAAY,SAAS;AAAA,cACrB,UAAU,KAAK;AAAA,cACf;AAAA,cACA;AAAA,cACA,KAAK;AAAA,gBACH,QAAQ,WAAW;AAAA,gBACnB,WAAW,WAAW;AAAA,gBACtB,OAAO,WAAW;AAAA,gBAClB,WAAW,WAAW;AAAA,cACxB;AAAA,YACF;AAAA,UACF,SAAS,KAAK;AACZ,kBAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAE/D,qBAAS;AAAA,cACP,YAAY,SAAS;AAAA,cACrB,UAAU,KAAK;AAAA,cACf;AAAA,cACA,QAAQ,CAAC;AAAA,cACT,OAAO;AAAA,cACP,KAAK,EAAE,QAAQ,IAAI,WAAW,EAAE;AAAA,YAClC;AAAA,UACF;AAEA,qBAAW,MAAM;AACjB,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAEA,cAAQ,KAAK,GAAG,UAAU;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AACT;;;ACzGA,IAAM,sBAAsB;AACrB,SAAS,WAAW,KAAiC;AAC1D,MAAI,QAAQ,OAAW,QAAO;AAC9B,MAAI,QAAQ,EAAG,QAAO;AACtB,MAAI,OAAO,KAAM,QAAO,KAAK,IAAI,QAAQ,CAAC,CAAC;AAC3C,QAAM,SAAS,KAAK;AAAA,IAClB;AAAA,IACA,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAAA,EACxD;AACA,SAAO,KAAK,IAAI,QAAQ,MAAM,EAAE,QAAQ,OAAO,EAAE,CAAC;AACpD;AAGO,SAAS,YAAY,OAAe,YAAoB,GAAW;AACxE,QAAM,OAAO,SAAS,IAAI,MAAM;AAChC,SAAO,GAAG,IAAI,GAAG,MAAM,QAAQ,SAAS,CAAC;AAC3C;;;ACqBO,SAAS,aAAa,SAA4C;AACvE,QAAM,UAAU,oBAAI,IAAY;AAChC,QAAM,cAAc,oBAAI,IAAY;AACpC,QAAM,YAAY,oBAAI,IAAY;AAClC,QAAM,UAAU,oBAAI,IAA+B;AACnD,QAAM,aAAa,oBAAI,IAA+B;AACtD,MAAI,YAAY;AAChB,MAAI,SAAS;AAEb,aAAWC,MAAK,SAAS;AACvB,YAAQ,IAAIA,GAAE,QAAQ;AACtB,gBAAY,IAAIA,GAAE,UAAU;AAC5B,eAAWC,MAAKD,GAAE,OAAQ,WAAU,IAAIC,GAAE,IAAI;AAC9C,QAAID,GAAE,MAAO,aAAY;AACzB,QAAIA,GAAE,MAAM,OAAQ,UAASA,GAAE;AAE/B,UAAM,MAAM,GAAGA,GAAE,QAAQ,KAAKA,GAAE,UAAU;AAC1C,QAAI,QAAQ,QAAQ,IAAI,GAAG;AAC3B,QAAI,CAAC,OAAO;AAAE,cAAQ,CAAC;AAAG,cAAQ,IAAI,KAAK,KAAK;AAAA,IAAE;AAClD,UAAM,KAAKA,EAAC;AAEZ,QAAI,YAAY,WAAW,IAAIA,GAAE,UAAU;AAC3C,QAAI,CAAC,WAAW;AAAE,kBAAY,CAAC;AAAG,iBAAW,IAAIA,GAAE,YAAY,SAAS;AAAA,IAAE;AAC1E,cAAU,KAAKA,EAAC;AAAA,EAClB;AAEA,SAAO;AAAA,IACL,OAAO,CAAC,GAAG,OAAO;AAAA,IAClB,WAAW,CAAC,GAAG,WAAW;AAAA,IAC1B,aAAa,CAAC,GAAG,SAAS;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAIO,SAAS,sBACd,YACA,SACA,MACkB;AAClB,QAAM,cAAc,QAAQ,IAAI,GAAG,IAAI,KAAK,UAAU,EAAE,KAAK,CAAC;AAC9D,QAAM,eAAe,YAAY,OAAO,CAAAA,OAAKA,GAAE,KAAK;AACpD,QAAM,iBAAiB,YAAY,OAAO,CAAAA,OAAK,CAACA,GAAE,KAAK;AAEvD,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAO;AAAA,MACL;AAAA,MACA,WAAW,CAAC;AAAA,MACZ,YAAY,EAAE,SAAS,QAAW,aAAa,OAAU;AAAA,MACzD,WAAW;AAAA,MACX,WAAW,aAAa,SAAS;AAAA,MACjC,YAAY,aAAa;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,WAAW,cAAc,cAAc;AAAA,IACvC,YAAY,eAAe,cAAc;AAAA,IACzC,WAAW,QAAQ,eAAe,IAAI,CAAAA,OAAKA,GAAE,IAAI,SAAS,CAAC;AAAA,IAC3D,WAAW;AAAA,IACX,YAAY,aAAa;AAAA,EAC3B;AACF;AAEO,SAAS,cAAc,SAAoD;AAChF,QAAM,OAA+B,CAAC;AACtC,QAAM,SAAiC,CAAC;AAExC,aAAW,UAAU,SAAS;AAC5B,eAAW,SAAS,OAAO,QAAQ;AACjC,UAAI,MAAM,QAAQ,EAAG;AACrB,WAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;AACnD,aAAO,MAAM,IAAI,KAAK,OAAO,MAAM,IAAI,KAAK,KAAK;AAAA,IACnD;AAAA,EACF;AAEA,QAAM,OAA+B,CAAC;AACtC,aAAW,QAAQ,OAAO,KAAK,IAAI,GAAG;AACpC,SAAK,IAAI,IAAI,KAAK,IAAI,IAAK,OAAO,IAAI;AAAA,EACxC;AACA,SAAO;AACT;AAEO,SAAS,eAAe,SAA+C;AAC5E,MAAI,UAAU;AACd,MAAI,YAAY;AAChB,MAAI,WAAW;AACf,MAAI,aAAa;AAEjB,aAAW,UAAU,SAAS;AAC5B,UAAM,YAAY,OAAO,OAAO,KAAK,CAACC,OAAMA,GAAE,SAAS,MAAM;AAC7D,UAAM,UAAU,WAAW;AAK3B,QAAI,SAAS,gBAAgB,MAAM;AACjC,iBAAW,QAAQ;AACnB;AAAA,IACF;AACA,QAAI,SAAS,eAAe,MAAM;AAChC,kBAAY,QAAQ;AACpB;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,SAAS,YAAY,IAAI,UAAU,YAAY;AAAA,IAC/C,aAAa,aAAa,IAAI,KAAK,MAAM,WAAW,UAAU,IAAI;AAAA,EACpE;AACF;AAEO,SAAS,QAAQ,MAAoC;AAC1D,MAAI,KAAK,WAAW,EAAG,QAAO;AAC9B,SAAO,KAAK,OAAO,CAACC,IAAGC,OAAMD,KAAIC,IAAG,CAAC,IAAI,KAAK;AAChD;AAIO,SAAS,mBACd,cACA,aAC0B;AAC1B,QAAM,QAAQ,oBAAI,IAAyB;AAC3C,QAAM,QAAQ,aAAa,OAAO,CAAAC,OAAK,CAACA,GAAE,SAAS;AAEnD,MAAI,YAAY,SAAS,SAAS,GAAG;AACnC,UAAM,SAAS,oBAAI,IAAgC;AACnD,eAAWA,MAAK,cAAc;AAC5B,aAAO,IAAIA,GAAE,YAAYA,GAAE,YAAY,SAAYA,GAAE,SAAS;AAAA,IAChE;AACA,UAAM,OAAO,MAAM,IAAI,CAAAA,OAAKA,GAAE,SAAS,EAAE,OAAO,CAACC,OAAmBA,OAAM,MAAS;AACnF,UAAM,IAAI,WAAW;AAAA,MACnB;AAAA,MACA,MAAM,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AAAA,MAC5C,OAAO,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AAAA,IAC/C,CAAC;AAAA,EACH;AAEA,MAAI,YAAY,SAAS,MAAM,GAAG;AAChC,UAAM,aAAa,oBAAI,IAAgC;AACvD,UAAM,cAAc,oBAAI,IAAgC;AACxD,eAAWD,MAAK,cAAc;AAC5B,iBAAW,IAAIA,GAAE,YAAYA,GAAE,YAAY,SAAYA,GAAE,WAAW,OAAO;AAC3E,kBAAY,IAAIA,GAAE,YAAYA,GAAE,YAAY,SAAYA,GAAE,WAAW,WAAW;AAAA,IAClF;AACA,UAAM,WAAW,MAAM,IAAI,CAAAA,OAAKA,GAAE,WAAW,OAAO,EAAE,OAAO,CAACC,OAAmBA,OAAM,MAAS;AAChG,UAAM,YAAY,MAAM,IAAI,CAAAD,OAAKA,GAAE,WAAW,WAAW,EAAE,OAAO,CAACC,OAAmBA,OAAM,MAAS;AACrG,UAAM,IAAI,QAAQ;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM,SAAS,SAAS,IAAI,KAAK,IAAI,GAAG,QAAQ,IAAI;AAAA,MACpD,OAAO,SAAS,SAAS,IAAI,KAAK,IAAI,GAAG,QAAQ,IAAI;AAAA,IACvD,CAAC;AACD,UAAM,IAAI,UAAU;AAAA,MAClB,QAAQ;AAAA,MACR,MAAM,UAAU,SAAS,IAAI,KAAK,IAAI,GAAG,SAAS,IAAI;AAAA,MACtD,OAAO,UAAU,SAAS,IAAI,KAAK,IAAI,GAAG,SAAS,IAAI;AAAA,IACzD,CAAC;AAAA,EACH;AAEA,aAAW,QAAQ,aAAa;AAC9B,QAAI,SAAS,aAAa,SAAS,OAAQ;AAC3C,UAAM,SAAS,oBAAI,IAAgC;AACnD,eAAWD,MAAK,cAAc;AAC5B,aAAO,IAAIA,GAAE,YAAYA,GAAE,YAAY,SAAYA,GAAE,UAAU,IAAI,CAAC;AAAA,IACtE;AACA,UAAM,OAAO,MAAM,IAAI,CAAAA,OAAKA,GAAE,UAAU,IAAI,CAAC,EAAE,OAAO,CAACC,OAAmBA,OAAM,MAAS;AACzF,UAAM,IAAI,MAAM;AAAA,MACd;AAAA,MACA,MAAM,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AAAA,MAC5C,OAAO,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AAAA,IAC/C,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAGA,IAAM,kBAAkB,oBAAI,IAAI;AAAA,EAC9B;AAAA,EAAe;AAAA,EAAsB;AAAA,EAAoB;AAAA,EAAyB;AACpF,CAAC;AAOM,SAAS,kBACd,YACA,aACS;AACT,QAAM,iBAAiB,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,OAAO,CAAAC,OAAK,gBAAgB,IAAIA,EAAC,CAAC;AACjF,MAAI,eAAe,WAAW,EAAG,QAAO;AACxC,SAAO,eAAe,KAAK,SAAO;AAChC,UAAM,MAAM,YAAY,IAAI,GAAG,GAAG,OAAO,IAAI,UAAU;AACvD,WAAO,QAAQ,UAAa,MAAM;AAAA,EACpC,CAAC;AACH;AAEO,SAAS,cACd,aACA,aACoB;AACpB,QAAM,SAAS,oBAAI,IAAmB;AAEtC,MAAI,YAAY,SAAS,GAAG;AAC1B,eAAW,MAAM,YAAa,QAAO,IAAI,IAAI,MAAM;AACnD,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,IAAI,IAAI,YAAY,OAAO,QAAM,kBAAkB,IAAI,WAAW,CAAC,CAAC;AAGrF,QAAM,cAAc,oBAAI,IAAoB;AAC5C,QAAM,iBAAiB,oBAAI,IAAoB;AAC/C,aAAW,MAAM,aAAa;AAC5B,gBAAY,IAAI,IAAI,CAAC;AACrB,mBAAe,IAAI,IAAI,CAAC;AAAA,EAC1B;AAEA,aAAW,CAAC,SAAS,QAAQ,KAAK,aAAa;AAC7C,QAAI,SAAS,SAAS,OAAW;AACjC,UAAM,gBAAgB,CAAC,GAAG,SAAS,OAAO,QAAQ,CAAC,EAChD,OAAO,CAAC,CAAC,EAAED,EAAC,MAAMA,OAAM,UAAaA,OAAM,SAAS,IAAI;AAC3D,QAAI,cAAc,WAAW,GAAG;AAC9B,YAAM,WAAW,cAAc,CAAC,EAAG,CAAC;AACpC,UAAI,gBAAgB,IAAI,OAAO,GAAG;AAChC,oBAAY,IAAI,WAAW,YAAY,IAAI,QAAQ,KAAK,KAAK,CAAC;AAAA,MAChE,OAAO;AACL,uBAAe,IAAI,WAAW,eAAe,IAAI,QAAQ,KAAK,KAAK,CAAC;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YAAY,CAAC,GAAG,YAAY,OAAO,CAAC,EAAE,OAAO,CAACH,IAAGC,OAAMD,KAAIC,IAAG,CAAC,IACjE,CAAC,GAAG,eAAe,OAAO,CAAC,EAAE,OAAO,CAACD,IAAGC,OAAMD,KAAIC,IAAG,CAAC;AAC1D,MAAI,cAAc,GAAG;AACnB,eAAW,MAAM,YAAa,QAAO,IAAI,IAAI,MAAM;AACnD,WAAO;AAAA,EACT;AAGA,QAAM,iBAAiB,YACpB,OAAO,QAAM,SAAS,IAAI,EAAE,CAAC,EAC7B,KAAK,CAACD,IAAGC,OAAM;AACd,UAAM,SAAS,YAAY,IAAIA,EAAC,KAAK,MAAM,YAAY,IAAID,EAAC,KAAK;AACjE,QAAI,UAAU,EAAG,QAAO;AACxB,UAAM,SAAS,eAAe,IAAIC,EAAC,KAAK,MAAM,eAAe,IAAID,EAAC,KAAK;AACvE,QAAI,UAAU,EAAG,QAAO;AACxB,WAAOA,GAAE,cAAcC,EAAC;AAAA,EAC1B,CAAC;AAEH,QAAM,YAAqB,CAAC,QAAQ,UAAU,QAAQ;AACtD,MAAI,OAAO;AACX,WAASI,KAAI,GAAGA,KAAI,eAAe,QAAQA,MAAK;AAC9C,QAAIA,KAAI,GAAG;AACT,YAAM,QAAQ,YAAY,IAAI,eAAeA,KAAI,CAAC,CAAE,KAAK;AACzD,YAAM,QAAQ,YAAY,IAAI,eAAeA,EAAC,CAAE,KAAK;AACrD,UAAI,QAAQ,OAAO;AACjB,eAAOA;AAAA,MACT,WAAW,UAAU,OAAO;AAC1B,cAAM,QAAQ,eAAe,IAAI,eAAeA,KAAI,CAAC,CAAE,KAAK;AAC5D,cAAM,QAAQ,eAAe,IAAI,eAAeA,EAAC,CAAE,KAAK;AACxD,YAAI,QAAQ,MAAO,QAAOA;AAAA,MAC5B;AAAA,IACF;AACA,WAAO,IAAI,eAAeA,EAAC,GAAI,OAAO,UAAU,SAAS,UAAU,IAAI,IAAK,MAAM;AAAA,EACpF;AACA,aAAW,MAAM,aAAa;AAC5B,QAAI,CAAC,SAAS,IAAI,EAAE,EAAG,QAAO,IAAI,IAAI,MAAM;AAAA,EAC9C;AAEA,SAAO;AACT;AAIO,SAAS,cAAc,YAA4B;AACxD,QAAM,SAAS,WAAW,MAAM,GAAG,EAAE,CAAC;AACtC,UAAQ,QAAQ;AAAA,IACd,KAAK;AAAS,aAAO;AAAA,IACrB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAa,aAAO;AAAA,IACzB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAW,aAAO;AAAA,IACvB,KAAK;AAAQ,aAAO;AAAA,IACpB,KAAK;AAAY,aAAO;AAAA,IACxB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAQ,aAAO;AAAA,IACpB,KAAK;AAAO,aAAO;AAAA,IACnB,KAAK;AAAW,aAAO;AAAA,IACvB,KAAK;AAAY,aAAO;AAAA,IACxB,KAAK;AAAc,aAAO;AAAA,IAC1B,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAa,aAAO;AAAA,IACzB,KAAK;AAAQ,aAAO;AAAA,IACpB,KAAK;AAAa,aAAO;AAAA,IACzB,KAAK;AAAY,aAAO;AAAA,IACxB,KAAK;AAAa,aAAO;AAAA,IACzB,KAAK;AAAQ,aAAO;AAAA,IACpB,KAAK;AAAY,aAAO;AAAA,IACxB;AAAS,aAAO,IAAI,MAAM;AAAA,EAC5B;AACF;AAEO,SAAS,WAAW,YAAoB,OAAmC;AAChF,QAAM,QAAQ,MAAM,YAAY;AAChC,QAAM,cAAc,MAAM,SAAS,SAAS,KAAK,MAAM,SAAS,KAAK,KACnE,MAAM,SAAS,cAAc,KAAK,MAAM,SAAS,gBAAgB,KACjE,MAAM,SAAS,mBAAmB,KAAK,MAAM,SAAS,QAAQ;AAEhE,MAAI,CAAC,YAAa,QAAO;AAEzB,QAAM,SAAS,WAAW,MAAM,GAAG,EAAE,CAAC;AACtC,UAAQ,QAAQ;AAAA,IACd,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAS,aAAO;AAAA,IACrB,KAAK;AAAa,aAAO;AAAA,IACzB,KAAK;AAAU,aAAO;AAAA,IACtB;AAAS,aAAO,yBAAyB,UAAU;AAAA,EACrD;AACF;AAEO,SAAS,cACd,mBACA,WACA,YACyC;AACzC,QAAM,SAAS,UACZ,IAAI,CAAC,OAAO;AACX,UAAM,OAAO,kBAAkB,IAAI,EAAE,KAAK,CAAC;AAC3C,UAAM,SAAS,KACZ,QAAQ,CAACP,OAAMA,GAAE,OAAO,OAAO,CAACC,OAAMA,GAAE,SAAS,cAAcA,GAAE,SAAS,CAAC,CAAC,EAC5E,IAAI,CAACA,OAAMA,GAAE,KAAK;AACrB,UAAM,MAAM,OAAO,SAAS,IAAI,OAAO,OAAO,CAACC,IAAGC,OAAMD,KAAIC,IAAG,CAAC,IAAI,OAAO,SAAS;AACpF,WAAO,EAAE,IAAI,IAAI;AAAA,EACnB,CAAC,EACA,OAAO,CAACC,OAAMA,GAAE,QAAQ,MAAS,EACjC,KAAK,CAACF,IAAGC,OAAMA,GAAE,MAAOD,GAAE,GAAI;AAEjC,SAAO,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,EAAE,IAAK,IAAI;AACjE;AAEO,SAAS,YAAY,MAAsB;AAChD,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAe,aAAO;AAAA,IAC3B,KAAK;AAAsB,aAAO;AAAA,IAClC,KAAK;AAAoB,aAAO;AAAA,IAChC,KAAK;AAAyB,aAAO;AAAA,IACrC,KAAK;AAAc,aAAO;AAAA,IAC1B;AAAS,aAAO;AAAA,EAClB;AACF;AAGO,SAAS,WAAW,OAAsB;AAC/C,UAAQ,OAAO;AAAA,IACb,KAAK;AAAQ,aAAO;AAAA,IACpB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAU,aAAO;AAAA,IACtB,KAAK;AAAQ,aAAO;AAAA,EACtB;AACF;;;ACpYA,IAAM,QAAQ;AACd,IAAM,WAAW;AACjB,IAAM,UAAU;AAChB,IAAM,QAAQ;AACd,IAAM,MAAM;AACZ,IAAM,SAAS;AACf,IAAM,OAAO;AACb,IAAM,cAAc;AACpB,IAAM,cAAc;AAEpB,SAAS,KAAKM,IAAW;AAAE,SAAO,GAAG,QAAQ,GAAGA,EAAC,GAAG,KAAK;AAAG;AAC5D,SAAS,IAAIA,IAAW;AAAE,SAAO,GAAG,OAAO,GAAGA,EAAC,GAAG,KAAK;AAAG;AAI1D,SAAS,UAAUA,IAAmB;AACpC,SAAOA,GAAE,QAAQ,mBAAmB,EAAE;AACxC;AAGA,SAAS,aAAaA,IAAmB;AACvC,QAAM,WAAW,UAAUA,EAAC;AAC5B,MAAI,QAAQ;AACZ,aAAW,MAAM,UAAU;AACzB,UAAM,OAAO,GAAG,YAAY,CAAC,KAAK;AAClC,QAAI,QAAQ,OAAS,UAAS;AAAA,aACrB,QAAQ,QAAU,QAAQ,MAAQ,UAAS;AAAA,QAC/C,UAAS;AAAA,EAChB;AACA,SAAO;AACT;AAGA,SAAS,QAAQ,KAAa,aAAqB,OAAiC;AAClF,QAAM,KAAK,aAAa,GAAG;AAC3B,QAAM,UAAU,KAAK,IAAI,GAAG,cAAc,EAAE;AAC5C,MAAI,UAAU,QAAS,QAAO,IAAI,OAAO,OAAO,IAAI;AACpD,SAAO,MAAM,IAAI,OAAO,OAAO;AACjC;AAMA,SAAS,SAAS,OAAe,QAAgB,GAAkB;AACjE,QAAM,UAAU,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC;AAC9C,QAAM,UAAU,KAAK,MAAM,UAAU,KAAK;AAC1C,QAAM,OAAO,SAAI,OAAO,OAAO;AAC/B,QAAM,QAAQ,SAAI,OAAO,QAAQ,OAAO;AACxC,SAAO,EAAE,MAAM,MAAM;AACvB;AAMA,SAAS,cAAc,QAAkB,UAAgC;AACvE,QAAM,aAAa,OAAO,OAAO,CAAC,KAAKC,OAAM,MAAMA,KAAI,GAAG,CAAC,IAAI,OAAO,SAAS;AAE/E,MAAI,aAAa,UAAU;AACzB,WAAO,IAAI,SAAI,SAAI,OAAO,UAAU,CAAC,QAAG;AAAA,EAC1C;AACA,MAAI,aAAa,SAAS;AACxB,WAAO,IAAI,SAAI,SAAI,OAAO,UAAU,CAAC,QAAG;AAAA,EAC1C;AAEA,QAAM,WAAW,OAAO,IAAI,CAAAA,OAAK,SAAI,OAAOA,KAAI,CAAC,CAAC;AAClD,MAAI,aAAa,OAAO;AACtB,WAAO,IAAI,SAAI,SAAS,KAAK,QAAG,CAAC,QAAG;AAAA,EACtC;AAEA,SAAO,IAAI,SAAI,SAAS,KAAK,QAAG,CAAC,QAAG;AACtC;AAEA,SAAS,aACP,OACA,QACA,QACQ;AACR,QAAM,QAAQ,MAAM;AAAA,IAAI,CAAC,MAAMC,OAC7B,MAAM,QAAQ,MAAM,OAAOA,EAAC,GAAI,OAAOA,EAAC,CAAE,IAAI;AAAA,EAChD;AACA,SAAO,IAAI,QAAG,IAAI,MAAM,KAAK,IAAI,QAAG,CAAC,IAAI,IAAI,QAAG;AAClD;AAGA,SAAS,YAAY,SAAiB,QAA0B;AAC9D,QAAM,aAAa,OAAO,OAAO,CAAC,KAAKD,OAAM,MAAMA,KAAI,GAAG,CAAC,IAAI,OAAO,SAAS;AAC/E,QAAM,KAAK,aAAa,OAAO;AAC/B,QAAM,UAAU,KAAK,IAAI,GAAG,aAAa,KAAK,CAAC;AAC/C,SAAO,IAAI,QAAG,IAAI,MAAM,UAAU,IAAI,OAAO,OAAO,IAAI,IAAI,QAAG;AACjE;AAWA,SAAS,YACP,MACA,OACA,UACA,eACQ;AACR,MAAI,UAAU,OAAW,QAAO,IAAI,QAAG;AACvC,MAAI,gBAAgB,EAAG,QAAO;AAC9B,MAAI,SAAS,SAAS,UAAa,SAAS,UAAU,OAAW,QAAO;AACxE,MAAI,SAAS,SAAS,SAAS,MAAO,QAAO;AAE7C,MAAI,UAAU,SAAS,KAAM,QAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK;AAC5E,MAAI,UAAU,SAAS,MAAO,QAAO,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK;AAC1D,SAAO,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK;AACjC;AASO,SAAS,gBAAgB,SAA4B,SAAwC;AAClG,QAAM,iBAAiB,SAAS,cAAc;AAC9C,MAAI,QAAQ,WAAW,GAAG;AACxB,YAAQ,IAAI,4BAA4B;AACxC;AAAA,EACF;AAEA,QAAM,EAAE,OAAO,WAAW,aAAa,SAAS,YAAY,WAAW,OAAO,IAAI,aAAa,OAAO;AACtG,QAAM,UAAU,YAAY,SAAS,MAAM;AAC3C,QAAM,QAAQ,UAAU,UAAU;AAGlC,QAAM,cAAc;AACpB,QAAM,WAAW,cAAc,IAAI,KAAK,IAAI,IAAI,WAAW,aAAa,CAAC,KAAK;AAC9E,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,KAAK,WAAW,GAAG,QAAQ,wBAAmB,KAAK,GAAG,QAAQ,EAAE;AAC5E,UAAQ,IAAI,KAAK,IAAI,SAAI,OAAO,EAAE,CAAC,CAAC,EAAE;AACtC,UAAQ,IAAI,EAAE;AAGd,aAAW,QAAQ,OAAO;AACxB,YAAQ,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,EAAE;AACxC,YAAQ,IAAI,EAAE;AAGd,UAAM,eAAmC,UAAU;AAAA,MAAI,gBACrD,sBAAsB,YAAY,SAAS,IAAI;AAAA,IACjD;AAGA,UAAM,cAAc,mBAAmB,cAAc,WAAW;AAChE,UAAM,SAAS,cAAc,aAAa,SAAS;AAGnD,UAAM,iBAAiB,KAAK,IAAI,GAAG,UAAU,IAAI,QAAM,GAAG,MAAM,CAAC;AACjE,UAAM,gBAAgB,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,iBAAiB,CAAC,CAAC;AAEnE,UAAM,OAAmB;AAAA,MACvB,EAAE,OAAO,YAAY,OAAO,eAAe,OAAO,OAAO;AAAA,IAC3D;AAEA,eAAW,QAAQ,aAAa;AAC9B,UAAI,SAAS,WAAW;AACtB,aAAK,KAAK,EAAE,OAAO,WAAW,OAAO,IAAI,OAAO,SAAS,UAAU,UAAU,CAAC;AAAA,MAChF,WAAW,SAAS,QAAQ;AAC1B,aAAK,KAAK,EAAE,OAAO,QAAQ,OAAO,IAAI,OAAO,SAAS,UAAU,OAAO,CAAC;AACxE,aAAK,KAAK,EAAE,OAAO,UAAU,OAAO,GAAG,OAAO,SAAS,UAAU,SAAS,CAAC;AAAA,MAC7E,OAAO;AACL,aAAK,KAAK,EAAE,OAAO,YAAY,IAAI,GAAG,OAAO,iBAAiB,KAAK,GAAG,OAAO,SAAS,UAAU,KAAK,CAAC;AAAA,MACxG;AAAA,IACF;AAEA,QAAI,WAAW;AACb,WAAK,KAAK,EAAE,OAAO,UAAU,OAAO,GAAG,OAAO,OAAO,CAAC;AAAA,IACxD;AAEA,UAAM,SAAS,KAAK,IAAI,CAAAE,OAAKA,GAAE,KAAK;AACpC,UAAM,SAAS,KAAK,IAAI,CAAAA,OAAKA,GAAE,KAAK;AAGpC,YAAQ,IAAI,KAAK,cAAc,QAAQ,KAAK,CAAC,EAAE;AAG/C,UAAM,cAAc,KAAK,IAAI,CAAAA,OAAK,KAAKA,GAAE,KAAK,CAAC;AAC/C,YAAQ,IAAI,KAAK,aAAa,aAAa,QAAQ,MAAM,CAAC,EAAE;AAG5D,YAAQ,IAAI,KAAK,cAAc,QAAQ,QAAQ,CAAC,EAAE;AAGlD,eAAW,MAAM,cAAc;AAC7B,YAAM,QAAQ,WAAW,OAAO,IAAI,GAAG,UAAU,KAAK,MAAM;AAC5D,YAAM,eAAe,QAAQ,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,GAAG;AAC9D,YAAM,QAAkB,CAAC,YAAY;AAErC,UAAI,GAAG,WAAW;AAEhB,mBAAW,OAAO,KAAK,MAAM,CAAC,GAAG;AAC/B,cAAI,IAAI,UAAU,UAAU;AAC1B,kBAAM,KAAK,GAAG,GAAG,OAAO,KAAK,EAAE;AAAA,UACjC,OAAO;AACL,kBAAM,KAAK,IAAI,QAAG,CAAC;AAAA,UACrB;AAAA,QACF;AAAA,MACF,OAAO;AACL,mBAAW,OAAO,KAAK,MAAM,CAAC,GAAG;AAC/B,cAAI,IAAI,UAAU,UAAU;AAC1B,kBAAM;AAAA,cACJ,GAAG,aAAa,IACZ,GAAG,MAAM,GAAG,GAAG,UAAU,OAAO,KAAK,KACrC,GAAG,KAAK,KAAK,KAAK;AAAA,YACxB;AACA;AAAA,UACF;AAEA,gBAAM,WAAW,IAAI;AACrB,gBAAM,WAAW,YAAY,IAAI,QAAQ;AAEzC,cAAI,aAAa,WAAW;AAC1B,kBAAM,KAAK,GAAG;AACd,gBAAI,OAAO,QAAW;AACpB,oBAAM,KAAK,IAAI,QAAG,CAAC;AAAA,YACrB,OAAO;AACL,oBAAM,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC;AAC9B,oBAAM,KAAK,WAAW,YAAY,MAAM,IAAI,UAAU,UAAU,MAAM,IAAI,IAAI;AAAA,YAChF;AAAA,UACF,WAAW,aAAa,QAAQ;AAC9B,kBAAM,OAAO,GAAG,WAAW;AAC3B,gBAAI,SAAS,QAAW;AACtB,oBAAM,KAAK,IAAI,QAAG,CAAC;AAAA,YACrB,OAAO;AACL,oBAAM,OAAO,WAAW,IAAI;AAC5B,oBAAM,KAAK,WAAW,YAAY,MAAM,MAAM,UAAU,UAAU,MAAM,IAAI,IAAI;AAAA,YAClF;AAAA,UACF,WAAW,aAAa,UAAU;AAChC,kBAAM,SAAS,GAAG,WAAW;AAC7B,gBAAI,WAAW,QAAW;AACxB,oBAAM,KAAK,IAAI,QAAG,CAAC;AAAA,YACrB,OAAO;AACL,oBAAM,OAAO,GAAG,MAAM;AACtB,oBAAM,KAAK,WAAW,YAAY,MAAM,QAAQ,UAAU,UAAU,MAAM,IAAI,IAAI;AAAA,YACpF;AAAA,UACF,OAAO;AAEL,kBAAM,MAAM,GAAG,UAAU,QAAQ;AACjC,gBAAI,QAAQ,QAAW;AACrB,oBAAM,KAAK,IAAI,QAAG,CAAC;AAAA,YACrB,OAAO;AACL,oBAAM,SAAS,GAAG,KAAK,MAAM,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC;AACrD,kBAAI;AACJ,kBAAI,SAAS,UAAU;AACrB,6BAAa,YAAY,QAAQ,KAAK,UAAU,UAAU,MAAM;AAAA,cAClE,OAAO;AAEL,oBAAI,OAAO,IAAK,cAAa,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK;AAAA,yBAC7C,OAAO,IAAK,cAAa,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK;AAAA,oBACvD,cAAa,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK;AAAA,cAC3C;AACA,kBAAI,gBAAgB;AAClB,sBAAM,EAAE,MAAM,MAAM,IAAI,SAAS,GAAG;AACpC,sBAAM,WAAW,OAAO,MAAM,QAAQ,OAAO,MAAM,SAAS;AAC5D,sBAAM,KAAK,GAAG,UAAU,IAAI,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAAA,cACpE,OAAO;AACL,sBAAM,KAAK,UAAU;AAAA,cACvB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,cAAQ,IAAI,KAAK,aAAa,OAAO,QAAQ,MAAM,CAAC,EAAE;AAAA,IACxD;AAGA,QAAI,SAAS,aAAa,KAAK,CAAAC,OAAK,CAACA,GAAE,SAAS,GAAG;AACjD,YAAM,WAAW,CAAC,GAAG,OAAO,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAEC,EAAC,MAAMA,OAAM,MAAM,IAAI,CAAC;AACxE,UAAI,UAAU;AACZ,gBAAQ,IAAI,KAAK,cAAc,QAAQ,OAAO,CAAC,EAAE;AACjD,cAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,sBAAe,QAAQ,GAAG,KAAK,IAAI,IAAI,cAAc,QAAQ,CAAC,CAAC;AAC3G,gBAAQ,IAAI,KAAK,YAAY,YAAY,MAAM,CAAC,EAAE;AAAA,MACpD;AAAA,IACF;AAGA,YAAQ,IAAI,KAAK,cAAc,QAAQ,QAAQ,CAAC,EAAE;AAClD,YAAQ,IAAI,EAAE;AAAA,EAChB;AAGA,eAAa,SAAS,WAAW,UAAU;AAG3C,QAAM,eAAe,QAAQ,OAAO,CAACC,OAAMA,GAAE,KAAK;AAClD,MAAI,aAAa,SAAS,GAAG;AAC3B,YAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC,EAAE;AACjC,YAAQ,IAAI,KAAK,IAAI,SAAI,OAAO,EAAE,CAAC,CAAC,EAAE;AAEtC,UAAM,OAAO,oBAAI,IAAY;AAC7B,eAAWA,MAAK,cAAc;AAC5B,YAAM,MAAM,GAAGA,GAAE,UAAU,KAAKA,GAAE,KAAK;AACvC,UAAI,KAAK,IAAI,GAAG,EAAG;AACnB,WAAK,IAAI,GAAG;AAEZ,YAAM,QAAQ,aAAa,OAAO,CAACC,OAAMA,GAAE,eAAeD,GAAE,cAAcC,GAAE,UAAUD,GAAE,KAAK,EAAE;AAC/F,YAAM,SAAS,QAAQ,IAAI,SAAM,KAAK,MAAM;AAC5C,cAAQ,IAAI,KAAK,GAAG,SAAI,KAAK,IAAIA,GAAE,UAAU,KAAKA,GAAE,KAAK,GAAG,MAAM,EAAE;AAEpE,YAAM,OAAO,WAAWA,GAAE,YAAYA,GAAE,SAAS,EAAE;AACnD,UAAI,KAAM,SAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,EAAE;AAAA,IAC1C;AACA,YAAQ,IAAI,EAAE;AAAA,EAChB;AAEA,MAAI,SAAS;AACX,YAAQ,IAAI,IAAI,sGAAsG,CAAC;AACvH,YAAQ,IAAI,EAAE;AAAA,EAChB;AACF;AAIA,SAAS,aAAa,SAA4B,WAAqB,YAA4C;AACjH,QAAM,iBAAiB,QAAQ,OAAO,CAACA,OAAM,CAACA,GAAE,KAAK;AACrD,MAAI,eAAe,WAAW,EAAG;AAGjC,QAAM,oBAAoB,oBAAI,IAA+B;AAC7D,aAAW,MAAM,WAAW;AAC1B,sBAAkB,IAAI,KAAK,WAAW,IAAI,EAAE,KAAK,CAAC,GAAG,OAAO,CAACA,OAAM,CAACA,GAAE,KAAK,CAAC;AAAA,EAC9E;AAEA,UAAQ,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE;AAClC,UAAQ,IAAI,KAAK,IAAI,SAAI,OAAO,EAAE,CAAC,CAAC,EAAE;AACtC,UAAQ,IAAI,EAAE;AAEd,QAAM,SAAS,UAAU,WAAW;AAGpC,QAAM,iBAAiB,eAAe,KAAK,CAACA,OAAMA,GAAE,OAAO,KAAK,CAACN,OAAMA,GAAE,SAAS,2BAA2BA,GAAE,SAAS,CAAC,CAAC,IACtH,0BACA;AAEJ,QAAM,gBAAgB,cAAc,mBAAmB,WAAW,cAAc;AAChF,MAAI,eAAe;AACjB,UAAM,QAAQ,SAAS,GAAG,IAAI,SAAI,KAAK,KAAK;AAC5C,UAAM,SAAS,GAAG,KAAK,MAAM,cAAc,MAAM,GAAG,CAAC;AACrD,QAAI,QAAQ;AACV,cAAQ,IAAI,KAAK,KAAK,sBAAsB,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,EAAE;AAAA,IACvF,OAAO;AACL,cAAQ,IAAI,KAAK,KAAK,mBAAmB,KAAK,cAAc,EAAE,CAAC,IAAI,IAAI,cAAc,cAAc,EAAE,CAAC,CAAC,KAAK,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,EAAE;AAAA,IACvJ;AAAA,EACF;AAGA,QAAM,YAAY,UACf,IAAI,CAAC,OAAO;AACX,UAAM,OAAO,kBAAkB,IAAI,EAAE,KAAK,CAAC;AAC3C,UAAM,MAAM,QAAQ,KAAK,IAAI,CAACM,OAAMA,GAAE,IAAI,SAAS,CAAC;AACpD,WAAO,EAAE,IAAI,KAAK,OAAO,SAAS;AAAA,EACpC,CAAC,EACA,KAAK,CAACE,IAAGC,OAAMD,GAAE,MAAMC,GAAE,GAAG,EAAE,CAAC;AAElC,MAAI,aAAa,UAAU,QAAQ,UAAU;AAC3C,UAAM,QAAQ,SAAS,GAAG,IAAI,SAAI,KAAK,KAAK;AAC5C,UAAM,QAAQ,GAAG,KAAK,MAAM,UAAU,GAAG,CAAC;AAC1C,QAAI,QAAQ;AACV,cAAQ,IAAI,KAAK,KAAK,qBAAqB,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,EAAE;AAAA,IACrF,OAAO;AACL,cAAQ,IAAI,KAAK,KAAK,mBAAmB,KAAK,UAAU,EAAE,CAAC,IAAI,IAAI,cAAc,UAAU,EAAE,CAAC,CAAC,KAAK,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,EAAE;AAAA,IAC9I;AAAA,EACF;AAGA,QAAM,SAAS,UACZ,IAAI,CAAC,OAAO;AACX,UAAM,OAAO,kBAAkB,IAAI,EAAE,KAAK,CAAC;AAC3C,UAAM,QAAQ,KACX,IAAI,CAACH,OAAM;AACV,YAAMN,KAAIM,GAAE,OAAO,KAAK,CAACN,OAAMA,GAAE,SAAS,MAAM;AAChD,aAAOA,MAAKA,GAAE,SAAS,IAAIA,GAAE,QAAQ;AAAA,IACvC,CAAC,EACA,OAAO,CAACG,OAAmBA,OAAM,MAAS;AAC7C,UAAM,MAAM,MAAM,SAAS,IAAI,MAAM,OAAO,CAACK,IAAGC,OAAMD,KAAIC,IAAG,CAAC,IAAI,MAAM,SAAS;AACjF,WAAO,EAAE,IAAI,IAAI;AAAA,EACnB,CAAC,EACA,OAAO,CAACL,OAAMA,GAAE,QAAQ,MAAS,EACjC,KAAK,CAACI,IAAGC,OAAMD,GAAE,MAAOC,GAAE,GAAI,EAAE,CAAC;AAEpC,MAAI,QAAQ,QAAQ,QAAW;AAC7B,UAAM,QAAQ,SAAS,GAAG,IAAI,SAAI,KAAK,KAAK;AAC5C,UAAM,UAAU,WAAW,OAAO,GAAG;AACrC,QAAI,QAAQ;AACV,cAAQ,IAAI,KAAK,KAAK,qBAAqB,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,EAAE;AAAA,IACvF,OAAO;AACL,cAAQ,IAAI,KAAK,KAAK,mBAAmB,KAAK,OAAO,EAAE,CAAC,IAAI,IAAI,cAAc,OAAO,EAAE,CAAC,CAAC,KAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,EAAE;AAAA,IAC1I;AAAA,EACF;AAGA,MAAI,CAAC,UAAU,iBAAiB,cAAc,MAAM,GAAG;AACrD,YAAQ,IAAI,EAAE;AACd,UAAM,MAAM,GAAG,KAAK,MAAM,cAAc,MAAM,GAAG,CAAC;AAClD,YAAQ,IAAI,6BAAsB,WAAW,GAAG,QAAQ,GAAG,cAAc,EAAE,GAAG,KAAK,IAAI,IAAI,cAAc,cAAc,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,mBAAmB,CAAC,EAAE;AAAA,EACnK;AAEA,UAAQ,IAAI,EAAE;AAChB;;;AC5aO,SAAS,aAAa,SAAoC;AAC/D,SAAO,KAAK;AAAA,IACV;AAAA,MACE,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MAClC,SAAS,aAAa,OAAO;AAAA,MAC7B;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,aAAa,SAA4B;AAChD,QAAM,QAAQ,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAACC,OAAMA,GAAE,QAAQ,CAAC,CAAC;AACzD,QAAM,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAACA,OAAMA,GAAE,UAAU,CAAC,CAAC;AAE/D,SAAO;AAAA,IACL,iBAAiB,QAAQ;AAAA,IACzB,OAAO,MAAM;AAAA,IACb,WAAW,UAAU;AAAA,IACrB,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AACF;;;ACMO,SAAS,YAAY,QAA4B;AACtD,MAAI,OAAO,UAAU,WAAW,GAAG;AACjC,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAEA,QAAM,cAAc,OAAO,WAAW,CAAC,WAAW,QAAQ,aAAa;AACvE,QAAM,YAAY,eAAe,aAAa,OAAO,YAAY,OAAO,OAAO;AAC/E,QAAM,OAAO,OAAO,QAAQ;AAE5B,SAAO;AAAA,IACL;AAAA,IAEA,MAAM,IAAI,SAAkD;AAC1D,UAAI,OAAO,MAAM,WAAW,GAAG;AAC7B,cAAM,IAAI,MAAM,+BAA+B;AAAA,MACjD;AACA,aAAO,cAAc;AAAA,QACnB,WAAW,OAAO;AAAA,QAClB,OAAO,OAAO;AAAA,QACd,SAAS;AAAA,QACT;AAAA,QACA,SAAS,OAAO;AAAA,QAChB,UAAU,SAAS;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ACrDO,IAAM,iBAAiB;AAEvB,SAAS,iBAAiB,QAAkB,UAAqC;AACtF,QAAM,QAAkB,CAAC,gBAAgB,EAAE;AAG3C,QAAM,SAAS,OAAO,SAAS,qBAAc;AAC7C,QAAM,KAAK,qCAA2B,MAAM,EAAE;AAC9C,QAAM,KAAK,EAAE;AAGb,MAAI,OAAO,YAAY,SAAS,GAAG;AACjC,UAAM,KAAK,wBAAwB,OAAO,WAAW,CAAC;AACtD,UAAM,KAAK,EAAE;AAAA,EACf;AAGA,MAAI,OAAO,KAAK,WAAW,KAAK,OAAO,KAAK,WAAW,QAAW;AAChE,UAAM,KAAK,oBAAoB,OAAO,IAAI,CAAC;AAC3C,UAAM,KAAK,EAAE;AAAA,EACf;AAGA,MAAI,OAAO,aAAa,SAAS,GAAG;AAClC,UAAM,KAAK,gCAAsB;AACjC,UAAM,KAAK,EAAE;AACb,UAAM,KAAK,iHAAiH;AAC5H,UAAM,KAAK,EAAE;AACb,eAAWC,MAAK,OAAO,cAAc;AACnC,YAAM,KAAK,OAAOA,GAAE,UAAU,WAAQA,GAAE,QAAQ,WAAMA,GAAE,UAAU,UAAUA,GAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG;AAAA,IACxG;AACA,UAAM,KAAK,EAAE;AAAA,EACf;AAGA,MAAI,OAAO,eAAe,SAAS,GAAG;AACpC,UAAM,KAAK,qBAAqB;AAChC,UAAM,KAAK,EAAE;AACb,eAAW,UAAU,OAAO,gBAAgB;AAC1C,YAAM,KAAK,KAAK,MAAM,EAAE;AAAA,IAC1B;AACA,UAAM,KAAK,EAAE;AAAA,EACf;AAEA,QAAM,KAAK,KAAK;AAChB,QAAM,KAAK,+EAA+E;AAE1F,SAAO,MAAM,KAAK,IAAI;AACxB;AAEO,SAAS,wBAAwB,aAAyC;AAC/E,QAAM,QAAkB,CAAC;AAEzB,QAAM,KAAK,oEAAoE;AAC/E,QAAM,KAAK,oEAAoE;AAE/E,aAAWC,MAAK,aAAa;AAC3B,UAAM,cAAcA,GAAE,WAAW,YAAYA,GAAE,QAAQ,IAAI;AAC3D,UAAM,aAAa,YAAYA,GAAE,OAAO;AACxC,UAAM,WAAWA,GAAE,UAAU,OAAO,YAAYA,GAAE,OAAO,CAAC,IAAI;AAC9D,UAAM,SAAS,gBAAgBA,EAAC;AAEhC,UAAM,KAAK,KAAKA,GAAE,UAAU,MAAMA,GAAE,QAAQ,MAAMA,GAAE,UAAU,MAAM,WAAW,MAAM,UAAU,MAAM,QAAQ,MAAM,MAAM,IAAI;AAAA,EAC/H;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;AAEO,SAAS,oBAAoB,MAA2B;AAC7D,QAAM,QAAkB,CAAC;AAEzB,QAAM,KAAK,4BAAqB;AAChC,QAAM,KAAK,EAAE;AACb,QAAM,KAAK,eAAe,KAAK,SAAS,QAAQ,CAAC,CAAC,EAAE;AAEpD,MAAI,KAAK,WAAW,QAAW;AAC7B,UAAM,MAAM,KAAK,SAAS,KAAM,KAAK,WAAW,KAAK,SAAU,KAAK,QAAQ,CAAC,IAAI;AACjF,UAAM,YAAY,KAAK,aAAa,cAAO;AAC3C,UAAM,KAAK,gBAAgB,KAAK,OAAO,QAAQ,CAAC,CAAC,KAAK,GAAG,WAAW,SAAS,EAAE;AAAA,EACjF;AAEA,MAAI,KAAK,YAAY,OAAO,GAAG;AAC7B,UAAM,KAAK,EAAE;AACb,UAAM,KAAK,qBAAqB;AAChC,UAAM,KAAK,qBAAqB;AAChC,eAAW,CAAC,UAAU,GAAG,KAAK,KAAK,aAAa;AAC9C,YAAM,KAAK,KAAK,QAAQ,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI;AAAA,IACnD;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;AAEA,SAAS,YAAY,OAA4B;AAC/C,MAAI,MAAM,IAAI,GAAG;AACf,UAAM,UAAU,MAAM,YAAY,MAAM,aAAa;AACrD,WAAO,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,SAAM,OAAO,QAAQ,CAAC,CAAC;AAAA,EACxD;AACA,SAAO,MAAM,KAAK,QAAQ,CAAC;AAC7B;AAEA,SAAS,gBAAgBA,IAA6B;AACpD,MAAIA,GAAE,UAAW,QAAO;AACxB,MAAIA,GAAE,SAAU,QAAO;AACvB,MAAIA,GAAE,aAAa,KAAM,QAAO;AAChC,SAAO;AACT;;;AC3FA,SAAS,IAAIC,IAAmB;AAC9B,SAAOA,GACJ,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,OAAO;AAC1B;AAIO,SAAS,aAAa,SAAoC;AAC/D,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO,YAAY;AAAA,EACrB;AAEA,QAAM,EAAE,OAAO,WAAW,aAAa,SAAS,YAAY,OAAO,IAAI,aAAa,OAAO;AAC3F,QAAM,UAAU,YAAY,SAAS,MAAM;AAC3C,QAAM,QAAQ,UAAU,UAAU;AAClC,QAAM,YAAY,SAAS,IAAI,GAAG,MAAM,eAAe;AAGvD,QAAM,eAAe,MAAM,IAAI,UAAQ;AACrC,UAAM,eAAe,UAAU,IAAI,QAAM,sBAAsB,IAAI,SAAS,IAAI,CAAC;AACjF,UAAM,cAAc,mBAAmB,cAAc,WAAW;AAChE,UAAM,SAAS,cAAc,aAAa,SAAS;AACnD,UAAM,WAAW,QACb,CAAC,GAAG,OAAO,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAEC,EAAC,MAAMA,OAAM,MAAM,IAAI,CAAC,IACvD;AACJ,WAAO,EAAE,MAAM,cAAc,aAAa,QAAQ,SAAS;AAAA,EAC7D,CAAC;AAGD,QAAM,iBAAiB,QAAQ,OAAO,CAAAC,OAAK,CAACA,GAAE,KAAK;AACnD,QAAM,oBAAoB,oBAAI,IAA+B;AAC7D,aAAW,MAAM,WAAW;AAC1B,sBAAkB,IAAI,KAAK,WAAW,IAAI,EAAE,KAAK,CAAC,GAAG,OAAO,CAAAA,OAAK,CAACA,GAAE,KAAK,CAAC;AAAA,EAC5E;AAEA,QAAM,iBAAiB,eAAe;AAAA,IAAK,CAAAA,OACzCA,GAAE,OAAO,KAAK,CAAAF,OAAKA,GAAE,SAAS,2BAA2BA,GAAE,SAAS,CAAC;AAAA,EACvE,IAAI,0BAA0B;AAE9B,QAAM,gBAAgB,cAAc,mBAAmB,WAAW,cAAc;AAChF,QAAM,YAAY,UACf,IAAI,QAAM;AACT,UAAM,OAAO,kBAAkB,IAAI,EAAE,KAAK,CAAC;AAC3C,UAAM,MAAM,QAAQ,KAAK,IAAI,CAAAE,OAAKA,GAAE,IAAI,SAAS,CAAC;AAClD,WAAO,EAAE,IAAI,KAAK,OAAO,SAAS;AAAA,EACpC,CAAC,EACA,KAAK,CAACC,IAAGC,OAAMD,GAAE,MAAMC,GAAE,GAAG,EAAE,CAAC;AAElC,QAAM,SAAS,UACZ,IAAI,QAAM;AACT,UAAM,OAAO,kBAAkB,IAAI,EAAE,KAAK,CAAC;AAC3C,UAAM,QAAQ,KACX,IAAI,CAAAF,OAAK;AACR,YAAMF,KAAIE,GAAE,OAAO,KAAK,CAAAF,OAAKA,GAAE,SAAS,MAAM;AAC9C,aAAOA,MAAKA,GAAE,SAAS,IAAIA,GAAE,QAAQ;AAAA,IACvC,CAAC,EACA,OAAO,CAACK,OAAmBA,OAAM,MAAS;AAC7C,UAAM,MAAM,MAAM,SAAS,IAAI,MAAM,OAAO,CAACF,IAAGC,OAAMD,KAAIC,IAAG,CAAC,IAAI,MAAM,SAAS;AACjF,WAAO,EAAE,IAAI,IAAI;AAAA,EACnB,CAAC,EACA,OAAO,CAAAE,OAAKA,GAAE,QAAQ,MAAS,EAC/B,KAAK,CAACH,IAAGC,OAAMD,GAAE,MAAOC,GAAE,GAAI,EAAE,CAAC;AAGpC,MAAI;AACJ,MAAI,SAAS,iBAAiB,cAAc,MAAM,GAAG;AACnD,oBAAgB,cAAc;AAAA,EAChC;AAGA,QAAM,eAAe,QAAQ,OAAO,CAAAF,OAAKA,GAAE,KAAK;AAChD,QAAM,UAAU,aAAa,YAAY;AAEzC,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0EAM4D,UAAU,MAAM,YAAY,UAAU,WAAW,IAAI,MAAM,EAAE,KAAK,MAAM,MAAM,QAAQ,MAAM,WAAW,IAAI,MAAM,EAAE;AAAA;AAAA,mEAErH,UAAU,IAAI,GAAG,EAAE,KAAK,MAAM,CAAC;AAAA;AAAA,EAEhG,YAAY,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb,aAAa,WAAW,UAAU,QAAQ,MAAM,MAAM,CAAC;AAAA;AAAA,EAEvD,MAAM,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE;AAAA;AAAA;AAAA,EAGzC,aAAa,IAAI,CAACF,IAAGO,OAAM;AAAA,IACzBP,GAAE;AAAA,IAAMA,GAAE;AAAA,IAAcA,GAAE;AAAA,IAAaA,GAAE;AAAA,IAAQA,GAAE;AAAA,IACnD;AAAA,IAAa;AAAA,IAAS;AAAA,IAAOO;AAAA,EAC/B,CAAC,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA,EAGb,cAAc,eAAe,WAAW,QAAQ,eAAe,KAAK,CAAC;AAAA;AAAA,EAErE,QAAQ,SAAS,IAAI,aAAa,OAAO,IAAI,EAAE;AAAA;AAAA,EAE/C,aAAa,CAAC;AAAA;AAAA;AAAA,EAGd,aAAa,MAAM,MAAM,CAAC;AAAA;AAAA;AAG5B;AAIA,SAAS,cAAsB;AAC7B,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMP,YAAY,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKb,aAAa,UAAU,GAAG,CAAC,CAAC;AAAA;AAAA,EAE5B,aAAa,CAAC;AAAA;AAAA;AAAA;AAIhB;AAWA,SAAS,aAAa,cAAiD;AACrE,QAAM,OAAO,oBAAI,IAA0B;AAC3C,aAAWL,MAAK,cAAc;AAC5B,UAAM,MAAM,GAAGA,GAAE,UAAU,KAAKA,GAAE,KAAK;AACvC,UAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,QAAI,UAAU;AACZ,eAAS;AAAA,IACX,OAAO;AACL,WAAK,IAAI,KAAK;AAAA,QACZ,YAAYA,GAAE;AAAA,QACd,OAAOA,GAAE,SAAS;AAAA,QAClB,OAAO;AAAA,QACP,MAAM,WAAWA,GAAE,YAAYA,GAAE,SAAS,EAAE;AAAA,MAC9C,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO,CAAC,GAAG,KAAK,OAAO,CAAC;AAC1B;AAIA,SAAS,cAAsB;AAC7B,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0QT;AAIA,SAAS,aAAa,WAAmB,eAAuB,WAA2B;AACzF,QAAM,OAAM,oBAAI,KAAK,GAAE,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI;AACtE,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMH,aAAa,YAAY,kBAAkB,IAAI,MAAM,EAAE;AAAA,MACvD,SAAS,QAAQ,cAAc,IAAI,MAAM,EAAE;AAAA,MAC3C,IAAI,SAAS,CAAC;AAAA,MACd,IAAI,GAAG,CAAC;AAAA;AAAA;AAGd;AAIA,SAAS,WAAW,OAAyB;AAC3C,QAAM,UAAU,MAAM;AAAA,IAAI,CAACM,IAAGD,OAC5B,0BAA0BA,OAAM,IAAI,YAAY,EAAE,gBAAgBA,EAAC,KAAK,IAAIC,EAAC,CAAC;AAAA,EAChF,EAAE,KAAK,QAAQ;AACf,SAAO;AAAA,MACH,OAAO;AAAA;AAEb;AAIA,SAAS,kBACP,MACA,cACA,aACA,QACA,UACA,aACA,UACA,OACA,OACQ;AAER,QAAM,OAA2D;AAAA,IAC/D,EAAE,OAAO,YAAY,KAAK,YAAY,SAAS,MAAM;AAAA,EACvD;AAEA,aAAW,QAAQ,aAAa;AAC9B,QAAI,SAAS,WAAW;AACtB,WAAK,KAAK,EAAE,OAAO,WAAW,KAAK,WAAW,SAAS,MAAM,CAAC;AAAA,IAChE,WAAW,SAAS,QAAQ;AAC1B,WAAK,KAAK,EAAE,OAAO,QAAQ,KAAK,QAAQ,SAAS,MAAM,CAAC;AACxD,WAAK,KAAK,EAAE,OAAO,UAAU,KAAK,UAAU,SAAS,MAAM,CAAC;AAAA,IAC9D,OAAO;AACL,WAAK,KAAK,EAAE,OAAO,YAAY,IAAI,GAAG,KAAK,MAAM,SAAS,KAAK,CAAC;AAAA,IAClE;AAAA,EACF;AAGA,QAAM,MAAM,KAAK;AAAA,IAAI,CAAAH,OACnB,iBAAiB,IAAIA,GAAE,GAAG,CAAC,KAAK,IAAIA,GAAE,KAAK,CAAC;AAAA,EAC9C,EAAE,KAAK,EAAE;AAGT,QAAM,OAAO,aAAa,IAAI,QAAM;AAClC,UAAM,QAAQ,WAAW,OAAO,IAAI,GAAG,UAAU,KAAK,MAAM;AAC5D,UAAM,QAAkB,CAAC;AAGzB,UAAM,YAAY,QAAQ,GAAG,KAAK,MAAM;AACxC,UAAM,KAAK,OAAO,SAAS,GAAG,IAAI,GAAG,UAAU,CAAC,OAAO;AAEvD,QAAI,GAAG,WAAW;AAChB,eAAS,KAAK,GAAG,KAAK,KAAK,QAAQ,MAAM;AACvC,cAAM,KAAK,qCAAqC;AAAA,MAClD;AAAA,IACF,OAAO;AACL,iBAAW,OAAO,KAAK,MAAM,CAAC,GAAG;AAC/B,cAAM,KAAK,eAAe,IAAI,KAAK,IAAI,SAAS,IAAI,aAAa,KAAK,CAAC;AAAA,MACzE;AAAA,IACF;AAEA,WAAO,OAAO,MAAM,KAAK,EAAE,CAAC;AAAA,EAC9B,CAAC,EAAE,KAAK,IAAI;AAGZ,QAAM,aAAa,WACf;AAAA;AAAA,8CAEwC,IAAI,QAAQ,CAAC;AAAA,iCAC1B,IAAI,cAAc,QAAQ,CAAC,CAAC;AAAA,YAEvD;AAEJ,SAAO,+BAA+B,UAAU,IAAI,YAAY,EAAE,oBAAoB,KAAK;AAAA,0BACnE,IAAI,IAAI,CAAC;AAAA;AAAA,iBAElB,GAAG;AAAA,aACP,IAAI;AAAA;AAAA,IAEb,UAAU;AAAA;AAEd;AAIA,SAAS,eACP,KACA,UACA,IACA,aACA,OACQ;AACR,QAAM,WAAW,YAAY,IAAI,GAAG;AAEpC,MAAI,QAAQ,WAAW;AACrB,UAAM,KAAK,GAAG;AACd,QAAI,OAAO,OAAW,QAAO;AAC7B,UAAM,YAAY,SAAS,WAAW,WAAW,IAAI,QAAQ,IAAI;AACjE,WAAO,cAAc,SAAS,oBAAoB,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;AAAA,EACzE;AAEA,MAAI,QAAQ,QAAQ;AAClB,UAAM,OAAO,GAAG,WAAW;AAC3B,QAAI,SAAS,OAAW,QAAO;AAC/B,UAAM,YAAY,SAAS,WAAW,WAAW,MAAM,QAAQ,IAAI;AACnE,WAAO,cAAc,SAAS,oBAAoB,IAAI,KAAK,IAAI,WAAW,IAAI,CAAC,CAAC;AAAA,EAClF;AAEA,MAAI,QAAQ,UAAU;AACpB,UAAM,SAAS,GAAG,WAAW;AAC7B,QAAI,WAAW,OAAW,QAAO;AACjC,UAAM,YAAY,SAAS,WAAW,WAAW,QAAQ,QAAQ,IAAI;AACrE,WAAO,cAAc,SAAS,oBAAoB,MAAM,KAAK,MAAM;AAAA,EACrE;AAGA,QAAM,MAAM,GAAG,UAAU,GAAG;AAC5B,MAAI,QAAQ,OAAW,QAAO;AAE9B,QAAM,MAAM,KAAK,MAAM,MAAM,GAAG;AAChC,MAAI;AACJ,MAAI,SAAS,UAAU;AACrB,cAAU,WAAW,KAAK,QAAQ;AAAA,EACpC,OAAO;AACL,cAAU,OAAO,MAAM,cAAc,OAAO,MAAM,aAAa;AAAA,EACjE;AAEA,QAAM,WAAW,OAAO,MAAM,iBAAiB,OAAO,MAAM,kBAAkB;AAE9E,SAAO,yBAAyB,OAAO,oBAAoB,GAAG;AAAA,8BAClC,GAAG;AAAA,0CACS,GAAG,gBAAgB,QAAQ;AAAA;AAErE;AAEA,SAAS,WAAW,OAAe,UAAqD;AACtF,MAAI,SAAS,SAAS,UAAa,SAAS,UAAU,OAAW,QAAO;AACxE,MAAI,SAAS,SAAS,SAAS,MAAO,QAAO;AAC7C,MAAI,UAAU,SAAS,KAAM,QAAO;AACpC,MAAI,UAAU,SAAS,MAAO,QAAO;AACrC,SAAO;AACT;AAIA,SAAS,cACP,eACA,WACA,QACA,eACA,OACQ;AACR,QAAM,QAAkB,CAAC;AAEzB,MAAI,eAAe;AACjB,UAAM,MAAM,GAAG,KAAK,MAAM,cAAc,MAAM,GAAG,CAAC;AAClD,UAAM,WAAW,QACb,8BAA8B,IAAI,cAAc,EAAE,CAAC,IAAI,IAAI,cAAc,cAAc,EAAE,CAAC,CAAC,WAC3F;AACJ,UAAM,KAAK;AAAA,gCACiB,QAAQ,iBAAiB,iBAAiB;AAAA,gCAC1C,GAAG;AAAA,QAC3B,QAAQ;AAAA,WACL;AAAA,EACT;AAEA,MAAI,aAAa,UAAU,QAAQ,UAAU;AAC3C,UAAM,KAAK,GAAG,KAAK,MAAM,UAAU,GAAG,CAAC;AACvC,UAAM,WAAW,QACb,8BAA8B,IAAI,UAAU,EAAE,CAAC,IAAI,IAAI,cAAc,UAAU,EAAE,CAAC,CAAC,WACnF;AACJ,UAAM,KAAK;AAAA,gCACiB,QAAQ,YAAY,aAAa;AAAA,gCACjC,EAAE;AAAA,QAC1B,QAAQ;AAAA,WACL;AAAA,EACT;AAEA,MAAI,QAAQ,QAAQ,QAAW;AAC7B,UAAM,OAAO,IAAI,WAAW,OAAO,GAAG,CAAC;AACvC,UAAM,WAAW,QACb,8BAA8B,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,cAAc,OAAO,EAAE,CAAC,CAAC,WAC7E;AACJ,UAAM,KAAK;AAAA,gCACiB,QAAQ,aAAa,UAAU;AAAA,gCAC/B,IAAI;AAAA,QAC5B,QAAQ;AAAA,WACL;AAAA,EACT;AAEA,MAAI,eAAe;AACjB,UAAM,KAAK;AAAA;AAAA;AAAA,mCAGoB,IAAI,aAAa,CAAC,IAAI,IAAI,cAAc,aAAa,CAAC,CAAC;AAAA,WAC/E;AAAA,EACT;AAEA,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,SAAO;AAAA;AAAA;AAAA,MAGH,MAAM,KAAK,QAAQ,CAAC;AAAA;AAAA;AAG1B;AAIA,SAAS,aAAa,QAAgC;AACpD,QAAM,QAAQ,OAAO,IAAI,CAAAI,OAAK;AAC5B,UAAM,SAASA,GAAE,QAAQ,IAAI,sCAAsCA,GAAE,KAAK,aAAa;AACvF,UAAM,OAAOA,GAAE,OAAO,2BAA2B,IAAIA,GAAE,IAAI,CAAC,WAAW;AACvE,WAAO;AAAA,qCAC0B,IAAIA,GAAE,UAAU,CAAC;AAAA,gCACtB,IAAIA,GAAE,KAAK,CAAC,UAAU,MAAM;AAAA,QACpD,IAAI;AAAA;AAAA,EAEV,CAAC,EAAE,KAAK,IAAI;AAEZ,SAAO;AAAA;AAAA;AAAA,MAGH,KAAK;AAAA;AAAA;AAGX;AAIA,SAAS,eAAuB;AAC9B,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQT;AAIA,SAAS,aAAa,WAA2B;AAC/C,SAAO;AAAA;AAAA;AAAA,IAGL,YAAY,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAWX,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BX;;;AC/vBA,SAAS,cAAc,eAAe,iBAAiB;AACvD,SAAS,eAAe;AAuDxB,IAAM,kBAAkB,oBAAI,IAAI,CAAC,MAAM,CAAC;AAGxC,IAAM,qBAAqB;AAM3B,IAAM,gBAAwC;AAAA,EAC5C,GAAG;AAAA,EAAQ,GAAG;AAAA,EAAO,GAAG;AAAA,EAAO,GAAG;AAAA,EAAO,GAAG;AAAA,EAC5C,GAAG;AAAA,EAAO,GAAG;AAAA,EAAO,GAAG;AAAA,EAAO,GAAG;AAAA,EAAO,IAAI;AAAA,EAC5C,IAAI;AAAA,EAAO,IAAI;AAAA,EAAO,IAAI;AAAA,EAAO,IAAI;AACvC;AAEA,IAAM,kBAAkB,OAAO,KAAK,aAAa,EAAE,IAAI,MAAM,EAAE,KAAK,CAACC,IAAGC,OAAMD,KAAIC,EAAC;AAEnF,SAAS,UAAU,IAAoB;AACrC,MAAI,MAAM,EAAG,QAAO;AACpB,MAAI,cAAc,EAAE,MAAM,OAAW,QAAO,cAAc,EAAE;AAE5D,QAAM,OAAO;AACb,MAAI,KAAK,KAAK,KAAK,SAAS,CAAC,EAAI,QAAO;AAExC,WAASC,KAAI,GAAGA,KAAI,KAAK,SAAS,GAAGA,MAAK;AACxC,QAAI,KAAK,KAAKA,EAAC,KAAM,KAAK,KAAKA,KAAI,CAAC,GAAI;AACtC,YAAM,MAAM,KAAKA,EAAC,GAAI,OAAO,KAAKA,KAAI,CAAC;AACvC,YAAM,SAAS,KAAK,QAAQ,OAAO;AACnC,aAAO,cAAc,GAAG,IAAK,SAAS,cAAc,IAAI,IAAK,cAAc,GAAG;AAAA,IAChF;AAAA,EACF;AACA,SAAO;AACT;AAIO,SAAS,mBAAmB,SAAgC;AACjE,QAAMC,KAAI,QAAQ;AAClB,MAAIA,OAAM,GAAG;AACX,WAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,WAAW,EAAE;AAAA,EACvE;AAEA,QAAM,OAAO,QAAQ,OAAO,CAACH,IAAGC,OAAMD,KAAIC,IAAG,CAAC,IAAIE;AAElD,MAAIA,OAAM,GAAG;AACX,WAAO,EAAE,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,WAAW,MAAM,WAAW,KAAK;AAAA,EAC1E;AAEA,QAAM,WAAW,QAAQ,OAAO,CAAC,KAAK,MAAM,OAAO,IAAI,SAAS,GAAG,CAAC,KAAKA,KAAI;AAC7E,QAAM,SAAS,KAAK,KAAK,QAAQ;AACjC,QAAM,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI;AAClD,QAAMC,MAAK,SAAS,KAAK,KAAKD,EAAC;AAC/B,QAAME,KAAI,UAAUF,KAAI,CAAC;AAEzB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAAA;AAAA,IACA,WAAW,OAAOE,KAAID;AAAA,IACtB,WAAW,OAAOC,KAAID;AAAA,EACxB;AACF;AAKA,SAAS,SAAS,YAAoB,UAAkB,YAA4B;AAClF,SAAO,GAAG,UAAU,KAAK,QAAQ,KAAK,UAAU;AAClD;AAEO,SAAS,aAAa,SAAsD;AACjF,QAAM,UAAU,oBAAI,IAAsB;AAE1C,aAAWE,MAAK,SAAS;AACvB,QAAIA,GAAE,MAAO;AACb,eAAW,SAASA,GAAE,QAAQ;AAC5B,UAAI,MAAM,QAAQ,EAAG;AACrB,YAAM,MAAM,SAASA,GAAE,YAAYA,GAAE,UAAU,MAAM,IAAI;AACzD,UAAI,CAAC,QAAQ,IAAI,GAAG,EAAG,SAAQ,IAAI,KAAK,CAAC,CAAC;AAC1C,cAAQ,IAAI,GAAG,EAAG,KAAK,MAAM,KAAK;AAAA,IACpC;AAAA,EACF;AAEA,QAAM,QAAQ,oBAAI,IAAyB;AAC3C,aAAW,CAAC,KAAK,OAAO,KAAK,SAAS;AACpC,UAAM,IAAI,KAAK,mBAAmB,OAAO,CAAC;AAAA,EAC5C;AACA,SAAO;AACT;AAIO,SAAS,mBAAmB,SAA4B,QAA8B;AAC3F,MAAI,WAAW;AACf,QAAM,cAAc,oBAAI,IAAoB;AAE5C,aAAWA,MAAK,SAAS;AACvB,QAAIA,GAAE,MAAO;AACb,UAAM,YAAYA,GAAE,OAAO,KAAK,CAACC,OAAMA,GAAE,SAAS,MAAM;AACxD,QAAI,CAAC,aAAa,UAAU,QAAQ,EAAG;AAEvC,UAAM,UAAU,UAAU;AAC1B,UAAM,MAAM,SAAS,gBAAgB;AACrC,QAAI,OAAO,EAAG;AAEd,gBAAY;AACZ,gBAAY,IAAID,GAAE,aAAa,YAAY,IAAIA,GAAE,UAAU,KAAK,KAAK,GAAG;AAAA,EAC1E;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,WAAW,UAAa,WAAW;AAAA,EACjD;AACF;AAIO,SAAS,eACd,eACA,cACA,YACA,QACA,gBACU;AACV,QAAM,cAAkC,CAAC;AACzC,QAAM,iBAA2B,CAAC;AAElC,aAAW,CAAC,KAAK,OAAO,KAAK,cAAc;AACzC,UAAM,CAAC,YAAY,UAAU,UAAU,IAAI,IAAI,MAAM,IAAI;AACzD,UAAM,WAAW,eAAe,IAAI,GAAG,KAAK;AAE5C,QAAI,QAAuB;AAC3B,QAAI,YAAY;AAChB,QAAI,WAAW;AAEf,QAAI,UAAU;AACZ,cAAQ,QAAQ,OAAO,SAAS;AAChC,YAAM,YAAY,WAAW,IAAI,UAAU;AAE3C,UAAI,cAAc,QAAW;AAC3B,cAAM,gBAAgB,gBAAgB,IAAI,UAAU;AACpD,oBAAY,iBAAiB,UAAU,SAAS,WAAW,aAAa;AACxE,mBAAW,kBAAkB,UAAU,SAAS,WAAW,aAAa;AAAA,MAC1E;AAAA,IACF;AAEA,UAAM,QAAQ,QAAQ,IAAI,KAAK,QAAQ,KAAK;AAE5C,gBAAY,KAAK;AAAA,MACf;AAAA,MAAY;AAAA,MAAU;AAAA,MACtB;AAAA,MAAU;AAAA,MAAS;AAAA,MACnB;AAAA,MAAW;AAAA,MAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAGA,QAAM,OAAO,mBAAmB,kBAAkB,CAAC,GAAG,MAAM;AAG5D,QAAM,cAAc,YAAY,OAAO,CAACE,OAAMA,GAAE,SAAS;AACzD,MAAI,YAAY,SAAS,GAAG;AAC1B,eAAWF,MAAK,aAAa;AAC3B,qBAAe;AAAA,QACb,GAAGA,GAAE,UAAU,SAAMA,GAAE,QAAQ,KAAKA,GAAE,UAAU,iBAAiB,YAAYA,GAAE,KAAM,CAAC;AAAA,MACxF;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,YAAY;AACnB,mBAAe;AAAA,MACb,eAAe,KAAK,SAAS,QAAQ,CAAC,CAAC,oBAAoB,KAAK,OAAQ,QAAQ,CAAC,CAAC;AAAA,IACpF;AAAA,EACF;AAEA,QAAM,eAAe,YAAY,OAAO,CAACE,OAAMA,GAAE,KAAK;AACtD,QAAM,SAAS,eAAe,SAAS;AAEvC,SAAO,EAAE,aAAa,MAAM,QAAQ,cAAc,eAAe;AACnE;AAEA,SAAS,iBACP,UACA,SACA,WACA,eACS;AAET,MAAI,SAAS,MAAM,KAAK,QAAQ,MAAM,GAAG;AACvC,UAAM,QAAQ,QAAQ,OAAO,SAAS;AACtC,QAAI,cAAe,QAAO,QAAQ;AAClC,WAAO,QAAQ,CAAC;AAAA,EAClB;AAGA,MAAI,eAAe;AAEjB,WAAO,QAAQ,YAAY,SAAS,YAAY;AAAA,EAClD;AAEA,SAAO,SAAS,YAAY,QAAQ,YAAY,aAAa,QAAQ,OAAO,SAAS;AACvF;AAEA,SAAS,kBACP,UACA,SACA,WACA,eACS;AACT,MAAI,SAAS,MAAM,KAAK,QAAQ,MAAM,GAAG;AACvC,UAAM,QAAQ,QAAQ,OAAO,SAAS;AACtC,QAAI,cAAe,QAAO,QAAQ,CAAC;AACnC,WAAO,QAAQ;AAAA,EACjB;AAEA,MAAI,eAAe;AACjB,WAAO,SAAS,YAAY,QAAQ,YAAY;AAAA,EAClD;AACA,SAAO,QAAQ,YAAY,SAAS,YAAY;AAClD;AASO,SAAS,aAAa,MAAmC;AAC9D,MAAI;AACF,UAAM,MAAM,aAAa,MAAM,OAAO;AACtC,UAAM,OAAO,KAAK,MAAM,GAAG;AAG3B,UAAM,UAAW,KAAK,WAAW;AACjC,QAAI,CAAC,MAAM,QAAQ,OAAO,EAAG,QAAO;AAEpC,WAAO;AAAA,MACL,WAAY,KAAK,aAAwB;AAAA,MACzC;AAAA,IACF;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,aAAa,MAAc,SAAkC;AAC3E,YAAU,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAC5C,QAAM,OAAqB;AAAA,IACzB,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,IAClC;AAAA,EACF;AACA,gBAAc,MAAM,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC;AACnD;;;ACtTA,SAAS,gBAAAC,qBAAoB;AAkBtB,SAAS,sBAA4C;AAC1D,QAAM,QAAQ,QAAQ,IAAI;AAC1B,QAAM,aAAa,QAAQ,IAAI;AAC/B,QAAM,YAAY,QAAQ,IAAI;AAE9B,MAAI,CAAC,SAAS,CAAC,WAAY,QAAO;AAElC,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,MAAM,GAAG;AAC1C,MAAI,CAAC,SAAS,CAAC,KAAM,QAAO;AAE5B,MAAI;AAGJ,MAAI,WAAW;AACb,QAAI;AACF,YAAM,QAAQ,KAAK,MAAMA,cAAa,WAAW,OAAO,CAAC;AAGzD,UAAI,MAAM,gBAAgB,OAAO,MAAM,iBAAiB,UAAU;AAChE,cAAM,KAAK,MAAM;AACjB,mBAAW,GAAG;AAAA,MAChB;AAGA,UAAI,CAAC,YAAY,MAAM,SAAS,OAAO,MAAM,UAAU,UAAU;AAC/D,cAAM,QAAQ,MAAM;AACpB,YAAI,MAAM,cAAc;AACtB,qBAAW,MAAM;AAAA,QACnB;AAAA,MACF;AAAA,IACF,QAAQ;AAAA,IAER;AAAA,EACF;AAGA,MAAI,CAAC,YAAY,QAAQ,IAAI,mBAAmB;AAC9C,eAAW,SAAS,QAAQ,IAAI,mBAAmB,EAAE;AAAA,EACvD;AAEA,MAAI,CAAC,SAAU,QAAO;AAEtB,SAAO,EAAE,OAAO,OAAO,MAAM,SAAS;AACxC;AAIA,IAAM,WAAW;AAEjB,SAAS,UAAU,OAAe,OAAwD;AACxF,SAAO;AAAA,IACL,eAAe,UAAU,KAAK;AAAA,IAC9B,QAAQ;AAAA,IACR,wBAAwB;AAAA,IACxB,GAAG;AAAA,EACL;AACF;AAEA,eAAsB,oBACpB,KACA,QACwB;AACxB,MAAI,OAAO;AACX,QAAM,UAAU;AAEhB,SAAO,MAAM;AACX,UAAM,MAAM,GAAG,QAAQ,UAAU,IAAI,KAAK,IAAI,IAAI,IAAI,WAAW,IAAI,QAAQ,sBAAsB,OAAO,SAAS,IAAI;AACvH,UAAM,MAAM,MAAM,MAAM,KAAK,EAAE,SAAS,UAAU,IAAI,KAAK,EAAE,CAAC;AAE9D,QAAI,CAAC,IAAI,GAAI,QAAO;AAEpB,UAAM,WAAY,MAAM,IAAI,KAAK;AACjC,QAAI,SAAS,WAAW,EAAG;AAE3B,eAAW,WAAW,UAAU;AAC9B,UAAI,QAAQ,MAAM,SAAS,MAAM,GAAG;AAClC,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF;AAEA,QAAI,SAAS,SAAS,QAAS;AAC/B;AAAA,EACF;AAEA,SAAO;AACT;AAEA,eAAsB,gBACpB,KACA,MACA,QACe;AACf,QAAM,aAAa,MAAM,oBAAoB,KAAK,MAAM;AAExD,MAAI,YAAY;AAEd,UAAM,MAAM,GAAG,QAAQ,UAAU,IAAI,KAAK,IAAI,IAAI,IAAI,oBAAoB,UAAU;AACpF,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B,QAAQ;AAAA,MACR,SAAS,UAAU,IAAI,OAAO,EAAE,gBAAgB,mBAAmB,CAAC;AAAA,MACpE,MAAM,KAAK,UAAU,EAAE,KAAK,CAAC;AAAA,IAC/B,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,cAAQ,KAAK,gCAAgC,IAAI,MAAM,IAAI,IAAI,EAAE;AAAA,IACnE;AAAA,EACF,OAAO;AAEL,UAAM,MAAM,GAAG,QAAQ,UAAU,IAAI,KAAK,IAAI,IAAI,IAAI,WAAW,IAAI,QAAQ;AAC7E,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B,QAAQ;AAAA,MACR,SAAS,UAAU,IAAI,OAAO,EAAE,gBAAgB,mBAAmB,CAAC;AAAA,MACpE,MAAM,KAAK,UAAU,EAAE,KAAK,CAAC;AAAA,IAC/B,CAAC;AAED,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,cAAQ,KAAK,gCAAgC,IAAI,MAAM,IAAI,IAAI,EAAE;AAAA,IACnE;AAAA,EACF;AACF;;;AC3IA,SAAS,SAAS;AAGX,IAAM,uBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EAEb,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,QACE;AAAA,MACF,UAAU;AAAA,QACR,MAAM;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AAAA,MACA,QAAQ,EAAE,OAAO;AAAA,QACf,MAAM,EAAE,OAAO;AAAA,QACf,KAAK,EAAE,OAAO;AAAA,QACd,MAAM,EAAE,OAAO;AAAA,QACf,MAAM,EAAE,OAAO;AAAA,QACf,SAAS,EAAE,OAAO;AAAA,QAClB,YAAY,EAAE,OAAO;AAAA,MACvB,CAAC;AAAA,IACH;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,QACE;AAAA,MACF,UAAU;AAAA,QACR,WAAW,EAAE,SAAS,aAAa,SAAS,YAAY,OAAO,YAAY;AAAA,QAC3E,SAAS,EAAE,QAAQ,yBAAyB,MAAM,eAAe,OAAO,MAAM,KAAK,SAAS,SAAS,MAAM;AAAA,QAC3G,OAAO,EAAE,IAAI,YAAY,WAAW,GAAG,UAAU,KAAK,gBAAgB,UAAU;AAAA,MAClF;AAAA,MACA,QAAQ,EAAE,OAAO;AAAA,QACf,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;AAAA,QACnF,SAAS,EAAE,OAAO;AAAA,UAChB,QAAQ,EAAE,OAAO;AAAA,UACjB,MAAM,EAAE,OAAO;AAAA,UACf,OAAO,EAAE,OAAO;AAAA,UAChB,KAAK,EAAE,OAAO;AAAA,UACd,SAAS,EAAE,OAAO;AAAA,QACpB,CAAC;AAAA,QACD,OAAO,EAAE,OAAO;AAAA,UACd,IAAI,EAAE,OAAO;AAAA,UACb,WAAW,EAAE,OAAO;AAAA,UACpB,UAAU,EAAE,OAAO;AAAA,UACnB,gBAAgB,EAAE,KAAK,CAAC,YAAY,WAAW,WAAW,CAAC;AAAA,QAC7D,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,QACE;AAAA,MACF,UAAU;AAAA,QACR,EAAE,MAAM,mBAAmB,OAAO,OAAO,UAAU,cAAc;AAAA,QACjE,EAAE,MAAM,oBAAoB,OAAO,KAAO,UAAU,YAAY;AAAA,QAChE,EAAE,MAAM,mBAAmB,OAAO,MAAM,UAAU,iBAAiB;AAAA,QACnE,EAAE,MAAM,kBAAkB,OAAO,OAAO,UAAU,cAAc;AAAA,MAClE;AAAA,MACA,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAAA,IACzF;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,QACE;AAAA,MACF,UAAU,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,QAAQ,WAAW,eAAe,MAAM;AAAA,MAC9E,QAAQ,EAAE,OAAO;AAAA,QACf,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAAA,QACpE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,QAC5B,QAAQ,EAAE,KAAK,CAAC,WAAW,YAAY,MAAM,CAAC;AAAA,QAC9C,eAAe,EAAE,OAAO;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,QACE;AAAA,MACF,UAAU;AAAA,QACR,EAAE,IAAI,KAAK,UAAU,QAAQ,UAAU,UAAU;AAAA,QACjD,EAAE,IAAI,KAAK,UAAU,QAAQ,UAAU,YAAY;AAAA,QACnD,EAAE,IAAI,KAAK,UAAU,OAAO,UAAU,UAAU;AAAA,QAChD,EAAE,IAAI,KAAK,UAAU,YAAY,UAAU,YAAY;AAAA,MACzD;AAAA,MACA,QAAQ,EAAE;AAAA,QACR,EAAE,OAAO;AAAA,UACP,IAAI,EAAE,OAAO;AAAA,UACb,UAAU,EAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,UAAU,CAAC;AAAA,UACtD,UAAU,EAAE,KAAK,CAAC,WAAW,aAAa,WAAW,SAAS,CAAC;AAAA,QACjE,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,QACE;AAAA;AAAA;AAAA;AAAA,MACF,UAAU;AAAA,QACR,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU,CAAC,kBAAkB;AAAA,QAC7B,aAAa;AAAA,QACb,cAAc;AAAA,MAChB;AAAA,MACA,QAAQ,EAAE,OAAO;AAAA,QACf,SAAS,EAAE,OAAO;AAAA,QAClB,OAAO,EAAE,OAAO;AAAA,QAChB,QAAQ,EAAE,OAAO;AAAA,QACjB,WAAW,EAAE,OAAO;AAAA,QACpB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,QAC5B,aAAa,EAAE,QAAQ;AAAA,QACvB,cAAc,EAAE,OAAO;AAAA,MACzB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,SAAS,CAAC,eAAe,sBAAsB,WAAW,MAAM;AAClE;;;AC9HA,IAAM,WAAW,oBAAI,IAAsB;AAE3C,SAAS,SAAS,MAAsB;AACtC,WAAS,IAAI,KAAK,MAAM,IAAI;AAC9B;AAEA,SAAS,oBAAoB;AAGtB,SAAS,SAAS,MAAwB;AAC/C,QAAM,OAAO,SAAS,IAAI,IAAI;AAC9B,MAAI,CAAC,MAAM;AACT,UAAM,YAAY,CAAC,GAAG,SAAS,KAAK,CAAC,EAAE,KAAK,IAAI;AAChD,UAAM,IAAI,MAAM,iBAAiB,IAAI,uBAAuB,SAAS,EAAE;AAAA,EACzE;AACA,SAAO;AACT;AAGO,SAAS,YAA4F;AAC1G,SAAO,CAAC,GAAG,SAAS,OAAO,CAAC,EAAE,IAAI,CAACC,QAAO;AAAA,IACxC,MAAMA,GAAE;AAAA,IACR,OAAOA,GAAE;AAAA,IACT,aAAaA,GAAE;AAAA,IACf,WAAWA,GAAE,MAAM;AAAA,EACrB,EAAE;AACJ;;;ACRO,SAAS,gBAAgB,QAAoC;AAClE,QAAM,QAAQ,OAAO,MAAM,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC;AAEvD,QAAM,QAAQ,MAAM,QAAQ,CAACC,OAAMA,GAAE,KAAK;AAE1C,QAAM,YAAY,oBAAI,IAAuB;AAC7C,aAAW,QAAQ,OAAO;AACxB,eAAW,UAAU,KAAK,SAAS;AACjC,gBAAU,IAAI,MAAM;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB;AAAA,IACA,SAAS,CAAC,GAAG,SAAS;AAAA,IACtB,MAAM,OAAO,QAAQ;AAAA,IACrB,SAAS,OAAO;AAAA,EAClB;AACF;;;AzBpBA,IAAMC,aAAYC,SAAQ,cAAc,YAAY,GAAG,CAAC;AAExD,IAAM,UAAU,IAAI,QAAQ;AAE5B,QACG,KAAK,SAAS,EACd,YAAY,sDAAsD,EAClE,QAAQ,WAAW,CAAC;AAEvB,QACG,QAAQ,MAAM,EACd,YAAY,sDAAsD,EAClE,OAAO,WAAW,gCAAgC,EAClD,OAAO,CAAC,SAA8B;AACrC,QAAM,SAAS,QAAQ,iBAAiB;AAExC,MAAI,WAAW,MAAM,KAAK,CAAC,KAAK,OAAO;AACrC,YAAQ,MAAM,2DAA2D;AACzE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAIA,QAAM,eAAe,KAAKD,YAAW,MAAM,aAAa,iBAAiB;AACzE,MAAI;AAEJ,MAAI,WAAW,YAAY,GAAG;AAC5B,eAAWE,cAAa,cAAc,OAAO;AAAA,EAC/C,OAAO;AACL,eAAW;AAAA,EACb;AAEA,EAAAC,eAAc,QAAQ,QAAQ;AAC9B,UAAQ,IAAI,WAAW,MAAM,KAAK,KAAK,QAAQ,8BAA8B,yBAAyB;AACtG,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,aAAa;AACzB,UAAQ,IAAI,mCAAmC;AAC/C,UAAQ,IAAI,sBAAsB;AACpC,CAAC;AAEH,QACG,QAAQ,KAAK,EACb,YAAY,6CAA6C,EACzD,OAAO,uBAAuB,uBAAuB,iBAAiB,EACtE,OAAO,kBAAkB,gFAAgF,EACzG,OAAO,qBAAqB,yCAAyC,SAAS,EAC9E,OAAO,mBAAmB,8CAA8C,qBAAqB,EAC7F,OAAO,eAAe,uDAAuD,EAC7E,OAAO,OAAO,SAA+F;AAC5G,MAAI,KAAK,SAAS,QAAQ;AACxB,kBAAc;AACd;AAAA,EACF;AAEA,MAAI,CAAC,CAAC,WAAW,QAAQ,MAAM,EAAE,SAAS,KAAK,QAAQ,GAAG;AACxD,YAAQ,MAAM,qBAAqB,KAAK,QAAQ,sCAAsC;AACtF,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,aAAa,KAAK,OACpB,MAAM,mBAAmB,KAAK,MAAM,KAAK,MAAM,IAC/C,MAAM,gBAAgB,KAAK,MAAM;AAErC,MAAI;AAEF,UAAM,eAAe,KAAK,aAAa,UAAU,CAAC,KAAK;AACvD,UAAM,WAAW,eAAe,YAAY;AAE5C,UAAM,UAAU,MAAM,WAAW,IAAI,EAAE,SAAS,CAAC;AAEjD,QAAI,KAAK,aAAa,QAAQ;AAC5B,cAAQ,IAAI,aAAa,OAAO,CAAC;AAAA,IACnC,WAAW,KAAK,aAAa,QAAQ;AACnC,YAAM,OAAO,aAAa,OAAO;AACjC,YAAM,UAAU,QAAQ,KAAK,MAAM;AACnC,MAAAC,WAAUH,SAAQ,OAAO,GAAG,EAAE,WAAW,KAAK,CAAC;AAC/C,MAAAE,eAAc,SAAS,IAAI;AAC3B,cAAQ,IAAI;AAAA,yBAA4B,OAAO,EAAE;AAAA,IACnD,OAAO;AACL,cAAQ,IAAI,EAAE;AACd,sBAAgB,SAAS,EAAE,YAAY,WAAW,QAAQ,WAAW,CAAC;AAAA,IACxE;AAGA,UAAM,YAAY,QAAQ,SAAS,KAAK,QAAQ,MAAM,CAACE,OAAMA,GAAE,KAAK;AACpE,QAAI,UAAW,SAAQ,KAAK,CAAC;AAAA,EAC/B,SAAS,KAAK;AACZ,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,YAAQ,MAAM,qBAAqB,OAAO,EAAE;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAIH,SAAS,iBAAiB,OAAe,UAAoD;AAC3F,QAAM,CAAC,QAAQ,KAAK,IAAI,MAAM,MAAM,GAAG;AACvC,MAAI,CAAC,UAAU,UAAU,UAAa,MAAM,OAAO,KAAK,CAAC,GAAG;AAC1D,YAAQ,MAAM,8BAA8B,KAAK,kDAAkD;AACnG,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,WAAS,IAAI,QAAQ,OAAO,KAAK,CAAC;AAClC,SAAO;AACT;AAEA,QACG,QAAQ,IAAI,EACZ,YAAY,qEAAqE,EACjF,OAAO,uBAAuB,uBAAuB,iBAAiB,EACtE,OAAO,kBAAkB,gFAAgF,EACzG,OAAO,qBAAqB,sBAAsB,wBAAwB,EAC1E,OAAO,sBAAsB,yBAAyB,UAAU,EAChE,OAAO,8BAA8B,qCAAqC,kBAAkB,oBAAI,IAAoB,CAAC,EACrH,OAAO,qBAAqB,4CAA4C,EACxE,OAAO,aAAa,mCAAmC,EACvD,OAAO,eAAe,8BAA8B,EACpD,OAAO,OAAO,SAST;AACJ,MAAI,KAAK,SAAS,QAAQ;AACxB,kBAAc;AACd;AAAA,EACF;AAEA,QAAM,SAAoB;AAAA,IACxB,YAAY,KAAK;AAAA,IACjB,cAAc,QAAQ,KAAK,QAAQ;AAAA,IACnC,QAAQ,KAAK;AAAA,IACb,YAAY,KAAK;AAAA,IACjB,gBAAgB,KAAK,kBAAkB;AAAA,IACvC,SAAS,KAAK,WAAW;AAAA,IACzB,OAAO,KAAK,SAAS;AAAA,EACvB;AAEA,QAAM,aAAa,KAAK,OACpB,MAAM,mBAAmB,KAAK,MAAM,OAAO,UAAU,IACrD,MAAM,gBAAgB,OAAO,UAAU;AAG3C,UAAQ,IAAI,uBAAuB;AACnC,QAAM,WAAW,OAAO,QAAQ,SAAY;AAC5C,MAAI;AACJ,MAAI;AACF,cAAU,MAAM,WAAW,IAAI,EAAE,SAAS,CAAC;AAAA,EAC7C,SAAS,KAAK;AACZ,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,YAAQ,MAAM,qBAAqB,OAAO,EAAE;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,QAAM,WAAW,aAAa,OAAO,YAAY;AACjD,QAAM,gBAAgB,WAAW,aAAa,SAAS,OAAO,IAAI;AAElE,MAAI,UAAU;AACZ,YAAQ,IAAI,wBAAwB,OAAO,YAAY,KAAK,SAAS,SAAS,GAAG;AAAA,EACnF,OAAO;AACL,YAAQ,IAAI,mEAA8D;AAAA,EAC5E;AAGA,QAAM,eAAe,aAAa,OAAO;AACzC,QAAM,SAAS,eAAe,eAAe,cAAc,OAAO,YAAY,OAAO,QAAQ,OAAO;AAGpG,UAAQ,IAAI,EAAE;AACd,kBAAgB,SAAS,EAAE,YAAY,WAAW,QAAQ,cAAc,KAAK,CAAC;AAG9E,MAAI,OAAO,aAAa,SAAS,GAAG;AAClC,YAAQ,IAAI,WAAM,OAAO,aAAa,MAAM,2CAA2C;AAAA,EACzF;AACA,MAAI,OAAO,KAAK,YAAY;AAC1B,YAAQ,IAAI,+BAAwB,OAAO,KAAK,SAAS,QAAQ,CAAC,CAAC,OAAO,OAAO,KAAK,OAAQ,QAAQ,CAAC,CAAC,EAAE;AAAA,EAC5G;AACA,aAAW,UAAU,OAAO,gBAAgB;AAC1C,YAAQ,IAAI,aAAM,MAAM,EAAE;AAAA,EAC5B;AACA,MAAI,CAAC,OAAO,QAAQ;AAClB,YAAQ,IAAI,qBAAc;AAAA,EAC5B;AAGA,MAAI,OAAO,SAAS;AAClB,UAAM,QAAQ,oBAAoB;AAClC,QAAI,OAAO;AACT,YAAM,WAAW,iBAAiB,QAAQ,OAAO;AACjD,UAAI;AACF,cAAM,gBAAgB,OAAO,UAAU,cAAc;AACrD,gBAAQ,IAAI,+BAA+B;AAAA,MAC7C,SAAS,KAAK;AACZ,gBAAQ,KAAK,8BAA8B,eAAe,QAAQ,IAAI,UAAU,GAAG,EAAE;AAAA,MACvF;AAAA,IACF,OAAO;AACL,cAAQ,KAAK,0DAA0D;AAAA,IACzE;AAAA,EACF;AAGA,MAAI,OAAO,kBAAkB,CAAC,OAAO,QAAQ;AAC3C,iBAAa,OAAO,cAAc,OAAO;AACzC,YAAQ,IAAI,qBAAqB,OAAO,YAAY,EAAE;AAAA,EACxD,WAAW,OAAO,kBAAkB,OAAO,QAAQ;AACjD,YAAQ,IAAI,mCAAmC;AAAA,EACjD;AAGA,UAAQ,KAAK,OAAO,SAAS,IAAI,CAAC;AACpC,CAAC;AAEH,QAAQ,MAAM;AAEd,SAAS,gBAAsB;AAC7B,QAAM,QAAQ,UAAU;AACxB,MAAI,MAAM,WAAW,GAAG;AACtB,YAAQ,IAAI,qBAAqB;AACjC;AAAA,EACF;AACA,UAAQ,IAAI,yBAAyB;AACrC,aAAWC,MAAK,OAAO;AACrB,YAAQ,IAAI,KAAKA,GAAE,KAAK,OAAO,EAAE,CAAC,IAAIA,GAAE,WAAW,KAAKA,GAAE,SAAS,SAAS;AAAA,EAC9E;AACA,UAAQ,IAAI,wCAAwC;AACtD;AAEA,eAAe,mBAAmB,WAAmB,WAAmC;AACtF,QAAM,aAAa,QAAQ,SAAS;AAEpC,MAAI,CAAC,WAAW,UAAU,GAAG;AAC3B,YAAQ,MAAM,2EAA2E;AACzF,YAAQ,MAAM,0CAA0C;AACxD,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,YAAY,MAAM,gBAAgB,SAAS;AACjD,QAAM,QAAQ,UAAU,MAAM,GAAG,EAAE,IAAI,CAACC,OAAMA,GAAE,KAAK,CAAC;AACtD,QAAM,aAAa,gBAAgB;AAAA,IACjC;AAAA,IACA,WAAW,UAAU,OAAO;AAAA,IAC5B,MAAM,UAAU,OAAO;AAAA,IACvB,SAAS,UAAU,OAAO;AAAA,EAC5B,CAAC;AAED,SAAO,YAAY,UAAU;AAC/B;AAEA,eAAe,gBAAgB,WAAmC;AAChE,QAAM,aAAa,QAAQ,SAAS;AAEpC,MAAI,CAAC,WAAW,UAAU,GAAG;AAC3B,YAAQ,MAAM,qBAAqB,UAAU,EAAE;AAC/C,YAAQ,MAAM,EAAE;AAChB,YAAQ,MAAM,mCAAmC;AACjD,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI;AACJ,MAAI;AACF,QAAI,WAAW,SAAS,KAAK,GAAG;AAC9B,YAAM,MAAM,iBAAiB,UAAU;AAAA,IACzC,OAAO;AACL,YAAO,MAAM,OAAO,cAAc,UAAU,EAAE;AAAA,IAChD;AAAA,EACF,SAAS,KAAK;AACZ,YAAQ,MAAM,0BAA0B,UAAU,EAAE;AACpD,YAAQ,MAAM,EAAE;AAChB,QAAI,eAAe,aAAa;AAC9B,cAAQ,MAAM,iBAAiB,IAAI,OAAO,EAAE;AAAA,IAC9C,OAAO;AACL,cAAQ,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,IAChE;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,QAAQ,IAAI,WAAW,IAAI;AACjC,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,EAAE,SAAS,QAAQ;AAC5D,YAAQ,MAAM,gEAAgE;AAC9E,YAAQ,MAAM,gBAAgB,UAAU,EAAE;AAC1C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAe,MAA+B;AACpD,MAAI,gBAAgB,UAAa,gBAAgB,QAAQ,OAAO,gBAAgB,UAAU;AACxF;AAAC,IAAC,MAAyD,SAAS,CAAC;AAAA,EACvE;AACA,SAAO;AACT;AAEA,SAAS,UAAU,QAA+B;AAChD,MAAI,OAAO,OAAO;AAChB,YAAQ,IAAI,KAAK,OAAO,UAAU,SAAM,OAAO,QAAQ,WAAW,OAAO,KAAK,EAAE;AAAA,EAClF,OAAO;AACL,UAAM,SAAS,OAAO,OAAO,IAAI,CAACA,OAAM,GAAGA,GAAE,IAAI,IAAI,kBAAkBA,EAAC,CAAC,EAAE,EAAE,KAAK,GAAG;AACrF,YAAQ,IAAI,KAAK,OAAO,UAAU,SAAM,OAAO,QAAQ,KAAK,MAAM,EAAE;AAAA,EACtE;AACF;AAEA,eAAe,iBAAiB,UAAoD;AAClF,MAAI;AACF,UAAM;AAAA,EACR,QAAQ;AAAA,EAER;AAEA,MAAI;AACF,UAAM,MAAM,cAAc,QAAQ,EAAE;AACpC,WAAQ,MAAM,OAAO;AAAA,EACvB,SAAS,KAAK;AACZ,YAAQ;AAAA,MACN;AAAA,IAGF;AACA,YAAQ,MAAM,qBAAqB,eAAe,QAAQ,IAAI,UAAU,GAAG;AAC3E,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,SAAS,kBAAkBA,IAAwB;AACjD,QAAM,UAAUA,GAAE;AAClB,MAAIA,GAAE,SAAS,aAAa,SAAS,MAAM,MAAM;AAC/C,WAAO,GAAG,KAAK,MAAM,QAAQ,EAAY,CAAC;AAAA,EAC5C;AACA,MAAIA,GAAE,SAAS,UAAU,SAAS,gBAAgB,MAAM;AACtD,WAAO,WAAW,QAAQ,YAAsB;AAAA,EAClD;AAEA,MAAIA,GAAE,QAAQ,KAAK,SAAS,QAAQ;AAClC,WAAO,SAAS,QAAQ,MAAM;AAAA,EAChC;AACA,SAAO,OAAOA,GAAE,KAAK;AACvB;AAEA,SAAS,aAAqB;AAC5B,MAAI;AACF,UAAM,MAAML,cAAa,KAAKF,YAAW,MAAM,cAAc,GAAG,OAAO;AACvE,WAAO,KAAK,MAAM,GAAG,EAAE,WAAW;AAAA,EACpC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":["o","e","t","r","r","t","s","e","o","c","n","i","l","g","m","a","p","m","h","e","t","s","n","o","l","u","a","r","g","v","d","_","c","y","A","b","k","i","p","D","L","T","O","F","w","j","S","$","R","V","U","M","z","E","I","init_dist","f","B","module","__defProp","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","__export","__copyProps","i","fn","n","e","resolve","resolve2","at","G","A","E","Q","g","B","s","R","r","U","t","C","I","D","i","w","J","K","o","N","Y","a","X","s","e","n","i","o","c","u","p","g","b","K","d","je","Ue","Ie","en","De","me","r","Y","$e","tn","sn","Te","f","_","We","Z","v","re","Fe","R","L","E","N","t","a","h","l","w","m","C","z","A","$","fe","le","P","Ee","I","O","ue","he","ne","M","T","ge","be","pe","we","S","k","te","H","j","Le","B","G","de","ce","q","Re","Oe","ke","ye","Be","Ce","He","Xe","se","Ke","Ye","Qe","Ze","Ve","F","oe","Ne","Me","ae","ee","nn","Q","J","_e","Se","Pe","Je","xe","Ge","qe","ze","ie","ve","Ae","qt","zt","p","a","o","m","c","f","e","n","t","i","r","s","e","s","n","r","o","c","a","p","f","u","t","i","d","O","C","R","I","L","E","d","p","O","se","te","oe","K","o","R","D","me","N","pe","y","C","de","E","ge","Q","_","A","T","Pe","I","F","v","J","P","je","be","xe","k","ye","G","_e","Se","b","X","w","ve","z","we","Me","Te","Fe","H","$e","init_dist","s","e","n","a","f","t","r","L","c","i","u","m","g","h","l","m","u","h","d","o","w","l","E","r","s","e","a","y","t","p","c","D","f","n","i","m","a","e","s","i","r","t","$e","c","i","o","n","a","u","m","e","t","r","s","E","f","import_esbuild","s","i","init_dist","r","t","e","o","m","a","$e","u","ge","de","readFileSync","writeFileSync","mkdirSync","dirname","v","i","v","i","a","b","OpenAI","AzureOpenAI","zodToJsonSchema","OpenAI","AzureOpenAI","s","c","resolve","v","e","r","s","a","b","p","v","k","i","s","w","i","c","p","m","r","e","a","b","r","f","c","s","m","r","a","b","c","p","i","t","e","a","b","i","n","se","t","r","s","c","readFileSync","p","p","__dirname","dirname","readFileSync","writeFileSync","mkdirSync","r","p","s"]}
1
+ {"version":3,"sources":["../node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs","../node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs","../node_modules/resolve-pkg-maps/dist/index.mjs","../node_modules/get-tsconfig/dist/index.mjs","../node_modules/esbuild/lib/main.js","../node_modules/tsx/dist/lexer-DQCqS3nf.mjs","../node_modules/tsx/dist/index-7AaEi15b.mjs","../node_modules/tsx/dist/client-BQVF1NaW.mjs","../node_modules/tsx/dist/index-gbaejti9.mjs","../node_modules/tsx/dist/register-CFH5oNdT.mjs","../node_modules/tsx/dist/register-B7jrtLTO.mjs","../node_modules/tsx/dist/require-DQxpCAr4.mjs","../node_modules/tsx/dist/node-features-_8ZFwP_x.mjs","../node_modules/tsx/dist/esm/api/index.mjs","../src/cli.ts","../src/scorers/latency.ts","../src/pricing/catalog.json","../src/pricing/lookup.ts","../src/scorers/cost.ts","../src/utils/deep-equal.ts","../src/scorers/correctness.ts","../src/scorers/schema-correctness.ts","../src/scorers/fuzzy-similarity.ts","../src/scorers/llm-judge.ts","../src/providers/openai.ts","../src/providers/shared.ts","../src/scorers/tool-usage.ts","../src/scorers/index.ts","../src/runner.ts","../src/utils/format.ts","../src/reporter/shared.ts","../src/reporter/console.ts","../src/reporter/json.ts","../src/arena.ts","../src/reporter/markdown.ts","../src/reporter/html.ts","../src/ci.ts","../src/github.ts","../src/packs/structured-output.ts","../src/packs/tool-calling.ts","../src/packs/reasoning.ts","../src/packs/index.ts","../src/packs/loader.ts"],"sourcesContent":["import r from\"node:path\";import o from\"node:os\";const{geteuid:t}=process,s=t?t():o.userInfo().username,e=r.join(o.tmpdir(),`tsx-${s}`);export{e as t};\n","var p=Object.defineProperty;var e=(t,r)=>p(t,\"name\",{value:r,configurable:!0});import{createRequire as o}from\"module\";import a from\"node:path\";import{t as s}from\"./temporary-directory-CwHp0_NW.mjs\";var m=o(import.meta.url);const i=process.platform===\"win32\",n=e(t=>{const r=a.join(s,`${t}.pipe`);return i?`\\\\\\\\?\\\\pipe\\\\${r}`:r},\"getPipePath\");export{n as g,i,m as r};\n","const A=r=>r!==null&&typeof r==\"object\",a=(r,t)=>Object.assign(new Error(`[${r}]: ${t}`),{code:r}),_=\"ERR_INVALID_PACKAGE_CONFIG\",E=\"ERR_INVALID_PACKAGE_TARGET\",I=\"ERR_PACKAGE_PATH_NOT_EXPORTED\",P=\"ERR_PACKAGE_IMPORT_NOT_DEFINED\",R=/^\\d+$/,O=/^(\\.{1,2}|node_modules)$/i,w=/\\/|\\\\/;var h=(r=>(r.Export=\"exports\",r.Import=\"imports\",r))(h||{});const f=(r,t,e,o,c)=>{if(t==null)return[];if(typeof t==\"string\"){const[n,...i]=t.split(w);if(n===\"..\"||i.some(l=>O.test(l)))throw a(E,`Invalid \"${r}\" target \"${t}\" defined in the package config`);return[c?t.replace(/\\*/g,c):t]}if(Array.isArray(t))return t.flatMap(n=>f(r,n,e,o,c));if(A(t)){for(const n of Object.keys(t)){if(R.test(n))throw a(_,\"Cannot contain numeric property keys\");if(n===\"default\"||o.includes(n))return f(r,t[n],e,o,c)}return[]}throw a(E,`Invalid \"${r}\" target \"${t}\"`)},s=\"*\",m=(r,t)=>{const e=r.indexOf(s),o=t.indexOf(s);return e===o?t.length>r.length:o>e};function d(r,t){if(!t.includes(s)&&r.hasOwnProperty(t))return[t];let e,o;for(const c of Object.keys(r))if(c.includes(s)){const[n,i,l]=c.split(s);if(l===void 0&&t.startsWith(n)&&t.endsWith(i)){const g=t.slice(n.length,-i.length||void 0);g&&(!e||m(e,c))&&(e=c,o=g)}}return[e,o]}const p=r=>Object.keys(r).reduce((t,e)=>{const o=e===\"\"||e[0]!==\".\";if(t===void 0||t===o)return o;throw a(_,'\"exports\" cannot contain some keys starting with \".\" and some not')},void 0),u=/^\\w+:/,v=(r,t,e)=>{if(!r)throw new Error('\"exports\" is required');t=t===\"\"?\".\":`./${t}`,(typeof r==\"string\"||Array.isArray(r)||A(r)&&p(r))&&(r={\".\":r});const[o,c]=d(r,t),n=f(h.Export,r[o],t,e,c);if(n.length===0)throw a(I,t===\".\"?'No \"exports\" main defined':`Package subpath '${t}' is not defined by \"exports\"`);for(const i of n)if(!i.startsWith(\"./\")&&!u.test(i))throw a(E,`Invalid \"exports\" target \"${i}\" defined in the package config`);return n},T=(r,t,e)=>{if(!r)throw new Error('\"imports\" is required');const[o,c]=d(r,t),n=f(h.Import,r[o],t,e,c);if(n.length===0)throw a(P,`Package import specifier \"${t}\" is not defined in package`);return n};export{v as resolveExports,T as resolveImports};\n","var Le=Object.defineProperty;var i=(e,t)=>Le(e,\"name\",{value:t,configurable:!0});import m from\"node:path\";import re from\"node:fs\";import he from\"node:module\";import{resolveExports as Ee}from\"resolve-pkg-maps\";import xe from\"fs\";import Be from\"os\";import Ie from\"path\";function h(e){return e.startsWith(\"\\\\\\\\?\\\\\")?e:e.replace(/\\\\/g,\"/\")}i(h,\"slash\");const Z=i(e=>{const t=re[e];return(s,...n)=>{const o=`${e}:${n.join(\":\")}`;let l=s==null?void 0:s.get(o);return l===void 0&&(l=Reflect.apply(t,re,n),s==null||s.set(o,l)),l}},\"cacheFs\"),E=Z(\"existsSync\"),$e=Z(\"readFileSync\"),G=Z(\"statSync\"),fe=i((e,t,s)=>{for(;;){const n=m.posix.join(e,t);if(E(s,n))return n;const o=m.dirname(e);if(o===e)return;e=o}},\"findUp\"),q=/^\\.{1,2}(\\/.*)?$/,K=i(e=>{const t=h(e);return q.test(t)?t:`./${t}`},\"normalizeRelativePath\");function Ue(e,t=!1){const s=e.length;let n=0,o=\"\",l=0,u=16,a=0,r=0,g=0,v=0,d=0;function _(c,y){let A=0,b=0;for(;A<c;){let k=e.charCodeAt(n);if(k>=48&&k<=57)b=b*16+k-48;else if(k>=65&&k<=70)b=b*16+k-65+10;else if(k>=97&&k<=102)b=b*16+k-97+10;else break;n++,A++}return A<c&&(b=-1),b}i(_,\"scanHexDigits\");function p(c){n=c,o=\"\",l=0,u=16,d=0}i(p,\"setPosition\");function D(){let c=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&N(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&N(e.charCodeAt(n)))for(n++;n<e.length&&N(e.charCodeAt(n));)n++;else return d=3,e.substring(c,n);let y=n;if(n<e.length&&(e.charCodeAt(n)===69||e.charCodeAt(n)===101))if(n++,(n<e.length&&e.charCodeAt(n)===43||e.charCodeAt(n)===45)&&n++,n<e.length&&N(e.charCodeAt(n))){for(n++;n<e.length&&N(e.charCodeAt(n));)n++;y=n}else d=3;return e.substring(c,y)}i(D,\"scanNumber\");function L(){let c=\"\",y=n;for(;;){if(n>=s){c+=e.substring(y,n),d=2;break}const A=e.charCodeAt(n);if(A===34){c+=e.substring(y,n),n++;break}if(A===92){if(c+=e.substring(y,n),n++,n>=s){d=2;break}switch(e.charCodeAt(n++)){case 34:c+='\"';break;case 92:c+=\"\\\\\";break;case 47:c+=\"/\";break;case 98:c+=\"\\b\";break;case 102:c+=\"\\f\";break;case 110:c+=`\n`;break;case 114:c+=\"\\r\";break;case 116:c+=\"\t\";break;case 117:const k=_(4);k>=0?c+=String.fromCharCode(k):d=4;break;default:d=5}y=n;continue}if(A>=0&&A<=31)if(J(A)){c+=e.substring(y,n),d=2;break}else d=6;n++}return c}i(L,\"scanString\");function T(){if(o=\"\",d=0,l=n,r=a,v=g,n>=s)return l=s,u=17;let c=e.charCodeAt(n);if(O(c)){do n++,o+=String.fromCharCode(c),c=e.charCodeAt(n);while(O(c));return u=15}if(J(c))return n++,o+=String.fromCharCode(c),c===13&&e.charCodeAt(n)===10&&(n++,o+=`\n`),a++,g=n,u=14;switch(c){case 123:return n++,u=1;case 125:return n++,u=2;case 91:return n++,u=3;case 93:return n++,u=4;case 58:return n++,u=6;case 44:return n++,u=5;case 34:return n++,o=L(),u=10;case 47:const y=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<s&&!J(e.charCodeAt(n));)n++;return o=e.substring(y,n),u=12}if(e.charCodeAt(n+1)===42){n+=2;const A=s-1;let b=!1;for(;n<A;){const k=e.charCodeAt(n);if(k===42&&e.charCodeAt(n+1)===47){n+=2,b=!0;break}n++,J(k)&&(k===13&&e.charCodeAt(n)===10&&n++,a++,g=n)}return b||(n++,d=1),o=e.substring(y,n),u=13}return o+=String.fromCharCode(c),n++,u=16;case 45:if(o+=String.fromCharCode(c),n++,n===s||!N(e.charCodeAt(n)))return u=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return o+=D(),u=11;default:for(;n<s&&F(c);)n++,c=e.charCodeAt(n);if(l!==n){switch(o=e.substring(l,n),o){case\"true\":return u=8;case\"false\":return u=9;case\"null\":return u=7}return u=16}return o+=String.fromCharCode(c),n++,u=16}}i(T,\"scanNext\");function F(c){if(O(c)||J(c))return!1;switch(c){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}i(F,\"isUnknownContentCharacter\");function x(){let c;do c=T();while(c>=12&&c<=15);return c}return i(x,\"scanNextNonTrivia\"),{setPosition:p,getPosition:i(()=>n,\"getPosition\"),scan:t?x:T,getToken:i(()=>u,\"getToken\"),getTokenValue:i(()=>o,\"getTokenValue\"),getTokenOffset:i(()=>l,\"getTokenOffset\"),getTokenLength:i(()=>n-l,\"getTokenLength\"),getTokenStartLine:i(()=>r,\"getTokenStartLine\"),getTokenStartCharacter:i(()=>l-v,\"getTokenStartCharacter\"),getTokenError:i(()=>d,\"getTokenError\")}}i(Ue,\"createScanner\");function O(e){return e===32||e===9}i(O,\"isWhiteSpace\");function J(e){return e===10||e===13}i(J,\"isLineBreak\");function N(e){return e>=48&&e<=57}i(N,\"isDigit\");var ae;(function(e){e[e.lineFeed=10]=\"lineFeed\",e[e.carriageReturn=13]=\"carriageReturn\",e[e.space=32]=\"space\",e[e._0=48]=\"_0\",e[e._1=49]=\"_1\",e[e._2=50]=\"_2\",e[e._3=51]=\"_3\",e[e._4=52]=\"_4\",e[e._5=53]=\"_5\",e[e._6=54]=\"_6\",e[e._7=55]=\"_7\",e[e._8=56]=\"_8\",e[e._9=57]=\"_9\",e[e.a=97]=\"a\",e[e.b=98]=\"b\",e[e.c=99]=\"c\",e[e.d=100]=\"d\",e[e.e=101]=\"e\",e[e.f=102]=\"f\",e[e.g=103]=\"g\",e[e.h=104]=\"h\",e[e.i=105]=\"i\",e[e.j=106]=\"j\",e[e.k=107]=\"k\",e[e.l=108]=\"l\",e[e.m=109]=\"m\",e[e.n=110]=\"n\",e[e.o=111]=\"o\",e[e.p=112]=\"p\",e[e.q=113]=\"q\",e[e.r=114]=\"r\",e[e.s=115]=\"s\",e[e.t=116]=\"t\",e[e.u=117]=\"u\",e[e.v=118]=\"v\",e[e.w=119]=\"w\",e[e.x=120]=\"x\",e[e.y=121]=\"y\",e[e.z=122]=\"z\",e[e.A=65]=\"A\",e[e.B=66]=\"B\",e[e.C=67]=\"C\",e[e.D=68]=\"D\",e[e.E=69]=\"E\",e[e.F=70]=\"F\",e[e.G=71]=\"G\",e[e.H=72]=\"H\",e[e.I=73]=\"I\",e[e.J=74]=\"J\",e[e.K=75]=\"K\",e[e.L=76]=\"L\",e[e.M=77]=\"M\",e[e.N=78]=\"N\",e[e.O=79]=\"O\",e[e.P=80]=\"P\",e[e.Q=81]=\"Q\",e[e.R=82]=\"R\",e[e.S=83]=\"S\",e[e.T=84]=\"T\",e[e.U=85]=\"U\",e[e.V=86]=\"V\",e[e.W=87]=\"W\",e[e.X=88]=\"X\",e[e.Y=89]=\"Y\",e[e.Z=90]=\"Z\",e[e.asterisk=42]=\"asterisk\",e[e.backslash=92]=\"backslash\",e[e.closeBrace=125]=\"closeBrace\",e[e.closeBracket=93]=\"closeBracket\",e[e.colon=58]=\"colon\",e[e.comma=44]=\"comma\",e[e.dot=46]=\"dot\",e[e.doubleQuote=34]=\"doubleQuote\",e[e.minus=45]=\"minus\",e[e.openBrace=123]=\"openBrace\",e[e.openBracket=91]=\"openBracket\",e[e.plus=43]=\"plus\",e[e.slash=47]=\"slash\",e[e.formFeed=12]=\"formFeed\",e[e.tab=9]=\"tab\"})(ae||(ae={})),new Array(20).fill(0).map((e,t)=>\" \".repeat(t));const P=200;new Array(P).fill(0).map((e,t)=>`\n`+\" \".repeat(t)),new Array(P).fill(0).map((e,t)=>\"\\r\"+\" \".repeat(t)),new Array(P).fill(0).map((e,t)=>`\\r\n`+\" \".repeat(t)),new Array(P).fill(0).map((e,t)=>`\n`+\"\t\".repeat(t)),new Array(P).fill(0).map((e,t)=>\"\\r\"+\"\t\".repeat(t)),new Array(P).fill(0).map((e,t)=>`\\r\n`+\"\t\".repeat(t));var Q;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Q||(Q={}));function Ne(e,t=[],s=Q.DEFAULT){let n=null,o=[];const l=[];function u(r){Array.isArray(o)?o.push(r):n!==null&&(o[n]=r)}return i(u,\"onValue\"),Pe(e,{onObjectBegin:i(()=>{const r={};u(r),l.push(o),o=r,n=null},\"onObjectBegin\"),onObjectProperty:i(r=>{n=r},\"onObjectProperty\"),onObjectEnd:i(()=>{o=l.pop()},\"onObjectEnd\"),onArrayBegin:i(()=>{const r=[];u(r),l.push(o),o=r,n=null},\"onArrayBegin\"),onArrayEnd:i(()=>{o=l.pop()},\"onArrayEnd\"),onLiteralValue:u,onError:i((r,g,v)=>{t.push({error:r,offset:g,length:v})},\"onError\")},s),o[0]}i(Ne,\"parse$1\");function Pe(e,t,s=Q.DEFAULT){const n=Ue(e,!1),o=[];let l=0;function u(w){return w?()=>l===0&&w(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(u,\"toNoArgVisit\");function a(w){return w?j=>l===0&&w(j,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(a,\"toOneArgVisit\");function r(w){return w?j=>l===0&&w(j,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice()):()=>!0}i(r,\"toOneArgVisitWithPath\");function g(w){return w?()=>{l>0?l++:w(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice())===!1&&(l=1)}:()=>!0}i(g,\"toBeginVisit\");function v(w){return w?()=>{l>0&&l--,l===0&&w(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter())}:()=>!0}i(v,\"toEndVisit\");const d=g(t.onObjectBegin),_=r(t.onObjectProperty),p=v(t.onObjectEnd),D=g(t.onArrayBegin),L=v(t.onArrayEnd),T=r(t.onLiteralValue),F=a(t.onSeparator),x=u(t.onComment),c=a(t.onError),y=s&&s.disallowComments,A=s&&s.allowTrailingComma;function b(){for(;;){const w=n.scan();switch(n.getTokenError()){case 4:k(14);break;case 5:k(15);break;case 3:k(13);break;case 1:y||k(11);break;case 2:k(12);break;case 6:k(16);break}switch(w){case 12:case 13:y?k(10):x();break;case 16:k(1);break;case 15:case 14:break;default:return w}}}i(b,\"scanNext\");function k(w,j=[],S=[]){if(c(w),j.length+S.length>0){let $=n.getToken();for(;$!==17;){if(j.indexOf($)!==-1){b();break}else if(S.indexOf($)!==-1)break;$=b()}}}i(k,\"handleError\");function R(w){const j=n.getTokenValue();return w?T(j):(_(j),o.push(j)),b(),!0}i(R,\"parseString\");function W(){switch(n.getToken()){case 11:const w=n.getTokenValue();let j=Number(w);isNaN(j)&&(k(2),j=0),T(j);break;case 7:T(null);break;case 8:T(!0);break;case 9:T(!1);break;default:return!1}return b(),!0}i(W,\"parseLiteral\");function V(){return n.getToken()!==10?(k(3,[],[2,5]),!1):(R(!1),n.getToken()===6?(F(\":\"),b(),U()||k(4,[],[2,5])):k(5,[],[2,5]),o.pop(),!0)}i(V,\"parseProperty\");function M(){d(),b();let w=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(w||k(4,[],[]),F(\",\"),b(),n.getToken()===2&&A)break}else w&&k(6,[],[]);V()||k(4,[],[2,5]),w=!0}return p(),n.getToken()!==2?k(7,[2],[]):b(),!0}i(M,\"parseObject\");function z(){D(),b();let w=!0,j=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(j||k(4,[],[]),F(\",\"),b(),n.getToken()===4&&A)break}else j&&k(6,[],[]);w?(o.push(0),w=!1):o[o.length-1]++,U()||k(4,[],[4,5]),j=!0}return L(),w||o.pop(),n.getToken()!==4?k(8,[4],[]):b(),!0}i(z,\"parseArray\");function U(){switch(n.getToken()){case 3:return z();case 1:return M();case 10:return R(!0);default:return W()}}return i(U,\"parseValue\"),b(),n.getToken()===17?s.allowEmptyContent?!0:(k(4,[],[]),!1):U()?(n.getToken()!==17&&k(9,[],[]),!0):(k(4,[],[]),!1)}i(Pe,\"visit\");var ce;(function(e){e[e.None=0]=\"None\",e[e.UnexpectedEndOfComment=1]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=2]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=3]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=4]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=5]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=6]=\"InvalidCharacter\"})(ce||(ce={}));var ge;(function(e){e[e.OpenBraceToken=1]=\"OpenBraceToken\",e[e.CloseBraceToken=2]=\"CloseBraceToken\",e[e.OpenBracketToken=3]=\"OpenBracketToken\",e[e.CloseBracketToken=4]=\"CloseBracketToken\",e[e.CommaToken=5]=\"CommaToken\",e[e.ColonToken=6]=\"ColonToken\",e[e.NullKeyword=7]=\"NullKeyword\",e[e.TrueKeyword=8]=\"TrueKeyword\",e[e.FalseKeyword=9]=\"FalseKeyword\",e[e.StringLiteral=10]=\"StringLiteral\",e[e.NumericLiteral=11]=\"NumericLiteral\",e[e.LineCommentTrivia=12]=\"LineCommentTrivia\",e[e.BlockCommentTrivia=13]=\"BlockCommentTrivia\",e[e.LineBreakTrivia=14]=\"LineBreakTrivia\",e[e.Trivia=15]=\"Trivia\",e[e.Unknown=16]=\"Unknown\",e[e.EOF=17]=\"EOF\"})(ge||(ge={}));const Re=Ne;var ke;(function(e){e[e.InvalidSymbol=1]=\"InvalidSymbol\",e[e.InvalidNumberFormat=2]=\"InvalidNumberFormat\",e[e.PropertyNameExpected=3]=\"PropertyNameExpected\",e[e.ValueExpected=4]=\"ValueExpected\",e[e.ColonExpected=5]=\"ColonExpected\",e[e.CommaExpected=6]=\"CommaExpected\",e[e.CloseBraceExpected=7]=\"CloseBraceExpected\",e[e.CloseBracketExpected=8]=\"CloseBracketExpected\",e[e.EndOfFileExpected=9]=\"EndOfFileExpected\",e[e.InvalidCommentToken=10]=\"InvalidCommentToken\",e[e.UnexpectedEndOfComment=11]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=12]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=13]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=14]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=15]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=16]=\"InvalidCharacter\"})(ke||(ke={}));const me=i((e,t)=>Re($e(t,e,\"utf8\")),\"readJsonc\"),C=Symbol(\"implicitBaseUrl\"),I=\"${configDir}\",Se=i(()=>{const{findPnpApi:e}=he;return e&&e(process.cwd())},\"getPnpApi\"),ee=i((e,t,s,n)=>{const o=`resolveFromPackageJsonPath:${e}:${t}:${s}`;if(n!=null&&n.has(o))return n.get(o);const l=me(e,n);if(!l)return;let u=t||\"tsconfig.json\";if(!s&&l.exports)try{const[a]=Ee(l.exports,t,[\"require\",\"types\"]);u=a}catch{return!1}else!t&&l.tsconfig&&(u=l.tsconfig);return u=m.join(e,\"..\",u),n==null||n.set(o,u),u},\"resolveFromPackageJsonPath\"),ne=\"package.json\",te=\"tsconfig.json\",Je=i((e,t,s)=>{let n=e;if(e===\"..\"&&(n=m.join(n,te)),e[0]===\".\"&&(n=m.resolve(t,n)),m.isAbsolute(n)){if(E(s,n)){if(G(s,n).isFile())return n}else if(!n.endsWith(\".json\")){const p=`${n}.json`;if(E(s,p))return p}return}const[o,...l]=e.split(\"/\"),u=o[0]===\"@\"?`${o}/${l.shift()}`:o,a=l.join(\"/\"),r=Se();if(r){const{resolveRequest:p}=r;try{if(u===e){const D=p(m.join(u,ne),t);if(D){const L=ee(D,a,!1,s);if(L&&E(s,L))return L}}else{let D;try{D=p(e,t,{extensions:[\".json\"]})}catch{D=p(m.join(e,te),t)}if(D)return D}}catch{}}const g=fe(m.resolve(t),m.join(\"node_modules\",u),s);if(!g||!G(s,g).isDirectory())return;const v=m.join(g,ne);if(E(s,v)){const p=ee(v,a,!1,s);if(p===!1)return;if(p&&E(s,p)&&G(s,p).isFile())return p}const d=m.join(g,a),_=d.endsWith(\".json\");if(!_){const p=`${d}.json`;if(E(s,p))return p}if(E(s,d)){if(G(s,d).isDirectory()){const p=m.join(d,ne);if(E(s,p)){const L=ee(p,\"\",!0,s);if(L&&E(s,L))return L}const D=m.join(d,te);if(E(s,D))return D}else if(_)return d}},\"resolveExtendsPath\"),se=i((e,t)=>K(m.relative(e,t)),\"pathRelative\"),we=[\"files\",\"include\",\"exclude\"],de=i((e,t,s)=>{const n=m.join(t,s),o=m.relative(e,n);return h(o)||\"./\"},\"resolveAndRelativize\"),We=i((e,t,s)=>{const n=m.relative(e,t);if(!n)return s;const o=s.startsWith(\"./\")?s.slice(2):s;return h(`${n}/${o}`)},\"prefixPattern\"),Ve=i((e,t,s,n)=>{const o=Je(e,t,n);if(!o)throw new Error(`File '${e}' not found.`);if(s.has(o))throw new Error(`Circularity detected while resolving configuration: ${o}`);s.add(o);const l=m.dirname(o),u=ve(o,n,s);delete u.references;const{compilerOptions:a}=u;if(a){const{baseUrl:r}=a;r&&!r.startsWith(I)&&(a.baseUrl=de(t,l,r));const{outDir:g}=a;g&&!g.startsWith(I)&&(a.outDir=de(t,l,g))}for(const r of we){const g=u[r];g&&(u[r]=g.map(v=>v.startsWith(I)?v:We(t,l,v)))}return u},\"resolveExtends\"),be=[\"outDir\",\"declarationDir\"],ve=i((e,t,s=new Set)=>{let n;try{n=me(e,t)||{}}catch{throw new Error(`Cannot resolve tsconfig at path: ${e}`)}if(typeof n!=\"object\")throw new SyntaxError(`Failed to parse tsconfig at: ${e}`);const o=m.dirname(e);if(n.compilerOptions){const{compilerOptions:l}=n;l.paths&&!l.baseUrl&&(l[C]=o)}if(n.extends){const l=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const u of l.reverse()){const a=Ve(u,o,new Set(s),t),r={...a,...n,compilerOptions:{...a.compilerOptions,...n.compilerOptions}};a.watchOptions&&(r.watchOptions={...a.watchOptions,...n.watchOptions}),n=r}}if(n.compilerOptions){const{compilerOptions:l}=n,u=[\"baseUrl\",\"rootDir\"];for(const a of u){const r=l[a];if(r&&!r.startsWith(I)){const g=m.resolve(o,r),v=se(o,g);l[a]=v}}for(const a of be){let r=l[a];r&&(Array.isArray(n.exclude)||(n.exclude=be.map(g=>l[g]).filter(Boolean)),r.startsWith(I)||(r=K(r)),l[a]=r)}}else n.compilerOptions={};if(n.include?(n.include=n.include.map(h),n.files&&delete n.files):n.files&&(n.files=n.files.map(l=>l.startsWith(I)?l:K(l))),n.watchOptions){const{watchOptions:l}=n;l.excludeDirectories&&(l.excludeDirectories=l.excludeDirectories.map(u=>h(m.resolve(o,u)))),l.excludeFiles&&(l.excludeFiles=l.excludeFiles.map(u=>h(m.resolve(o,u)))),l.watchFile&&(l.watchFile=l.watchFile.toLowerCase()),l.watchDirectory&&(l.watchDirectory=l.watchDirectory.toLowerCase()),l.fallbackPolling&&(l.fallbackPolling=l.fallbackPolling.toLowerCase())}return n},\"_parseTsconfig\"),H=i((e,t)=>{if(e.startsWith(I))return h(m.join(t,e.slice(I.length)))},\"interpolateConfigDir\"),Me=[\"outDir\",\"declarationDir\",\"outFile\",\"rootDir\",\"baseUrl\",\"tsBuildInfoFile\"],ze=i(e=>{var t,s,n,o,l,u,a,r,g,v,d,_,p,D,L,T,F,x,c,y,A,b,k,R,W,V,M,z,U,w,j,S,$;if(e.strict){const f=[\"noImplicitAny\",\"noImplicitThis\",\"strictNullChecks\",\"strictFunctionTypes\",\"strictBindCallApply\",\"strictPropertyInitialization\",\"strictBuiltinIteratorReturn\",\"alwaysStrict\",\"useUnknownInCatchVariables\"];for(const B of f)e[B]===void 0&&(e[B]=!0)}if(e.composite&&((t=e.declaration)!=null||(e.declaration=!0),(s=e.incremental)!=null||(e.incremental=!0)),e.target){let f=e.target.toLowerCase();f===\"es2015\"&&(f=\"es6\"),e.target=f,f===\"esnext\"&&((n=e.module)!=null||(e.module=\"es6\"),(o=e.useDefineForClassFields)!=null||(e.useDefineForClassFields=!0)),(f===\"es6\"||f===\"es2016\"||f===\"es2017\"||f===\"es2018\"||f===\"es2019\"||f===\"es2020\"||f===\"es2021\"||f===\"es2022\"||f===\"es2023\"||f===\"es2024\")&&((l=e.module)!=null||(e.module=\"es6\")),(f===\"es2022\"||f===\"es2023\"||f===\"es2024\")&&((u=e.useDefineForClassFields)!=null||(e.useDefineForClassFields=!0))}if(e.module){let f=e.module.toLowerCase();if(f===\"es2015\"&&(f=\"es6\"),e.module=f,(f===\"es6\"||f===\"es2020\"||f===\"es2022\"||f===\"esnext\"||f===\"none\"||f===\"system\"||f===\"umd\"||f===\"amd\")&&((a=e.moduleResolution)!=null||(e.moduleResolution=\"classic\")),f===\"system\"&&((r=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0)),(f===\"node16\"||f===\"node18\"||f===\"node20\"||f===\"nodenext\"||f===\"preserve\")&&((g=e.esModuleInterop)!=null||(e.esModuleInterop=!0),(v=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0)),(f===\"node16\"||f===\"node18\"||f===\"node20\"||f===\"nodenext\")&&((d=e.moduleDetection)!=null||(e.moduleDetection=\"force\")),f===\"node16\"&&((_=e.target)!=null||(e.target=\"es2022\"),(p=e.moduleResolution)!=null||(e.moduleResolution=\"node16\")),f===\"node18\"&&((D=e.target)!=null||(e.target=\"es2022\"),(L=e.moduleResolution)!=null||(e.moduleResolution=\"node16\")),f===\"node20\"&&((T=e.target)!=null||(e.target=\"es2023\"),(F=e.moduleResolution)!=null||(e.moduleResolution=\"node16\"),(x=e.resolveJsonModule)!=null||(e.resolveJsonModule=!0)),f===\"nodenext\"&&((c=e.target)!=null||(e.target=\"esnext\"),(y=e.moduleResolution)!=null||(e.moduleResolution=\"nodenext\"),(A=e.resolveJsonModule)!=null||(e.resolveJsonModule=!0)),f===\"node16\"||f===\"node18\"||f===\"node20\"||f===\"nodenext\"){const B=e.target;(B===\"es3\"||B===\"es2022\"||B===\"es2023\"||B===\"es2024\"||B===\"esnext\")&&((b=e.useDefineForClassFields)!=null||(e.useDefineForClassFields=!0))}f===\"preserve\"&&((k=e.moduleResolution)!=null||(e.moduleResolution=\"bundler\"))}if(e.moduleResolution){let f=e.moduleResolution.toLowerCase();f===\"node\"&&(f=\"node10\"),e.moduleResolution=f,(f===\"node16\"||f===\"nodenext\"||f===\"bundler\")&&((R=e.resolvePackageJsonExports)!=null||(e.resolvePackageJsonExports=!0),(W=e.resolvePackageJsonImports)!=null||(e.resolvePackageJsonImports=!0)),f===\"bundler\"&&((V=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0),(M=e.resolveJsonModule)!=null||(e.resolveJsonModule=!0))}e.jsx&&(e.jsx=e.jsx.toLowerCase()),e.moduleDetection&&(e.moduleDetection=e.moduleDetection.toLowerCase()),e.importsNotUsedAsValues&&(e.importsNotUsedAsValues=e.importsNotUsedAsValues.toLowerCase()),e.newLine&&(e.newLine=e.newLine.toLowerCase()),e.esModuleInterop&&((z=e.allowSyntheticDefaultImports)!=null||(e.allowSyntheticDefaultImports=!0)),e.verbatimModuleSyntax&&((U=e.isolatedModules)!=null||(e.isolatedModules=!0),(w=e.preserveConstEnums)!=null||(e.preserveConstEnums=!0)),e.isolatedModules&&((j=e.preserveConstEnums)!=null||(e.preserveConstEnums=!0)),e.rewriteRelativeImportExtensions&&((S=e.allowImportingTsExtensions)!=null||(e.allowImportingTsExtensions=!0)),e.lib&&(e.lib=e.lib.map(f=>f.toLowerCase())),e.checkJs&&(($=e.allowJs)!=null||(e.allowJs=!0))},\"normalizeCompilerOptions\"),pe=i((e,t=new Map)=>{const s=m.resolve(e),n=ve(s,t),o=m.dirname(s),{compilerOptions:l}=n;if(l){for(const a of Me){const r=l[a];if(r){const g=H(r,o);l[a]=g?se(o,g):r}}for(const a of[\"rootDirs\",\"typeRoots\"]){const r=l[a];r&&(l[a]=r.map(g=>{const v=H(g,o);return v?se(o,v):g}))}const{paths:u}=l;if(u)for(const a of Object.keys(u))u[a]=u[a].map(r=>{var g;return(g=H(r,o))!=null?g:r});ze(l)}for(const u of we){const a=n[u];a&&(n[u]=a.map(r=>{var g;return(g=H(r,o))!=null?g:r}))}return n},\"parseTsconfig\"),Ge=i((e=process.cwd(),t=\"tsconfig.json\",s=new Map)=>{const n=fe(h(e),t,s);if(!n)return null;const o=pe(n,s);return{path:n,config:o}},\"getTsconfig\"),Qe=/\\*/g,Te=i((e,t)=>{const s=e.match(Qe);if(s&&s.length>1)throw new Error(t)},\"assertStarCount\"),He=i(e=>{if(e.includes(\"*\")){const[t,s]=e.split(\"*\");return{prefix:t,suffix:s}}return e},\"parsePattern\"),Xe=i(({prefix:e,suffix:t},s)=>s.startsWith(e)&&s.endsWith(t),\"isPatternMatch\"),Ye=i((e,t,s)=>Object.entries(e).map(([n,o])=>(Te(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:He(n),substitutions:o.map(l=>{if(Te(l,`Substitution '${l}' in pattern '${n}' can have at most one '*' character.`),!t&&!q.test(l)&&!m.isAbsolute(l))throw new Error(\"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\");return m.resolve(s,l)})})),\"parsePaths\"),Ze=i(e=>{const{compilerOptions:t}=e.config;if(!t)return null;const{baseUrl:s,paths:n}=t;if(!s&&!n)return null;const o=C in t&&t[C],l=m.resolve(m.dirname(e.path),s||o||\".\"),u=n?Ye(n,s,l):[];return a=>{if(q.test(a))return[];const r=[];for(const _ of u){if(_.pattern===a)return _.substitutions.map(h);typeof _.pattern!=\"string\"&&r.push(_)}let g,v=-1;for(const _ of r)Xe(_.pattern,a)&&_.pattern.prefix.length>v&&(v=_.pattern.prefix.length,g=_);if(!g)return s?[h(m.join(l,a))]:[];const d=a.slice(g.pattern.prefix.length,a.length-g.pattern.suffix.length);return g.substitutions.map(_=>h(_.replace(\"*\",d)))}},\"createPathsMatcher\");var qe=Object.defineProperty,X=i((e,t)=>qe(e,\"name\",{value:t,configurable:!0}),\"s\");const Ae=X(e=>{let t=\"\";for(let s=0;s<e.length;s+=1){const n=e[s],o=n.toUpperCase();t+=n===o?n.toLowerCase():o}return t},\"invertCase\"),le=new Map,_e=X((e,t)=>{const s=Ie.join(e,`.is-fs-case-sensitive-test-${process.pid}`);try{return t.writeFileSync(s,\"\"),!t.existsSync(Ae(s))}finally{try{t.unlinkSync(s)}catch{}}},\"checkDirectoryCaseWithWrite\"),Ke=X((e,t,s)=>{try{return _e(e,s)}catch(n){if(t===void 0)return _e(Be.tmpdir(),s);throw n}},\"checkDirectoryCaseWithFallback\"),Oe=X((e,t=xe,s=!0)=>{const n=e!=null?e:process.cwd();if(s&&le.has(n))return le.get(n);let o;const l=Ae(n);return l!==n&&t.existsSync(n)?o=!t.existsSync(l):o=Ke(n,e,t),s&&le.set(n,o),o},\"isFsCaseSensitive\"),{join:ye}=m.posix,oe={ts:[\".ts\",\".tsx\",\".d.ts\"],cts:[\".cts\",\".d.cts\"],mts:[\".mts\",\".d.mts\"]},Ce=i(e=>{const t=[...oe.ts],s=[...oe.cts],n=[...oe.mts];return e!=null&&e.allowJs&&(t.push(\".js\",\".jsx\"),s.push(\".cjs\"),n.push(\".mjs\")),[...t,...s,...n]},\"getSupportedExtensions\"),en=i(e=>{const t=[];if(!e)return t;const{outDir:s,declarationDir:n}=e;return s&&t.push(s),n&&t.push(n),t},\"getDefaultExcludeSpec\"),je=i(e=>e.replaceAll(/[.*+?^${}()|[\\]\\\\]/g,String.raw`\\$&`),\"escapeForRegexp\"),nn=[\"node_modules\",\"bower_components\",\"jspm_packages\"],ie=`(?!(${nn.join(\"|\")})(/|$))`,tn=/(?:^|\\/)[^.*?]+$/,Fe=\"**/*\",Y=\"[^/]\",ue=\"[^./]\",De=process.platform===\"win32\",sn=i(({config:e,path:t},s=Oe())=>{if(\"extends\"in e)throw new Error(\"tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.\");if(!m.isAbsolute(t))throw new Error(\"The tsconfig path must be absolute\");De&&(t=h(t));const n=m.dirname(t),{files:o,include:l,exclude:u,compilerOptions:a}=e,r=i(T=>m.isAbsolute(T)?T:ye(n,T),\"resolvePattern\"),g=o==null?void 0:o.map(r),v=Ce(a),d=s?\"\":\"i\",p=(u||en(a)).map(T=>{const F=r(T),x=je(F).replaceAll(String.raw`\\*\\*/`,\"(.+/)?\").replaceAll(String.raw`\\*`,`${Y}*`).replaceAll(String.raw`\\?`,Y);return new RegExp(`^${x}($|/)`,d)}),D=o||l?l:[Fe],L=D?D.map(T=>{let F=r(T);tn.test(F)&&(F=ye(F,Fe));const x=je(F).replaceAll(String.raw`/\\*\\*`,`(/${ie}${ue}${Y}*)*?`).replaceAll(/(\\/)?\\\\\\*/g,(c,y)=>{const A=`(${ue}|(\\\\.(?!min\\\\.js$))?)*`;return y?`/${ie}${ue}${A}`:A}).replaceAll(/(\\/)?\\\\\\?/g,(c,y)=>{const A=Y;return y?`/${ie}${A}`:A});return new RegExp(`^${x}$`,d)}):void 0;return T=>{if(!m.isAbsolute(T))throw new Error(\"filePath must be absolute\");if(De&&(T=h(T)),g!=null&&g.includes(T))return e;if(!(!v.some(F=>T.endsWith(F))||p.some(F=>F.test(T)))&&L&&L.some(F=>F.test(T)))return e}},\"createFilesMatcher\");export{sn as createFilesMatcher,Ze as createPathsMatcher,Ge as getTsconfig,pe as parseTsconfig};\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// lib/npm/node.ts\nvar node_exports = {};\n__export(node_exports, {\n analyzeMetafile: () => analyzeMetafile,\n analyzeMetafileSync: () => analyzeMetafileSync,\n build: () => build,\n buildSync: () => buildSync,\n context: () => context,\n default: () => node_default,\n formatMessages: () => formatMessages,\n formatMessagesSync: () => formatMessagesSync,\n initialize: () => initialize,\n stop: () => stop,\n transform: () => transform,\n transformSync: () => transformSync,\n version: () => version\n});\nmodule.exports = __toCommonJS(node_exports);\n\n// lib/shared/stdio_protocol.ts\nfunction encodePacket(packet) {\n let visit = (value) => {\n if (value === null) {\n bb.write8(0);\n } else if (typeof value === \"boolean\") {\n bb.write8(1);\n bb.write8(+value);\n } else if (typeof value === \"number\") {\n bb.write8(2);\n bb.write32(value | 0);\n } else if (typeof value === \"string\") {\n bb.write8(3);\n bb.write(encodeUTF8(value));\n } else if (value instanceof Uint8Array) {\n bb.write8(4);\n bb.write(value);\n } else if (value instanceof Array) {\n bb.write8(5);\n bb.write32(value.length);\n for (let item of value) {\n visit(item);\n }\n } else {\n let keys = Object.keys(value);\n bb.write8(6);\n bb.write32(keys.length);\n for (let key of keys) {\n bb.write(encodeUTF8(key));\n visit(value[key]);\n }\n }\n };\n let bb = new ByteBuffer();\n bb.write32(0);\n bb.write32(packet.id << 1 | +!packet.isRequest);\n visit(packet.value);\n writeUInt32LE(bb.buf, bb.len - 4, 0);\n return bb.buf.subarray(0, bb.len);\n}\nfunction decodePacket(bytes) {\n let visit = () => {\n switch (bb.read8()) {\n case 0:\n return null;\n case 1:\n return !!bb.read8();\n case 2:\n return bb.read32();\n case 3:\n return decodeUTF8(bb.read());\n case 4:\n return bb.read();\n case 5: {\n let count = bb.read32();\n let value2 = [];\n for (let i = 0; i < count; i++) {\n value2.push(visit());\n }\n return value2;\n }\n case 6: {\n let count = bb.read32();\n let value2 = {};\n for (let i = 0; i < count; i++) {\n value2[decodeUTF8(bb.read())] = visit();\n }\n return value2;\n }\n default:\n throw new Error(\"Invalid packet\");\n }\n };\n let bb = new ByteBuffer(bytes);\n let id = bb.read32();\n let isRequest = (id & 1) === 0;\n id >>>= 1;\n let value = visit();\n if (bb.ptr !== bytes.length) {\n throw new Error(\"Invalid packet\");\n }\n return { id, isRequest, value };\n}\nvar ByteBuffer = class {\n constructor(buf = new Uint8Array(1024)) {\n this.buf = buf;\n this.len = 0;\n this.ptr = 0;\n }\n _write(delta) {\n if (this.len + delta > this.buf.length) {\n let clone = new Uint8Array((this.len + delta) * 2);\n clone.set(this.buf);\n this.buf = clone;\n }\n this.len += delta;\n return this.len - delta;\n }\n write8(value) {\n let offset = this._write(1);\n this.buf[offset] = value;\n }\n write32(value) {\n let offset = this._write(4);\n writeUInt32LE(this.buf, value, offset);\n }\n write(bytes) {\n let offset = this._write(4 + bytes.length);\n writeUInt32LE(this.buf, bytes.length, offset);\n this.buf.set(bytes, offset + 4);\n }\n _read(delta) {\n if (this.ptr + delta > this.buf.length) {\n throw new Error(\"Invalid packet\");\n }\n this.ptr += delta;\n return this.ptr - delta;\n }\n read8() {\n return this.buf[this._read(1)];\n }\n read32() {\n return readUInt32LE(this.buf, this._read(4));\n }\n read() {\n let length = this.read32();\n let bytes = new Uint8Array(length);\n let ptr = this._read(bytes.length);\n bytes.set(this.buf.subarray(ptr, ptr + length));\n return bytes;\n }\n};\nvar encodeUTF8;\nvar decodeUTF8;\nvar encodeInvariant;\nif (typeof TextEncoder !== \"undefined\" && typeof TextDecoder !== \"undefined\") {\n let encoder = new TextEncoder();\n let decoder = new TextDecoder();\n encodeUTF8 = (text) => encoder.encode(text);\n decodeUTF8 = (bytes) => decoder.decode(bytes);\n encodeInvariant = 'new TextEncoder().encode(\"\")';\n} else if (typeof Buffer !== \"undefined\") {\n encodeUTF8 = (text) => Buffer.from(text);\n decodeUTF8 = (bytes) => {\n let { buffer, byteOffset, byteLength } = bytes;\n return Buffer.from(buffer, byteOffset, byteLength).toString();\n };\n encodeInvariant = 'Buffer.from(\"\")';\n} else {\n throw new Error(\"No UTF-8 codec found\");\n}\nif (!(encodeUTF8(\"\") instanceof Uint8Array))\n throw new Error(`Invariant violation: \"${encodeInvariant} instanceof Uint8Array\" is incorrectly false\n\nThis indicates that your JavaScript environment is broken. You cannot use\nesbuild in this environment because esbuild relies on this invariant. This\nis not a problem with esbuild. You need to fix your environment instead.\n`);\nfunction readUInt32LE(buffer, offset) {\n return buffer[offset++] | buffer[offset++] << 8 | buffer[offset++] << 16 | buffer[offset++] << 24;\n}\nfunction writeUInt32LE(buffer, value, offset) {\n buffer[offset++] = value;\n buffer[offset++] = value >> 8;\n buffer[offset++] = value >> 16;\n buffer[offset++] = value >> 24;\n}\n\n// lib/shared/common.ts\nvar quote = JSON.stringify;\nvar buildLogLevelDefault = \"warning\";\nvar transformLogLevelDefault = \"silent\";\nfunction validateAndJoinStringArray(values, what) {\n const toJoin = [];\n for (const value of values) {\n validateStringValue(value, what);\n if (value.indexOf(\",\") >= 0) throw new Error(`Invalid ${what}: ${value}`);\n toJoin.push(value);\n }\n return toJoin.join(\",\");\n}\nvar canBeAnything = () => null;\nvar mustBeBoolean = (value) => typeof value === \"boolean\" ? null : \"a boolean\";\nvar mustBeString = (value) => typeof value === \"string\" ? null : \"a string\";\nvar mustBeRegExp = (value) => value instanceof RegExp ? null : \"a RegExp object\";\nvar mustBeInteger = (value) => typeof value === \"number\" && value === (value | 0) ? null : \"an integer\";\nvar mustBeValidPortNumber = (value) => typeof value === \"number\" && value === (value | 0) && value >= 0 && value <= 65535 ? null : \"a valid port number\";\nvar mustBeFunction = (value) => typeof value === \"function\" ? null : \"a function\";\nvar mustBeArray = (value) => Array.isArray(value) ? null : \"an array\";\nvar mustBeArrayOfStrings = (value) => Array.isArray(value) && value.every((x) => typeof x === \"string\") ? null : \"an array of strings\";\nvar mustBeObject = (value) => typeof value === \"object\" && value !== null && !Array.isArray(value) ? null : \"an object\";\nvar mustBeEntryPoints = (value) => typeof value === \"object\" && value !== null ? null : \"an array or an object\";\nvar mustBeWebAssemblyModule = (value) => value instanceof WebAssembly.Module ? null : \"a WebAssembly.Module\";\nvar mustBeObjectOrNull = (value) => typeof value === \"object\" && !Array.isArray(value) ? null : \"an object or null\";\nvar mustBeStringOrBoolean = (value) => typeof value === \"string\" || typeof value === \"boolean\" ? null : \"a string or a boolean\";\nvar mustBeStringOrObject = (value) => typeof value === \"string\" || typeof value === \"object\" && value !== null && !Array.isArray(value) ? null : \"a string or an object\";\nvar mustBeStringOrArrayOfStrings = (value) => typeof value === \"string\" || Array.isArray(value) && value.every((x) => typeof x === \"string\") ? null : \"a string or an array of strings\";\nvar mustBeStringOrUint8Array = (value) => typeof value === \"string\" || value instanceof Uint8Array ? null : \"a string or a Uint8Array\";\nvar mustBeStringOrURL = (value) => typeof value === \"string\" || value instanceof URL ? null : \"a string or a URL\";\nfunction getFlag(object, keys, key, mustBeFn) {\n let value = object[key];\n keys[key + \"\"] = true;\n if (value === void 0) return void 0;\n let mustBe = mustBeFn(value);\n if (mustBe !== null) throw new Error(`${quote(key)} must be ${mustBe}`);\n return value;\n}\nfunction checkForInvalidFlags(object, keys, where) {\n for (let key in object) {\n if (!(key in keys)) {\n throw new Error(`Invalid option ${where}: ${quote(key)}`);\n }\n }\n}\nfunction validateInitializeOptions(options) {\n let keys = /* @__PURE__ */ Object.create(null);\n let wasmURL = getFlag(options, keys, \"wasmURL\", mustBeStringOrURL);\n let wasmModule = getFlag(options, keys, \"wasmModule\", mustBeWebAssemblyModule);\n let worker = getFlag(options, keys, \"worker\", mustBeBoolean);\n checkForInvalidFlags(options, keys, \"in initialize() call\");\n return {\n wasmURL,\n wasmModule,\n worker\n };\n}\nfunction validateMangleCache(mangleCache) {\n let validated;\n if (mangleCache !== void 0) {\n validated = /* @__PURE__ */ Object.create(null);\n for (let key in mangleCache) {\n let value = mangleCache[key];\n if (typeof value === \"string\" || value === false) {\n validated[key] = value;\n } else {\n throw new Error(`Expected ${quote(key)} in mangle cache to map to either a string or false`);\n }\n }\n }\n return validated;\n}\nfunction pushLogFlags(flags, options, keys, isTTY2, logLevelDefault) {\n let color = getFlag(options, keys, \"color\", mustBeBoolean);\n let logLevel = getFlag(options, keys, \"logLevel\", mustBeString);\n let logLimit = getFlag(options, keys, \"logLimit\", mustBeInteger);\n if (color !== void 0) flags.push(`--color=${color}`);\n else if (isTTY2) flags.push(`--color=true`);\n flags.push(`--log-level=${logLevel || logLevelDefault}`);\n flags.push(`--log-limit=${logLimit || 0}`);\n}\nfunction validateStringValue(value, what, key) {\n if (typeof value !== \"string\") {\n throw new Error(`Expected value for ${what}${key !== void 0 ? \" \" + quote(key) : \"\"} to be a string, got ${typeof value} instead`);\n }\n return value;\n}\nfunction pushCommonFlags(flags, options, keys) {\n let legalComments = getFlag(options, keys, \"legalComments\", mustBeString);\n let sourceRoot = getFlag(options, keys, \"sourceRoot\", mustBeString);\n let sourcesContent = getFlag(options, keys, \"sourcesContent\", mustBeBoolean);\n let target = getFlag(options, keys, \"target\", mustBeStringOrArrayOfStrings);\n let format = getFlag(options, keys, \"format\", mustBeString);\n let globalName = getFlag(options, keys, \"globalName\", mustBeString);\n let mangleProps = getFlag(options, keys, \"mangleProps\", mustBeRegExp);\n let reserveProps = getFlag(options, keys, \"reserveProps\", mustBeRegExp);\n let mangleQuoted = getFlag(options, keys, \"mangleQuoted\", mustBeBoolean);\n let minify = getFlag(options, keys, \"minify\", mustBeBoolean);\n let minifySyntax = getFlag(options, keys, \"minifySyntax\", mustBeBoolean);\n let minifyWhitespace = getFlag(options, keys, \"minifyWhitespace\", mustBeBoolean);\n let minifyIdentifiers = getFlag(options, keys, \"minifyIdentifiers\", mustBeBoolean);\n let lineLimit = getFlag(options, keys, \"lineLimit\", mustBeInteger);\n let drop = getFlag(options, keys, \"drop\", mustBeArrayOfStrings);\n let dropLabels = getFlag(options, keys, \"dropLabels\", mustBeArrayOfStrings);\n let charset = getFlag(options, keys, \"charset\", mustBeString);\n let treeShaking = getFlag(options, keys, \"treeShaking\", mustBeBoolean);\n let ignoreAnnotations = getFlag(options, keys, \"ignoreAnnotations\", mustBeBoolean);\n let jsx = getFlag(options, keys, \"jsx\", mustBeString);\n let jsxFactory = getFlag(options, keys, \"jsxFactory\", mustBeString);\n let jsxFragment = getFlag(options, keys, \"jsxFragment\", mustBeString);\n let jsxImportSource = getFlag(options, keys, \"jsxImportSource\", mustBeString);\n let jsxDev = getFlag(options, keys, \"jsxDev\", mustBeBoolean);\n let jsxSideEffects = getFlag(options, keys, \"jsxSideEffects\", mustBeBoolean);\n let define = getFlag(options, keys, \"define\", mustBeObject);\n let logOverride = getFlag(options, keys, \"logOverride\", mustBeObject);\n let supported = getFlag(options, keys, \"supported\", mustBeObject);\n let pure = getFlag(options, keys, \"pure\", mustBeArrayOfStrings);\n let keepNames = getFlag(options, keys, \"keepNames\", mustBeBoolean);\n let platform = getFlag(options, keys, \"platform\", mustBeString);\n let tsconfigRaw = getFlag(options, keys, \"tsconfigRaw\", mustBeStringOrObject);\n let absPaths = getFlag(options, keys, \"absPaths\", mustBeArrayOfStrings);\n if (legalComments) flags.push(`--legal-comments=${legalComments}`);\n if (sourceRoot !== void 0) flags.push(`--source-root=${sourceRoot}`);\n if (sourcesContent !== void 0) flags.push(`--sources-content=${sourcesContent}`);\n if (target) flags.push(`--target=${validateAndJoinStringArray(Array.isArray(target) ? target : [target], \"target\")}`);\n if (format) flags.push(`--format=${format}`);\n if (globalName) flags.push(`--global-name=${globalName}`);\n if (platform) flags.push(`--platform=${platform}`);\n if (tsconfigRaw) flags.push(`--tsconfig-raw=${typeof tsconfigRaw === \"string\" ? tsconfigRaw : JSON.stringify(tsconfigRaw)}`);\n if (minify) flags.push(\"--minify\");\n if (minifySyntax) flags.push(\"--minify-syntax\");\n if (minifyWhitespace) flags.push(\"--minify-whitespace\");\n if (minifyIdentifiers) flags.push(\"--minify-identifiers\");\n if (lineLimit) flags.push(`--line-limit=${lineLimit}`);\n if (charset) flags.push(`--charset=${charset}`);\n if (treeShaking !== void 0) flags.push(`--tree-shaking=${treeShaking}`);\n if (ignoreAnnotations) flags.push(`--ignore-annotations`);\n if (drop) for (let what of drop) flags.push(`--drop:${validateStringValue(what, \"drop\")}`);\n if (dropLabels) flags.push(`--drop-labels=${validateAndJoinStringArray(dropLabels, \"drop label\")}`);\n if (absPaths) flags.push(`--abs-paths=${validateAndJoinStringArray(absPaths, \"abs paths\")}`);\n if (mangleProps) flags.push(`--mangle-props=${jsRegExpToGoRegExp(mangleProps)}`);\n if (reserveProps) flags.push(`--reserve-props=${jsRegExpToGoRegExp(reserveProps)}`);\n if (mangleQuoted !== void 0) flags.push(`--mangle-quoted=${mangleQuoted}`);\n if (jsx) flags.push(`--jsx=${jsx}`);\n if (jsxFactory) flags.push(`--jsx-factory=${jsxFactory}`);\n if (jsxFragment) flags.push(`--jsx-fragment=${jsxFragment}`);\n if (jsxImportSource) flags.push(`--jsx-import-source=${jsxImportSource}`);\n if (jsxDev) flags.push(`--jsx-dev`);\n if (jsxSideEffects) flags.push(`--jsx-side-effects`);\n if (define) {\n for (let key in define) {\n if (key.indexOf(\"=\") >= 0) throw new Error(`Invalid define: ${key}`);\n flags.push(`--define:${key}=${validateStringValue(define[key], \"define\", key)}`);\n }\n }\n if (logOverride) {\n for (let key in logOverride) {\n if (key.indexOf(\"=\") >= 0) throw new Error(`Invalid log override: ${key}`);\n flags.push(`--log-override:${key}=${validateStringValue(logOverride[key], \"log override\", key)}`);\n }\n }\n if (supported) {\n for (let key in supported) {\n if (key.indexOf(\"=\") >= 0) throw new Error(`Invalid supported: ${key}`);\n const value = supported[key];\n if (typeof value !== \"boolean\") throw new Error(`Expected value for supported ${quote(key)} to be a boolean, got ${typeof value} instead`);\n flags.push(`--supported:${key}=${value}`);\n }\n }\n if (pure) for (let fn of pure) flags.push(`--pure:${validateStringValue(fn, \"pure\")}`);\n if (keepNames) flags.push(`--keep-names`);\n}\nfunction flagsForBuildOptions(callName, options, isTTY2, logLevelDefault, writeDefault) {\n var _a2;\n let flags = [];\n let entries = [];\n let keys = /* @__PURE__ */ Object.create(null);\n let stdinContents = null;\n let stdinResolveDir = null;\n pushLogFlags(flags, options, keys, isTTY2, logLevelDefault);\n pushCommonFlags(flags, options, keys);\n let sourcemap = getFlag(options, keys, \"sourcemap\", mustBeStringOrBoolean);\n let bundle = getFlag(options, keys, \"bundle\", mustBeBoolean);\n let splitting = getFlag(options, keys, \"splitting\", mustBeBoolean);\n let preserveSymlinks = getFlag(options, keys, \"preserveSymlinks\", mustBeBoolean);\n let metafile = getFlag(options, keys, \"metafile\", mustBeBoolean);\n let outfile = getFlag(options, keys, \"outfile\", mustBeString);\n let outdir = getFlag(options, keys, \"outdir\", mustBeString);\n let outbase = getFlag(options, keys, \"outbase\", mustBeString);\n let tsconfig = getFlag(options, keys, \"tsconfig\", mustBeString);\n let resolveExtensions = getFlag(options, keys, \"resolveExtensions\", mustBeArrayOfStrings);\n let nodePathsInput = getFlag(options, keys, \"nodePaths\", mustBeArrayOfStrings);\n let mainFields = getFlag(options, keys, \"mainFields\", mustBeArrayOfStrings);\n let conditions = getFlag(options, keys, \"conditions\", mustBeArrayOfStrings);\n let external = getFlag(options, keys, \"external\", mustBeArrayOfStrings);\n let packages = getFlag(options, keys, \"packages\", mustBeString);\n let alias = getFlag(options, keys, \"alias\", mustBeObject);\n let loader = getFlag(options, keys, \"loader\", mustBeObject);\n let outExtension = getFlag(options, keys, \"outExtension\", mustBeObject);\n let publicPath = getFlag(options, keys, \"publicPath\", mustBeString);\n let entryNames = getFlag(options, keys, \"entryNames\", mustBeString);\n let chunkNames = getFlag(options, keys, \"chunkNames\", mustBeString);\n let assetNames = getFlag(options, keys, \"assetNames\", mustBeString);\n let inject = getFlag(options, keys, \"inject\", mustBeArrayOfStrings);\n let banner = getFlag(options, keys, \"banner\", mustBeObject);\n let footer = getFlag(options, keys, \"footer\", mustBeObject);\n let entryPoints = getFlag(options, keys, \"entryPoints\", mustBeEntryPoints);\n let absWorkingDir = getFlag(options, keys, \"absWorkingDir\", mustBeString);\n let stdin = getFlag(options, keys, \"stdin\", mustBeObject);\n let write = (_a2 = getFlag(options, keys, \"write\", mustBeBoolean)) != null ? _a2 : writeDefault;\n let allowOverwrite = getFlag(options, keys, \"allowOverwrite\", mustBeBoolean);\n let mangleCache = getFlag(options, keys, \"mangleCache\", mustBeObject);\n keys.plugins = true;\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n if (sourcemap) flags.push(`--sourcemap${sourcemap === true ? \"\" : `=${sourcemap}`}`);\n if (bundle) flags.push(\"--bundle\");\n if (allowOverwrite) flags.push(\"--allow-overwrite\");\n if (splitting) flags.push(\"--splitting\");\n if (preserveSymlinks) flags.push(\"--preserve-symlinks\");\n if (metafile) flags.push(`--metafile`);\n if (outfile) flags.push(`--outfile=${outfile}`);\n if (outdir) flags.push(`--outdir=${outdir}`);\n if (outbase) flags.push(`--outbase=${outbase}`);\n if (tsconfig) flags.push(`--tsconfig=${tsconfig}`);\n if (packages) flags.push(`--packages=${packages}`);\n if (resolveExtensions) flags.push(`--resolve-extensions=${validateAndJoinStringArray(resolveExtensions, \"resolve extension\")}`);\n if (publicPath) flags.push(`--public-path=${publicPath}`);\n if (entryNames) flags.push(`--entry-names=${entryNames}`);\n if (chunkNames) flags.push(`--chunk-names=${chunkNames}`);\n if (assetNames) flags.push(`--asset-names=${assetNames}`);\n if (mainFields) flags.push(`--main-fields=${validateAndJoinStringArray(mainFields, \"main field\")}`);\n if (conditions) flags.push(`--conditions=${validateAndJoinStringArray(conditions, \"condition\")}`);\n if (external) for (let name of external) flags.push(`--external:${validateStringValue(name, \"external\")}`);\n if (alias) {\n for (let old in alias) {\n if (old.indexOf(\"=\") >= 0) throw new Error(`Invalid package name in alias: ${old}`);\n flags.push(`--alias:${old}=${validateStringValue(alias[old], \"alias\", old)}`);\n }\n }\n if (banner) {\n for (let type in banner) {\n if (type.indexOf(\"=\") >= 0) throw new Error(`Invalid banner file type: ${type}`);\n flags.push(`--banner:${type}=${validateStringValue(banner[type], \"banner\", type)}`);\n }\n }\n if (footer) {\n for (let type in footer) {\n if (type.indexOf(\"=\") >= 0) throw new Error(`Invalid footer file type: ${type}`);\n flags.push(`--footer:${type}=${validateStringValue(footer[type], \"footer\", type)}`);\n }\n }\n if (inject) for (let path3 of inject) flags.push(`--inject:${validateStringValue(path3, \"inject\")}`);\n if (loader) {\n for (let ext in loader) {\n if (ext.indexOf(\"=\") >= 0) throw new Error(`Invalid loader extension: ${ext}`);\n flags.push(`--loader:${ext}=${validateStringValue(loader[ext], \"loader\", ext)}`);\n }\n }\n if (outExtension) {\n for (let ext in outExtension) {\n if (ext.indexOf(\"=\") >= 0) throw new Error(`Invalid out extension: ${ext}`);\n flags.push(`--out-extension:${ext}=${validateStringValue(outExtension[ext], \"out extension\", ext)}`);\n }\n }\n if (entryPoints) {\n if (Array.isArray(entryPoints)) {\n for (let i = 0, n = entryPoints.length; i < n; i++) {\n let entryPoint = entryPoints[i];\n if (typeof entryPoint === \"object\" && entryPoint !== null) {\n let entryPointKeys = /* @__PURE__ */ Object.create(null);\n let input = getFlag(entryPoint, entryPointKeys, \"in\", mustBeString);\n let output = getFlag(entryPoint, entryPointKeys, \"out\", mustBeString);\n checkForInvalidFlags(entryPoint, entryPointKeys, \"in entry point at index \" + i);\n if (input === void 0) throw new Error('Missing property \"in\" for entry point at index ' + i);\n if (output === void 0) throw new Error('Missing property \"out\" for entry point at index ' + i);\n entries.push([output, input]);\n } else {\n entries.push([\"\", validateStringValue(entryPoint, \"entry point at index \" + i)]);\n }\n }\n } else {\n for (let key in entryPoints) {\n entries.push([key, validateStringValue(entryPoints[key], \"entry point\", key)]);\n }\n }\n }\n if (stdin) {\n let stdinKeys = /* @__PURE__ */ Object.create(null);\n let contents = getFlag(stdin, stdinKeys, \"contents\", mustBeStringOrUint8Array);\n let resolveDir = getFlag(stdin, stdinKeys, \"resolveDir\", mustBeString);\n let sourcefile = getFlag(stdin, stdinKeys, \"sourcefile\", mustBeString);\n let loader2 = getFlag(stdin, stdinKeys, \"loader\", mustBeString);\n checkForInvalidFlags(stdin, stdinKeys, 'in \"stdin\" object');\n if (sourcefile) flags.push(`--sourcefile=${sourcefile}`);\n if (loader2) flags.push(`--loader=${loader2}`);\n if (resolveDir) stdinResolveDir = resolveDir;\n if (typeof contents === \"string\") stdinContents = encodeUTF8(contents);\n else if (contents instanceof Uint8Array) stdinContents = contents;\n }\n let nodePaths = [];\n if (nodePathsInput) {\n for (let value of nodePathsInput) {\n value += \"\";\n nodePaths.push(value);\n }\n }\n return {\n entries,\n flags,\n write,\n stdinContents,\n stdinResolveDir,\n absWorkingDir,\n nodePaths,\n mangleCache: validateMangleCache(mangleCache)\n };\n}\nfunction flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {\n let flags = [];\n let keys = /* @__PURE__ */ Object.create(null);\n pushLogFlags(flags, options, keys, isTTY2, logLevelDefault);\n pushCommonFlags(flags, options, keys);\n let sourcemap = getFlag(options, keys, \"sourcemap\", mustBeStringOrBoolean);\n let sourcefile = getFlag(options, keys, \"sourcefile\", mustBeString);\n let loader = getFlag(options, keys, \"loader\", mustBeString);\n let banner = getFlag(options, keys, \"banner\", mustBeString);\n let footer = getFlag(options, keys, \"footer\", mustBeString);\n let mangleCache = getFlag(options, keys, \"mangleCache\", mustBeObject);\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n if (sourcemap) flags.push(`--sourcemap=${sourcemap === true ? \"external\" : sourcemap}`);\n if (sourcefile) flags.push(`--sourcefile=${sourcefile}`);\n if (loader) flags.push(`--loader=${loader}`);\n if (banner) flags.push(`--banner=${banner}`);\n if (footer) flags.push(`--footer=${footer}`);\n return {\n flags,\n mangleCache: validateMangleCache(mangleCache)\n };\n}\nfunction createChannel(streamIn) {\n const requestCallbacksByKey = {};\n const closeData = { didClose: false, reason: \"\" };\n let responseCallbacks = {};\n let nextRequestID = 0;\n let nextBuildKey = 0;\n let stdout = new Uint8Array(16 * 1024);\n let stdoutUsed = 0;\n let readFromStdout = (chunk) => {\n let limit = stdoutUsed + chunk.length;\n if (limit > stdout.length) {\n let swap = new Uint8Array(limit * 2);\n swap.set(stdout);\n stdout = swap;\n }\n stdout.set(chunk, stdoutUsed);\n stdoutUsed += chunk.length;\n let offset = 0;\n while (offset + 4 <= stdoutUsed) {\n let length = readUInt32LE(stdout, offset);\n if (offset + 4 + length > stdoutUsed) {\n break;\n }\n offset += 4;\n handleIncomingPacket(stdout.subarray(offset, offset + length));\n offset += length;\n }\n if (offset > 0) {\n stdout.copyWithin(0, offset, stdoutUsed);\n stdoutUsed -= offset;\n }\n };\n let afterClose = (error) => {\n closeData.didClose = true;\n if (error) closeData.reason = \": \" + (error.message || error);\n const text = \"The service was stopped\" + closeData.reason;\n for (let id in responseCallbacks) {\n responseCallbacks[id](text, null);\n }\n responseCallbacks = {};\n };\n let sendRequest = (refs, value, callback) => {\n if (closeData.didClose) return callback(\"The service is no longer running\" + closeData.reason, null);\n let id = nextRequestID++;\n responseCallbacks[id] = (error, response) => {\n try {\n callback(error, response);\n } finally {\n if (refs) refs.unref();\n }\n };\n if (refs) refs.ref();\n streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));\n };\n let sendResponse = (id, value) => {\n if (closeData.didClose) throw new Error(\"The service is no longer running\" + closeData.reason);\n streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));\n };\n let handleRequest = async (id, request) => {\n try {\n if (request.command === \"ping\") {\n sendResponse(id, {});\n return;\n }\n if (typeof request.key === \"number\") {\n const requestCallbacks = requestCallbacksByKey[request.key];\n if (!requestCallbacks) {\n return;\n }\n const callback = requestCallbacks[request.command];\n if (callback) {\n await callback(id, request);\n return;\n }\n }\n throw new Error(`Invalid command: ` + request.command);\n } catch (e) {\n const errors = [extractErrorMessageV8(e, streamIn, null, void 0, \"\")];\n try {\n sendResponse(id, { errors });\n } catch {\n }\n }\n };\n let isFirstPacket = true;\n let handleIncomingPacket = (bytes) => {\n if (isFirstPacket) {\n isFirstPacket = false;\n let binaryVersion = String.fromCharCode(...bytes);\n if (binaryVersion !== \"0.27.3\") {\n throw new Error(`Cannot start service: Host version \"${\"0.27.3\"}\" does not match binary version ${quote(binaryVersion)}`);\n }\n return;\n }\n let packet = decodePacket(bytes);\n if (packet.isRequest) {\n handleRequest(packet.id, packet.value);\n } else {\n let callback = responseCallbacks[packet.id];\n delete responseCallbacks[packet.id];\n if (packet.value.error) callback(packet.value.error, {});\n else callback(null, packet.value);\n }\n };\n let buildOrContext = ({ callName, refs, options, isTTY: isTTY2, defaultWD: defaultWD2, callback }) => {\n let refCount = 0;\n const buildKey = nextBuildKey++;\n const requestCallbacks = {};\n const buildRefs = {\n ref() {\n if (++refCount === 1) {\n if (refs) refs.ref();\n }\n },\n unref() {\n if (--refCount === 0) {\n delete requestCallbacksByKey[buildKey];\n if (refs) refs.unref();\n }\n }\n };\n requestCallbacksByKey[buildKey] = requestCallbacks;\n buildRefs.ref();\n buildOrContextImpl(\n callName,\n buildKey,\n sendRequest,\n sendResponse,\n buildRefs,\n streamIn,\n requestCallbacks,\n options,\n isTTY2,\n defaultWD2,\n (err, res) => {\n try {\n callback(err, res);\n } finally {\n buildRefs.unref();\n }\n }\n );\n };\n let transform2 = ({ callName, refs, input, options, isTTY: isTTY2, fs: fs3, callback }) => {\n const details = createObjectStash();\n let start = (inputPath) => {\n try {\n if (typeof input !== \"string\" && !(input instanceof Uint8Array))\n throw new Error('The input to \"transform\" must be a string or a Uint8Array');\n let {\n flags,\n mangleCache\n } = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);\n let request = {\n command: \"transform\",\n flags,\n inputFS: inputPath !== null,\n input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === \"string\" ? encodeUTF8(input) : input\n };\n if (mangleCache) request.mangleCache = mangleCache;\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n let errors = replaceDetailsInMessages(response.errors, details);\n let warnings = replaceDetailsInMessages(response.warnings, details);\n let outstanding = 1;\n let next = () => {\n if (--outstanding === 0) {\n let result = {\n warnings,\n code: response.code,\n map: response.map,\n mangleCache: void 0,\n legalComments: void 0\n };\n if (\"legalComments\" in response) result.legalComments = response == null ? void 0 : response.legalComments;\n if (response.mangleCache) result.mangleCache = response == null ? void 0 : response.mangleCache;\n callback(null, result);\n }\n };\n if (errors.length > 0) return callback(failureErrorWithLog(\"Transform failed\", errors, warnings), null);\n if (response.codeFS) {\n outstanding++;\n fs3.readFile(response.code, (err, contents) => {\n if (err !== null) {\n callback(err, null);\n } else {\n response.code = contents;\n next();\n }\n });\n }\n if (response.mapFS) {\n outstanding++;\n fs3.readFile(response.map, (err, contents) => {\n if (err !== null) {\n callback(err, null);\n } else {\n response.map = contents;\n next();\n }\n });\n }\n next();\n });\n } catch (e) {\n let flags = [];\n try {\n pushLogFlags(flags, options, {}, isTTY2, transformLogLevelDefault);\n } catch {\n }\n const error = extractErrorMessageV8(e, streamIn, details, void 0, \"\");\n sendRequest(refs, { command: \"error\", flags, error }, () => {\n error.detail = details.load(error.detail);\n callback(failureErrorWithLog(\"Transform failed\", [error], []), null);\n });\n }\n };\n if ((typeof input === \"string\" || input instanceof Uint8Array) && input.length > 1024 * 1024) {\n let next = start;\n start = () => fs3.writeFile(input, next);\n }\n start(null);\n };\n let formatMessages2 = ({ callName, refs, messages, options, callback }) => {\n if (!options) throw new Error(`Missing second argument in ${callName}() call`);\n let keys = {};\n let kind = getFlag(options, keys, \"kind\", mustBeString);\n let color = getFlag(options, keys, \"color\", mustBeBoolean);\n let terminalWidth = getFlag(options, keys, \"terminalWidth\", mustBeInteger);\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n if (kind === void 0) throw new Error(`Missing \"kind\" in ${callName}() call`);\n if (kind !== \"error\" && kind !== \"warning\") throw new Error(`Expected \"kind\" to be \"error\" or \"warning\" in ${callName}() call`);\n let request = {\n command: \"format-msgs\",\n messages: sanitizeMessages(messages, \"messages\", null, \"\", terminalWidth),\n isWarning: kind === \"warning\"\n };\n if (color !== void 0) request.color = color;\n if (terminalWidth !== void 0) request.terminalWidth = terminalWidth;\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n callback(null, response.messages);\n });\n };\n let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {\n if (options === void 0) options = {};\n let keys = {};\n let color = getFlag(options, keys, \"color\", mustBeBoolean);\n let verbose = getFlag(options, keys, \"verbose\", mustBeBoolean);\n checkForInvalidFlags(options, keys, `in ${callName}() call`);\n let request = {\n command: \"analyze-metafile\",\n metafile\n };\n if (color !== void 0) request.color = color;\n if (verbose !== void 0) request.verbose = verbose;\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n callback(null, response.result);\n });\n };\n return {\n readFromStdout,\n afterClose,\n service: {\n buildOrContext,\n transform: transform2,\n formatMessages: formatMessages2,\n analyzeMetafile: analyzeMetafile2\n }\n };\n}\nfunction buildOrContextImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options, isTTY2, defaultWD2, callback) {\n const details = createObjectStash();\n const isContext = callName === \"context\";\n const handleError = (e, pluginName) => {\n const flags = [];\n try {\n pushLogFlags(flags, options, {}, isTTY2, buildLogLevelDefault);\n } catch {\n }\n const message = extractErrorMessageV8(e, streamIn, details, void 0, pluginName);\n sendRequest(refs, { command: \"error\", flags, error: message }, () => {\n message.detail = details.load(message.detail);\n callback(failureErrorWithLog(isContext ? \"Context failed\" : \"Build failed\", [message], []), null);\n });\n };\n let plugins;\n if (typeof options === \"object\") {\n const value = options.plugins;\n if (value !== void 0) {\n if (!Array.isArray(value)) return handleError(new Error(`\"plugins\" must be an array`), \"\");\n plugins = value;\n }\n }\n if (plugins && plugins.length > 0) {\n if (streamIn.isSync) return handleError(new Error(\"Cannot use plugins in synchronous API calls\"), \"\");\n handlePlugins(\n buildKey,\n sendRequest,\n sendResponse,\n refs,\n streamIn,\n requestCallbacks,\n options,\n plugins,\n details\n ).then(\n (result) => {\n if (!result.ok) return handleError(result.error, result.pluginName);\n try {\n buildOrContextContinue(result.requestPlugins, result.runOnEndCallbacks, result.scheduleOnDisposeCallbacks);\n } catch (e) {\n handleError(e, \"\");\n }\n },\n (e) => handleError(e, \"\")\n );\n return;\n }\n try {\n buildOrContextContinue(null, (result, done) => done([], []), () => {\n });\n } catch (e) {\n handleError(e, \"\");\n }\n function buildOrContextContinue(requestPlugins, runOnEndCallbacks, scheduleOnDisposeCallbacks) {\n const writeDefault = streamIn.hasFS;\n const {\n entries,\n flags,\n write,\n stdinContents,\n stdinResolveDir,\n absWorkingDir,\n nodePaths,\n mangleCache\n } = flagsForBuildOptions(callName, options, isTTY2, buildLogLevelDefault, writeDefault);\n if (write && !streamIn.hasFS) throw new Error(`The \"write\" option is unavailable in this environment`);\n const request = {\n command: \"build\",\n key: buildKey,\n entries,\n flags,\n write,\n stdinContents,\n stdinResolveDir,\n absWorkingDir: absWorkingDir || defaultWD2,\n nodePaths,\n context: isContext\n };\n if (requestPlugins) request.plugins = requestPlugins;\n if (mangleCache) request.mangleCache = mangleCache;\n const buildResponseToResult = (response, callback2) => {\n const result = {\n errors: replaceDetailsInMessages(response.errors, details),\n warnings: replaceDetailsInMessages(response.warnings, details),\n outputFiles: void 0,\n metafile: void 0,\n mangleCache: void 0\n };\n const originalErrors = result.errors.slice();\n const originalWarnings = result.warnings.slice();\n if (response.outputFiles) result.outputFiles = response.outputFiles.map(convertOutputFiles);\n if (response.metafile) result.metafile = JSON.parse(response.metafile);\n if (response.mangleCache) result.mangleCache = response.mangleCache;\n if (response.writeToStdout !== void 0) console.log(decodeUTF8(response.writeToStdout).replace(/\\n$/, \"\"));\n runOnEndCallbacks(result, (onEndErrors, onEndWarnings) => {\n if (originalErrors.length > 0 || onEndErrors.length > 0) {\n const error = failureErrorWithLog(\"Build failed\", originalErrors.concat(onEndErrors), originalWarnings.concat(onEndWarnings));\n return callback2(error, null, onEndErrors, onEndWarnings);\n }\n callback2(null, result, onEndErrors, onEndWarnings);\n });\n };\n let latestResultPromise;\n let provideLatestResult;\n if (isContext)\n requestCallbacks[\"on-end\"] = (id, request2) => new Promise((resolve) => {\n buildResponseToResult(request2, (err, result, onEndErrors, onEndWarnings) => {\n const response = {\n errors: onEndErrors,\n warnings: onEndWarnings\n };\n if (provideLatestResult) provideLatestResult(err, result);\n latestResultPromise = void 0;\n provideLatestResult = void 0;\n sendResponse(id, response);\n resolve();\n });\n });\n sendRequest(refs, request, (error, response) => {\n if (error) return callback(new Error(error), null);\n if (!isContext) {\n return buildResponseToResult(response, (err, res) => {\n scheduleOnDisposeCallbacks();\n return callback(err, res);\n });\n }\n if (response.errors.length > 0) {\n return callback(failureErrorWithLog(\"Context failed\", response.errors, response.warnings), null);\n }\n let didDispose = false;\n const result = {\n rebuild: () => {\n if (!latestResultPromise) latestResultPromise = new Promise((resolve, reject) => {\n let settlePromise;\n provideLatestResult = (err, result2) => {\n if (!settlePromise) settlePromise = () => err ? reject(err) : resolve(result2);\n };\n const triggerAnotherBuild = () => {\n const request2 = {\n command: \"rebuild\",\n key: buildKey\n };\n sendRequest(refs, request2, (error2, response2) => {\n if (error2) {\n reject(new Error(error2));\n } else if (settlePromise) {\n settlePromise();\n } else {\n triggerAnotherBuild();\n }\n });\n };\n triggerAnotherBuild();\n });\n return latestResultPromise;\n },\n watch: (options2 = {}) => new Promise((resolve, reject) => {\n if (!streamIn.hasFS) throw new Error(`Cannot use the \"watch\" API in this environment`);\n const keys = {};\n const delay = getFlag(options2, keys, \"delay\", mustBeInteger);\n checkForInvalidFlags(options2, keys, `in watch() call`);\n const request2 = {\n command: \"watch\",\n key: buildKey\n };\n if (delay) request2.delay = delay;\n sendRequest(refs, request2, (error2) => {\n if (error2) reject(new Error(error2));\n else resolve(void 0);\n });\n }),\n serve: (options2 = {}) => new Promise((resolve, reject) => {\n if (!streamIn.hasFS) throw new Error(`Cannot use the \"serve\" API in this environment`);\n const keys = {};\n const port = getFlag(options2, keys, \"port\", mustBeValidPortNumber);\n const host = getFlag(options2, keys, \"host\", mustBeString);\n const servedir = getFlag(options2, keys, \"servedir\", mustBeString);\n const keyfile = getFlag(options2, keys, \"keyfile\", mustBeString);\n const certfile = getFlag(options2, keys, \"certfile\", mustBeString);\n const fallback = getFlag(options2, keys, \"fallback\", mustBeString);\n const cors = getFlag(options2, keys, \"cors\", mustBeObject);\n const onRequest = getFlag(options2, keys, \"onRequest\", mustBeFunction);\n checkForInvalidFlags(options2, keys, `in serve() call`);\n const request2 = {\n command: \"serve\",\n key: buildKey,\n onRequest: !!onRequest\n };\n if (port !== void 0) request2.port = port;\n if (host !== void 0) request2.host = host;\n if (servedir !== void 0) request2.servedir = servedir;\n if (keyfile !== void 0) request2.keyfile = keyfile;\n if (certfile !== void 0) request2.certfile = certfile;\n if (fallback !== void 0) request2.fallback = fallback;\n if (cors) {\n const corsKeys = {};\n const origin = getFlag(cors, corsKeys, \"origin\", mustBeStringOrArrayOfStrings);\n checkForInvalidFlags(cors, corsKeys, `on \"cors\" object`);\n if (Array.isArray(origin)) request2.corsOrigin = origin;\n else if (origin !== void 0) request2.corsOrigin = [origin];\n }\n sendRequest(refs, request2, (error2, response2) => {\n if (error2) return reject(new Error(error2));\n if (onRequest) {\n requestCallbacks[\"serve-request\"] = (id, request3) => {\n onRequest(request3.args);\n sendResponse(id, {});\n };\n }\n resolve(response2);\n });\n }),\n cancel: () => new Promise((resolve) => {\n if (didDispose) return resolve();\n const request2 = {\n command: \"cancel\",\n key: buildKey\n };\n sendRequest(refs, request2, () => {\n resolve();\n });\n }),\n dispose: () => new Promise((resolve) => {\n if (didDispose) return resolve();\n didDispose = true;\n const request2 = {\n command: \"dispose\",\n key: buildKey\n };\n sendRequest(refs, request2, () => {\n resolve();\n scheduleOnDisposeCallbacks();\n refs.unref();\n });\n })\n };\n refs.ref();\n callback(null, result);\n });\n }\n}\nvar handlePlugins = async (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins, details) => {\n let onStartCallbacks = [];\n let onEndCallbacks = [];\n let onResolveCallbacks = {};\n let onLoadCallbacks = {};\n let onDisposeCallbacks = [];\n let nextCallbackID = 0;\n let i = 0;\n let requestPlugins = [];\n let isSetupDone = false;\n plugins = [...plugins];\n for (let item of plugins) {\n let keys = {};\n if (typeof item !== \"object\") throw new Error(`Plugin at index ${i} must be an object`);\n const name = getFlag(item, keys, \"name\", mustBeString);\n if (typeof name !== \"string\" || name === \"\") throw new Error(`Plugin at index ${i} is missing a name`);\n try {\n let setup = getFlag(item, keys, \"setup\", mustBeFunction);\n if (typeof setup !== \"function\") throw new Error(`Plugin is missing a setup function`);\n checkForInvalidFlags(item, keys, `on plugin ${quote(name)}`);\n let plugin = {\n name,\n onStart: false,\n onEnd: false,\n onResolve: [],\n onLoad: []\n };\n i++;\n let resolve = (path3, options = {}) => {\n if (!isSetupDone) throw new Error('Cannot call \"resolve\" before plugin setup has completed');\n if (typeof path3 !== \"string\") throw new Error(`The path to resolve must be a string`);\n let keys2 = /* @__PURE__ */ Object.create(null);\n let pluginName = getFlag(options, keys2, \"pluginName\", mustBeString);\n let importer = getFlag(options, keys2, \"importer\", mustBeString);\n let namespace = getFlag(options, keys2, \"namespace\", mustBeString);\n let resolveDir = getFlag(options, keys2, \"resolveDir\", mustBeString);\n let kind = getFlag(options, keys2, \"kind\", mustBeString);\n let pluginData = getFlag(options, keys2, \"pluginData\", canBeAnything);\n let importAttributes = getFlag(options, keys2, \"with\", mustBeObject);\n checkForInvalidFlags(options, keys2, \"in resolve() call\");\n return new Promise((resolve2, reject) => {\n const request = {\n command: \"resolve\",\n path: path3,\n key: buildKey,\n pluginName: name\n };\n if (pluginName != null) request.pluginName = pluginName;\n if (importer != null) request.importer = importer;\n if (namespace != null) request.namespace = namespace;\n if (resolveDir != null) request.resolveDir = resolveDir;\n if (kind != null) request.kind = kind;\n else throw new Error(`Must specify \"kind\" when calling \"resolve\"`);\n if (pluginData != null) request.pluginData = details.store(pluginData);\n if (importAttributes != null) request.with = sanitizeStringMap(importAttributes, \"with\");\n sendRequest(refs, request, (error, response) => {\n if (error !== null) reject(new Error(error));\n else resolve2({\n errors: replaceDetailsInMessages(response.errors, details),\n warnings: replaceDetailsInMessages(response.warnings, details),\n path: response.path,\n external: response.external,\n sideEffects: response.sideEffects,\n namespace: response.namespace,\n suffix: response.suffix,\n pluginData: details.load(response.pluginData)\n });\n });\n });\n };\n let promise = setup({\n initialOptions,\n resolve,\n onStart(callback) {\n let registeredText = `This error came from the \"onStart\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onStart\");\n onStartCallbacks.push({ name, callback, note: registeredNote });\n plugin.onStart = true;\n },\n onEnd(callback) {\n let registeredText = `This error came from the \"onEnd\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onEnd\");\n onEndCallbacks.push({ name, callback, note: registeredNote });\n plugin.onEnd = true;\n },\n onResolve(options, callback) {\n let registeredText = `This error came from the \"onResolve\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onResolve\");\n let keys2 = {};\n let filter = getFlag(options, keys2, \"filter\", mustBeRegExp);\n let namespace = getFlag(options, keys2, \"namespace\", mustBeString);\n checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${quote(name)}`);\n if (filter == null) throw new Error(`onResolve() call is missing a filter`);\n let id = nextCallbackID++;\n onResolveCallbacks[id] = { name, callback, note: registeredNote };\n plugin.onResolve.push({ id, filter: jsRegExpToGoRegExp(filter), namespace: namespace || \"\" });\n },\n onLoad(options, callback) {\n let registeredText = `This error came from the \"onLoad\" callback registered here:`;\n let registeredNote = extractCallerV8(new Error(registeredText), streamIn, \"onLoad\");\n let keys2 = {};\n let filter = getFlag(options, keys2, \"filter\", mustBeRegExp);\n let namespace = getFlag(options, keys2, \"namespace\", mustBeString);\n checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${quote(name)}`);\n if (filter == null) throw new Error(`onLoad() call is missing a filter`);\n let id = nextCallbackID++;\n onLoadCallbacks[id] = { name, callback, note: registeredNote };\n plugin.onLoad.push({ id, filter: jsRegExpToGoRegExp(filter), namespace: namespace || \"\" });\n },\n onDispose(callback) {\n onDisposeCallbacks.push(callback);\n },\n esbuild: streamIn.esbuild\n });\n if (promise) await promise;\n requestPlugins.push(plugin);\n } catch (e) {\n return { ok: false, error: e, pluginName: name };\n }\n }\n requestCallbacks[\"on-start\"] = async (id, request) => {\n details.clear();\n let response = { errors: [], warnings: [] };\n await Promise.all(onStartCallbacks.map(async ({ name, callback, note }) => {\n try {\n let result = await callback();\n if (result != null) {\n if (typeof result !== \"object\") throw new Error(`Expected onStart() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let errors = getFlag(result, keys, \"errors\", mustBeArray);\n let warnings = getFlag(result, keys, \"warnings\", mustBeArray);\n checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${quote(name)}`);\n if (errors != null) response.errors.push(...sanitizeMessages(errors, \"errors\", details, name, void 0));\n if (warnings != null) response.warnings.push(...sanitizeMessages(warnings, \"warnings\", details, name, void 0));\n }\n } catch (e) {\n response.errors.push(extractErrorMessageV8(e, streamIn, details, note && note(), name));\n }\n }));\n sendResponse(id, response);\n };\n requestCallbacks[\"on-resolve\"] = async (id, request) => {\n let response = {}, name = \"\", callback, note;\n for (let id2 of request.ids) {\n try {\n ({ name, callback, note } = onResolveCallbacks[id2]);\n let result = await callback({\n path: request.path,\n importer: request.importer,\n namespace: request.namespace,\n resolveDir: request.resolveDir,\n kind: request.kind,\n pluginData: details.load(request.pluginData),\n with: request.with\n });\n if (result != null) {\n if (typeof result !== \"object\") throw new Error(`Expected onResolve() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let pluginName = getFlag(result, keys, \"pluginName\", mustBeString);\n let path3 = getFlag(result, keys, \"path\", mustBeString);\n let namespace = getFlag(result, keys, \"namespace\", mustBeString);\n let suffix = getFlag(result, keys, \"suffix\", mustBeString);\n let external = getFlag(result, keys, \"external\", mustBeBoolean);\n let sideEffects = getFlag(result, keys, \"sideEffects\", mustBeBoolean);\n let pluginData = getFlag(result, keys, \"pluginData\", canBeAnything);\n let errors = getFlag(result, keys, \"errors\", mustBeArray);\n let warnings = getFlag(result, keys, \"warnings\", mustBeArray);\n let watchFiles = getFlag(result, keys, \"watchFiles\", mustBeArrayOfStrings);\n let watchDirs = getFlag(result, keys, \"watchDirs\", mustBeArrayOfStrings);\n checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${quote(name)}`);\n response.id = id2;\n if (pluginName != null) response.pluginName = pluginName;\n if (path3 != null) response.path = path3;\n if (namespace != null) response.namespace = namespace;\n if (suffix != null) response.suffix = suffix;\n if (external != null) response.external = external;\n if (sideEffects != null) response.sideEffects = sideEffects;\n if (pluginData != null) response.pluginData = details.store(pluginData);\n if (errors != null) response.errors = sanitizeMessages(errors, \"errors\", details, name, void 0);\n if (warnings != null) response.warnings = sanitizeMessages(warnings, \"warnings\", details, name, void 0);\n if (watchFiles != null) response.watchFiles = sanitizeStringArray(watchFiles, \"watchFiles\");\n if (watchDirs != null) response.watchDirs = sanitizeStringArray(watchDirs, \"watchDirs\");\n break;\n }\n } catch (e) {\n response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };\n break;\n }\n }\n sendResponse(id, response);\n };\n requestCallbacks[\"on-load\"] = async (id, request) => {\n let response = {}, name = \"\", callback, note;\n for (let id2 of request.ids) {\n try {\n ({ name, callback, note } = onLoadCallbacks[id2]);\n let result = await callback({\n path: request.path,\n namespace: request.namespace,\n suffix: request.suffix,\n pluginData: details.load(request.pluginData),\n with: request.with\n });\n if (result != null) {\n if (typeof result !== \"object\") throw new Error(`Expected onLoad() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let pluginName = getFlag(result, keys, \"pluginName\", mustBeString);\n let contents = getFlag(result, keys, \"contents\", mustBeStringOrUint8Array);\n let resolveDir = getFlag(result, keys, \"resolveDir\", mustBeString);\n let pluginData = getFlag(result, keys, \"pluginData\", canBeAnything);\n let loader = getFlag(result, keys, \"loader\", mustBeString);\n let errors = getFlag(result, keys, \"errors\", mustBeArray);\n let warnings = getFlag(result, keys, \"warnings\", mustBeArray);\n let watchFiles = getFlag(result, keys, \"watchFiles\", mustBeArrayOfStrings);\n let watchDirs = getFlag(result, keys, \"watchDirs\", mustBeArrayOfStrings);\n checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${quote(name)}`);\n response.id = id2;\n if (pluginName != null) response.pluginName = pluginName;\n if (contents instanceof Uint8Array) response.contents = contents;\n else if (contents != null) response.contents = encodeUTF8(contents);\n if (resolveDir != null) response.resolveDir = resolveDir;\n if (pluginData != null) response.pluginData = details.store(pluginData);\n if (loader != null) response.loader = loader;\n if (errors != null) response.errors = sanitizeMessages(errors, \"errors\", details, name, void 0);\n if (warnings != null) response.warnings = sanitizeMessages(warnings, \"warnings\", details, name, void 0);\n if (watchFiles != null) response.watchFiles = sanitizeStringArray(watchFiles, \"watchFiles\");\n if (watchDirs != null) response.watchDirs = sanitizeStringArray(watchDirs, \"watchDirs\");\n break;\n }\n } catch (e) {\n response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };\n break;\n }\n }\n sendResponse(id, response);\n };\n let runOnEndCallbacks = (result, done) => done([], []);\n if (onEndCallbacks.length > 0) {\n runOnEndCallbacks = (result, done) => {\n (async () => {\n const onEndErrors = [];\n const onEndWarnings = [];\n for (const { name, callback, note } of onEndCallbacks) {\n let newErrors;\n let newWarnings;\n try {\n const value = await callback(result);\n if (value != null) {\n if (typeof value !== \"object\") throw new Error(`Expected onEnd() callback in plugin ${quote(name)} to return an object`);\n let keys = {};\n let errors = getFlag(value, keys, \"errors\", mustBeArray);\n let warnings = getFlag(value, keys, \"warnings\", mustBeArray);\n checkForInvalidFlags(value, keys, `from onEnd() callback in plugin ${quote(name)}`);\n if (errors != null) newErrors = sanitizeMessages(errors, \"errors\", details, name, void 0);\n if (warnings != null) newWarnings = sanitizeMessages(warnings, \"warnings\", details, name, void 0);\n }\n } catch (e) {\n newErrors = [extractErrorMessageV8(e, streamIn, details, note && note(), name)];\n }\n if (newErrors) {\n onEndErrors.push(...newErrors);\n try {\n result.errors.push(...newErrors);\n } catch {\n }\n }\n if (newWarnings) {\n onEndWarnings.push(...newWarnings);\n try {\n result.warnings.push(...newWarnings);\n } catch {\n }\n }\n }\n done(onEndErrors, onEndWarnings);\n })();\n };\n }\n let scheduleOnDisposeCallbacks = () => {\n for (const cb of onDisposeCallbacks) {\n setTimeout(() => cb(), 0);\n }\n };\n isSetupDone = true;\n return {\n ok: true,\n requestPlugins,\n runOnEndCallbacks,\n scheduleOnDisposeCallbacks\n };\n};\nfunction createObjectStash() {\n const map = /* @__PURE__ */ new Map();\n let nextID = 0;\n return {\n clear() {\n map.clear();\n },\n load(id) {\n return map.get(id);\n },\n store(value) {\n if (value === void 0) return -1;\n const id = nextID++;\n map.set(id, value);\n return id;\n }\n };\n}\nfunction extractCallerV8(e, streamIn, ident) {\n let note;\n let tried = false;\n return () => {\n if (tried) return note;\n tried = true;\n try {\n let lines = (e.stack + \"\").split(\"\\n\");\n lines.splice(1, 1);\n let location = parseStackLinesV8(streamIn, lines, ident);\n if (location) {\n note = { text: e.message, location };\n return note;\n }\n } catch {\n }\n };\n}\nfunction extractErrorMessageV8(e, streamIn, stash, note, pluginName) {\n let text = \"Internal error\";\n let location = null;\n try {\n text = (e && e.message || e) + \"\";\n } catch {\n }\n try {\n location = parseStackLinesV8(streamIn, (e.stack + \"\").split(\"\\n\"), \"\");\n } catch {\n }\n return { id: \"\", pluginName, text, location, notes: note ? [note] : [], detail: stash ? stash.store(e) : -1 };\n}\nfunction parseStackLinesV8(streamIn, lines, ident) {\n let at = \" at \";\n if (streamIn.readFileSync && !lines[0].startsWith(at) && lines[1].startsWith(at)) {\n for (let i = 1; i < lines.length; i++) {\n let line = lines[i];\n if (!line.startsWith(at)) continue;\n line = line.slice(at.length);\n while (true) {\n let match = /^(?:new |async )?\\S+ \\((.*)\\)$/.exec(line);\n if (match) {\n line = match[1];\n continue;\n }\n match = /^eval at \\S+ \\((.*)\\)(?:, \\S+:\\d+:\\d+)?$/.exec(line);\n if (match) {\n line = match[1];\n continue;\n }\n match = /^(\\S+):(\\d+):(\\d+)$/.exec(line);\n if (match) {\n let contents;\n try {\n contents = streamIn.readFileSync(match[1], \"utf8\");\n } catch {\n break;\n }\n let lineText = contents.split(/\\r\\n|\\r|\\n|\\u2028|\\u2029/)[+match[2] - 1] || \"\";\n let column = +match[3] - 1;\n let length = lineText.slice(column, column + ident.length) === ident ? ident.length : 0;\n return {\n file: match[1],\n namespace: \"file\",\n line: +match[2],\n column: encodeUTF8(lineText.slice(0, column)).length,\n length: encodeUTF8(lineText.slice(column, column + length)).length,\n lineText: lineText + \"\\n\" + lines.slice(1).join(\"\\n\"),\n suggestion: \"\"\n };\n }\n break;\n }\n }\n }\n return null;\n}\nfunction failureErrorWithLog(text, errors, warnings) {\n let limit = 5;\n text += errors.length < 1 ? \"\" : ` with ${errors.length} error${errors.length < 2 ? \"\" : \"s\"}:` + errors.slice(0, limit + 1).map((e, i) => {\n if (i === limit) return \"\\n...\";\n if (!e.location) return `\nerror: ${e.text}`;\n let { file, line, column } = e.location;\n let pluginText = e.pluginName ? `[plugin: ${e.pluginName}] ` : \"\";\n return `\n${file}:${line}:${column}: ERROR: ${pluginText}${e.text}`;\n }).join(\"\");\n let error = new Error(text);\n for (const [key, value] of [[\"errors\", errors], [\"warnings\", warnings]]) {\n Object.defineProperty(error, key, {\n configurable: true,\n enumerable: true,\n get: () => value,\n set: (value2) => Object.defineProperty(error, key, {\n configurable: true,\n enumerable: true,\n value: value2\n })\n });\n }\n return error;\n}\nfunction replaceDetailsInMessages(messages, stash) {\n for (const message of messages) {\n message.detail = stash.load(message.detail);\n }\n return messages;\n}\nfunction sanitizeLocation(location, where, terminalWidth) {\n if (location == null) return null;\n let keys = {};\n let file = getFlag(location, keys, \"file\", mustBeString);\n let namespace = getFlag(location, keys, \"namespace\", mustBeString);\n let line = getFlag(location, keys, \"line\", mustBeInteger);\n let column = getFlag(location, keys, \"column\", mustBeInteger);\n let length = getFlag(location, keys, \"length\", mustBeInteger);\n let lineText = getFlag(location, keys, \"lineText\", mustBeString);\n let suggestion = getFlag(location, keys, \"suggestion\", mustBeString);\n checkForInvalidFlags(location, keys, where);\n if (lineText) {\n const relevantASCII = lineText.slice(\n 0,\n (column && column > 0 ? column : 0) + (length && length > 0 ? length : 0) + (terminalWidth && terminalWidth > 0 ? terminalWidth : 80)\n );\n if (!/[\\x7F-\\uFFFF]/.test(relevantASCII) && !/\\n/.test(lineText)) {\n lineText = relevantASCII;\n }\n }\n return {\n file: file || \"\",\n namespace: namespace || \"\",\n line: line || 0,\n column: column || 0,\n length: length || 0,\n lineText: lineText || \"\",\n suggestion: suggestion || \"\"\n };\n}\nfunction sanitizeMessages(messages, property, stash, fallbackPluginName, terminalWidth) {\n let messagesClone = [];\n let index = 0;\n for (const message of messages) {\n let keys = {};\n let id = getFlag(message, keys, \"id\", mustBeString);\n let pluginName = getFlag(message, keys, \"pluginName\", mustBeString);\n let text = getFlag(message, keys, \"text\", mustBeString);\n let location = getFlag(message, keys, \"location\", mustBeObjectOrNull);\n let notes = getFlag(message, keys, \"notes\", mustBeArray);\n let detail = getFlag(message, keys, \"detail\", canBeAnything);\n let where = `in element ${index} of \"${property}\"`;\n checkForInvalidFlags(message, keys, where);\n let notesClone = [];\n if (notes) {\n for (const note of notes) {\n let noteKeys = {};\n let noteText = getFlag(note, noteKeys, \"text\", mustBeString);\n let noteLocation = getFlag(note, noteKeys, \"location\", mustBeObjectOrNull);\n checkForInvalidFlags(note, noteKeys, where);\n notesClone.push({\n text: noteText || \"\",\n location: sanitizeLocation(noteLocation, where, terminalWidth)\n });\n }\n }\n messagesClone.push({\n id: id || \"\",\n pluginName: pluginName || fallbackPluginName,\n text: text || \"\",\n location: sanitizeLocation(location, where, terminalWidth),\n notes: notesClone,\n detail: stash ? stash.store(detail) : -1\n });\n index++;\n }\n return messagesClone;\n}\nfunction sanitizeStringArray(values, property) {\n const result = [];\n for (const value of values) {\n if (typeof value !== \"string\") throw new Error(`${quote(property)} must be an array of strings`);\n result.push(value);\n }\n return result;\n}\nfunction sanitizeStringMap(map, property) {\n const result = /* @__PURE__ */ Object.create(null);\n for (const key in map) {\n const value = map[key];\n if (typeof value !== \"string\") throw new Error(`key ${quote(key)} in object ${quote(property)} must be a string`);\n result[key] = value;\n }\n return result;\n}\nfunction convertOutputFiles({ path: path3, contents, hash }) {\n let text = null;\n return {\n path: path3,\n contents,\n hash,\n get text() {\n const binary = this.contents;\n if (text === null || binary !== contents) {\n contents = binary;\n text = decodeUTF8(binary);\n }\n return text;\n }\n };\n}\nfunction jsRegExpToGoRegExp(regexp) {\n let result = regexp.source;\n if (regexp.flags) result = `(?${regexp.flags})${result}`;\n return result;\n}\n\n// lib/npm/node-platform.ts\nvar fs = require(\"fs\");\nvar os = require(\"os\");\nvar path = require(\"path\");\nvar ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;\nvar isValidBinaryPath = (x) => !!x && x !== \"/usr/bin/esbuild\";\nvar packageDarwin_arm64 = \"@esbuild/darwin-arm64\";\nvar packageDarwin_x64 = \"@esbuild/darwin-x64\";\nvar knownWindowsPackages = {\n \"win32 arm64 LE\": \"@esbuild/win32-arm64\",\n \"win32 ia32 LE\": \"@esbuild/win32-ia32\",\n \"win32 x64 LE\": \"@esbuild/win32-x64\"\n};\nvar knownUnixlikePackages = {\n \"aix ppc64 BE\": \"@esbuild/aix-ppc64\",\n \"android arm64 LE\": \"@esbuild/android-arm64\",\n \"darwin arm64 LE\": \"@esbuild/darwin-arm64\",\n \"darwin x64 LE\": \"@esbuild/darwin-x64\",\n \"freebsd arm64 LE\": \"@esbuild/freebsd-arm64\",\n \"freebsd x64 LE\": \"@esbuild/freebsd-x64\",\n \"linux arm LE\": \"@esbuild/linux-arm\",\n \"linux arm64 LE\": \"@esbuild/linux-arm64\",\n \"linux ia32 LE\": \"@esbuild/linux-ia32\",\n \"linux mips64el LE\": \"@esbuild/linux-mips64el\",\n \"linux ppc64 LE\": \"@esbuild/linux-ppc64\",\n \"linux riscv64 LE\": \"@esbuild/linux-riscv64\",\n \"linux s390x BE\": \"@esbuild/linux-s390x\",\n \"linux x64 LE\": \"@esbuild/linux-x64\",\n \"linux loong64 LE\": \"@esbuild/linux-loong64\",\n \"netbsd arm64 LE\": \"@esbuild/netbsd-arm64\",\n \"netbsd x64 LE\": \"@esbuild/netbsd-x64\",\n \"openbsd arm64 LE\": \"@esbuild/openbsd-arm64\",\n \"openbsd x64 LE\": \"@esbuild/openbsd-x64\",\n \"sunos x64 LE\": \"@esbuild/sunos-x64\"\n};\nvar knownWebAssemblyFallbackPackages = {\n \"android arm LE\": \"@esbuild/android-arm\",\n \"android x64 LE\": \"@esbuild/android-x64\",\n \"openharmony arm64 LE\": \"@esbuild/openharmony-arm64\"\n};\nfunction pkgAndSubpathForCurrentPlatform() {\n let pkg;\n let subpath;\n let isWASM = false;\n let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;\n if (platformKey in knownWindowsPackages) {\n pkg = knownWindowsPackages[platformKey];\n subpath = \"esbuild.exe\";\n } else if (platformKey in knownUnixlikePackages) {\n pkg = knownUnixlikePackages[platformKey];\n subpath = \"bin/esbuild\";\n } else if (platformKey in knownWebAssemblyFallbackPackages) {\n pkg = knownWebAssemblyFallbackPackages[platformKey];\n subpath = \"bin/esbuild\";\n isWASM = true;\n } else {\n throw new Error(`Unsupported platform: ${platformKey}`);\n }\n return { pkg, subpath, isWASM };\n}\nfunction pkgForSomeOtherPlatform() {\n const libMainJS = require.resolve(\"esbuild\");\n const nodeModulesDirectory = path.dirname(path.dirname(path.dirname(libMainJS)));\n if (path.basename(nodeModulesDirectory) === \"node_modules\") {\n for (const unixKey in knownUnixlikePackages) {\n try {\n const pkg = knownUnixlikePackages[unixKey];\n if (fs.existsSync(path.join(nodeModulesDirectory, pkg))) return pkg;\n } catch {\n }\n }\n for (const windowsKey in knownWindowsPackages) {\n try {\n const pkg = knownWindowsPackages[windowsKey];\n if (fs.existsSync(path.join(nodeModulesDirectory, pkg))) return pkg;\n } catch {\n }\n }\n }\n return null;\n}\nfunction downloadedBinPath(pkg, subpath) {\n const esbuildLibDir = path.dirname(require.resolve(\"esbuild\"));\n return path.join(esbuildLibDir, `downloaded-${pkg.replace(\"/\", \"-\")}-${path.basename(subpath)}`);\n}\nfunction generateBinPath() {\n if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {\n if (!fs.existsSync(ESBUILD_BINARY_PATH)) {\n console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);\n } else {\n return { binPath: ESBUILD_BINARY_PATH, isWASM: false };\n }\n }\n const { pkg, subpath, isWASM } = pkgAndSubpathForCurrentPlatform();\n let binPath;\n try {\n binPath = require.resolve(`${pkg}/${subpath}`);\n } catch (e) {\n binPath = downloadedBinPath(pkg, subpath);\n if (!fs.existsSync(binPath)) {\n try {\n require.resolve(pkg);\n } catch {\n const otherPkg = pkgForSomeOtherPlatform();\n if (otherPkg) {\n let suggestions = `\nSpecifically the \"${otherPkg}\" package is present but this platform\nneeds the \"${pkg}\" package instead. People often get into this\nsituation by installing esbuild on Windows or macOS and copying \"node_modules\"\ninto a Docker image that runs Linux, or by copying \"node_modules\" between\nWindows and WSL environments.\n\nIf you are installing with npm, you can try not copying the \"node_modules\"\ndirectory when you copy the files over, and running \"npm ci\" or \"npm install\"\non the destination platform after the copy. Or you could consider using yarn\ninstead of npm which has built-in support for installing a package on multiple\nplatforms simultaneously.\n\nIf you are installing with yarn, you can try listing both this platform and the\nother platform in your \".yarnrc.yml\" file using the \"supportedArchitectures\"\nfeature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures\nKeep in mind that this means multiple copies of esbuild will be present.\n`;\n if (pkg === packageDarwin_x64 && otherPkg === packageDarwin_arm64 || pkg === packageDarwin_arm64 && otherPkg === packageDarwin_x64) {\n suggestions = `\nSpecifically the \"${otherPkg}\" package is present but this platform\nneeds the \"${pkg}\" package instead. People often get into this\nsituation by installing esbuild with npm running inside of Rosetta 2 and then\ntrying to use it with node running outside of Rosetta 2, or vice versa (Rosetta\n2 is Apple's on-the-fly x86_64-to-arm64 translation service).\n\nIf you are installing with npm, you can try ensuring that both npm and node are\nnot running under Rosetta 2 and then reinstalling esbuild. This likely involves\nchanging how you installed npm and/or node. For example, installing node with\nthe universal installer here should work: https://nodejs.org/en/download/. Or\nyou could consider using yarn instead of npm which has built-in support for\ninstalling a package on multiple platforms simultaneously.\n\nIf you are installing with yarn, you can try listing both \"arm64\" and \"x64\"\nin your \".yarnrc.yml\" file using the \"supportedArchitectures\" feature:\nhttps://yarnpkg.com/configuration/yarnrc/#supportedArchitectures\nKeep in mind that this means multiple copies of esbuild will be present.\n`;\n }\n throw new Error(`\nYou installed esbuild for another platform than the one you're currently using.\nThis won't work because esbuild is written with native code and needs to\ninstall a platform-specific binary executable.\n${suggestions}\nAnother alternative is to use the \"esbuild-wasm\" package instead, which works\nthe same way on all platforms. But it comes with a heavy performance cost and\ncan sometimes be 10x slower than the \"esbuild\" package, so you may also not\nwant to do that.\n`);\n }\n throw new Error(`The package \"${pkg}\" could not be found, and is needed by esbuild.\n\nIf you are installing esbuild with npm, make sure that you don't specify the\n\"--no-optional\" or \"--omit=optional\" flags. The \"optionalDependencies\" feature\nof \"package.json\" is used by esbuild to install the correct binary executable\nfor your current platform.`);\n }\n throw e;\n }\n }\n if (/\\.zip\\//.test(binPath)) {\n let pnpapi;\n try {\n pnpapi = require(\"pnpapi\");\n } catch (e) {\n }\n if (pnpapi) {\n const root = pnpapi.getPackageInformation(pnpapi.topLevel).packageLocation;\n const binTargetPath = path.join(\n root,\n \"node_modules\",\n \".cache\",\n \"esbuild\",\n `pnpapi-${pkg.replace(\"/\", \"-\")}-${\"0.27.3\"}-${path.basename(subpath)}`\n );\n if (!fs.existsSync(binTargetPath)) {\n fs.mkdirSync(path.dirname(binTargetPath), { recursive: true });\n fs.copyFileSync(binPath, binTargetPath);\n fs.chmodSync(binTargetPath, 493);\n }\n return { binPath: binTargetPath, isWASM };\n }\n }\n return { binPath, isWASM };\n}\n\n// lib/npm/node.ts\nvar child_process = require(\"child_process\");\nvar crypto = require(\"crypto\");\nvar path2 = require(\"path\");\nvar fs2 = require(\"fs\");\nvar os2 = require(\"os\");\nvar tty = require(\"tty\");\nvar worker_threads;\nif (process.env.ESBUILD_WORKER_THREADS !== \"0\") {\n try {\n worker_threads = require(\"worker_threads\");\n } catch {\n }\n let [major, minor] = process.versions.node.split(\".\");\n if (\n // <v12.17.0 does not work\n +major < 12 || +major === 12 && +minor < 17 || +major === 13 && +minor < 13\n ) {\n worker_threads = void 0;\n }\n}\nvar _a;\nvar isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === \"0.27.3\";\nvar esbuildCommandAndArgs = () => {\n if ((!ESBUILD_BINARY_PATH || false) && (path2.basename(__filename) !== \"main.js\" || path2.basename(__dirname) !== \"lib\")) {\n throw new Error(\n `The esbuild JavaScript API cannot be bundled. Please mark the \"esbuild\" package as external so it's not included in the bundle.\n\nMore information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`\n );\n }\n if (false) {\n return [\"node\", [path2.join(__dirname, \"..\", \"bin\", \"esbuild\")]];\n } else {\n const { binPath, isWASM } = generateBinPath();\n if (isWASM) {\n return [\"node\", [binPath]];\n } else {\n return [binPath, []];\n }\n }\n};\nvar isTTY = () => tty.isatty(2);\nvar fsSync = {\n readFile(tempFile, callback) {\n try {\n let contents = fs2.readFileSync(tempFile, \"utf8\");\n try {\n fs2.unlinkSync(tempFile);\n } catch {\n }\n callback(null, contents);\n } catch (err) {\n callback(err, null);\n }\n },\n writeFile(contents, callback) {\n try {\n let tempFile = randomFileName();\n fs2.writeFileSync(tempFile, contents);\n callback(tempFile);\n } catch {\n callback(null);\n }\n }\n};\nvar fsAsync = {\n readFile(tempFile, callback) {\n try {\n fs2.readFile(tempFile, \"utf8\", (err, contents) => {\n try {\n fs2.unlink(tempFile, () => callback(err, contents));\n } catch {\n callback(err, contents);\n }\n });\n } catch (err) {\n callback(err, null);\n }\n },\n writeFile(contents, callback) {\n try {\n let tempFile = randomFileName();\n fs2.writeFile(tempFile, contents, (err) => err !== null ? callback(null) : callback(tempFile));\n } catch {\n callback(null);\n }\n }\n};\nvar version = \"0.27.3\";\nvar build = (options) => ensureServiceIsRunning().build(options);\nvar context = (buildOptions) => ensureServiceIsRunning().context(buildOptions);\nvar transform = (input, options) => ensureServiceIsRunning().transform(input, options);\nvar formatMessages = (messages, options) => ensureServiceIsRunning().formatMessages(messages, options);\nvar analyzeMetafile = (messages, options) => ensureServiceIsRunning().analyzeMetafile(messages, options);\nvar buildSync = (options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.buildSync(options);\n }\n let result;\n runServiceSync((service) => service.buildOrContext({\n callName: \"buildSync\",\n refs: null,\n options,\n isTTY: isTTY(),\n defaultWD,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar transformSync = (input, options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.transformSync(input, options);\n }\n let result;\n runServiceSync((service) => service.transform({\n callName: \"transformSync\",\n refs: null,\n input,\n options: options || {},\n isTTY: isTTY(),\n fs: fsSync,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar formatMessagesSync = (messages, options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.formatMessagesSync(messages, options);\n }\n let result;\n runServiceSync((service) => service.formatMessages({\n callName: \"formatMessagesSync\",\n refs: null,\n messages,\n options,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar analyzeMetafileSync = (metafile, options) => {\n if (worker_threads && !isInternalWorkerThread) {\n if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads);\n return workerThreadService.analyzeMetafileSync(metafile, options);\n }\n let result;\n runServiceSync((service) => service.analyzeMetafile({\n callName: \"analyzeMetafileSync\",\n refs: null,\n metafile: typeof metafile === \"string\" ? metafile : JSON.stringify(metafile),\n options,\n callback: (err, res) => {\n if (err) throw err;\n result = res;\n }\n }));\n return result;\n};\nvar stop = () => {\n if (stopService) stopService();\n if (workerThreadService) workerThreadService.stop();\n return Promise.resolve();\n};\nvar initializeWasCalled = false;\nvar initialize = (options) => {\n options = validateInitializeOptions(options || {});\n if (options.wasmURL) throw new Error(`The \"wasmURL\" option only works in the browser`);\n if (options.wasmModule) throw new Error(`The \"wasmModule\" option only works in the browser`);\n if (options.worker) throw new Error(`The \"worker\" option only works in the browser`);\n if (initializeWasCalled) throw new Error('Cannot call \"initialize\" more than once');\n ensureServiceIsRunning();\n initializeWasCalled = true;\n return Promise.resolve();\n};\nvar defaultWD = process.cwd();\nvar longLivedService;\nvar stopService;\nvar ensureServiceIsRunning = () => {\n if (longLivedService) return longLivedService;\n let [command, args] = esbuildCommandAndArgs();\n let child = child_process.spawn(command, args.concat(`--service=${\"0.27.3\"}`, \"--ping\"), {\n windowsHide: true,\n stdio: [\"pipe\", \"pipe\", \"inherit\"],\n cwd: defaultWD\n });\n let { readFromStdout, afterClose, service } = createChannel({\n writeToStdin(bytes) {\n child.stdin.write(bytes, (err) => {\n if (err) afterClose(err);\n });\n },\n readFileSync: fs2.readFileSync,\n isSync: false,\n hasFS: true,\n esbuild: node_exports\n });\n child.stdin.on(\"error\", afterClose);\n child.on(\"error\", afterClose);\n const stdin = child.stdin;\n const stdout = child.stdout;\n stdout.on(\"data\", readFromStdout);\n stdout.on(\"end\", afterClose);\n stopService = () => {\n stdin.destroy();\n stdout.destroy();\n child.kill();\n initializeWasCalled = false;\n longLivedService = void 0;\n stopService = void 0;\n };\n let refCount = 0;\n child.unref();\n if (stdin.unref) {\n stdin.unref();\n }\n if (stdout.unref) {\n stdout.unref();\n }\n const refs = {\n ref() {\n if (++refCount === 1) child.ref();\n },\n unref() {\n if (--refCount === 0) child.unref();\n }\n };\n longLivedService = {\n build: (options) => new Promise((resolve, reject) => {\n service.buildOrContext({\n callName: \"build\",\n refs,\n options,\n isTTY: isTTY(),\n defaultWD,\n callback: (err, res) => err ? reject(err) : resolve(res)\n });\n }),\n context: (options) => new Promise((resolve, reject) => service.buildOrContext({\n callName: \"context\",\n refs,\n options,\n isTTY: isTTY(),\n defaultWD,\n callback: (err, res) => err ? reject(err) : resolve(res)\n })),\n transform: (input, options) => new Promise((resolve, reject) => service.transform({\n callName: \"transform\",\n refs,\n input,\n options: options || {},\n isTTY: isTTY(),\n fs: fsAsync,\n callback: (err, res) => err ? reject(err) : resolve(res)\n })),\n formatMessages: (messages, options) => new Promise((resolve, reject) => service.formatMessages({\n callName: \"formatMessages\",\n refs,\n messages,\n options,\n callback: (err, res) => err ? reject(err) : resolve(res)\n })),\n analyzeMetafile: (metafile, options) => new Promise((resolve, reject) => service.analyzeMetafile({\n callName: \"analyzeMetafile\",\n refs,\n metafile: typeof metafile === \"string\" ? metafile : JSON.stringify(metafile),\n options,\n callback: (err, res) => err ? reject(err) : resolve(res)\n }))\n };\n return longLivedService;\n};\nvar runServiceSync = (callback) => {\n let [command, args] = esbuildCommandAndArgs();\n let stdin = new Uint8Array();\n let { readFromStdout, afterClose, service } = createChannel({\n writeToStdin(bytes) {\n if (stdin.length !== 0) throw new Error(\"Must run at most one command\");\n stdin = bytes;\n },\n isSync: true,\n hasFS: true,\n esbuild: node_exports\n });\n callback(service);\n let stdout = child_process.execFileSync(command, args.concat(`--service=${\"0.27.3\"}`), {\n cwd: defaultWD,\n windowsHide: true,\n input: stdin,\n // We don't know how large the output could be. If it's too large, the\n // command will fail with ENOBUFS. Reserve 16mb for now since that feels\n // like it should be enough. Also allow overriding this with an environment\n // variable.\n maxBuffer: +process.env.ESBUILD_MAX_BUFFER || 16 * 1024 * 1024\n });\n readFromStdout(stdout);\n afterClose(null);\n};\nvar randomFileName = () => {\n return path2.join(os2.tmpdir(), `esbuild-${crypto.randomBytes(32).toString(\"hex\")}`);\n};\nvar workerThreadService = null;\nvar startWorkerThreadService = (worker_threads2) => {\n let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();\n let worker = new worker_threads2.Worker(__filename, {\n workerData: { workerPort, defaultWD, esbuildVersion: \"0.27.3\" },\n transferList: [workerPort],\n // From node's documentation: https://nodejs.org/api/worker_threads.html\n //\n // Take care when launching worker threads from preload scripts (scripts loaded\n // and run using the `-r` command line flag). Unless the `execArgv` option is\n // explicitly set, new Worker threads automatically inherit the command line flags\n // from the running process and will preload the same preload scripts as the main\n // thread. If the preload script unconditionally launches a worker thread, every\n // thread spawned will spawn another until the application crashes.\n //\n execArgv: []\n });\n let nextID = 0;\n let fakeBuildError = (text) => {\n let error = new Error(`Build failed with 1 error:\nerror: ${text}`);\n let errors = [{ id: \"\", pluginName: \"\", text, location: null, notes: [], detail: void 0 }];\n error.errors = errors;\n error.warnings = [];\n return error;\n };\n let validateBuildSyncOptions = (options) => {\n if (!options) return;\n let plugins = options.plugins;\n if (plugins && plugins.length > 0) throw fakeBuildError(`Cannot use plugins in synchronous API calls`);\n };\n let applyProperties = (object, properties) => {\n for (let key in properties) {\n object[key] = properties[key];\n }\n };\n let runCallSync = (command, args) => {\n let id = nextID++;\n let sharedBuffer = new SharedArrayBuffer(8);\n let sharedBufferView = new Int32Array(sharedBuffer);\n let msg = { sharedBuffer, id, command, args };\n worker.postMessage(msg);\n let status = Atomics.wait(sharedBufferView, 0, 0);\n if (status !== \"ok\" && status !== \"not-equal\") throw new Error(\"Internal error: Atomics.wait() failed: \" + status);\n let { message: { id: id2, resolve, reject, properties } } = worker_threads2.receiveMessageOnPort(mainPort);\n if (id !== id2) throw new Error(`Internal error: Expected id ${id} but got id ${id2}`);\n if (reject) {\n applyProperties(reject, properties);\n throw reject;\n }\n return resolve;\n };\n worker.unref();\n return {\n buildSync(options) {\n validateBuildSyncOptions(options);\n return runCallSync(\"build\", [options]);\n },\n transformSync(input, options) {\n return runCallSync(\"transform\", [input, options]);\n },\n formatMessagesSync(messages, options) {\n return runCallSync(\"formatMessages\", [messages, options]);\n },\n analyzeMetafileSync(metafile, options) {\n return runCallSync(\"analyzeMetafile\", [metafile, options]);\n },\n stop() {\n worker.terminate();\n workerThreadService = null;\n }\n };\n};\nvar startSyncServiceWorker = () => {\n let workerPort = worker_threads.workerData.workerPort;\n let parentPort = worker_threads.parentPort;\n let extractProperties = (object) => {\n let properties = {};\n if (object && typeof object === \"object\") {\n for (let key in object) {\n properties[key] = object[key];\n }\n }\n return properties;\n };\n try {\n let service = ensureServiceIsRunning();\n defaultWD = worker_threads.workerData.defaultWD;\n parentPort.on(\"message\", (msg) => {\n (async () => {\n let { sharedBuffer, id, command, args } = msg;\n let sharedBufferView = new Int32Array(sharedBuffer);\n try {\n switch (command) {\n case \"build\":\n workerPort.postMessage({ id, resolve: await service.build(args[0]) });\n break;\n case \"transform\":\n workerPort.postMessage({ id, resolve: await service.transform(args[0], args[1]) });\n break;\n case \"formatMessages\":\n workerPort.postMessage({ id, resolve: await service.formatMessages(args[0], args[1]) });\n break;\n case \"analyzeMetafile\":\n workerPort.postMessage({ id, resolve: await service.analyzeMetafile(args[0], args[1]) });\n break;\n default:\n throw new Error(`Invalid command: ${command}`);\n }\n } catch (reject) {\n workerPort.postMessage({ id, reject, properties: extractProperties(reject) });\n }\n Atomics.add(sharedBufferView, 0, 1);\n Atomics.notify(sharedBufferView, 0, Infinity);\n })();\n });\n } catch (reject) {\n parentPort.on(\"message\", (msg) => {\n let { sharedBuffer, id } = msg;\n let sharedBufferView = new Int32Array(sharedBuffer);\n workerPort.postMessage({ id, reject, properties: extractProperties(reject) });\n Atomics.add(sharedBufferView, 0, 1);\n Atomics.notify(sharedBufferView, 0, Infinity);\n });\n }\n};\nif (isInternalWorkerThread) {\n startSyncServiceWorker();\n}\nvar node_default = node_exports;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n analyzeMetafile,\n analyzeMetafileSync,\n build,\n buildSync,\n context,\n formatMessages,\n formatMessagesSync,\n initialize,\n stop,\n transform,\n transformSync,\n version\n});\n","var Y=Object.defineProperty;var k=(A,E)=>Y(A,\"name\",{value:E,configurable:!0});var L;(function(A){A[A.Static=1]=\"Static\",A[A.Dynamic=2]=\"Dynamic\",A[A.ImportMeta=3]=\"ImportMeta\",A[A.StaticSourcePhase=4]=\"StaticSourcePhase\",A[A.DynamicSourcePhase=5]=\"DynamicSourcePhase\"})(L||(L={}));const R=new Uint8Array(new Uint16Array([1]).buffer)[0]===1;function F(A,E=\"@\"){if(!Q)return G.then(()=>F(A));const g=A.length+1,B=(Q.__heap_base.value||Q.__heap_base)+4*g-Q.memory.buffer.byteLength;B>0&&Q.memory.grow(Math.ceil(B/65536));const s=Q.sa(g-1);if((R?c:r)(A,new Uint16Array(Q.memory.buffer,s,g)),!Q.parse())throw Object.assign(new Error(`Parse error ${E}:${A.slice(0,Q.e()).split(`\n`).length}:${Q.e()-A.lastIndexOf(`\n`,Q.e()-1)}`),{idx:Q.e()});const U=[],t=[];for(;Q.ri();){const C=Q.is(),I=Q.ie(),D=Q.it(),i=Q.ai(),w=Q.id(),J=Q.ss(),K=Q.se();let o;Q.ip()&&(o=N(A.slice(w===-1?C-1:C,w===-1?I+1:I))),U.push({n:o,t:D,s:C,e:I,ss:J,se:K,d:w,a:i})}for(;Q.re();){const C=Q.es(),I=Q.ee(),D=Q.els(),i=Q.ele(),w=A.slice(C,I),J=w[0],K=D<0?void 0:A.slice(D,i),o=K?K[0]:\"\";t.push({s:C,e:I,ls:D,le:i,n:J==='\"'||J===\"'\"?N(w):w,ln:o==='\"'||o===\"'\"?N(K):K})}function N(C){try{return(0,eval)(C)}catch{}}return k(N,\"k\"),[U,t,!!Q.f(),!!Q.ms()]}k(F,\"parse\");function r(A,E){const g=A.length;let B=0;for(;B<g;){const s=A.charCodeAt(B);E[B++]=(255&s)<<8|s>>>8}}k(r,\"Q\");function c(A,E){const g=A.length;let B=0;for(;B<g;)E[B]=A.charCodeAt(B++)}k(c,\"B\");let Q;const G=WebAssembly.compile((a=\"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\",typeof Buffer<\"u\"?Buffer.from(a,\"base64\"):Uint8Array.from(atob(a),A=>A.charCodeAt(0)))).then(WebAssembly.instantiate).then(({exports:A})=>{Q=A});var a;export{L as ImportType,G as init,F as parse};\n","var Pt=Object.defineProperty;var f=(s,e)=>Pt(s,\"name\",{value:e,configurable:!0});import{fileURLToPath as Jt,pathToFileURL as Gt}from\"node:url\";import{version as Ae,transformSync as qt,transform as zt}from\"esbuild\";import Ht from\"node:crypto\";import U from\"node:fs\";import X from\"node:path\";import Xt from\"node:os\";import{t as Kt}from\"./temporary-directory-CwHp0_NW.mjs\";const Ne=f(s=>Ht.createHash(\"sha1\").update(s).digest(\"hex\"),\"sha1\"),Ie=44,Yt=59,Me=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",$e=new Uint8Array(64),Ue=new Uint8Array(128);for(let s=0;s<Me.length;s++){const e=Me.charCodeAt(s);$e[s]=e,Ue[e]=s}const me=typeof TextDecoder<\"u\"?new TextDecoder:typeof Buffer<\"u\"?{decode(s){return Buffer.from(s.buffer,s.byteOffset,s.byteLength).toString()}}:{decode(s){let e=\"\";for(let n=0;n<s.length;n++)e+=String.fromCharCode(s[n]);return e}};function Qt(s){const e=new Int32Array(5),n=[];let i=0;do{const o=Zt(s,i),c=[];let u=!0,p=0;e[0]=0;for(let g=i;g<o;g++){let b;g=K(s,g,e,0);const d=e[0];d<p&&(u=!1),p=d,je(s,g,o)?(g=K(s,g,e,1),g=K(s,g,e,2),g=K(s,g,e,3),je(s,g,o)?(g=K(s,g,e,4),b=[d,e[1],e[2],e[3],e[4]]):b=[d,e[1],e[2],e[3]]):b=[d],c.push(b)}u||Vt(c),n.push(c),i=o+1}while(i<=s.length);return n}f(Qt,\"decode\");function Zt(s,e){const n=s.indexOf(\";\",e);return n===-1?s.length:n}f(Zt,\"indexOf\");function K(s,e,n,i){let o=0,c=0,u=0;do{const g=s.charCodeAt(e++);u=Ue[g],o|=(u&31)<<c,c+=5}while(u&32);const p=o&1;return o>>>=1,p&&(o=-2147483648|-o),n[i]+=o,e}f(K,\"decodeInteger\");function je(s,e,n){return e>=n?!1:s.charCodeAt(e)!==Ie}f(je,\"hasMoreVlq\");function Vt(s){s.sort(en)}f(Vt,\"sort\");function en(s,e){return s[0]-e[0]}f(en,\"sortComparator$1\");function De(s){const e=new Int32Array(5),n=1024*16,i=n-36,o=new Uint8Array(n),c=o.subarray(0,i);let u=0,p=\"\";for(let g=0;g<s.length;g++){const b=s[g];if(g>0&&(u===n&&(p+=me.decode(o),u=0),o[u++]=Yt),b.length!==0){e[0]=0;for(let d=0;d<b.length;d++){const r=b[d];u>i&&(p+=me.decode(c),o.copyWithin(0,i,u),u-=i),d>0&&(o[u++]=Ie),u=Y(o,u,e,r,0),r.length!==1&&(u=Y(o,u,e,r,1),u=Y(o,u,e,r,2),u=Y(o,u,e,r,3),r.length!==4&&(u=Y(o,u,e,r,4)))}}}return p+me.decode(o.subarray(0,u))}f(De,\"encode\");function Y(s,e,n,i,o){const c=i[o];let u=c-n[o];n[o]=c,u=u<0?-u<<1|1:u<<1;do{let p=u&31;u>>>=5,u>0&&(p|=32),s[e++]=$e[p]}while(u>0);return e}f(Y,\"encodeInteger\");class ae{static{f(this,\"BitSet\")}constructor(e){this.bits=e instanceof ae?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}}class ee{static{f(this,\"Chunk\")}constructor(e,n,i){this.start=e,this.end=n,this.original=i,this.intro=\"\",this.outro=\"\",this.content=i,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){const e=new ee(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e}contains(e){return this.start<e&&e<this.end}eachNext(e){let n=this;for(;n;)e(n),n=n.next}eachPrevious(e){let n=this;for(;n;)e(n),n=n.previous}edit(e,n,i){return this.content=e,i||(this.intro=\"\",this.outro=\"\"),this.storeName=n,this.edited=!0,this}prependLeft(e){this.outro=e+this.outro}prependRight(e){this.intro=e+this.intro}reset(){this.intro=\"\",this.outro=\"\",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(e){const n=e-this.start,i=this.original.slice(0,n),o=this.original.slice(n);this.original=i;const c=new ee(e,this.end,o);return c.outro=this.outro,this.outro=\"\",this.end=e,this.edited?(c.edit(\"\",!1),this.content=\"\"):this.content=i,c.next=this.next,c.next&&(c.next.previous=c),c.previous=this,this.next=c,c}toString(){return this.intro+this.content+this.outro}trimEnd(e){if(this.outro=this.outro.replace(e,\"\"),this.outro.length)return!0;const n=this.content.replace(e,\"\");if(n.length)return n!==this.content&&(this.split(this.start+n.length).edit(\"\",void 0,!0),this.edited&&this.edit(n,this.storeName,!0)),!0;if(this.edit(\"\",void 0,!0),this.intro=this.intro.replace(e,\"\"),this.intro.length)return!0}trimStart(e){if(this.intro=this.intro.replace(e,\"\"),this.intro.length)return!0;const n=this.content.replace(e,\"\");if(n.length){if(n!==this.content){const i=this.split(this.end-n.length);this.edited&&i.edit(n,this.storeName,!0),this.edit(\"\",void 0,!0)}return!0}else if(this.edit(\"\",void 0,!0),this.outro=this.outro.replace(e,\"\"),this.outro.length)return!0}}function tn(){return typeof globalThis<\"u\"&&typeof globalThis.btoa==\"function\"?s=>globalThis.btoa(unescape(encodeURIComponent(s))):typeof Buffer==\"function\"?s=>Buffer.from(s,\"utf-8\").toString(\"base64\"):()=>{throw new Error(\"Unsupported environment: `window.btoa` or `Buffer` should be supported.\")}}f(tn,\"getBtoa\");const nn=tn();let rn=class{static{f(this,\"SourceMap\")}constructor(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=De(e.mappings),typeof e.x_google_ignoreList<\"u\"&&(this.x_google_ignoreList=e.x_google_ignoreList)}toString(){return JSON.stringify(this)}toUrl(){return\"data:application/json;charset=utf-8;base64,\"+nn(this.toString())}};function sn(s){const e=s.split(`\n`),n=e.filter(c=>/^\\t+/.test(c)),i=e.filter(c=>/^ {2,}/.test(c));if(n.length===0&&i.length===0)return null;if(n.length>=i.length)return\"\t\";const o=i.reduce((c,u)=>{const p=/^ +/.exec(u)[0].length;return Math.min(p,c)},1/0);return new Array(o+1).join(\" \")}f(sn,\"guessIndent\");function on(s,e){const n=s.split(/[/\\\\]/),i=e.split(/[/\\\\]/);for(n.pop();n[0]===i[0];)n.shift(),i.shift();if(n.length){let o=n.length;for(;o--;)n[o]=\"..\"}return n.concat(i).join(\"/\")}f(on,\"getRelativePath\");const an=Object.prototype.toString;function cn(s){return an.call(s)===\"[object Object]\"}f(cn,\"isObject\");function Te(s){const e=s.split(`\n`),n=[];for(let i=0,o=0;i<e.length;i++)n.push(o),o+=e[i].length+1;return f(function(o){let c=0,u=n.length;for(;c<u;){const b=c+u>>1;o<n[b]?u=b:c=b+1}const p=c-1,g=o-n[p];return{line:p,column:g}},\"locate\")}f(Te,\"getLocator\");const un=/\\w/;class ln{static{f(this,\"Mappings\")}constructor(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(e,n,i,o){if(n.length){const c=n.length-1;let u=n.indexOf(`\n`,0),p=-1;for(;u>=0&&c>u;){const b=[this.generatedCodeColumn,e,i.line,i.column];o>=0&&b.push(o),this.rawSegments.push(b),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,p=u,u=n.indexOf(`\n`,u+1)}const g=[this.generatedCodeColumn,e,i.line,i.column];o>=0&&g.push(o),this.rawSegments.push(g),this.advance(n.slice(p+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(n));this.pending=null}addUneditedChunk(e,n,i,o,c){let u=n.start,p=!0,g=!1;for(;u<n.end;){if(this.hires||p||c.has(u)){const b=[this.generatedCodeColumn,e,o.line,o.column];this.hires===\"boundary\"?un.test(i[u])?g||(this.rawSegments.push(b),g=!0):(this.rawSegments.push(b),g=!1):this.rawSegments.push(b)}i[u]===`\n`?(o.line+=1,o.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,p=!0):(o.column+=1,this.generatedCodeColumn+=1,p=!1),u+=1}this.pending=null}advance(e){if(!e)return;const n=e.split(`\n`);if(n.length>1){for(let i=0;i<n.length-1;i++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=n[n.length-1].length}}const Q=`\n`,J={insertLeft:!1,insertRight:!1,storeName:!1};class _e{static{f(this,\"MagicString\")}constructor(e,n={}){const i=new ee(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:\"\"},intro:{writable:!0,value:\"\"},firstChunk:{writable:!0,value:i},lastChunk:{writable:!0,value:i},lastSearchedChunk:{writable:!0,value:i},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:n.filename},indentExclusionRanges:{writable:!0,value:n.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new ae},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:n.ignoreList}}),this.byStart[0]=i,this.byEnd[e.length]=i}addSourcemapLocation(e){this.sourcemapLocations.add(e)}append(e){if(typeof e!=\"string\")throw new TypeError(\"outro content must be a string\");return this.outro+=e,this}appendLeft(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byEnd[e];return i?i.appendLeft(n):this.intro+=n,this}appendRight(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byStart[e];return i?i.appendRight(n):this.outro+=n,this}clone(){const e=new _e(this.original,{filename:this.filename});let n=this.firstChunk,i=e.firstChunk=e.lastSearchedChunk=n.clone();for(;n;){e.byStart[i.start]=i,e.byEnd[i.end]=i;const o=n.next,c=o&&o.clone();c&&(i.next=c,c.previous=i,i=c),n=o}return e.lastChunk=i,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new ae(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e}generateDecodedMap(e){e=e||{};const n=0,i=Object.keys(this.storedNames),o=new ln(e.hires),c=Te(this.original);return this.intro&&o.advance(this.intro),this.firstChunk.eachNext(u=>{const p=c(u.start);u.intro.length&&o.advance(u.intro),u.edited?o.addEdit(n,u.content,p,u.storeName?i.indexOf(u.original):-1):o.addUneditedChunk(n,u,this.original,p,this.sourcemapLocations),u.outro.length&&o.advance(u.outro)}),{file:e.file?e.file.split(/[/\\\\]/).pop():void 0,sources:[e.source?on(e.file||\"\",e.source):e.file||\"\"],sourcesContent:e.includeContent?[this.original]:void 0,names:i,mappings:o.raw,x_google_ignoreList:this.ignoreList?[n]:void 0}}generateMap(e){return new rn(this.generateDecodedMap(e))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=sn(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?\"\t\":this.indentStr}indent(e,n){const i=/^[^\\r\\n]/gm;if(cn(e)&&(n=e,e=void 0),e===void 0&&(this._ensureindentStr(),e=this.indentStr||\"\t\"),e===\"\")return this;n=n||{};const o={};n.exclude&&(typeof n.exclude[0]==\"number\"?[n.exclude]:n.exclude).forEach(d=>{for(let r=d[0];r<d[1];r+=1)o[r]=!0});let c=n.indentStart!==!1;const u=f(b=>c?`${e}${b}`:(c=!0,b),\"replacer\");this.intro=this.intro.replace(i,u);let p=0,g=this.firstChunk;for(;g;){const b=g.end;if(g.edited)o[p]||(g.content=g.content.replace(i,u),g.content.length&&(c=g.content[g.content.length-1]===`\n`));else for(p=g.start;p<b;){if(!o[p]){const d=this.original[p];d===`\n`?c=!0:d!==\"\\r\"&&c&&(c=!1,p===g.start||(this._splitChunk(g,p),g=g.next),g.prependRight(e))}p+=1}p=g.end,g=g.next}return this.outro=this.outro.replace(i,u),this}insert(){throw new Error(\"magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)\")}insertLeft(e,n){return J.insertLeft||(console.warn(\"magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead\"),J.insertLeft=!0),this.appendLeft(e,n)}insertRight(e,n){return J.insertRight||(console.warn(\"magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead\"),J.insertRight=!0),this.prependRight(e,n)}move(e,n,i){if(i>=e&&i<=n)throw new Error(\"Cannot move a selection inside itself\");this._split(e),this._split(n),this._split(i);const o=this.byStart[e],c=this.byEnd[n],u=o.previous,p=c.next,g=this.byStart[i];if(!g&&c===this.lastChunk)return this;const b=g?g.previous:this.lastChunk;return u&&(u.next=p),p&&(p.previous=u),b&&(b.next=o),g&&(g.previous=c),o.previous||(this.firstChunk=c.next),c.next||(this.lastChunk=o.previous,this.lastChunk.next=null),o.previous=b,c.next=g||null,b||(this.firstChunk=o),g||(this.lastChunk=c),this}overwrite(e,n,i,o){return o=o||{},this.update(e,n,i,{...o,overwrite:!o.contentOnly})}update(e,n,i,o){if(typeof i!=\"string\")throw new TypeError(\"replacement content must be a string\");for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;if(n>this.original.length)throw new Error(\"end is out of bounds\");if(e===n)throw new Error(\"Cannot overwrite a zero-length range \\u2013 use appendLeft or prependRight instead\");this._split(e),this._split(n),o===!0&&(J.storeName||(console.warn(\"The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string\"),J.storeName=!0),o={storeName:!0});const c=o!==void 0?o.storeName:!1,u=o!==void 0?o.overwrite:!1;if(c){const b=this.original.slice(e,n);Object.defineProperty(this.storedNames,b,{writable:!0,value:!0,enumerable:!0})}const p=this.byStart[e],g=this.byEnd[n];if(p){let b=p;for(;b!==g;){if(b.next!==this.byStart[b.end])throw new Error(\"Cannot overwrite across a split point\");b=b.next,b.edit(\"\",!1)}p.edit(i,c,!u)}else{const b=new ee(e,n,\"\").edit(i,c);g.next=b,b.previous=g}return this}prepend(e){if(typeof e!=\"string\")throw new TypeError(\"outro content must be a string\");return this.intro=e+this.intro,this}prependLeft(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byEnd[e];return i?i.prependLeft(n):this.intro=n+this.intro,this}prependRight(e,n){if(typeof n!=\"string\")throw new TypeError(\"inserted content must be a string\");this._split(e);const i=this.byStart[e];return i?i.prependRight(n):this.outro=n+this.outro,this}remove(e,n){for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;if(e===n)return this;if(e<0||n>this.original.length)throw new Error(\"Character is out of bounds\");if(e>n)throw new Error(\"end must be greater than start\");this._split(e),this._split(n);let i=this.byStart[e];for(;i;)i.intro=\"\",i.outro=\"\",i.edit(\"\"),i=n>i.end?this.byStart[i.end]:null;return this}reset(e,n){for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;if(e===n)return this;if(e<0||n>this.original.length)throw new Error(\"Character is out of bounds\");if(e>n)throw new Error(\"end must be greater than start\");this._split(e),this._split(n);let i=this.byStart[e];for(;i;)i.reset(),i=n>i.end?this.byStart[i.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:\"\"}lastLine(){let e=this.outro.lastIndexOf(Q);if(e!==-1)return this.outro.substr(e+1);let n=this.outro,i=this.lastChunk;do{if(i.outro.length>0){if(e=i.outro.lastIndexOf(Q),e!==-1)return i.outro.substr(e+1)+n;n=i.outro+n}if(i.content.length>0){if(e=i.content.lastIndexOf(Q),e!==-1)return i.content.substr(e+1)+n;n=i.content+n}if(i.intro.length>0){if(e=i.intro.lastIndexOf(Q),e!==-1)return i.intro.substr(e+1)+n;n=i.intro+n}}while(i=i.previous);return e=this.intro.lastIndexOf(Q),e!==-1?this.intro.substr(e+1)+n:this.intro+n}slice(e=0,n=this.original.length){for(;e<0;)e+=this.original.length;for(;n<0;)n+=this.original.length;let i=\"\",o=this.firstChunk;for(;o&&(o.start>e||o.end<=e);){if(o.start<n&&o.end>=n)return i;o=o.next}if(o&&o.edited&&o.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);const c=o;for(;o;){o.intro&&(c!==o||o.start===e)&&(i+=o.intro);const u=o.start<n&&o.end>=n;if(u&&o.edited&&o.end!==n)throw new Error(`Cannot use replaced character ${n} as slice end anchor.`);const p=c===o?e-o.start:0,g=u?o.content.length+n-o.end:o.content.length;if(i+=o.content.slice(p,g),o.outro&&(!u||o.end===n)&&(i+=o.outro),u)break;o=o.next}return i}snip(e,n){const i=this.clone();return i.remove(0,e),i.remove(n,i.original.length),i}_split(e){if(this.byStart[e]||this.byEnd[e])return;let n=this.lastSearchedChunk;const i=e>n.end;for(;n;){if(n.contains(e))return this._splitChunk(n,e);n=i?this.byStart[n.end]:this.byEnd[n.start]}}_splitChunk(e,n){if(e.edited&&e.content.length){const o=Te(this.original)(n);throw new Error(`Cannot split a chunk that has already been edited (${o.line}:${o.column} \\u2013 \"${e.original}\")`)}const i=e.split(n);return this.byEnd[n]=e,this.byStart[n]=i,this.byEnd[i.end]=i,e===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=e,!0}toString(){let e=this.intro,n=this.firstChunk;for(;n;)e+=n.toString(),n=n.next;return e+this.outro}isEmpty(){let e=this.firstChunk;do if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1;while(e=e.next);return!0}length(){let e=this.firstChunk,n=0;do n+=e.intro.length+e.content.length+e.outro.length;while(e=e.next);return n}trimLines(){return this.trim(\"[\\\\r\\\\n]\")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){const n=new RegExp((e||\"\\\\s\")+\"+$\");if(this.outro=this.outro.replace(n,\"\"),this.outro.length)return!0;let i=this.lastChunk;do{const o=i.end,c=i.trimEnd(n);if(i.end!==o&&(this.lastChunk===i&&(this.lastChunk=i.next),this.byEnd[i.end]=i,this.byStart[i.next.start]=i.next,this.byEnd[i.next.end]=i.next),c)return!0;i=i.previous}while(i);return!1}trimEnd(e){return this.trimEndAborted(e),this}trimStartAborted(e){const n=new RegExp(\"^\"+(e||\"\\\\s\")+\"+\");if(this.intro=this.intro.replace(n,\"\"),this.intro.length)return!0;let i=this.firstChunk;do{const o=i.end,c=i.trimStart(n);if(i.end!==o&&(i===this.lastChunk&&(this.lastChunk=i.next),this.byEnd[i.end]=i,this.byStart[i.next.start]=i.next,this.byEnd[i.next.end]=i.next),c)return!0;i=i.next}while(i);return!1}trimStart(e){return this.trimStartAborted(e),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,n){function i(c,u){return typeof n==\"string\"?n.replace(/\\$(\\$|&|\\d+)/g,(p,g)=>g===\"$\"?\"$\":g===\"&\"?c[0]:+g<c.length?c[+g]:`$${g}`):n(...c,c.index,u,c.groups)}f(i,\"getReplacement\");function o(c,u){let p;const g=[];for(;p=c.exec(u);)g.push(p);return g}if(f(o,\"matchAll\"),e.global)o(e,this.original).forEach(u=>{if(u.index!=null){const p=i(u,this.original);p!==u[0]&&this.overwrite(u.index,u.index+u[0].length,p)}});else{const c=this.original.match(e);if(c&&c.index!=null){const u=i(c,this.original);u!==c[0]&&this.overwrite(c.index,c.index+c[0].length,u)}}return this}_replaceString(e,n){const{original:i}=this,o=i.indexOf(e);return o!==-1&&this.overwrite(o,o+e.length,n),this}replace(e,n){return typeof e==\"string\"?this._replaceString(e,n):this._replaceRegexp(e,n)}_replaceAllString(e,n){const{original:i}=this,o=e.length;for(let c=i.indexOf(e);c!==-1;c=i.indexOf(e,c+o))i.slice(c,c+o)!==n&&this.overwrite(c,c+o,n);return this}replaceAll(e,n){if(typeof e==\"string\")return this._replaceAllString(e,n);if(!e.global)throw new TypeError(\"MagicString.prototype.replaceAll called with a non-global RegExp argument\");return this._replaceRegexp(e,n)}}let v,re,ke,Z=2<<19;const Fe=new Uint8Array(new Uint16Array([1]).buffer)[0]===1?function(s,e){const n=s.length;let i=0;for(;i<n;)e[i]=s.charCodeAt(i++)}:function(s,e){const n=s.length;let i=0;for(;i<n;){const o=s.charCodeAt(i);e[i++]=(255&o)<<8|o>>>8}},hn=\"xportmportlassforetaourceromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileifcatcfinallels\";let _,We,y;function fn(s,e=\"@\"){_=s,We=e;const n=2*_.length+(2<<18);if(n>Z||!v){for(;n>Z;)Z*=2;re=new ArrayBuffer(Z),Fe(hn,new Uint16Array(re,16,110)),v=function(u,p,g){var b=new u.Int8Array(g),d=new u.Int16Array(g),r=new u.Int32Array(g),R=new u.Uint8Array(g),L=new u.Uint16Array(g),E=1040;function N(){var t=0,a=0,h=0,l=0,w=0,m=0,C=0;C=E,E=E+10240|0,b[804]=1,b[803]=0,d[399]=0,d[400]=0,r[69]=r[2],b[805]=0,r[68]=0,b[802]=0,r[70]=C+2048,r[71]=C,b[806]=0,t=(r[3]|0)+-2|0,r[72]=t,a=t+(r[66]<<1)|0,r[73]=a;e:for(;;){if(h=t+2|0,r[72]=h,t>>>0>=a>>>0){l=18;break}t:do switch(d[h>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(!(d[400]|0)&&z(h)|0&&!(A(t+4|0,16,10)|0)&&($(),(b[804]|0)==0)){l=9;break e}else l=17;break}case 105:{z(h)|0&&!(A(t+4|0,26,10)|0)&&W(),l=17;break}case 59:{l=17;break}case 47:switch(d[t+4>>1]|0){case 47:{fe();break t}case 42:{le(1);break t}default:{l=16;break e}}default:{l=16;break e}}while(!1);(l|0)==17&&(l=0,r[69]=r[72]),t=r[72]|0,a=r[73]|0}(l|0)==9?(t=r[72]|0,r[69]=t,l=19):(l|0)==16?(b[804]=0,r[72]=t,l=19):(l|0)==18&&(b[802]|0?t=0:(t=h,l=19));do if((l|0)==19){e:for(;;){if(a=t+2|0,r[72]=a,t>>>0>=(r[73]|0)>>>0){l=92;break}t:do switch(d[a>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{!(d[400]|0)&&z(a)|0&&!(A(t+4|0,16,10)|0)&&$(),l=91;break}case 105:{z(a)|0&&!(A(t+4|0,26,10)|0)&&W(),l=91;break}case 99:{z(a)|0&&!(A(t+4|0,36,8)|0)&&P(d[t+12>>1]|0)|0&&(b[806]=1),l=91;break}case 40:{h=r[70]|0,t=d[400]|0,l=t&65535,r[h+(l<<3)>>2]=1,a=r[69]|0,d[400]=t+1<<16>>16,r[h+(l<<3)+4>>2]=a,l=91;break}case 41:{if(a=d[400]|0,!(a<<16>>16)){l=36;break e}h=a+-1<<16>>16,d[400]=h,l=d[399]|0,a=l&65535,l<<16>>16&&(r[(r[70]|0)+((h&65535)<<3)>>2]|0)==5&&(a=r[(r[71]|0)+(a+-1<<2)>>2]|0,h=a+4|0,r[h>>2]|0||(r[h>>2]=(r[69]|0)+2),r[a+12>>2]=t+4,d[399]=l+-1<<16>>16),l=91;break}case 123:{l=r[69]|0,h=r[63]|0,t=l;do if((d[l>>1]|0)==41&(h|0)!=0&&(r[h+4>>2]|0)==(l|0))if(a=r[64]|0,r[63]=a,a){r[a+32>>2]=0;break}else{r[59]=0;break}while(!1);h=r[70]|0,a=d[400]|0,l=a&65535,r[h+(l<<3)>>2]=b[806]|0?6:2,d[400]=a+1<<16>>16,r[h+(l<<3)+4>>2]=t,b[806]=0,l=91;break}case 125:{if(t=d[400]|0,!(t<<16>>16)){l=49;break e}h=r[70]|0,l=t+-1<<16>>16,d[400]=l,(r[h+((l&65535)<<3)>>2]|0)==4&&Ee(),l=91;break}case 39:{I(39),l=91;break}case 34:{I(34),l=91;break}case 47:switch(d[t+4>>1]|0){case 47:{fe();break t}case 42:{le(1);break t}default:{t=r[69]|0,a=d[t>>1]|0;n:do if(!(kt(a)|0))a<<16>>16==41?(h=d[400]|0,xt(r[(r[70]|0)+((h&65535)<<3)+4>>2]|0)|0||(l=65)):l=64;else switch(a<<16>>16){case 46:if(((d[t+-2>>1]|0)+-48&65535)<10){l=64;break n}else break n;case 43:if((d[t+-2>>1]|0)==43){l=64;break n}else break n;case 45:if((d[t+-2>>1]|0)==45){l=64;break n}else break n;default:break n}while(!1);(l|0)==64&&(h=d[400]|0,l=65);n:do if((l|0)==65){if(l=0,h<<16>>16&&(w=r[70]|0,m=(h&65535)+-1|0,a<<16>>16==102?(r[w+(m<<3)>>2]|0)==1:0)){if((d[t+-2>>1]|0)==111&&O(r[w+(m<<3)+4>>2]|0,44,3)|0)break}else l=69;if((l|0)==69&&a<<16>>16==125&&(l=r[70]|0,h=h&65535,mt(r[l+(h<<3)+4>>2]|0)|0||(r[l+(h<<3)>>2]|0)==6))break;if(!(pt(t)|0)){switch(a<<16>>16){case 0:break n;case 47:{if(b[805]|0)break n;break}default:}if(l=r[65]|0,l|0&&t>>>0>=(r[l>>2]|0)>>>0&&t>>>0<=(r[l+4>>2]|0)>>>0){ue(),b[805]=0,l=91;break t}h=r[3]|0;do{if(t>>>0<=h>>>0)break;t=t+-2|0,r[69]=t,a=d[t>>1]|0}while(!(he(a)|0));if(ne(a)|0){do{if(t>>>0<=h>>>0)break;t=t+-2|0,r[69]=t}while(ne(d[t>>1]|0)|0);if(Ct(t)|0){ue(),b[805]=0,l=91;break t}}b[805]=1,l=91;break t}}while(!1);ue(),b[805]=0,l=91;break t}}case 96:{h=r[70]|0,a=d[400]|0,l=a&65535,r[h+(l<<3)+4>>2]=r[69],d[400]=a+1<<16>>16,r[h+(l<<3)>>2]=3,Ee(),l=91;break}default:l=91}while(!1);(l|0)==91&&(l=0,r[69]=r[72]),t=r[72]|0}if((l|0)==36){M(),t=0;break}else if((l|0)==49){M(),t=0;break}else if((l|0)==92){t=b[802]|0?0:(d[399]|d[400])<<16>>16==0;break}}while(!1);return E=C,t|0}f(N,\"b\");function $(){var t=0,a=0,h=0,l=0,w=0,m=0,C=0,T=0,ge=0,be=0,pe=0,we=0,S=0,x=0;T=r[72]|0,ge=r[65]|0,x=T+12|0,r[72]=x,h=k(1)|0,t=r[72]|0,(t|0)==(x|0)&&!(te(h)|0)||(S=3);e:do if((S|0)==3){t:do switch(h<<16>>16){case 123:{for(r[72]=t+2,t=k(1)|0,a=r[72]|0;;){if(H(t)|0?(I(t),t=(r[72]|0)+2|0,r[72]=t):(j(t)|0,t=r[72]|0),k(1)|0,t=Le(a,t)|0,t<<16>>16==44&&(r[72]=(r[72]|0)+2,t=k(1)|0),t<<16>>16==125){S=15;break}if(x=a,a=r[72]|0,(a|0)==(x|0)){S=12;break}if(a>>>0>(r[73]|0)>>>0){S=14;break}}if((S|0)==12){M();break e}else if((S|0)==14){M();break e}else if((S|0)==15){b[803]=1,r[72]=(r[72]|0)+2;break t}break}case 42:{r[72]=t+2,k(1)|0,x=r[72]|0,Le(x,x)|0;break}default:{switch(b[804]=0,h<<16>>16){case 100:{switch(T=t+14|0,r[72]=T,(k(1)|0)<<16>>16){case 97:{a=r[72]|0,!(A(a+2|0,72,8)|0)&&(w=a+10|0,ne(d[w>>1]|0)|0)&&(r[72]=w,k(0)|0,S=22);break}case 102:{S=22;break}case 99:{a=r[72]|0,!(A(a+2|0,36,8)|0)&&(l=a+10|0,x=d[l>>1]|0,P(x)|0|x<<16>>16==123)&&(r[72]=l,m=k(1)|0,m<<16>>16!=123)&&(we=m,S=31);break}default:}n:do if((S|0)==22&&(C=r[72]|0,(A(C+2|0,80,14)|0)==0)){if(h=C+16|0,a=d[h>>1]|0,!(P(a)|0))switch(a<<16>>16){case 40:case 42:break;default:break n}r[72]=h,a=k(1)|0,a<<16>>16==42&&(r[72]=(r[72]|0)+2,a=k(1)|0),a<<16>>16!=40&&(we=a,S=31)}while(!1);if((S|0)==31&&(be=r[72]|0,j(we)|0,pe=r[72]|0,pe>>>0>be>>>0)){B(t,T,be,pe),r[72]=(r[72]|0)+-2;break e}B(t,T,0,0),r[72]=t+12;break e}case 97:{r[72]=t+10,k(0)|0,t=r[72]|0,S=35;break}case 102:{S=35;break}case 99:{if(!(A(t+2|0,36,8)|0)&&(a=t+10|0,he(d[a>>1]|0)|0)){r[72]=a,x=k(1)|0,S=r[72]|0,j(x)|0,x=r[72]|0,B(S,x,S,x),r[72]=(r[72]|0)+-2;break e}t=t+4|0,r[72]=t;break}case 108:case 118:break;default:break e}if((S|0)==35){r[72]=t+16,t=k(1)|0,t<<16>>16==42&&(r[72]=(r[72]|0)+2,t=k(1)|0),S=r[72]|0,j(t)|0,x=r[72]|0,B(S,x,S,x),r[72]=(r[72]|0)+-2;break e}r[72]=t+6,b[804]=0,h=k(1)|0,t=r[72]|0,h=(j(h)|0|32)<<16>>16==123,l=r[72]|0,h&&(r[72]=l+2,x=k(1)|0,t=r[72]|0,j(x)|0);n:for(;a=r[72]|0,(a|0)!=(t|0);){if(B(t,a,t,a),a=k(1)|0,h)switch(a<<16>>16){case 93:case 125:break e;default:}if(t=r[72]|0,a<<16>>16!=44){S=51;break}switch(r[72]=t+2,a=k(1)|0,t=r[72]|0,a<<16>>16){case 91:case 123:{S=51;break n}default:}j(a)|0}if((S|0)==51&&(r[72]=t+-2),!h)break e;r[72]=l+-2;break e}}while(!1);if(x=(k(1)|0)<<16>>16==102,t=r[72]|0,x&&!(A(t+2|0,66,6)|0))for(r[72]=t+8,G(T,k(1)|0,0),t=ge|0?ge+16|0:240;;){if(t=r[t>>2]|0,!t)break e;r[t+12>>2]=0,r[t+8>>2]=0,t=t+16|0}r[72]=t+-2}while(!1)}f($,\"k\");function W(){var t=0,a=0,h=0,l=0,w=0,m=0,C=0;w=r[72]|0,h=w+12|0,r[72]=h,l=k(1)|0,a=r[72]|0;e:do if(l<<16>>16!=46)l<<16>>16==115&a>>>0>h>>>0?!(A(a+2|0,56,10)|0)&&(t=a+12|0,P(d[t>>1]|0)|0)?m=14:(a=6,h=0,m=46):(t=l,h=0,m=15);else switch(r[72]=a+2,(k(1)|0)<<16>>16){case 109:{if(t=r[72]|0,A(t+2|0,50,6)|0||(a=r[69]|0,!(de(a)|0)&&(d[a>>1]|0)==46))break e;ce(w,w,t+8|0,2);break e}case 115:{if(t=r[72]|0,A(t+2|0,56,10)|0||(a=r[69]|0,!(de(a)|0)&&(d[a>>1]|0)==46))break e;t=t+12|0,m=14;break e}default:break e}while(!1);(m|0)==14&&(r[72]=t,t=k(1)|0,h=1,m=15);e:do if((m|0)==15)switch(t<<16>>16){case 40:{if(a=r[70]|0,C=d[400]|0,l=C&65535,r[a+(l<<3)>>2]=5,t=r[72]|0,d[400]=C+1<<16>>16,r[a+(l<<3)+4>>2]=t,(d[r[69]>>1]|0)==46)break e;switch(r[72]=t+2,a=k(1)|0,ce(w,r[72]|0,0,t),h?(t=r[63]|0,r[t+28>>2]=5):t=r[63]|0,w=r[71]|0,C=d[399]|0,d[399]=C+1<<16>>16,r[w+((C&65535)<<2)>>2]=t,a<<16>>16){case 39:{I(39);break}case 34:{I(34);break}default:{r[72]=(r[72]|0)+-2;break e}}switch(t=(r[72]|0)+2|0,r[72]=t,(k(1)|0)<<16>>16){case 44:{r[72]=(r[72]|0)+2,k(1)|0,w=r[63]|0,r[w+4>>2]=t,C=r[72]|0,r[w+16>>2]=C,b[w+24>>0]=1,r[72]=C+-2;break e}case 41:{d[400]=(d[400]|0)+-1<<16>>16,C=r[63]|0,r[C+4>>2]=t,r[C+12>>2]=(r[72]|0)+2,b[C+24>>0]=1,d[399]=(d[399]|0)+-1<<16>>16;break e}default:{r[72]=(r[72]|0)+-2;break e}}}case 123:{if(h){a=12,h=1,m=46;break e}if(t=r[72]|0,d[400]|0){r[72]=t+-2;break e}for(;!(t>>>0>=(r[73]|0)>>>0);){if(t=k(1)|0,H(t)|0)I(t);else if(t<<16>>16==125){m=36;break}t=(r[72]|0)+2|0,r[72]=t}if((m|0)==36&&(r[72]=(r[72]|0)+2),C=(k(1)|0)<<16>>16==102,t=r[72]|0,C&&A(t+2|0,66,6)|0){M();break e}if(r[72]=t+8,t=k(1)|0,H(t)|0){G(w,t,0);break e}else{M();break e}}default:{if(h){a=12,h=1,m=46;break e}switch(t<<16>>16){case 42:case 39:case 34:{h=0,m=48;break e}default:{a=6,h=0,m=46;break e}}}}while(!1);(m|0)==46&&(t=r[72]|0,(t|0)==(w+(a<<1)|0)?r[72]=t+-2:m=48);do if((m|0)==48){if(d[400]|0){r[72]=(r[72]|0)+-2;break}for(t=r[73]|0,a=r[72]|0;;){if(a>>>0>=t>>>0){m=55;break}if(l=d[a>>1]|0,H(l)|0){m=53;break}C=a+2|0,r[72]=C,a=C}if((m|0)==53){G(w,l,h);break}else if((m|0)==55){M();break}}while(!1)}f(W,\"l\");function G(t,a,h){t=t|0,a=a|0,h=h|0;var l=0,w=0;switch(l=(r[72]|0)+2|0,a<<16>>16){case 39:{I(39),w=5;break}case 34:{I(34),w=5;break}default:M()}do if((w|0)==5){if(ce(t,l,r[72]|0,1),h&&(r[(r[63]|0)+28>>2]=4),r[72]=(r[72]|0)+2,a=k(0)|0,h=a<<16>>16==97,h?(l=r[72]|0,A(l+2|0,94,10)|0&&(w=13)):(l=r[72]|0,a<<16>>16==119&&(d[l+2>>1]|0)==105&&(d[l+4>>1]|0)==116&&(d[l+6>>1]|0)==104||(w=13)),(w|0)==13){r[72]=l+-2;break}if(r[72]=l+((h?6:4)<<1),(k(1)|0)<<16>>16!=123){r[72]=l;break}h=r[72]|0,a=h;e:for(;;){switch(r[72]=a+2,a=k(1)|0,a<<16>>16){case 39:{I(39),r[72]=(r[72]|0)+2,a=k(1)|0;break}case 34:{I(34),r[72]=(r[72]|0)+2,a=k(1)|0;break}default:a=j(a)|0}if(a<<16>>16!=58){w=22;break}switch(r[72]=(r[72]|0)+2,(k(1)|0)<<16>>16){case 39:{I(39);break}case 34:{I(34);break}default:{w=26;break e}}switch(r[72]=(r[72]|0)+2,(k(1)|0)<<16>>16){case 125:{w=31;break e}case 44:break;default:{w=30;break e}}if(r[72]=(r[72]|0)+2,(k(1)|0)<<16>>16==125){w=31;break}a=r[72]|0}if((w|0)==22){r[72]=l;break}else if((w|0)==26){r[72]=l;break}else if((w|0)==30){r[72]=l;break}else if((w|0)==31){w=r[63]|0,r[w+16>>2]=h,r[w+12>>2]=(r[72]|0)+2;break}}while(!1)}f(G,\"u\");function pt(t){t=t|0;e:do switch(d[t>>1]|0){case 100:switch(d[t+-2>>1]|0){case 105:{t=O(t+-4|0,104,2)|0;break e}case 108:{t=O(t+-4|0,108,3)|0;break e}default:{t=0;break e}}case 101:switch(d[t+-2>>1]|0){case 115:switch(d[t+-4>>1]|0){case 108:{t=q(t+-6|0,101)|0;break e}case 97:{t=q(t+-6|0,99)|0;break e}default:{t=0;break e}}case 116:{t=O(t+-4|0,114,4)|0;break e}case 117:{t=O(t+-4|0,122,6)|0;break e}default:{t=0;break e}}case 102:{if((d[t+-2>>1]|0)==111&&(d[t+-4>>1]|0)==101)switch(d[t+-6>>1]|0){case 99:{t=O(t+-8|0,134,6)|0;break e}case 112:{t=O(t+-8|0,146,2)|0;break e}default:{t=0;break e}}else t=0;break}case 107:{t=O(t+-2|0,150,4)|0;break}case 110:{t=t+-2|0,q(t,105)|0?t=1:t=O(t,158,5)|0;break}case 111:{t=q(t+-2|0,100)|0;break}case 114:{t=O(t+-2|0,168,7)|0;break}case 116:{t=O(t+-2|0,182,4)|0;break}case 119:switch(d[t+-2>>1]|0){case 101:{t=q(t+-4|0,110)|0;break e}case 111:{t=O(t+-4|0,190,3)|0;break e}default:{t=0;break e}}default:t=0}while(!1);return t|0}f(pt,\"o\");function Ee(){var t=0,a=0,h=0,l=0;a=r[73]|0,h=r[72]|0;e:for(;;){if(t=h+2|0,h>>>0>=a>>>0){a=10;break}switch(d[t>>1]|0){case 96:{a=7;break e}case 36:{if((d[h+4>>1]|0)==123){a=6;break e}break}case 92:{t=h+4|0;break}default:}h=t}(a|0)==6?(t=h+4|0,r[72]=t,a=r[70]|0,l=d[400]|0,h=l&65535,r[a+(h<<3)>>2]=4,d[400]=l+1<<16>>16,r[a+(h<<3)+4>>2]=t):(a|0)==7?(r[72]=t,h=r[70]|0,l=(d[400]|0)+-1<<16>>16,d[400]=l,(r[h+((l&65535)<<3)>>2]|0)!=3&&M()):(a|0)==10&&(r[72]=t,M())}f(Ee,\"h\");function k(t){t=t|0;var a=0,h=0,l=0;h=r[72]|0;e:do{a=d[h>>1]|0;t:do if(a<<16>>16!=47)if(t){if(P(a)|0)break;break e}else{if(ne(a)|0)break;break e}else switch(d[h+2>>1]|0){case 47:{fe();break t}case 42:{le(t);break t}default:{a=47;break e}}while(!1);l=r[72]|0,h=l+2|0,r[72]=h}while(l>>>0<(r[73]|0)>>>0);return a|0}f(k,\"w\");function ce(t,a,h,l){t=t|0,a=a|0,h=h|0,l=l|0;var w=0,m=0;m=r[67]|0,r[67]=m+36,w=r[63]|0,r[(w|0?w+32|0:236)>>2]=m,r[64]=w,r[63]=m,r[m+8>>2]=t,(l|0)==2?(t=3,w=h):(w=(l|0)==1,t=w?1:2,w=w?h+2|0:0),r[m+12>>2]=w,r[m+28>>2]=t,r[m>>2]=a,r[m+4>>2]=h,r[m+16>>2]=0,r[m+20>>2]=l,a=(l|0)==1,b[m+24>>0]=a&1,r[m+32>>2]=0,a|(l|0)==2&&(b[803]=1)}f(ce,\"d\");function I(t){t=t|0;var a=0,h=0,l=0,w=0;for(w=r[73]|0,a=r[72]|0;;){if(l=a+2|0,a>>>0>=w>>>0){a=9;break}if(h=d[l>>1]|0,h<<16>>16==t<<16>>16){a=10;break}if(h<<16>>16==92)h=a+4|0,(d[h>>1]|0)==13?(a=a+6|0,a=(d[a>>1]|0)==10?a:h):a=h;else if(Re(h)|0){a=9;break}else a=l}(a|0)==9?(r[72]=l,M()):(a|0)==10&&(r[72]=l)}f(I,\"v\");function Le(t,a){t=t|0,a=a|0;var h=0,l=0,w=0,m=0;return h=r[72]|0,l=d[h>>1]|0,m=(t|0)==(a|0),w=m?0:t,m=m?0:a,l<<16>>16==97&&(r[72]=h+4,h=k(1)|0,t=r[72]|0,H(h)|0?(I(h),a=(r[72]|0)+2|0,r[72]=a):(j(h)|0,a=r[72]|0),l=k(1)|0,h=r[72]|0),(h|0)!=(t|0)&&B(t,a,w,m),l|0}f(Le,\"A\");function wt(){var t=0,a=0,h=0;h=r[73]|0,a=r[72]|0;e:for(;;){if(t=a+2|0,a>>>0>=h>>>0){a=6;break}switch(d[t>>1]|0){case 13:case 10:{a=6;break e}case 93:{a=7;break e}case 92:{t=a+4|0;break}default:}a=t}return(a|0)==6?(r[72]=t,M(),t=0):(a|0)==7&&(r[72]=t,t=93),t|0}f(wt,\"C\");function ue(){var t=0,a=0,h=0;e:for(;;){if(t=r[72]|0,a=t+2|0,r[72]=a,t>>>0>=(r[73]|0)>>>0){h=7;break}switch(d[a>>1]|0){case 13:case 10:{h=7;break e}case 47:break e;case 91:{wt()|0;break}case 92:{r[72]=t+4;break}default:}}(h|0)==7&&M()}f(ue,\"g\");function mt(t){switch(t=t|0,d[t>>1]|0){case 62:{t=(d[t+-2>>1]|0)==61;break}case 41:case 59:{t=1;break}case 104:{t=O(t+-2|0,210,4)|0;break}case 121:{t=O(t+-2|0,218,6)|0;break}case 101:{t=O(t+-2|0,230,3)|0;break}default:t=0}return t|0}f(mt,\"p\");function le(t){t=t|0;var a=0,h=0,l=0,w=0,m=0;for(w=(r[72]|0)+2|0,r[72]=w,h=r[73]|0;a=w+2|0,!(w>>>0>=h>>>0||(l=d[a>>1]|0,!t&&Re(l)|0));){if(l<<16>>16==42&&(d[w+4>>1]|0)==47){m=8;break}w=a}(m|0)==8&&(r[72]=a,a=w+4|0),r[72]=a}f(le,\"y\");function A(t,a,h){t=t|0,a=a|0,h=h|0;var l=0,w=0;e:do if(!h)t=0;else{for(;l=b[t>>0]|0,w=b[a>>0]|0,l<<24>>24==w<<24>>24;)if(h=h+-1|0,h)t=t+1|0,a=a+1|0;else{t=0;break e}t=(l&255)-(w&255)|0}while(!1);return t|0}f(A,\"m\");function te(t){t=t|0;e:do switch(t<<16>>16){case 38:case 37:case 33:{t=1;break}default:if((t&-8)<<16>>16==40|(t+-58&65535)<6)t=1;else{switch(t<<16>>16){case 91:case 93:case 94:{t=1;break e}default:}t=(t+-123&65535)<4}}while(!1);return t|0}f(te,\"I\");function kt(t){t=t|0;e:do switch(t<<16>>16){case 38:case 37:case 33:break;default:if(!((t+-58&65535)<6|(t+-40&65535)<7&t<<16>>16!=41)){switch(t<<16>>16){case 91:case 94:break e;default:}return t<<16>>16!=125&(t+-123&65535)<4|0}}while(!1);return 1}f(kt,\"U\");function Oe(t){t=t|0;var a=0;a=d[t>>1]|0;e:do if((a+-9&65535)>=5){switch(a<<16>>16){case 160:case 32:{a=1;break e}default:}if(te(a)|0)return a<<16>>16!=46|(de(t)|0)|0;a=0}else a=1;while(!1);return a|0}f(Oe,\"x\");function yt(t){t=t|0;var a=0,h=0,l=0,w=0;return h=E,E=E+16|0,l=h,r[l>>2]=0,r[66]=t,a=r[3]|0,w=a+(t<<1)|0,t=w+2|0,d[w>>1]=0,r[l>>2]=t,r[67]=t,r[59]=0,r[63]=0,r[61]=0,r[60]=0,r[65]=0,r[62]=0,E=h,a|0}f(yt,\"S\");function B(t,a,h,l){t=t|0,a=a|0,h=h|0,l=l|0;var w=0,m=0;w=r[67]|0,r[67]=w+20,m=r[65]|0,r[(m|0?m+16|0:240)>>2]=w,r[65]=w,r[w>>2]=t,r[w+4>>2]=a,r[w+8>>2]=h,r[w+12>>2]=l,r[w+16>>2]=0,b[803]=1}f(B,\"O\");function O(t,a,h){t=t|0,a=a|0,h=h|0;var l=0,w=0;return l=t+(0-h<<1)|0,w=l+2|0,t=r[3]|0,w>>>0>=t>>>0&&!(A(w,a,h<<1)|0)?(w|0)==(t|0)?t=1:t=Oe(l)|0:t=0,t|0}f(O,\"$\");function Ct(t){switch(t=t|0,d[t>>1]|0){case 107:{t=O(t+-2|0,150,4)|0;break}case 101:{(d[t+-2>>1]|0)==117?t=O(t+-4|0,122,6)|0:t=0;break}default:t=0}return t|0}f(Ct,\"j\");function q(t,a){t=t|0,a=a|0;var h=0;return h=r[3]|0,h>>>0<=t>>>0&&(d[t>>1]|0)==a<<16>>16?(h|0)==(t|0)?h=1:h=he(d[t+-2>>1]|0)|0:h=0,h|0}f(q,\"B\");function he(t){t=t|0;e:do if((t+-9&65535)<5)t=1;else{switch(t<<16>>16){case 32:case 160:{t=1;break e}default:}t=t<<16>>16!=46&(te(t)|0)}while(!1);return t|0}f(he,\"E\");function fe(){var t=0,a=0,h=0;t=r[73]|0,h=r[72]|0;e:for(;a=h+2|0,!(h>>>0>=t>>>0);)switch(d[a>>1]|0){case 13:case 10:break e;default:h=a}r[72]=a}f(fe,\"P\");function j(t){for(t=t|0;!(P(t)|0||te(t)|0);)if(t=(r[72]|0)+2|0,r[72]=t,t=d[t>>1]|0,!(t<<16>>16)){t=0;break}return t|0}f(j,\"q\");function St(){var t=0;switch(t=r[(r[61]|0)+20>>2]|0,t|0){case 1:{t=-1;break}case 2:{t=-2;break}default:t=t-(r[3]|0)>>1}return t|0}f(St,\"z\");function xt(t){return t=t|0,!(O(t,196,5)|0)&&!(O(t,44,3)|0)?t=O(t,206,2)|0:t=1,t|0}f(xt,\"D\");function ne(t){switch(t=t|0,t<<16>>16){case 160:case 32:case 12:case 11:case 9:{t=1;break}default:t=0}return t|0}f(ne,\"F\");function de(t){return t=t|0,(d[t>>1]|0)==46&&(d[t+-2>>1]|0)==46?t=(d[t+-4>>1]|0)==46:t=0,t|0}f(de,\"G\");function z(t){return t=t|0,(r[3]|0)==(t|0)?t=1:t=Oe(t+-2|0)|0,t|0}f(z,\"H\");function vt(){var t=0;return t=r[(r[62]|0)+12>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(vt,\"J\");function _t(){var t=0;return t=r[(r[61]|0)+12>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(_t,\"K\");function Et(){var t=0;return t=r[(r[62]|0)+8>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(Et,\"L\");function Lt(){var t=0;return t=r[(r[61]|0)+16>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(Lt,\"M\");function Ot(){var t=0;return t=r[(r[61]|0)+4>>2]|0,t?t=t-(r[3]|0)>>1:t=-1,t|0}f(Ot,\"N\");function Rt(){var t=0;return t=r[61]|0,t=r[(t|0?t+32|0:236)>>2]|0,r[61]=t,(t|0)!=0|0}f(Rt,\"Q\");function At(){var t=0;return t=r[62]|0,t=r[(t|0?t+16|0:240)>>2]|0,r[62]=t,(t|0)!=0|0}f(At,\"R\");function M(){b[802]=1,r[68]=(r[72]|0)-(r[3]|0)>>1,r[72]=(r[73]|0)+2}f(M,\"T\");function P(t){return t=t|0,(t|128)<<16>>16==160|(t+-9&65535)<5|0}f(P,\"V\");function H(t){return t=t|0,t<<16>>16==39|t<<16>>16==34|0}f(H,\"W\");function Nt(){return(r[(r[61]|0)+8>>2]|0)-(r[3]|0)>>1|0}f(Nt,\"X\");function It(){return(r[(r[62]|0)+4>>2]|0)-(r[3]|0)>>1|0}f(It,\"Y\");function Re(t){return t=t|0,t<<16>>16==13|t<<16>>16==10|0}f(Re,\"Z\");function Mt(){return(r[r[61]>>2]|0)-(r[3]|0)>>1|0}f(Mt,\"_\");function $t(){return(r[r[62]>>2]|0)-(r[3]|0)>>1|0}f($t,\"ee\");function Ut(){return R[(r[61]|0)+24>>0]|0|0}f(Ut,\"ae\");function jt(t){t=t|0,r[3]=t}f(jt,\"re\");function Dt(){return r[(r[61]|0)+28>>2]|0}f(Dt,\"ie\");function Tt(){return(b[803]|0)!=0|0}f(Tt,\"se\");function Ft(){return(b[804]|0)!=0|0}f(Ft,\"fe\");function Wt(){return r[68]|0}f(Wt,\"te\");function Bt(t){return t=t|0,E=t+992+15&-16,992}return f(Bt,\"ce\"),{su:Bt,ai:Lt,e:Wt,ee:It,ele:vt,els:Et,es:$t,f:Ft,id:St,ie:Ot,ip:Ut,is:Mt,it:Dt,ms:Tt,p:N,re:At,ri:Rt,sa:yt,se:_t,ses:jt,ss:Nt}}(typeof self<\"u\"?self:global,{},re),ke=v.su(Z-(2<<17))}const i=_.length+1;v.ses(ke),v.sa(i-1),Fe(_,new Uint16Array(re,ke,i)),v.p()||(y=v.e(),D());const o=[],c=[];for(;v.ri();){const u=v.is(),p=v.ie(),g=v.ai(),b=v.id(),d=v.ss(),r=v.se(),R=v.it();let L;v.ip()&&(L=ye(b===-1?u:u+1,_.charCodeAt(b===-1?u-1:u))),o.push({t:R,n:L,s:u,e:p,ss:d,se:r,d:b,a:g})}for(;v.re();){const u=v.es(),p=v.ee(),g=v.els(),b=v.ele(),d=_.charCodeAt(u),r=g>=0?_.charCodeAt(g):-1;c.push({s:u,e:p,ls:g,le:b,n:d===34||d===39?ye(u+1,d):_.slice(u,p),ln:g<0?void 0:r===34||r===39?ye(g+1,r):_.slice(g,b)})}return[o,c,!!v.f(),!!v.ms()]}f(fn,\"parse\");function ye(s,e){y=s;let n=\"\",i=y;for(;;){y>=_.length&&D();const o=_.charCodeAt(y);if(o===e)break;o===92?(n+=_.slice(i,y),n+=dn(),i=y):(o===8232||o===8233||Be(o)&&D(),++y)}return n+=_.slice(i,y++),n}f(ye,\"b\");function dn(){let s=_.charCodeAt(++y);switch(++y,s){case 110:return`\n`;case 114:return\"\\r\";case 120:return String.fromCharCode(Ce(2));case 117:return function(){const e=_.charCodeAt(y);let n;return e===123?(++y,n=Ce(_.indexOf(\"}\",y)-y),++y,n>1114111&&D()):n=Ce(4),n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n)))}();case 116:return\"\t\";case 98:return\"\\b\";case 118:return\"\\v\";case 102:return\"\\f\";case 13:_.charCodeAt(y)===10&&++y;case 10:return\"\";case 56:case 57:D();default:if(s>=48&&s<=55){let e=_.substr(y-1,3).match(/^[0-7]+/)[0],n=parseInt(e,8);return n>255&&(e=e.slice(0,-1),n=parseInt(e,8)),y+=e.length-1,s=_.charCodeAt(y),e===\"0\"&&s!==56&&s!==57||D(),String.fromCharCode(n)}return Be(s)?\"\":String.fromCharCode(s)}}f(dn,\"k\");function Ce(s){const e=y;let n=0,i=0;for(let o=0;o<s;++o,++y){let c,u=_.charCodeAt(y);if(u!==95){if(u>=97)c=u-97+10;else if(u>=65)c=u-65+10;else{if(!(u>=48&&u<=57))break;c=u-48}if(c>=16)break;i=u,n=16*n+c}else i!==95&&o!==0||D(),i=u}return i!==95&&y-e===s||D(),n}f(Ce,\"l\");function Be(s){return s===13||s===10}f(Be,\"u\");function D(){throw Object.assign(Error(`Parse error ${We}:${_.slice(0,y).split(`\n`).length}:${y-_.lastIndexOf(`\n`,y-1)}`),{idx:y})}f(D,\"o\");let Se;typeof WebAssembly<\"u\"&&(async()=>{const{parse:s,init:e}=await import(\"./lexer-DQCqS3nf.mjs\");await e,Se=s})();const Pe=f((s,e)=>Se?Se(s,e):fn(s,e),\"parseEsm\"),gn=f(s=>{if(!s.includes(\"import\")&&!s.includes(\"export\"))return!1;try{return Pe(s)[3]}catch{return!0}},\"isESM\"),Je=\"2\",bn=(s=>{const e=\"default\";return s[e]&&typeof s[e]==\"object\"&&\"__esModule\"in s[e]?s[e]:s}).toString(),pn=`.then(${bn})`,xe=f((s,e,n)=>{if(n){if(!e.includes(\"import(\"))return}else if(!e.includes(\"import\"))return;const o=Pe(e,s)[0].filter(g=>g.d>-1);if(o.length===0)return;const c=new _e(e);for(const g of o)c.appendRight(g.se,pn);const u=c.toString(),p=c.generateMap({source:s,includeContent:!1,hires:\"boundary\"});return{code:u,map:p}},\"transformDynamicImport\"),Ge=f(s=>{try{const e=U.readFileSync(s,\"utf8\");return JSON.parse(e)}catch{}},\"readJsonFile\"),qe=f(()=>{},\"noop\"),ze=f(()=>Math.floor(Date.now()/1e8),\"getTime\");class wn extends Map{static{f(this,\"FileCache\")}cacheDirectory=Kt;oldCacheDirectory=X.join(Xt.tmpdir(),\"tsx\");cacheFiles;constructor(){super(),U.mkdirSync(this.cacheDirectory,{recursive:!0}),this.cacheFiles=U.readdirSync(this.cacheDirectory).map(e=>{const[n,i]=e.split(\"-\");return{time:Number(n),key:i,fileName:e}}),setImmediate(()=>{this.expireDiskCache(),this.removeOldCacheDirectory()})}get(e){const n=super.get(e);if(n)return n;const i=this.cacheFiles.find(u=>u.key===e);if(!i)return;const o=X.join(this.cacheDirectory,i.fileName),c=Ge(o);if(!c){U.promises.unlink(o).then(()=>{const u=this.cacheFiles.indexOf(i);this.cacheFiles.splice(u,1)},()=>{});return}return super.set(e,c),c}set(e,n){if(super.set(e,n),n){const i=ze();U.promises.writeFile(X.join(this.cacheDirectory,`${i}-${e}`),JSON.stringify(n)).catch(qe)}return this}expireDiskCache(){const e=ze();for(const n of this.cacheFiles)e-n.time>7&&U.promises.unlink(X.join(this.cacheDirectory,n.fileName)).catch(qe)}async removeOldCacheDirectory(){try{await U.promises.access(this.oldCacheDirectory).then(()=>!0)&&(\"rm\"in U.promises?await U.promises.rm(this.oldCacheDirectory,{recursive:!0,force:!0}):await U.promises.rmdir(this.oldCacheDirectory,{recursive:!0}))}catch{}}}var ie=process.env.TSX_DISABLE_CACHE?new Map:new wn;const mn=/^[\\w+.-]+:\\/\\//,kn=/^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/,yn=/^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;function Cn(s){return mn.test(s)}f(Cn,\"isAbsoluteUrl\");function Sn(s){return s.startsWith(\"//\")}f(Sn,\"isSchemeRelativeUrl\");function He(s){return s.startsWith(\"/\")}f(He,\"isAbsolutePath\");function xn(s){return s.startsWith(\"file:\")}f(xn,\"isFileUrl\");function Xe(s){return/^[.?#]/.test(s)}f(Xe,\"isRelative\");function se(s){const e=kn.exec(s);return Ke(e[1],e[2]||\"\",e[3],e[4]||\"\",e[5]||\"/\",e[6]||\"\",e[7]||\"\")}f(se,\"parseAbsoluteUrl\");function vn(s){const e=yn.exec(s),n=e[2];return Ke(\"file:\",\"\",e[1]||\"\",\"\",He(n)?n:\"/\"+n,e[3]||\"\",e[4]||\"\")}f(vn,\"parseFileUrl\");function Ke(s,e,n,i,o,c,u){return{scheme:s,user:e,host:n,port:i,path:o,query:c,hash:u,type:7}}f(Ke,\"makeUrl\");function Ye(s){if(Sn(s)){const n=se(\"http:\"+s);return n.scheme=\"\",n.type=6,n}if(He(s)){const n=se(\"http://foo.com\"+s);return n.scheme=\"\",n.host=\"\",n.type=5,n}if(xn(s))return vn(s);if(Cn(s))return se(s);const e=se(\"http://foo.com/\"+s);return e.scheme=\"\",e.host=\"\",e.type=s?s.startsWith(\"?\")?3:s.startsWith(\"#\")?2:4:1,e}f(Ye,\"parseUrl\");function _n(s){if(s.endsWith(\"/..\"))return s;const e=s.lastIndexOf(\"/\");return s.slice(0,e+1)}f(_n,\"stripPathFilename\");function En(s,e){Qe(e,e.type),s.path===\"/\"?s.path=e.path:s.path=_n(e.path)+s.path}f(En,\"mergePaths\");function Qe(s,e){const n=e<=4,i=s.path.split(\"/\");let o=1,c=0,u=!1;for(let g=1;g<i.length;g++){const b=i[g];if(!b){u=!0;continue}if(u=!1,b!==\".\"){if(b===\"..\"){c?(u=!0,c--,o--):n&&(i[o++]=b);continue}i[o++]=b,c++}}let p=\"\";for(let g=1;g<o;g++)p+=\"/\"+i[g];(!p||u&&!p.endsWith(\"/..\"))&&(p+=\"/\"),s.path=p}f(Qe,\"normalizePath\");function Ln(s,e){if(!s&&!e)return\"\";const n=Ye(s);let i=n.type;if(e&&i!==7){const c=Ye(e),u=c.type;switch(i){case 1:n.hash=c.hash;case 2:n.query=c.query;case 3:case 4:En(n,c);case 5:n.user=c.user,n.host=c.host,n.port=c.port;case 6:n.scheme=c.scheme}u>i&&(i=u)}Qe(n,i);const o=n.query+n.hash;switch(i){case 2:case 3:return o;case 4:{const c=n.path.slice(1);return c?Xe(e||s)&&!Xe(c)?\"./\"+c+o:c+o:o||\".\"}case 5:return n.path+o;default:return n.scheme+\"//\"+n.user+n.host+n.port+n.path+o}}f(Ln,\"resolve$1\");function Ze(s,e){return e&&!e.endsWith(\"/\")&&(e+=\"/\"),Ln(s,e)}f(Ze,\"resolve\");function On(s){if(!s)return\"\";const e=s.lastIndexOf(\"/\");return s.slice(0,e+1)}f(On,\"stripFilename\");const F=0;function Rn(s,e){const n=Ve(s,0);if(n===s.length)return s;e||(s=s.slice());for(let i=n;i<s.length;i=Ve(s,i+1))s[i]=Nn(s[i],e);return s}f(Rn,\"maybeSort\");function Ve(s,e){for(let n=e;n<s.length;n++)if(!An(s[n]))return n;return s.length}f(Ve,\"nextUnsortedSegmentLine\");function An(s){for(let e=1;e<s.length;e++)if(s[e][F]<s[e-1][F])return!1;return!0}f(An,\"isSorted\");function Nn(s,e){return e||(s=s.slice()),s.sort(In)}f(Nn,\"sortSegments\");function In(s,e){return s[F]-e[F]}f(In,\"sortComparator\");let oe=!1;function Mn(s,e,n,i){for(;n<=i;){const o=n+(i-n>>1),c=s[o][F]-e;if(c===0)return oe=!0,o;c<0?n=o+1:i=o-1}return oe=!1,n-1}f(Mn,\"binarySearch\");function $n(s,e,n){for(let i=n-1;i>=0&&s[i][F]===e;n=i--);return n}f($n,\"lowerBound\");function Un(){return{lastKey:-1,lastNeedle:-1,lastIndex:-1}}f(Un,\"memoizedState\");function jn(s,e,n,i){const{lastKey:o,lastNeedle:c,lastIndex:u}=n;let p=0,g=s.length-1;if(i===o){if(e===c)return oe=u!==-1&&s[u][F]===e,u;e>=c?p=u===-1?0:u:g=u}return n.lastKey=i,n.lastNeedle=e,n.lastIndex=Mn(s,e,p,g)}f(jn,\"memoizedBinarySearch\");class et{static{f(this,\"TraceMap\")}constructor(e,n){const i=typeof e==\"string\";if(!i&&e._decodedMemo)return e;const o=i?JSON.parse(e):e,{version:c,file:u,names:p,sourceRoot:g,sources:b,sourcesContent:d}=o;this.version=c,this.file=u,this.names=p||[],this.sourceRoot=g,this.sources=b,this.sourcesContent=d,this.ignoreList=o.ignoreList||o.x_google_ignoreList||void 0;const r=Ze(g||\"\",On(n));this.resolvedSources=b.map(L=>Ze(L||\"\",r));const{mappings:R}=o;typeof R==\"string\"?(this._encoded=R,this._decoded=void 0):(this._encoded=void 0,this._decoded=Rn(R,i)),this._decodedMemo=Un(),this._bySources=void 0,this._bySourceMemos=void 0}}function vr(s){return s}f(vr,\"cast$2\");function tt(s){var e;return(e=s)._decoded||(e._decoded=Qt(s._encoded))}f(tt,\"decodedMappings\");function Dn(s,e,n){const i=tt(s);if(e>=i.length)return null;const o=i[e],c=Tn(o,s._decodedMemo,e,n);return c===-1?null:o[c]}f(Dn,\"traceSegment\");function Tn(s,e,n,i,o){let c=jn(s,i,e,n);return oe&&(c=$n(s,i,c)),c===-1||c===s.length?-1:c}f(Tn,\"traceSegmentInternal\");class ve{static{f(this,\"SetArray\")}constructor(){this._indexes={__proto__:null},this.array=[]}}function _r(s){return s}f(_r,\"cast$1\");function nt(s,e){return s._indexes[e]}f(nt,\"get\");function V(s,e){const n=nt(s,e);if(n!==void 0)return n;const{array:i,_indexes:o}=s,c=i.push(e);return o[e]=c-1}f(V,\"put\");function Fn(s,e){const n=nt(s,e);if(n===void 0)return;const{array:i,_indexes:o}=s;for(let c=n+1;c<i.length;c++){const u=i[c];i[c-1]=u,o[u]--}o[e]=void 0,i.pop()}f(Fn,\"remove\");const Wn=0,Bn=1,Pn=2,Jn=3,Gn=4,rt=-1;class qn{static{f(this,\"GenMapping\")}constructor({file:e,sourceRoot:n}={}){this._names=new ve,this._sources=new ve,this._sourcesContent=[],this._mappings=[],this.file=e,this.sourceRoot=n,this._ignoreList=new ve}}function Er(s){return s}f(Er,\"cast\");const zn=f((s,e,n,i,o,c,u,p)=>Yn(!0,s,e,n,i,o,c,u),\"maybeAddSegment\");function Hn(s,e,n){const{_sources:i,_sourcesContent:o}=s,c=V(i,e);o[c]=n}f(Hn,\"setSourceContent\");function Xn(s,e,n=!0){const{_sources:i,_sourcesContent:o,_ignoreList:c}=s,u=V(i,e);u===o.length&&(o[u]=null),n?V(c,u):Fn(c,u)}f(Xn,\"setIgnore\");function it(s){const{_mappings:e,_sources:n,_sourcesContent:i,_names:o,_ignoreList:c}=s;return Vn(e),{version:3,file:s.file||void 0,names:o.array,sourceRoot:s.sourceRoot||void 0,sources:n.array,sourcesContent:i,mappings:e,ignoreList:c.array}}f(it,\"toDecodedMap\");function Kn(s){const e=it(s);return Object.assign(Object.assign({},e),{mappings:De(e.mappings)})}f(Kn,\"toEncodedMap\");function Yn(s,e,n,i,o,c,u,p,g){const{_mappings:b,_sources:d,_sourcesContent:r,_names:R}=e,L=Qn(b,n),E=Zn(L,i);if(!o)return er(L,E)?void 0:st(L,E,[i]);const N=V(d,o),$=p?V(R,p):rt;if(N===r.length&&(r[N]=null),!tr(L,E,N,c,u,$))return st(L,E,p?[i,N,c,u,$]:[i,N,c,u])}f(Yn,\"addSegmentInternal\");function Qn(s,e){for(let n=s.length;n<=e;n++)s[n]=[];return s[e]}f(Qn,\"getLine\");function Zn(s,e){let n=s.length;for(let i=n-1;i>=0;n=i--){const o=s[i];if(e>=o[Wn])break}return n}f(Zn,\"getColumnIndex\");function st(s,e,n){for(let i=s.length;i>e;i--)s[i]=s[i-1];s[e]=n}f(st,\"insert\");function Vn(s){const{length:e}=s;let n=e;for(let i=n-1;i>=0&&!(s[i].length>0);n=i,i--);n<e&&(s.length=n)}f(Vn,\"removeEmptyFinalLines\");function er(s,e){return e===0?!0:s[e-1].length===1}f(er,\"skipSourceless\");function tr(s,e,n,i,o,c){if(e===0)return!1;const u=s[e-1];return u.length===1?!1:n===u[Bn]&&i===u[Pn]&&o===u[Jn]&&c===(u.length===5?u[Gn]:rt)}f(tr,\"skipSource\");const ot=at(\"\",-1,-1,\"\",null,!1),nr=[];function at(s,e,n,i,o,c){return{source:s,line:e,column:n,name:i,content:o,ignore:c}}f(at,\"SegmentObject\");function ct(s,e,n,i,o){return{map:s,sources:e,source:n,content:i,ignore:o}}f(ct,\"Source\");function ut(s,e){return ct(s,e,\"\",null,!1)}f(ut,\"MapSource\");function rr(s,e,n){return ct(null,nr,s,e,n)}f(rr,\"OriginalSource\");function ir(s){const e=new qn({file:s.map.file}),{sources:n,map:i}=s,o=i.names,c=tt(i);for(let u=0;u<c.length;u++){const p=c[u];for(let g=0;g<p.length;g++){const b=p[g],d=b[0];let r=ot;if(b.length!==1){const G=n[b[1]];if(r=lt(G,b[2],b[3],b.length===5?o[b[4]]:\"\"),r==null)continue}const{column:R,line:L,name:E,content:N,source:$,ignore:W}=r;zn(e,u,d,$,L,R,E),$&&N!=null&&Hn(e,$,N),W&&Xn(e,$,!0)}}return e}f(ir,\"traceMappings\");function lt(s,e,n,i){if(!s.map)return at(s.source,e,n,i,s.content,s.ignore);const o=Dn(s.map,e,n);return o==null?null:o.length===1?ot:lt(s.sources[o[1]],o[2],o[3],o.length===5?s.map.names[o[4]]:i)}f(lt,\"originalPositionFor\");function sr(s){return Array.isArray(s)?s:[s]}f(sr,\"asArray\");function or(s,e){const n=sr(s).map(c=>new et(c,\"\")),i=n.pop();for(let c=0;c<n.length;c++)if(n[c].sources.length>1)throw new Error(`Transformation map ${c} must have exactly one source file.\nDid you specify these with the most recent transformation maps first?`);let o=ht(i,e,\"\",0);for(let c=n.length-1;c>=0;c--)o=ut(n[c],[o]);return o}f(or,\"buildSourceMapTree\");function ht(s,e,n,i){const{resolvedSources:o,sourcesContent:c,ignoreList:u}=s,p=i+1,g=o.map((b,d)=>{const r={importer:n,depth:p,source:b||\"\",content:void 0,ignore:void 0},R=e(r.source,r),{source:L,content:E,ignore:N}=r;if(R)return ht(new et(R,L),e,L,p);const $=E!==void 0?E:c?c[d]:null,W=N!==void 0?N:u?u.includes(d):!1;return rr(L,$,W)});return ut(s,g)}f(ht,\"build\");class ar{static{f(this,\"SourceMap\")}constructor(e,n){const i=n.decodedMappings?it(e):Kn(e);this.version=i.version,this.file=i.file,this.mappings=i.mappings,this.names=i.names,this.ignoreList=i.ignoreList,this.sourceRoot=i.sourceRoot,this.sources=i.sources,n.excludeContent||(this.sourcesContent=i.sourcesContent)}toString(){return JSON.stringify(this)}}function ft(s,e,n){const i={excludeContent:!!n,decodedMappings:!1},o=or(s,e);return new ar(ir(o),i)}f(ft,\"remapping\");const cr=f((s,e,n)=>{const i=[],o={code:e};for(const c of n){const u=c(s,o.code);u&&(Object.assign(o,u),i.unshift(u.map))}return{...o,map:ft(i,()=>null)}},\"applyTransformersSync\"),ur=f(async(s,e,n)=>{const i=[],o={code:e};for(const c of n){const u=await c(s,o.code);u&&(Object.assign(o,u),i.unshift(u.map))}return{...o,map:ft(i,()=>null)}},\"applyTransformers\"),lr=Object.freeze({target:`node${process.versions.node}`,loader:\"default\"}),hr=/^--inspect(?:-brk|-port|-publish-uid|-wait)?(?:=|$)/,fr=process.execArgv.some(s=>hr.test(s)),dt={...lr,sourcemap:!0,sourcesContent:!!process.env.NODE_V8_COVERAGE||fr,minifyWhitespace:!0,keepNames:!0},gt=f(s=>{const e=s.sourcefile;if(e){const n=X.extname(e.split(\"?\")[0]);n?n===\".cts\"||n===\".mts\"?s.sourcefile=`${e.slice(0,-3)}ts`:n===\".mjs\"&&(s.sourcefile=`${e.slice(0,-3)}js`):s.sourcefile+=\".js\"}return n=>(n.map&&(s.sourcefile!==e&&(n.map=n.map.replace(JSON.stringify(s.sourcefile),JSON.stringify(e))),n.map=JSON.parse(n.map)),n)},\"patchOptions\"),bt=f(s=>{throw s.name=\"TransformError\",delete s.errors,delete s.warnings,s},\"formatEsbuildError\"),dr=f((s,e,n)=>{const i={};let o,c,u;if(e.startsWith(\"file://\")){o=e;const d=new URL(e);c=Jt(d)}else[c,u]=e.split(\"?\"),o=Gt(c)+(u?`?${u}`:\"\");c.endsWith(\".cjs\")||c.endsWith(\".cts\")||(i[\"import.meta.url\"]=JSON.stringify(o));const p={...dt,format:\"cjs\",sourcefile:c,define:i,banner:`__filename=${JSON.stringify(c)};(()=>{`,footer:\"})()\",platform:\"node\",...n},g=Ne([s,JSON.stringify(p),Ae,Je].join(\"-\"));let b=ie.get(g);return b||(b=cr(e,s,[(d,r)=>{const R=gt(p);let L;try{L=qt(r,p)}catch(E){throw bt(E)}return R(L)},(d,r)=>xe(d,r,!0)]),ie.set(g,b)),b},\"transformSync\"),gr=f(async(s,e,n)=>{const i={...dt,format:\"esm\",sourcefile:e,...n},o=Ne([s,JSON.stringify(i),Ae,Je].join(\"-\"));let c=ie.get(o);return c||(c=await ur(e,s,[async(u,p)=>{const g=gt(i);let b;try{b=await zt(p,i)}catch(d){throw bt(d)}return g(b)},(u,p)=>xe(u,p,!0)]),ie.set(o,c)),c},\"transform\");export{dr as a,xe as b,gn as i,Ge as r,gr as t};\n","var a=Object.defineProperty;var o=(e,n)=>a(e,\"name\",{value:n,configurable:!0});import p from\"node:net\";import{g}from\"./get-pipe-path-BHW2eJdv.mjs\";const m=o(()=>new Promise(e=>{const n=g(process.ppid),t=p.createConnection(n,()=>{e(o(i=>{const r=Buffer.from(JSON.stringify(i)),s=Buffer.alloc(4);s.writeInt32BE(r.length,0),t.write(Buffer.concat([s,r]))},\"sendToParent\"))});t.on(\"error\",()=>{e()}),t.unref()}),\"connectToServer\"),c={send:void 0},f=m();f.then(e=>{c.send=e},()=>{});export{f as c,c as p};\n","var u=Object.defineProperty;var g=(s,n)=>u(s,\"name\",{value:n,configurable:!0});let t=!0;const l=typeof self<\"u\"?self:typeof window<\"u\"?window:typeof global<\"u\"?global:{};let i=0;if(l.process&&l.process.env&&l.process.stdout){const{FORCE_COLOR:s,NODE_DISABLE_COLORS:n,NO_COLOR:r,TERM:o,COLORTERM:c}=l.process.env;n||r||s===\"0\"?t=!1:s===\"1\"||s===\"2\"||s===\"3\"?t=!0:o===\"dumb\"?t=!1:\"CI\"in l.process.env&&[\"TRAVIS\",\"CIRCLECI\",\"APPVEYOR\",\"GITLAB_CI\",\"GITHUB_ACTIONS\",\"BUILDKITE\",\"DRONE\"].some(a=>a in l.process.env)?t=!0:t=process.stdout.isTTY,t&&(process.platform===\"win32\"||c&&(c===\"truecolor\"||c===\"24bit\")?i=3:o&&(o.endsWith(\"-256color\")||o.endsWith(\"256\"))?i=2:i=1)}let f={enabled:t,supportLevel:i};function e(s,n,r=1){const o=`\\x1B[${s}m`,c=`\\x1B[${n}m`,a=new RegExp(`\\\\x1b\\\\[${n}m`,\"g\");return p=>f.enabled&&f.supportLevel>=r?o+(\"\"+p).replace(a,o)+c:\"\"+p}g(e,\"kolorist\");const b=e(30,39),d=e(33,39),O=e(90,39),C=e(92,39),R=e(95,39),I=e(96,39),L=e(44,49),E=e(100,49),T=e(103,49);export{b as a,T as b,L as c,E as d,R as e,C as f,O as g,I as l,f as o,d as y};\n","var K=Object.defineProperty;var o=(s,e)=>K(s,\"name\",{value:e,configurable:!0});import{r as Y}from\"./get-pipe-path-BHW2eJdv.mjs\";import d from\"node:module\";import p from\"node:path\";import{fileURLToPath as O}from\"node:url\";import{parseTsconfig as V,getTsconfig as Z,createFilesMatcher as q,createPathsMatcher as ee}from\"get-tsconfig\";import se,{writeSync as te}from\"node:fs\";import{b as ne,i as ae,a as re}from\"./index-7AaEi15b.mjs\";import{p as U}from\"./client-BQVF1NaW.mjs\";import{inspect as oe}from\"node:util\";import{b as ce,a as ie,c as le,d as fe,o as W}from\"./index-gbaejti9.mjs\";const R=o(s=>{if(!s.startsWith(\"data:text/javascript,\"))return;const e=s.indexOf(\"?\");if(e===-1)return;const n=new URLSearchParams(s.slice(e+1)).get(\"filePath\");if(n)return n},\"getOriginalFilePath\"),D=o(s=>{const e=R(s);return e&&(d._cache[e]=d._cache[s],delete d._cache[s],s=e),s},\"interopCjsExports\"),me=o(s=>{const e=s.indexOf(\":\");if(e!==-1)return s.slice(0,e)},\"getScheme\"),N=o(s=>s[0]===\".\"&&(s[1]===\"/\"||s[1]===\".\"||s[2]===\"/\"),\"isRelativePath\"),j=o(s=>N(s)||p.isAbsolute(s),\"isFilePath\"),pe=o(s=>{if(j(s))return!0;const e=me(s);return e&&e!==\"node\"},\"requestAcceptsQuery\"),y=\"file://\",he=[\".ts\",\".tsx\",\".jsx\",\".mts\",\".cts\"],C=/\\.([cm]?ts|[tj]sx)($|\\?)/,de=/[/\\\\].+\\.(?:cts|cjs)(?:$|\\?)/,ue=/\\.json($|\\?)/,E=/\\/(?:$|\\?)/,ge=/^(?:@[^/]+\\/)?[^/\\\\]+$/,Q=`${p.sep}node_modules${p.sep}`;let M,_,S=!1;const A=o(s=>{let e=null;if(s){const a=p.resolve(s);e={path:a,config:V(a)}}else{try{e=Z()}catch{}if(!e)return}M=q(e),_=ee(e),S=e?.config.compilerOptions?.allowJs??!1},\"loadTsconfig\"),T=o(s=>Array.from(s).length>0?`?${s.toString()}`:\"\",\"urlSearchParamsStringify\"),Pe=`\n//# sourceMappingURL=data:application/json;base64,`,I=o(()=>process.sourceMapsEnabled??!0,\"shouldApplySourceMap\"),F=o(({code:s,map:e})=>s+Pe+Buffer.from(JSON.stringify(e),\"utf8\").toString(\"base64\"),\"inlineSourceMap\"),v=Number(process.env.TSX_DEBUG);v&&(W.enabled=!0,W.supportLevel=3);const J=o(s=>(e,...a)=>{if(!v||e>v)return;const n=`${fe(` tsx P${process.pid} `)} ${s}`,t=a.map(r=>typeof r==\"string\"?r:oe(r,{colors:!0})).join(\" \");te(1,`${n} ${t}\n`)},\"createLog\"),P=J(ce(ie(\" CJS \"))),je=J(le(\" ESM \")),be=[\".cts\",\".mts\",\".ts\",\".tsx\",\".jsx\"],xe=[\".js\",\".cjs\",\".mjs\"],k=[\".ts\",\".tsx\",\".jsx\"],$=o((s,e,a,n)=>{const t=Object.getOwnPropertyDescriptor(s,e);t?.set?s[e]=a:(!t||t.configurable)&&Object.defineProperty(s,e,{value:a,enumerable:t?.enumerable||n?.enumerable,writable:n?.writable??(t?t.writable:!0),configurable:n?.configurable??(t?t.configurable:!0)})},\"safeSet\"),ye=o((s,e,a)=>{const n=e[\".js\"],t=o((r,c)=>{if(s.enabled===!1)return n(r,c);const[i,f]=c.split(\"?\");if((new URLSearchParams(f).get(\"namespace\")??void 0)!==a)return n(r,c);P(2,\"load\",{filePath:c}),r.id.startsWith(\"data:text/javascript,\")&&(r.path=p.dirname(i)),U?.send&&U.send({type:\"dependency\",path:i});const u=be.some(m=>i.endsWith(m)),g=xe.some(m=>i.endsWith(m));if(!u&&!g)return n(r,i);let h=se.readFileSync(i,\"utf8\");if(i.endsWith(\".cjs\")){const m=ne(c,h);m&&(h=I()?F(m):m.code)}else if(u||ae(h)){const m=re(h,c,{tsconfigRaw:M?.(i)});h=I()?F(m):m.code}P(1,\"loaded\",{filePath:i}),r._compile(h,i)},\"transformer\");$(e,\".js\",t);for(const r of k)$(e,r,t,{enumerable:!a,writable:!0,configurable:!0});return $(e,\".mjs\",t,{writable:!0,configurable:!0}),()=>{e[\".js\"]===t&&(e[\".js\"]=n);for(const r of[...k,\".mjs\"])e[r]===t&&delete e[r]}},\"createExtensions\"),Ee=o(s=>e=>{if((e===\".\"||e===\"..\"||e.endsWith(\"/..\"))&&(e+=\"/\"),E.test(e)){let a=p.join(e,\"index.js\");e.startsWith(\"./\")&&(a=`./${a}`);try{return s(a)}catch{}}try{return s(e)}catch(a){const n=a;if(n.code===\"MODULE_NOT_FOUND\")try{return s(`${e}${p.sep}index.js`)}catch{}throw n}},\"createImplicitResolver\"),B=[\".js\",\".json\"],G=[\".ts\",\".tsx\",\".jsx\"],_e=[...G,...B],Se=[...B,...G],b=Object.create(null);b[\".js\"]=[\".ts\",\".tsx\",\".js\",\".jsx\"],b[\".jsx\"]=[\".tsx\",\".ts\",\".jsx\",\".js\"],b[\".cjs\"]=[\".cts\"],b[\".mjs\"]=[\".mts\"];const X=o(s=>{const e=s.split(\"?\"),a=e[1]?`?${e[1]}`:\"\",[n]=e,t=p.extname(n),r=[],c=b[t];if(c){const f=n.slice(0,-t.length);r.push(...c.map(l=>f+l+a))}const i=!(s.startsWith(y)||j(n))||n.includes(Q)||n.includes(\"/node_modules/\")?Se:_e;return r.push(...i.map(f=>n+f+a)),r},\"mapTsExtensions\"),w=o((s,e,a)=>{if(P(3,\"resolveTsFilename\",{request:e,isDirectory:E.test(e),isTsParent:a,allowJs:S}),E.test(e)||!a&&!S)return;const n=X(e);if(n)for(const t of n)try{return s(t)}catch(r){const{code:c}=r;if(c!==\"MODULE_NOT_FOUND\"&&c!==\"ERR_PACKAGE_PATH_NOT_EXPORTED\")throw r}},\"resolveTsFilename\"),ve=o((s,e)=>a=>{if(P(3,\"resolveTsFilename\",{request:a,isTsParent:e,isFilePath:j(a)}),j(a)){const n=w(s,a,e);if(n)return n}try{return s(a)}catch(n){const t=n;if(t.code===\"MODULE_NOT_FOUND\"){if(t.path){const c=t.message.match(/^Cannot find module '([^']+)'$/);if(c){const f=c[1],l=w(s,f,e);if(l)return l}const i=t.message.match(/^Cannot find module '([^']+)'. Please verify that the package.json has a valid \"main\" entry$/);if(i){const f=i[1],l=w(s,f,e);if(l)return l}}const r=w(s,a,e);if(r)return r}throw t}},\"createTsExtensionResolver\"),z=\"at cjsPreparseModuleExports (node:internal\",we=o(s=>{const e=s.stack.split(`\n`).slice(1);return e[1].includes(z)||e[2].includes(z)},\"isFromCjsLexer\"),Me=o((s,e)=>{const a=s.split(\"?\"),n=new URLSearchParams(a[1]);if(e?.filename){const t=R(e.filename);let r;if(t){const f=t.split(\"?\"),l=f[0];r=f[1],e.filename=l,e.path=p.dirname(l),e.paths=d._nodeModulePaths(e.path),d._cache[l]=e}r||(r=e.filename.split(\"?\")[1]);const i=new URLSearchParams(r).get(\"namespace\");i&&n.append(\"namespace\",i)}return[a[0],n,(t,r)=>(p.isAbsolute(t)&&!t.endsWith(\".json\")&&!t.endsWith(\".node\")&&!(r===0&&we(new Error))&&(t+=T(n)),t)]},\"preserveQuery\"),Te=o((s,e,a)=>{if(s.startsWith(y)&&(s=O(s)),_&&!j(s)&&!e?.filename?.includes(Q)){const n=_(s);for(const t of n)try{return a(t)}catch{}}return a(s)},\"resolveTsPaths\"),Fe=o((s,e,a)=>(n,t,...r)=>{if(s.enabled===!1)return e(n,t,...r);n=D(n);const[c,i,f]=Me(n,t);if((i.get(\"namespace\")??void 0)!==a)return e(n,t,...r);P(2,\"resolve\",{request:n,parent:t?.filename??t,restOfArgs:r});let l=o(g=>e(g,t,...r),\"nextResolveSimple\");l=ve(l,!!(a||t?.filename&&C.test(t.filename))),l=Ee(l);const u=f(Te(c,t,l),r.length);return P(1,\"resolved\",{request:n,parent:t?.filename??t,resolved:u}),u},\"createResolveFilename\"),H=o((s,e)=>{if(!e)throw new Error(\"The current file path (__filename or import.meta.url) must be provided in the second argument of tsx.require()\");return s.startsWith(\".\")?((typeof e==\"string\"&&e.startsWith(y)||e instanceof URL)&&(e=O(e)),p.resolve(p.dirname(e),s)):s},\"resolveContext\"),$e=o(s=>{const{sourceMapsEnabled:e}=process,a={enabled:!0};A(process.env.TSX_TSCONFIG_PATH),process.setSourceMapsEnabled(!0);const n=d._resolveFilename,t=Fe(a,n,s?.namespace);d._resolveFilename=t;const r=ye(a,d._extensions,s?.namespace),c=o(()=>{e===!1&&process.setSourceMapsEnabled(!1),a.enabled=!1,d._resolveFilename===t&&(d._resolveFilename=n),r()},\"unregister\");if(s?.namespace){const i=o((l,u)=>{const g=H(l,u),[h,m]=g.split(\"?\"),x=new URLSearchParams(m);return s.namespace&&!h.startsWith(\"node:\")&&x.set(\"namespace\",s.namespace),Y(h+T(x))},\"scopedRequire\");c.require=i;const f=o((l,u,g)=>{const h=H(l,u),[m,x]=h.split(\"?\"),L=new URLSearchParams(x);return s.namespace&&!m.startsWith(\"node:\")&&L.set(\"namespace\",s.namespace),t(m+T(L),module,!1,g)},\"scopedResolve\");c.resolve=f,c.unregister=c}return c},\"register\");export{D as a,ue as b,de as c,je as d,C as e,y as f,M as g,F as h,ge as i,v as j,pe as k,A as l,_ as m,E as n,X as o,N as p,S as q,$e as r,he as t};\n","var d=Object.defineProperty;var o=(r,s)=>d(r,\"name\",{value:s,configurable:!0});import m from\"node:module\";import{MessageChannel as u}from\"node:worker_threads\";import{f as g,a as v}from\"./register-CFH5oNdT.mjs\";import{pathToFileURL as h}from\"node:url\";const w=o(r=>(s,e)=>{if(!e)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const a=e.startsWith(g)?e:h(e).toString();return import(`tsx://${JSON.stringify({specifier:s,parentURL:a,namespace:r})}`)},\"createScopedImport\");let l=!1;const E=o(r=>{if(!m.register)throw new Error(`This version of Node.js (${process.version}) does not support module.register(). Please upgrade to Node v18.19 or v20.6 and above.`);if(!l){const{_resolveFilename:t}=m;m._resolveFilename=(p,...c)=>t(v(p),...c),l=!0}const{sourceMapsEnabled:s}=process;process.setSourceMapsEnabled(!0);const{port1:e,port2:a}=new u;m.register(`./esm/index.mjs?${Date.now()}`,{parentURL:import.meta.url,data:{port:a,namespace:r?.namespace,tsconfig:r?.tsconfig},transferList:[a]});const f=r?.onImport,n=f&&(t=>{t.type===\"load\"&&f(t.url)});n&&(e.on(\"message\",n),e.unref());const i=o(()=>(s===!1&&process.setSourceMapsEnabled(!1),n&&e.off(\"message\",n),e.postMessage(\"deactivate\"),new Promise(t=>{const p=o(c=>{c.type===\"deactivated\"&&(t(),e.off(\"message\",p))},\"onDeactivated\");e.on(\"message\",p)})),\"unregister\");return r?.namespace&&(i.import=w(r.namespace),i.unregister=i),i},\"register\");export{E as r};\n","var m=Object.defineProperty;var a=(r,t)=>m(r,\"name\",{value:t,configurable:!0});import{r as o}from\"./get-pipe-path-BHW2eJdv.mjs\";import{r as n}from\"./register-CFH5oNdT.mjs\";let e;const s=a((r,t)=>(e||(e=n({namespace:Date.now().toString()})),e.require(r,t)),\"tsxRequire\"),i=a((r,t,c)=>(e||(e=n({namespace:Date.now().toString()})),e.resolve(r,t,c)),\"resolve\");i.paths=o.resolve.paths,s.resolve=i,s.main=o.main,s.extensions=o.extensions,s.cache=o.cache;export{s as t};\n","var i=Object.defineProperty;var o=(e,t)=>i(e,\"name\",{value:t,configurable:!0});const n=o((e,t)=>{const r=e[0]-t[0];if(r===0){const s=e[1]-t[1];return s===0?e[2]>=t[2]:s>0}return r>0},\"isVersionGreaterOrEqual\"),a=process.versions.node.split(\".\").map(Number),u=o((e,t=a)=>{for(let r=0;r<e.length;r+=1){const s=e[r];if(r===e.length-1||t[0]===s[0])return n(t,s)}return!1},\"isFeatureSupported\"),c=[[18,19,0],[20,6,0]],f=[[18,19,0],[20,10,0],[21,0,0]],l=[[21,0,0]],m=[[20,11,0],[21,3,0]];export{f as a,m as e,u as i,c as m,l as t};\n","var s=Object.defineProperty;var i=(r,t)=>s(r,\"name\",{value:t,configurable:!0});import{r as p}from\"../../register-B7jrtLTO.mjs\";import\"../../get-pipe-path-BHW2eJdv.mjs\";import{r as n,i as c,c as u}from\"../../register-CFH5oNdT.mjs\";import\"../../require-DQxpCAr4.mjs\";import{i as g,e as d}from\"../../node-features-_8ZFwP_x.mjs\";import\"node:module\";import\"node:worker_threads\";import\"node:url\";import\"module\";import\"node:path\";import\"../../temporary-directory-CwHp0_NW.mjs\";import\"node:os\";import\"get-tsconfig\";import\"node:fs\";import\"../../index-7AaEi15b.mjs\";import\"esbuild\";import\"node:crypto\";import\"../../client-BQVF1NaW.mjs\";import\"node:net\";import\"node:util\";import\"../../index-gbaejti9.mjs\";const f=i((r,t)=>{if(!t||typeof t==\"object\"&&!t.parentURL)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const e=typeof t==\"string\",o=e?t:t.parentURL,m=Date.now().toString(),a=n({namespace:m});return!g(d)&&!c.test(r)&&u.test(r)?Promise.resolve(a.require(r,o)):p({namespace:m,...e?{}:t}).import(r,o)},\"tsImport\");export{p as register,f as tsImport};\n","import 'dotenv/config'\nimport { Command } from 'commander'\nimport { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs'\nimport { resolve, join, dirname } from 'node:path'\nimport { pathToFileURL, fileURLToPath } from 'node:url'\nimport type { BenchmarkResult } from './runner.js'\nimport type { ScoreResult } from './scorers/types.js'\nimport type { Arena } from './arena.js'\nimport { defineArena } from './arena.js'\nimport type { CiOptions } from './ci.js'\nimport { consoleReporter } from './reporter/console.js'\nimport { jsonReporter } from './reporter/json.js'\nimport { markdownReporter, COMMENT_MARKER } from './reporter/markdown.js'\nimport { htmlReporter } from './reporter/html.js'\nimport { loadBaseline, saveBaseline, computeStats, compareResults } from './ci.js'\nimport { detectGitHubContext, upsertPrComment } from './github.js'\nimport { formatCost } from './utils/format.js'\nimport { listPacks } from './packs/index.js'\nimport { buildPackConfig } from './packs/loader.js'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\n\nconst program = new Command()\n\nprogram\n .name('duelist')\n .description('Pit LLM providers against each other on agent tasks.')\n .version(getVersion())\n\nprogram\n .command('init')\n .description('Scaffold an arena.config.ts in the current directory')\n .option('--force', 'Overwrite existing config file')\n .action((opts: { force?: boolean }) => {\n const target = resolve('arena.config.ts')\n\n if (existsSync(target) && !opts.force) {\n console.error('arena.config.ts already exists. Use --force to overwrite.')\n process.exit(1)\n }\n\n // Try to read from the bundled templates directory first,\n // fall back to an inline template\n const templatePath = join(__dirname, '..', 'templates', 'arena.config.ts')\n let template: string\n\n if (existsSync(templatePath)) {\n template = readFileSync(templatePath, 'utf-8')\n } else {\n template = DEFAULT_TEMPLATE\n }\n\n writeFileSync(target, template)\n console.log(existsSync(target) && opts.force ? 'Overwrote arena.config.ts' : 'Created arena.config.ts')\n console.log('')\n console.log('Next steps:')\n console.log(' 1. export OPENAI_API_KEY=sk-...')\n console.log(' 2. npx duelist run')\n })\n\nprogram\n .command('run')\n .description('Run benchmarks defined in your arena config')\n .option('-c, --config <path>', 'Path to config file', 'arena.config.ts')\n .option('--pack <names>', 'Run built-in task pack(s), comma-separated. Use \"list\" to see available packs.')\n .option('--reporter <type>', 'Output format: console, json, or html', 'console')\n .option('--output <path>', 'Output file path (used with html reporter)', 'duelist-report.html')\n .option('-q, --quiet', 'Suppress per-result progress (show only final report)')\n .action(async (opts: { config: string; pack?: string; reporter: string; output: string; quiet?: boolean }) => {\n if (opts.pack === 'list') {\n printPackList()\n return\n }\n\n if (!['console', 'json', 'html'].includes(opts.reporter)) {\n console.error(`Unknown reporter \"${opts.reporter}\". Use \"console\", \"json\", or \"html\".`)\n process.exit(1)\n }\n\n const typedArena = opts.pack\n ? await loadArenaWithPacks(opts.pack, opts.config)\n : await loadArenaConfig(opts.config)\n\n try {\n // Live progress: show per-result lines unless --quiet or json\n const showProgress = opts.reporter !== 'json' && !opts.quiet\n const onResult = showProgress ? logResult : undefined\n\n const results = await typedArena.run({ onResult })\n\n if (opts.reporter === 'json') {\n console.log(jsonReporter(results))\n } else if (opts.reporter === 'html') {\n const html = htmlReporter(results)\n const outPath = resolve(opts.output)\n mkdirSync(dirname(outPath), { recursive: true })\n writeFileSync(outPath, html)\n console.log(`\\nHTML report written to ${outPath}`)\n } else {\n console.log('')\n consoleReporter(results, { sparklines: typedArena.config?.sparklines })\n }\n\n // Exit with non-zero if every single result errored\n const allFailed = results.length > 0 && results.every((r) => r.error)\n if (allFailed) process.exit(1)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n console.error(`Benchmark failed: ${message}`)\n process.exit(1)\n }\n })\n\n// ── CI command ───────────────────────────────────────────────────────\n\nfunction collectThreshold(value: string, previous: Map<string, number>): Map<string, number> {\n const [scorer, delta] = value.split('=')\n if (!scorer || delta === undefined || isNaN(Number(delta))) {\n console.error(`Invalid threshold format: \"${value}\". Expected scorer=delta (e.g., correctness=0.1)`)\n process.exit(1)\n }\n previous.set(scorer, Number(delta))\n return previous\n}\n\nprogram\n .command('ci')\n .description('Run benchmarks, compare against baseline, and enforce quality gates')\n .option('-c, --config <path>', 'Path to config file', 'arena.config.ts')\n .option('--pack <names>', 'Run built-in task pack(s), comma-separated. Use \"list\" to see available packs.')\n .option('--baseline <path>', 'Baseline JSON file', '.duelist/baseline.json')\n .option('--budget <dollars>', 'Max total cost in USD', parseFloat)\n .option('--threshold <scorer=delta>', 'Regression threshold (repeatable)', collectThreshold, new Map<string, number>())\n .option('--update-baseline', 'Save results as new baseline after passing')\n .option('--comment', 'Post results as GitHub PR comment')\n .option('-q, --quiet', 'Suppress per-result progress')\n .action(async (opts: {\n config: string\n pack?: string\n baseline: string\n budget?: number\n threshold: Map<string, number>\n updateBaseline?: boolean\n comment?: boolean\n quiet?: boolean\n }) => {\n if (opts.pack === 'list') {\n printPackList()\n return\n }\n\n const ciOpts: CiOptions = {\n configPath: opts.config,\n baselinePath: resolve(opts.baseline),\n budget: opts.budget,\n thresholds: opts.threshold,\n updateBaseline: opts.updateBaseline ?? false,\n comment: opts.comment ?? false,\n quiet: opts.quiet ?? false,\n }\n\n const typedArena = opts.pack\n ? await loadArenaWithPacks(opts.pack, ciOpts.configPath)\n : await loadArenaConfig(ciOpts.configPath)\n\n // 1. Run benchmarks\n console.log('Running benchmarks...')\n const onResult = ciOpts.quiet ? undefined : logResult\n let results: BenchmarkResult[]\n try {\n results = await typedArena.run({ onResult })\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n console.error(`Benchmark failed: ${message}`)\n process.exit(1)\n }\n\n // 2. Load baseline (if exists)\n const baseline = loadBaseline(ciOpts.baselinePath)\n const baselineStats = baseline ? computeStats(baseline.results) : null\n\n if (baseline) {\n console.log(`Loaded baseline from ${ciOpts.baselinePath} (${baseline.timestamp})`)\n } else {\n console.log('No baseline found — this run establishes the first baseline.')\n }\n\n // 3. Compare\n const currentStats = computeStats(results)\n const report = compareResults(baselineStats, currentStats, ciOpts.thresholds, ciOpts.budget, results)\n\n // 4. Console output\n console.log('')\n consoleReporter(results, { sparklines: typedArena.config?.sparklines ?? true })\n\n // Print CI verdict\n if (report.flakyResults.length > 0) {\n console.log(`⚠ ${report.flakyResults.length} flaky result(s) detected (high variance)`)\n }\n if (report.cost.overBudget) {\n console.log(`🔴 Budget exceeded: $${report.cost.totalUsd.toFixed(4)} > $${report.cost.budget!.toFixed(2)}`)\n }\n for (const reason of report.failureReasons) {\n console.log(`🔴 ${reason}`)\n }\n if (!report.failed) {\n console.log('🟢 CI passed')\n }\n\n // 5. Post PR comment if requested\n if (ciOpts.comment) {\n const ghCtx = detectGitHubContext()\n if (ghCtx) {\n const markdown = markdownReporter(report, results)\n try {\n await upsertPrComment(ghCtx, markdown, COMMENT_MARKER)\n console.log('Posted results to PR comment.')\n } catch (err) {\n console.warn(`Failed to post PR comment: ${err instanceof Error ? err.message : err}`)\n }\n } else {\n console.warn('--comment: not in a GitHub Actions PR context, skipping.')\n }\n }\n\n // 6. Update baseline if passing and requested\n if (ciOpts.updateBaseline && !report.failed) {\n saveBaseline(ciOpts.baselinePath, results)\n console.log(`Baseline saved to ${ciOpts.baselinePath}`)\n } else if (ciOpts.updateBaseline && report.failed) {\n console.log('Baseline not updated (CI failed).')\n }\n\n // 7. Exit code\n process.exit(report.failed ? 1 : 0)\n })\n\nprogram.parse()\n\nfunction printPackList(): void {\n const packs = listPacks()\n if (packs.length === 0) {\n console.log('No packs available.')\n return\n }\n const nameWidth = Math.max(...packs.map(p => p.name.length)) + 2\n console.log('Available task packs:\\n')\n for (const p of packs) {\n const tasks = `${p.taskCount} tasks`\n console.log(` ${p.name.padEnd(nameWidth)} ${tasks.padEnd(9)} ${p.description}`)\n }\n console.log(`\\nRun: npx duelist run --pack <name>`)\n console.log(`Combine: npx duelist run --pack structured-output,tool-calling`)\n}\n\nasync function loadArenaWithPacks(packNames: string, configOpt: string): Promise<Arena> {\n const configPath = resolve(configOpt)\n\n if (!existsSync(configPath)) {\n console.error('No arena.config.ts found. Create one with `npx duelist init` to configure')\n console.error('your providers, then re-run with --pack.')\n process.exit(1)\n }\n\n const userArena = await loadArenaConfig(configOpt)\n const packs = packNames.split(',').map((s) => s.trim())\n const packConfig = buildPackConfig({\n packs,\n providers: userArena.config.providers,\n runs: userArena.config.runs,\n timeout: userArena.config.timeout,\n })\n\n return defineArena(packConfig)\n}\n\nasync function loadArenaConfig(configOpt: string): Promise<Arena> {\n const configPath = resolve(configOpt)\n\n if (!existsSync(configPath)) {\n console.error(`Config not found: ${configPath}`)\n console.error('')\n console.error('Create one with: npx duelist init')\n process.exit(1)\n }\n\n let mod: Record<string, unknown>\n try {\n if (configPath.endsWith('.ts')) {\n mod = await importTypeScript(configPath)\n } else {\n mod = (await import(pathToFileURL(configPath).href)) as Record<string, unknown>\n }\n } catch (err) {\n console.error(`Failed to load config: ${configPath}`)\n console.error('')\n if (err instanceof SyntaxError) {\n console.error(`Syntax error: ${err.message}`)\n } else {\n console.error(err instanceof Error ? err.message : String(err))\n }\n process.exit(1)\n }\n\n const arena = mod.default ?? mod.arena\n if (!arena || typeof arena !== 'object' || !('run' in arena)) {\n console.error('Config must export a default arena created with defineArena().')\n console.error(`Loaded from: ${configPath}`)\n process.exit(1)\n }\n\n const maybeConfig = (arena as { config?: unknown }).config\n if (maybeConfig === undefined || maybeConfig === null || typeof maybeConfig !== 'object') {\n ;(arena as unknown as { config: Record<string, unknown> }).config = {}\n }\n return arena as Arena\n}\n\nfunction logResult(result: BenchmarkResult): void {\n if (result.error) {\n console.log(` ${result.providerId} × ${result.taskName}: ERROR ${result.error}`)\n } else {\n const scores = result.scores.map((s) => `${s.name}=${formatScoreForLog(s)}`).join(' ')\n console.log(` ${result.providerId} × ${result.taskName}: ${scores}`)\n }\n}\n\nasync function importTypeScript(filePath: string): Promise<Record<string, unknown>> {\n try {\n await import('tsx/esm/api')\n } catch {\n // tsx not available — ignore\n }\n\n try {\n const url = pathToFileURL(filePath).href\n return (await import(url)) as Record<string, unknown>\n } catch (err) {\n console.error(\n 'Cannot import .ts config directly. Install tsx as a dev dependency:\\n' +\n ' npm install -D tsx\\n' +\n 'Or rename your config to arena.config.js\\n'\n )\n console.error('Underlying error:', err instanceof Error ? err.message : err)\n process.exit(1)\n }\n}\n\nfunction formatScoreForLog(s: ScoreResult): string {\n const details = s.details as Record<string, unknown> | undefined\n if (s.name === 'latency' && details?.ms != null) {\n return `${Math.round(details.ms as number)}ms`\n }\n if (s.name === 'cost' && details?.estimatedUsd != null) {\n return formatCost(details.estimatedUsd as number)\n }\n // Surface failure reasons for scorers that return -1 (e.g. llm-judge)\n if (s.value < 0 && details?.reason) {\n return `SKIP (${details.reason})`\n }\n return String(s.value)\n}\n\nfunction getVersion(): string {\n try {\n const pkg = readFileSync(join(__dirname, '..', 'package.json'), 'utf-8')\n return JSON.parse(pkg).version ?? '0.0.0'\n } catch {\n return '0.0.0'\n }\n}\n\nconst DEFAULT_TEMPLATE = `// ─── Agent Duelist Config ─────────────────────────────────────────────\n//\n// Set your API key before running:\n// export OPENAI_API_KEY=sk-...\n//\n// Then run:\n// npx duelist run\n//\n// Docs: https://github.com/DataGobes/agent-duelist\n// ─────────────────────────────────────────────────────────────────────\n\nimport { defineArena, openai } from 'agent-duelist'\nimport { z } from 'zod'\n\nexport default defineArena({\n providers: [\n openai('gpt-5-mini'),\n // Add more providers to compare:\n // openai('gpt-5.2'),\n // azureOpenai('gpt-5-mini'),\n // anthropic('claude-sonnet-4.6'),\n // gemini('gemini-3-flash-preview'),\n ],\n\n tasks: [\n {\n name: 'extract-company',\n prompt:\n 'Extract the company name and role as JSON: \"I work at Acme Corp as a senior engineer.\" Return {\"company\": \"...\", \"role\": \"...\"}',\n expected: { company: 'Acme Corp', role: 'senior engineer' },\n schema: z.object({ company: z.string(), role: z.string() }),\n },\n {\n name: 'classify-sentiment',\n prompt:\n 'Classify the sentiment as \"positive\", \"negative\", or \"neutral\". Return only the word.\\\\n\\\\nReview: \"The product arrived on time and works exactly as described. Very happy!\"',\n expected: 'positive',\n },\n {\n name: 'summarize',\n prompt:\n 'Summarize in one sentence: The quick brown fox jumps over the lazy dog. This pangram contains every letter of the English alphabet and has been used since the late 1800s.',\n },\n ],\n\n scorers: ['latency', 'cost', 'correctness'],\n runs: 1,\n})\n`\n","import type { ScorerFn } from './types.js'\n\n// Normalizes latency to 0–1 where 1 = fast (≤500ms), 0 = slow (≥10s)\nconst MIN_MS = 500\nconst MAX_MS = 10_000\n\nexport const latencyScorer: ScorerFn = ({ result }) => {\n const clamped = Math.max(MIN_MS, Math.min(MAX_MS, result.latencyMs))\n const value = 1 - (clamped - MIN_MS) / (MAX_MS - MIN_MS)\n\n return {\n name: 'latency',\n value: Math.round(value * 100) / 100,\n details: { ms: result.latencyMs },\n }\n}\n","{\n \"_meta\": {\n \"source\": \"OpenRouter API — all providers (https://openrouter.ai/api/v1/models)\",\n \"updatedAt\": \"2026-02-28\",\n \"unit\": \"USD per token\"\n },\n \"models\": {\n \"ai21/jamba-large-1.7\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"aion-labs/aion-1.0\": {\n \"inputPerToken\": 0.000004,\n \"outputPerToken\": 0.000008\n },\n \"aion-labs/aion-1.0-mini\": {\n \"inputPerToken\": 7e-7,\n \"outputPerToken\": 0.0000014\n },\n \"aion-labs/aion-2.0\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000016\n },\n \"aion-labs/aion-rp-llama-3.1-8b\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000016\n },\n \"alfredpros/codellama-7b-instruct-solidity\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000012\n },\n \"alibaba/tongyi-deepresearch-30b-a3b\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 4.5e-7\n },\n \"allenai/molmo-2-8b\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-2-0325-32b-instruct\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-3-32b-think\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 5e-7\n },\n \"allenai/olmo-3-7b-instruct\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-3-7b-think\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 2e-7\n },\n \"allenai/olmo-3.1-32b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"alpindale/goliath-120b\": {\n \"inputPerToken\": 0.00000375,\n \"outputPerToken\": 0.0000075\n },\n \"amazon/nova-2-lite-v1\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000025\n },\n \"amazon/nova-lite-v1\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 2.4e-7\n },\n \"amazon/nova-micro-v1\": {\n \"inputPerToken\": 3.5e-8,\n \"outputPerToken\": 1.4e-7\n },\n \"amazon/nova-premier-v1\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.0000125\n },\n \"amazon/nova-pro-v1\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000032\n },\n \"anthracite-org/magnum-v4-72b\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000005\n },\n \"anthropic/claude-3-haiku\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.00000125\n },\n \"anthropic/claude-3.5-haiku\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.000004\n },\n \"anthropic/claude-3.5-sonnet\": {\n \"inputPerToken\": 0.000006,\n \"outputPerToken\": 0.00003\n },\n \"anthropic/claude-3.7-sonnet\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-3.7-sonnet:thinking\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-haiku-4.5\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000005\n },\n \"anthropic/claude-opus-4\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.000075\n },\n \"anthropic/claude-opus-4.1\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.000075\n },\n \"anthropic/claude-opus-4.5\": {\n \"inputPerToken\": 0.000005,\n \"outputPerToken\": 0.000025\n },\n \"anthropic/claude-opus-4.6\": {\n \"inputPerToken\": 0.000005,\n \"outputPerToken\": 0.000025\n },\n \"anthropic/claude-sonnet-4\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-sonnet-4.5\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"anthropic/claude-sonnet-4.6\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"arcee-ai/coder-large\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 8e-7\n },\n \"arcee-ai/maestro-reasoning\": {\n \"inputPerToken\": 9e-7,\n \"outputPerToken\": 0.0000033\n },\n \"arcee-ai/spotlight\": {\n \"inputPerToken\": 1.8e-7,\n \"outputPerToken\": 1.8e-7\n },\n \"arcee-ai/trinity-mini\": {\n \"inputPerToken\": 4.5e-8,\n \"outputPerToken\": 1.5e-7\n },\n \"arcee-ai/virtuoso-large\": {\n \"inputPerToken\": 7.5e-7,\n \"outputPerToken\": 0.0000012\n },\n \"baidu/ernie-4.5-21b-a3b\": {\n \"inputPerToken\": 7e-8,\n \"outputPerToken\": 2.8e-7\n },\n \"baidu/ernie-4.5-21b-a3b-thinking\": {\n \"inputPerToken\": 7e-8,\n \"outputPerToken\": 2.8e-7\n },\n \"baidu/ernie-4.5-300b-a47b\": {\n \"inputPerToken\": 2.8e-7,\n \"outputPerToken\": 0.0000011\n },\n \"baidu/ernie-4.5-vl-28b-a3b\": {\n \"inputPerToken\": 1.4e-7,\n \"outputPerToken\": 5.6e-7\n },\n \"baidu/ernie-4.5-vl-424b-a47b\": {\n \"inputPerToken\": 4.2e-7,\n \"outputPerToken\": 0.00000125\n },\n \"bytedance/seed-1.6\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"bytedance/seed-1.6-flash\": {\n \"inputPerToken\": 7.5e-8,\n \"outputPerToken\": 3e-7\n },\n \"bytedance/seed-2.0-mini\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"bytedance/ui-tars-1.5-7b\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 2e-7\n },\n \"cohere/command-a\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"cohere/command-r-08-2024\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"cohere/command-r-plus-08-2024\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"cohere/command-r7b-12-2024\": {\n \"inputPerToken\": 3.75e-8,\n \"outputPerToken\": 1.5e-7\n },\n \"deepcogito/cogito-v2.1-671b\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00000125\n },\n \"deepseek/deepseek-chat\": {\n \"inputPerToken\": 3.2e-7,\n \"outputPerToken\": 8.9e-7\n },\n \"deepseek/deepseek-chat-v3-0324\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 7.7e-7\n },\n \"deepseek/deepseek-chat-v3.1\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"deepseek/deepseek-r1\": {\n \"inputPerToken\": 7e-7,\n \"outputPerToken\": 0.0000025\n },\n \"deepseek/deepseek-r1-0528\": {\n \"inputPerToken\": 4.5e-7,\n \"outputPerToken\": 0.00000215\n },\n \"deepseek/deepseek-r1-distill-llama-70b\": {\n \"inputPerToken\": 7e-7,\n \"outputPerToken\": 8e-7\n },\n \"deepseek/deepseek-r1-distill-qwen-32b\": {\n \"inputPerToken\": 2.9e-7,\n \"outputPerToken\": 2.9e-7\n },\n \"deepseek/deepseek-v3\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 8.8e-7\n },\n \"deepseek/deepseek-v3.1-terminus\": {\n \"inputPerToken\": 2.1e-7,\n \"outputPerToken\": 7.9e-7\n },\n \"deepseek/deepseek-v3.1-terminus:exacto\": {\n \"inputPerToken\": 2.1e-7,\n \"outputPerToken\": 7.9e-7\n },\n \"deepseek/deepseek-v3.2\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 4e-7\n },\n \"deepseek/deepseek-v3.2-exp\": {\n \"inputPerToken\": 2.7e-7,\n \"outputPerToken\": 4.1e-7\n },\n \"deepseek/deepseek-v3.2-speciale\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"eleutherai/llemma_7b\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000012\n },\n \"essentialai/rnj-1-instruct\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 1.5e-7\n },\n \"google/gemini-2.0-flash\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.0-flash-001\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.0-flash-lite-001\": {\n \"inputPerToken\": 7.5e-8,\n \"outputPerToken\": 3e-7\n },\n \"google/gemini-2.5-flash\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000025\n },\n \"google/gemini-2.5-flash-image\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000025\n },\n \"google/gemini-2.5-flash-lite\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.5-flash-lite-preview-09-2025\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"google/gemini-2.5-pro\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"google/gemini-2.5-pro-preview\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"google/gemini-2.5-pro-preview-05-06\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"google/gemini-3-flash-preview\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 0.000003\n },\n \"google/gemini-3-pro-image-preview\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemini-3-pro-preview\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemini-3.1-flash-image-preview\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.0000015\n },\n \"google/gemini-3.1-pro-preview\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemini-3.1-pro-preview-customtools\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000012\n },\n \"google/gemma-2-27b-it\": {\n \"inputPerToken\": 6.5e-7,\n \"outputPerToken\": 6.5e-7\n },\n \"google/gemma-2-9b-it\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 9e-8\n },\n \"google/gemma-3-12b-it\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1.3e-7\n },\n \"google/gemma-3-27b-it\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1.5e-7\n },\n \"google/gemma-3-4b-it\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 8e-8\n },\n \"google/gemma-3n-e4b-it\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 4e-8\n },\n \"gryphe/mythomax-l2-13b\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 6e-8\n },\n \"ibm-granite/granite-4.0-h-micro\": {\n \"inputPerToken\": 1.7e-8,\n \"outputPerToken\": 1.1e-7\n },\n \"inception/mercury\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000001\n },\n \"inception/mercury-coder\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000001\n },\n \"inflection/inflection-3-pi\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"inflection/inflection-3-productivity\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"kwaipilot/kat-coder-pro\": {\n \"inputPerToken\": 2.07e-7,\n \"outputPerToken\": 8.28e-7\n },\n \"liquid/lfm-2-24b-a2b\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 1.2e-7\n },\n \"liquid/lfm-2.2-6b\": {\n \"inputPerToken\": 1e-8,\n \"outputPerToken\": 2e-8\n },\n \"liquid/lfm2-8b-a1b\": {\n \"inputPerToken\": 1e-8,\n \"outputPerToken\": 2e-8\n },\n \"mancer/weaver\": {\n \"inputPerToken\": 7.5e-7,\n \"outputPerToken\": 0.000001\n },\n \"meituan/longcat-flash-chat\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 8e-7\n },\n \"meta/llama-3-70b-instruct\": {\n \"inputPerToken\": 5.1e-7,\n \"outputPerToken\": 7.4e-7\n },\n \"meta/llama-3-8b-instruct\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 4e-8\n },\n \"meta/llama-3.1-405b\": {\n \"inputPerToken\": 0.000004,\n \"outputPerToken\": 0.000004\n },\n \"meta/llama-3.1-405b-instruct\": {\n \"inputPerToken\": 0.000004,\n \"outputPerToken\": 0.000004\n },\n \"meta/llama-3.1-70b-instruct\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 4e-7\n },\n \"meta/llama-3.1-8b-instruct\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 5e-8\n },\n \"meta/llama-3.2-11b-vision-instruct\": {\n \"inputPerToken\": 4.9e-8,\n \"outputPerToken\": 4.9e-8\n },\n \"meta/llama-3.2-1b-instruct\": {\n \"inputPerToken\": 2.7e-8,\n \"outputPerToken\": 2e-7\n },\n \"meta/llama-3.2-3b-instruct\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 2e-8\n },\n \"meta/llama-3.3-70b\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 3e-7\n },\n \"meta/llama-3.3-70b-instruct\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3.2e-7\n },\n \"meta/llama-4-maverick\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"meta/llama-4-scout\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 3e-7\n },\n \"meta/llama-guard-2-8b\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"meta/llama-guard-3-8b\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 6e-8\n },\n \"meta/llama-guard-4-12b\": {\n \"inputPerToken\": 1.8e-7,\n \"outputPerToken\": 1.8e-7\n },\n \"microsoft/phi-4\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 1.4e-7\n },\n \"microsoft/wizardlm-2-8x22b\": {\n \"inputPerToken\": 6.2e-7,\n \"outputPerToken\": 6.2e-7\n },\n \"minimax/minimax-01\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 0.0000011\n },\n \"minimax/minimax-m1\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000022\n },\n \"minimax/minimax-m2\": {\n \"inputPerToken\": 2.55e-7,\n \"outputPerToken\": 0.000001\n },\n \"minimax/minimax-m2-her\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000012\n },\n \"minimax/minimax-m2.1\": {\n \"inputPerToken\": 2.7e-7,\n \"outputPerToken\": 9.5e-7\n },\n \"minimax/minimax-m2.5\": {\n \"inputPerToken\": 2.95e-7,\n \"outputPerToken\": 0.0000012\n },\n \"mistral/codestral-2508\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 9e-7\n },\n \"mistral/devstral-2512\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/devstral-medium\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/devstral-small\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"mistral/ministral-14b-2512\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"mistral/ministral-3b-2512\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 1e-7\n },\n \"mistral/ministral-8b-2512\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 1.5e-7\n },\n \"mistral/mistral-7b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"mistral/mistral-7b-instruct-v0.1\": {\n \"inputPerToken\": 1.1e-7,\n \"outputPerToken\": 1.9e-7\n },\n \"mistral/mistral-7b-instruct-v0.3\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 2e-7\n },\n \"mistral/mistral-large\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mistral-large-2407\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mistral-large-2411\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mistral-large-2512\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 0.0000015\n },\n \"mistral/mistral-medium-3\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/mistral-medium-3.1\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"mistral/mistral-nemo\": {\n \"inputPerToken\": 2e-8,\n \"outputPerToken\": 4e-8\n },\n \"mistral/mistral-saba\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"mistral/mistral-small\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"mistral/mistral-small-24b-instruct-2501\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 8e-8\n },\n \"mistral/mistral-small-3.1-24b-instruct\": {\n \"inputPerToken\": 3.5e-7,\n \"outputPerToken\": 5.6e-7\n },\n \"mistral/mistral-small-3.2-24b-instruct\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 1.8e-7\n },\n \"mistral/mistral-small-creative\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"mistral/mixtral-8x22b-instruct\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/mixtral-8x7b-instruct\": {\n \"inputPerToken\": 5.4e-7,\n \"outputPerToken\": 5.4e-7\n },\n \"mistral/pixtral-large-2411\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000006\n },\n \"mistral/voxtral-small-24b-2507\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"moonshotai/kimi-k2\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 0.0000022\n },\n \"moonshotai/kimi-k2-0905\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.000002\n },\n \"moonshotai/kimi-k2-0905:exacto\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.0000025\n },\n \"moonshotai/kimi-k2-thinking\": {\n \"inputPerToken\": 4.7e-7,\n \"outputPerToken\": 0.000002\n },\n \"moonshotai/kimi-k2.5\": {\n \"inputPerToken\": 4.5e-7,\n \"outputPerToken\": 0.0000022\n },\n \"morph/morph-v3-fast\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000012\n },\n \"morph/morph-v3-large\": {\n \"inputPerToken\": 9e-7,\n \"outputPerToken\": 0.0000019\n },\n \"neversleep/llama-3.1-lumimaid-8b\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 6e-7\n },\n \"neversleep/noromaid-20b\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.00000175\n },\n \"nex-agi/deepseek-v3.1-nex-n1\": {\n \"inputPerToken\": 2.7e-7,\n \"outputPerToken\": 0.000001\n },\n \"nousresearch/hermes-2-pro-llama-3-8b\": {\n \"inputPerToken\": 1.4e-7,\n \"outputPerToken\": 1.4e-7\n },\n \"nousresearch/hermes-3-llama-3.1-405b\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000001\n },\n \"nousresearch/hermes-3-llama-3.1-70b\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 3e-7\n },\n \"nousresearch/hermes-4-405b\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000003\n },\n \"nousresearch/hermes-4-70b\": {\n \"inputPerToken\": 1.3e-7,\n \"outputPerToken\": 4e-7\n },\n \"nvidia/llama-3.1-nemotron-70b-instruct\": {\n \"inputPerToken\": 0.0000012,\n \"outputPerToken\": 0.0000012\n },\n \"nvidia/llama-3.3-nemotron-super-49b-v1.5\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"nvidia/nemotron-3-nano-30b-a3b\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 2e-7\n },\n \"nvidia/nemotron-nano-12b-v2-vl\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"nvidia/nemotron-nano-9b-v2\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1.6e-7\n },\n \"openai/gpt-3.5-turbo\": {\n \"inputPerToken\": 5e-7,\n \"outputPerToken\": 0.0000015\n },\n \"openai/gpt-3.5-turbo-0613\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-3.5-turbo-16k\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000004\n },\n \"openai/gpt-3.5-turbo-instruct\": {\n \"inputPerToken\": 0.0000015,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-4\": {\n \"inputPerToken\": 0.00003,\n \"outputPerToken\": 0.00006\n },\n \"openai/gpt-4-0314\": {\n \"inputPerToken\": 0.00003,\n \"outputPerToken\": 0.00006\n },\n \"openai/gpt-4-1106-preview\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00003\n },\n \"openai/gpt-4-turbo\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00003\n },\n \"openai/gpt-4-turbo-preview\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00003\n },\n \"openai/gpt-4.1\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"openai/gpt-4.1-mini\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000016\n },\n \"openai/gpt-4.1-nano\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"openai/gpt-4o\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-2024-05-13\": {\n \"inputPerToken\": 0.000005,\n \"outputPerToken\": 0.000015\n },\n \"openai/gpt-4o-2024-08-06\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-2024-11-20\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-audio-preview\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o-mini\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"openai/gpt-4o-mini-2024-07-18\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"openai/gpt-4o-mini-search-preview\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"openai/gpt-4o-search-preview\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-4o:extended\": {\n \"inputPerToken\": 0.000006,\n \"outputPerToken\": 0.000018\n },\n \"openai/gpt-5\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-chat\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-codex\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-image\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5-image-mini\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-5-mini\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-5-nano\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 4e-7\n },\n \"openai/gpt-5-pro\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.00012\n },\n \"openai/gpt-5.1\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-chat\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-codex\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-codex-max\": {\n \"inputPerToken\": 0.00000125,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-5.1-codex-mini\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"openai/gpt-5.2\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-5.2-chat\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-5.2-codex\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-5.2-pro\": {\n \"inputPerToken\": 0.000021,\n \"outputPerToken\": 0.000168\n },\n \"openai/gpt-5.3-codex\": {\n \"inputPerToken\": 0.00000175,\n \"outputPerToken\": 0.000014\n },\n \"openai/gpt-audio\": {\n \"inputPerToken\": 0.0000025,\n \"outputPerToken\": 0.00001\n },\n \"openai/gpt-audio-mini\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.0000024\n },\n \"openai/gpt-oss-120b\": {\n \"inputPerToken\": 3.9e-8,\n \"outputPerToken\": 1.9e-7\n },\n \"openai/gpt-oss-120b:exacto\": {\n \"inputPerToken\": 3.9e-8,\n \"outputPerToken\": 1.9e-7\n },\n \"openai/gpt-oss-20b\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 1.4e-7\n },\n \"openai/gpt-oss-safeguard-20b\": {\n \"inputPerToken\": 7.5e-8,\n \"outputPerToken\": 3e-7\n },\n \"openai/o1\": {\n \"inputPerToken\": 0.000015,\n \"outputPerToken\": 0.00006\n },\n \"openai/o1-pro\": {\n \"inputPerToken\": 0.00015,\n \"outputPerToken\": 0.0006\n },\n \"openai/o3\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"openai/o3-deep-research\": {\n \"inputPerToken\": 0.00001,\n \"outputPerToken\": 0.00004\n },\n \"openai/o3-mini\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"openai/o3-mini-high\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"openai/o3-pro\": {\n \"inputPerToken\": 0.00002,\n \"outputPerToken\": 0.00008\n },\n \"openai/o4-mini\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"openai/o4-mini-deep-research\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"openai/o4-mini-high\": {\n \"inputPerToken\": 0.0000011,\n \"outputPerToken\": 0.0000044\n },\n \"opengvlab/internvl3-78b\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 6e-7\n },\n \"perplexity/sonar\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000001\n },\n \"perplexity/sonar-deep-research\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"perplexity/sonar-pro\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"perplexity/sonar-pro-search\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"perplexity/sonar-reasoning-pro\": {\n \"inputPerToken\": 0.000002,\n \"outputPerToken\": 0.000008\n },\n \"prime-intellect/intellect-3\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 0.0000011\n },\n \"qwen/qwen-2.5-72b-instruct\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 3.9e-7\n },\n \"qwen/qwen-2.5-7b-instruct\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 1e-7\n },\n \"qwen/qwen-2.5-coder-32b-instruct\": {\n \"inputPerToken\": 2.0000000000000002e-7,\n \"outputPerToken\": 2.0000000000000002e-7\n },\n \"qwen/qwen-2.5-vl-7b-instruct\": {\n \"inputPerToken\": 2.0000000000000002e-7,\n \"outputPerToken\": 2.0000000000000002e-7\n },\n \"qwen/qwen-max\": {\n \"inputPerToken\": 0.0000016,\n \"outputPerToken\": 0.0000064\n },\n \"qwen/qwen-plus\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen-plus-2025-07-28\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen-plus-2025-07-28:thinking\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen-turbo\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 2e-7\n },\n \"qwen/qwen-vl-max\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 0.0000032\n },\n \"qwen/qwen-vl-plus\": {\n \"inputPerToken\": 2.1e-7,\n \"outputPerToken\": 6.3e-7\n },\n \"qwen/qwen2.5-coder-7b-instruct\": {\n \"inputPerToken\": 3e-8,\n \"outputPerToken\": 9e-8\n },\n \"qwen/qwen2.5-vl-32b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 6e-7\n },\n \"qwen/qwen2.5-vl-72b-instruct\": {\n \"inputPerToken\": 8e-7,\n \"outputPerToken\": 8e-7\n },\n \"qwen/qwen3-14b\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 2.4e-7\n },\n \"qwen/qwen3-235b-a22b\": {\n \"inputPerToken\": 4.55e-7,\n \"outputPerToken\": 0.00000182\n },\n \"qwen/qwen3-235b-a22b-2507\": {\n \"inputPerToken\": 7.1e-8,\n \"outputPerToken\": 1e-7\n },\n \"qwen/qwen3-30b-a3b\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 2.8e-7\n },\n \"qwen/qwen3-30b-a3b-instruct-2507\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 3e-7\n },\n \"qwen/qwen3-30b-a3b-thinking-2507\": {\n \"inputPerToken\": 5.1e-8,\n \"outputPerToken\": 3.4e-7\n },\n \"qwen/qwen3-32b\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 2.4e-7\n },\n \"qwen/qwen3-8b\": {\n \"inputPerToken\": 5e-8,\n \"outputPerToken\": 4e-7\n },\n \"qwen/qwen3-coder\": {\n \"inputPerToken\": 2.2e-7,\n \"outputPerToken\": 0.000001\n },\n \"qwen/qwen3-coder-30b-a3b-instruct\": {\n \"inputPerToken\": 7e-8,\n \"outputPerToken\": 2.7e-7\n },\n \"qwen/qwen3-coder-flash\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000015\n },\n \"qwen/qwen3-coder-next\": {\n \"inputPerToken\": 1.2e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"qwen/qwen3-coder-plus\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000005\n },\n \"qwen/qwen3-coder:exacto\": {\n \"inputPerToken\": 2.2e-7,\n \"outputPerToken\": 0.0000018\n },\n \"qwen/qwen3-max\": {\n \"inputPerToken\": 0.0000012,\n \"outputPerToken\": 0.000006\n },\n \"qwen/qwen3-max-thinking\": {\n \"inputPerToken\": 0.0000012,\n \"outputPerToken\": 0.000006\n },\n \"qwen/qwen3-next-80b-a3b-instruct\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 0.0000011\n },\n \"qwen/qwen3-next-80b-a3b-thinking\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 0.0000012\n },\n \"qwen/qwen3-vl-235b-a22b-instruct\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 8.8e-7\n },\n \"qwen/qwen3-vl-30b-a3b-instruct\": {\n \"inputPerToken\": 1.3e-7,\n \"outputPerToken\": 5.2e-7\n },\n \"qwen/qwen3-vl-32b-instruct\": {\n \"inputPerToken\": 1.04e-7,\n \"outputPerToken\": 4.16e-7\n },\n \"qwen/qwen3-vl-8b-instruct\": {\n \"inputPerToken\": 8e-8,\n \"outputPerToken\": 5e-7\n },\n \"qwen/qwen3-vl-8b-thinking\": {\n \"inputPerToken\": 1.17e-7,\n \"outputPerToken\": 0.000001365\n },\n \"qwen/qwen3.5-122b-a10b\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000032\n },\n \"qwen/qwen3.5-27b\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000024\n },\n \"qwen/qwen3.5-35b-a3b\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"qwen/qwen3.5-397b-a17b\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 0.0000035\n },\n \"qwen/qwen3.5-flash-02-23\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 4e-7\n },\n \"qwen/qwen3.5-plus-02-15\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 0.0000024\n },\n \"qwen/qwq-32b\": {\n \"inputPerToken\": 1.5e-7,\n \"outputPerToken\": 4e-7\n },\n \"raifle/sorcererlm-8x22b\": {\n \"inputPerToken\": 0.0000045,\n \"outputPerToken\": 0.0000045\n },\n \"relace/relace-apply-3\": {\n \"inputPerToken\": 8.5e-7,\n \"outputPerToken\": 0.00000125\n },\n \"relace/relace-search\": {\n \"inputPerToken\": 0.000001,\n \"outputPerToken\": 0.000003\n },\n \"sao10k/l3-euryale-70b\": {\n \"inputPerToken\": 0.00000148,\n \"outputPerToken\": 0.00000148\n },\n \"sao10k/l3-lunaris-8b\": {\n \"inputPerToken\": 4e-8,\n \"outputPerToken\": 5e-8\n },\n \"sao10k/l3.1-70b-hanami-x1\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000003\n },\n \"sao10k/l3.1-euryale-70b\": {\n \"inputPerToken\": 6.5e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"sao10k/l3.3-euryale-70b\": {\n \"inputPerToken\": 6.5e-7,\n \"outputPerToken\": 7.5e-7\n },\n \"stepfun/step-3.5-flash\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 3e-7\n },\n \"switchpoint/router\": {\n \"inputPerToken\": 8.5e-7,\n \"outputPerToken\": 0.0000034\n },\n \"tencent/hunyuan-a13b-instruct\": {\n \"inputPerToken\": 1.4e-7,\n \"outputPerToken\": 5.7e-7\n },\n \"thedrummer/cydonia-24b-v4.1\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 5e-7\n },\n \"thedrummer/rocinante-12b\": {\n \"inputPerToken\": 1.7e-7,\n \"outputPerToken\": 4.3e-7\n },\n \"thedrummer/skyfall-36b-v2\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 8e-7\n },\n \"thedrummer/unslopnemo-12b\": {\n \"inputPerToken\": 4e-7,\n \"outputPerToken\": 4e-7\n },\n \"tngtech/deepseek-r1t2-chimera\": {\n \"inputPerToken\": 2.5e-7,\n \"outputPerToken\": 8.5e-7\n },\n \"undi95/remm-slerp-l2-13b\": {\n \"inputPerToken\": 4.5e-7,\n \"outputPerToken\": 6.5e-7\n },\n \"writer/palmyra-x5\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.000006\n },\n \"xai/grok-3\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"xai/grok-3-beta\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"xai/grok-3-mini\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-3-mini-beta\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-4\": {\n \"inputPerToken\": 0.000003,\n \"outputPerToken\": 0.000015\n },\n \"xai/grok-4-fast\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-4.1-fast\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 5e-7\n },\n \"xai/grok-code-fast-1\": {\n \"inputPerToken\": 2e-7,\n \"outputPerToken\": 0.0000015\n },\n \"xiaomi/mimo-v2-flash\": {\n \"inputPerToken\": 9e-8,\n \"outputPerToken\": 2.9e-7\n },\n \"z-ai/glm-4-32b\": {\n \"inputPerToken\": 1e-7,\n \"outputPerToken\": 1e-7\n },\n \"z-ai/glm-4.5\": {\n \"inputPerToken\": 5.5e-7,\n \"outputPerToken\": 0.000002\n },\n \"z-ai/glm-4.5-air\": {\n \"inputPerToken\": 1.3e-7,\n \"outputPerToken\": 8.5e-7\n },\n \"z-ai/glm-4.5v\": {\n \"inputPerToken\": 6e-7,\n \"outputPerToken\": 0.0000018\n },\n \"z-ai/glm-4.6\": {\n \"inputPerToken\": 3.5e-7,\n \"outputPerToken\": 0.00000171\n },\n \"z-ai/glm-4.6:exacto\": {\n \"inputPerToken\": 4.4e-7,\n \"outputPerToken\": 0.00000176\n },\n \"z-ai/glm-4.6v\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 9e-7\n },\n \"z-ai/glm-4.7\": {\n \"inputPerToken\": 3e-7,\n \"outputPerToken\": 0.0000014\n },\n \"z-ai/glm-4.7-flash\": {\n \"inputPerToken\": 6e-8,\n \"outputPerToken\": 4e-7\n },\n \"z-ai/glm-5\": {\n \"inputPerToken\": 9.5e-7,\n \"outputPerToken\": 0.00000255\n }\n }\n}\n","import catalog from './catalog.json' with { type: 'json' }\n\nexport interface ModelPricing {\n inputPerToken: number\n outputPerToken: number\n}\n\nconst models = catalog.models as Record<string, ModelPricing>\n\n// Reverse index: model name (after slash) → first catalog key that contains it.\n// Enables cross-provider lookups (e.g. groq/llama-4-scout → meta/llama-4-scout).\nconst modelNameIndex = new Map<string, string>()\nfor (const key of Object.keys(models)) {\n const name = key.split('/').slice(1).join('/')\n if (name && !modelNameIndex.has(name)) {\n modelNameIndex.set(name, key)\n }\n}\n\n/**\n * Look up pricing for a provider ID (e.g. \"openai/gpt-4o\", \"azure/gpt-5-mini\").\n *\n * Resolution order:\n * 1. Exact match on provider ID\n * 2. Strip provider prefix, try \"openai/{model}\" (covers Azure deployments)\n * 3. Cross-provider model-name fallback (covers hosting providers like Groq, Together, Fireworks)\n * 4. undefined (no pricing available)\n */\nexport function lookupPricing(providerId: string): ModelPricing | undefined {\n // 1. Exact match\n if (models[providerId]) return models[providerId]\n\n const model = providerId.split('/').slice(1).join('/')\n if (!model) return undefined\n\n // 2. Try as openai/{model} (covers azure/* deployments)\n const asOpenai = `openai/${model}`\n if (models[asOpenai]) return models[asOpenai]\n\n // 3. Cross-provider: look up by model name alone\n const crossKey = modelNameIndex.get(model)\n if (crossKey) return models[crossKey]\n\n return undefined\n}\n\nexport function registerPricing(providerId: string, pricing: ModelPricing): void {\n models[providerId] = pricing\n}\n\nexport function estimateCost(\n pricing: ModelPricing,\n promptTokens: number,\n completionTokens: number,\n): number {\n return pricing.inputPerToken * promptTokens + pricing.outputPerToken * completionTokens\n}\n","import type { ScorerFn } from './types.js'\nimport { lookupPricing, estimateCost } from '../pricing/lookup.js'\n\nexport const costScorer: ScorerFn = ({ result }, providerId) => {\n const promptTokens = result.usage?.promptTokens ?? 0\n const completionTokens = result.usage?.completionTokens ?? 0\n const totalTokens = promptTokens + completionTokens\n\n const pricing = lookupPricing(providerId)\n\n if (!pricing) {\n return {\n name: 'cost',\n value: -1,\n details: {\n estimatedUsd: null,\n promptTokens,\n completionTokens,\n totalTokens,\n note: 'No pricing data available for this model',\n },\n }\n }\n\n const usd = estimateCost(pricing, promptTokens, completionTokens)\n\n return {\n name: 'cost',\n value: usd,\n details: {\n estimatedUsd: usd,\n promptTokens,\n completionTokens,\n totalTokens,\n },\n }\n}\n","/**\n * Deep equality check with LLM-friendly tolerance:\n * - Strings: case-insensitive trimmed comparison\n * - Objects: all expected keys must match (extra keys in actual are tolerated)\n * - Arrays: element-wise comparison\n */\nexport function deepEqual(expected: unknown, actual: unknown): boolean {\n if (expected === actual) return true\n\n if (typeof expected === 'string' && typeof actual === 'string') {\n return expected.trim().toLowerCase() === actual.trim().toLowerCase()\n }\n\n if (typeof expected !== typeof actual) return false\n if (expected === null || actual === null) return expected === actual\n\n if (Array.isArray(expected) && Array.isArray(actual)) {\n if (expected.length !== actual.length) return false\n return expected.every((val, i) => deepEqual(val, actual[i]))\n }\n\n if (typeof expected === 'object' && typeof actual === 'object') {\n const objExpected = expected as Record<string, unknown>\n const objActual = actual as Record<string, unknown>\n const keysExpected = Object.keys(objExpected)\n return keysExpected.every((key) => key in objActual && deepEqual(objExpected[key], objActual[key]))\n }\n\n return expected === actual\n}\n","import type { ScorerFn } from './types.js'\nimport { deepEqual } from '../utils/deep-equal.js'\n\n/**\n * Correctness scorer for LLM output evaluation.\n *\n * For strings: case-insensitive trimmed comparison.\n * For objects: checks all expected keys exist with matching values (extra keys in actual are tolerated).\n * For arrays: if actual is an object wrapping a single array, unwraps it before comparing.\n * Returns 1 (match), 0 (no match), or 0.5 (no expected value defined).\n */\nexport const correctnessScorer: ScorerFn = ({ task, result }) => {\n if (task.expected === undefined) {\n return { name: 'correctness', value: 0.5, details: { reason: 'no expected value' } }\n }\n\n const actual = normalizeOutput(task.expected, result.output)\n const match = deepEqual(task.expected, actual)\n\n return {\n name: 'correctness',\n value: match ? 1 : 0,\n details: { expected: task.expected, actual: result.output },\n }\n}\n\n/**\n * Normalize model output to align with the expected shape.\n * Handles two common cases where json_object mode forces array responses\n * into wrapper objects:\n * - Single-key wrapper: { \"products\": [...] }\n * - Schema-echo wrapper: { \"type\": \"array\", \"items\": [...], \"$schema\": \"...\" }\n *\n * Strategy: if expected is an array and actual is an object, find all keys\n * whose value is an array. If exactly one exists, unwrap it.\n */\nfunction normalizeOutput(expected: unknown, actual: unknown): unknown {\n if (Array.isArray(expected) && !Array.isArray(actual) && typeof actual === 'object' && actual !== null) {\n const entries = Object.entries(actual as Record<string, unknown>)\n const arrayEntries = entries.filter(([, v]) => Array.isArray(v))\n if (arrayEntries.length === 1) {\n return arrayEntries[0]![1]\n }\n }\n return actual\n}\n","import type { ScorerFn } from './types.js'\n\nexport const schemaCorrectnessScorer: ScorerFn = ({ task, result }) => {\n if (!task.schema) {\n return { name: 'schema-correctness', value: -1, details: { reason: 'no schema defined' } }\n }\n\n let data: unknown = result.output\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data)\n } catch {\n return {\n name: 'schema-correctness',\n value: 0,\n details: { reason: 'output is not valid JSON' },\n }\n }\n }\n\n let parsed = task.schema.safeParse(data)\n\n // If validation fails and data is an object wrapping a single array,\n // try unwrapping — handles json_object mode forcing arrays into objects.\n if (!parsed.success && !Array.isArray(data) && typeof data === 'object' && data !== null) {\n const arrayEntries = Object.entries(data as Record<string, unknown>).filter(([, v]) => Array.isArray(v))\n if (arrayEntries.length === 1) {\n const unwrapped = task.schema.safeParse(arrayEntries[0]![1])\n if (unwrapped.success) parsed = unwrapped\n }\n }\n\n return {\n name: 'schema-correctness',\n value: parsed.success ? 1 : 0,\n details: parsed.success\n ? { valid: true }\n : { valid: false, errors: parsed.error.issues.map((i) => i.message) },\n }\n}\n","import type { ScorerFn } from './types.js'\n\nexport const fuzzySimilarityScorer: ScorerFn = ({ task, result }) => {\n if (task.expected === undefined) {\n return { name: 'fuzzy-similarity', value: -1, details: { reason: 'no expected value' } }\n }\n\n const a = stringify(task.expected)\n const b = stringify(result.output)\n const setA = tokenize(a)\n const setB = tokenize(b)\n\n const similarity = jaccardSimilarity(setA, setB)\n\n return {\n name: 'fuzzy-similarity',\n value: Math.round(similarity * 100) / 100,\n details: { method: 'jaccard', expectedTokens: setA.size, actualTokens: setB.size },\n }\n}\n\nfunction stringify(value: unknown): string {\n if (typeof value === 'string') return value.toLowerCase()\n return JSON.stringify(value).toLowerCase()\n}\n\nfunction tokenize(text: string): Set<string> {\n return new Set(text.match(/\\w+/g) ?? [])\n}\n\nfunction jaccardSimilarity(a: Set<string>, b: Set<string>): number {\n if (a.size === 0 && b.size === 0) return 1\n\n let intersection = 0\n for (const token of a) {\n if (b.has(token)) intersection++\n }\n\n const union = a.size + b.size - intersection\n return union === 0 ? 1 : intersection / union\n}\n","import OpenAI, { AzureOpenAI } from 'openai'\nimport { REQUEST_TIMEOUT_MS } from '../providers/openai.js'\nimport type { ScorerFn } from './types.js'\n\nconst JUDGE_PROMPT = `You are a strict scoring judge. Evaluate the actual output against the expected output on three criteria. Score each from 0.0 to 1.0 using the full range (not just 0, 0.5, 1).\n\nCriteria:\n1. Accuracy — are the facts, entities, and claims correct? Penalize hallucinations or wrong details.\n2. Completeness — does it capture all key information from the expected output? Penalize missing points.\n3. Conciseness — is it free of unnecessary filler, repetition, or tangential content? Penalize verbosity.\n\nRespond with ONLY this exact format — three lines, no other text:\naccuracy: <number>\ncompleteness: <number>\nconciseness: <number>\n\nTask: {task}\nExpected: {expected}\nActual: {actual}`\n\ninterface JudgeClientResult {\n client: OpenAI\n model: string\n}\n\nfunction resolveJudgeClient(configModel?: string, timeoutMs = REQUEST_TIMEOUT_MS): JudgeClientResult | undefined {\n const model = configModel ?? process.env.DUELIST_JUDGE_MODEL ?? 'gpt-5-mini'\n\n // If the judge model starts with \"gemini\", use Google's OpenAI-compatible endpoint\n if (model.startsWith('gemini') && process.env.GOOGLE_API_KEY) {\n return {\n client: new OpenAI({\n apiKey: process.env.GOOGLE_API_KEY,\n baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/',\n timeout: timeoutMs,\n }),\n model,\n }\n }\n\n // Azure OpenAI fallback\n if (!process.env.OPENAI_API_KEY && process.env.AZURE_OPENAI_API_KEY) {\n return {\n client: new AzureOpenAI({\n apiKey: process.env.AZURE_OPENAI_API_KEY,\n endpoint: process.env.AZURE_OPENAI_ENDPOINT,\n apiVersion: process.env.AZURE_OPENAI_API_VERSION ?? '2024-12-01-preview',\n deployment: model,\n timeout: timeoutMs,\n }),\n model,\n }\n }\n\n // OpenAI\n const apiKey = process.env.OPENAI_API_KEY\n if (!apiKey) return undefined\n\n return { client: new OpenAI({ apiKey, timeout: timeoutMs }), model }\n}\n\n/** Detect errors caused by temperature being unsupported (reasoning models like o1/o3). */\nfunction isTemperatureError(err: unknown): boolean {\n const msg = err instanceof Error ? err.message : String(err)\n const lower = msg.toLowerCase()\n return lower.includes('temperature') && (\n lower.includes('not supported') ||\n lower.includes('is not allowed') ||\n lower.includes('unsupported') ||\n lower.includes('invalid')\n )\n}\n\n/**\n * Create an LLM-as-judge scorer configured with a specific model.\n *\n * The model can also be set via DUELIST_JUDGE_MODEL env var.\n * Requires OPENAI_API_KEY, AZURE_OPENAI_API_KEY, or GOOGLE_API_KEY\n * depending on the model prefix.\n *\n * Uses temperature: 0 for deterministic scoring. If the model rejects\n * temperature (e.g. reasoning models like o1/o3), automatically retries\n * without it and remembers the preference for subsequent calls.\n */\nexport function createLlmJudgeScorer(judgeModel?: string, timeoutMs = REQUEST_TIMEOUT_MS): ScorerFn {\n let cached: JudgeClientResult | undefined | null = undefined\n let useTemperature = true\n\n return async ({ task, result }) => {\n if (task.expected === undefined) {\n return { name: 'llm-judge-correctness', value: -1, details: { reason: 'no expected value' } }\n }\n\n // Lazy-init and cache the client\n if (cached === undefined) {\n cached = resolveJudgeClient(judgeModel, timeoutMs) ?? null\n }\n\n if (!cached) {\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: 'no API key available for judge model' },\n }\n }\n\n const { client, model } = cached\n\n const prompt = JUDGE_PROMPT\n .replace('{task}', task.prompt)\n .replace('{expected}', JSON.stringify(task.expected))\n .replace('{actual}', JSON.stringify(result.output))\n\n const messages: OpenAI.ChatCompletionMessageParam[] = [{ role: 'user', content: prompt }]\n\n try {\n const response = await callJudge(client, model, messages, useTemperature)\n return parseJudgeResponse(response, model)\n } catch (err) {\n // Auto-fallback: if temperature is rejected, retry without it\n if (useTemperature && isTemperatureError(err)) {\n useTemperature = false\n try {\n const response = await callJudge(client, model, messages, false)\n return parseJudgeResponse(response, model)\n } catch (retryErr) {\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: `judge call failed: ${retryErr instanceof Error ? retryErr.message : String(retryErr)}` },\n }\n }\n }\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: `judge call failed: ${err instanceof Error ? err.message : String(err)}` },\n }\n }\n }\n}\n\nasync function callJudge(\n client: OpenAI,\n model: string,\n messages: OpenAI.ChatCompletionMessageParam[],\n withTemperature: boolean,\n): Promise<OpenAI.ChatCompletion> {\n return client.chat.completions.create({\n model,\n messages,\n max_completion_tokens: 2048,\n ...(withTemperature ? { temperature: 0 } : {}),\n })\n}\n\nfunction parseJudgeResponse(\n response: OpenAI.ChatCompletion,\n model: string,\n): { name: string; value: number; details: Record<string, unknown> } {\n const content = response.choices[0]?.message?.content?.trim() ?? ''\n const parsed: Record<string, number> = {}\n for (const line of content.split('\\n')) {\n const match = line.match(/^(accuracy|completeness|conciseness)\\s*:\\s*([\\d.]+)/i)\n if (match) parsed[match[1].toLowerCase()] = parseFloat(match[2])\n }\n\n const accuracy = parsed.accuracy\n const completeness = parsed.completeness\n const conciseness = parsed.conciseness\n\n if (accuracy == null || completeness == null || conciseness == null ||\n [accuracy, completeness, conciseness].some((s) => isNaN(s) || s < 0 || s > 1)) {\n return {\n name: 'llm-judge-correctness',\n value: -1,\n details: { reason: `judge returned unparseable scores: \"${content}\"`, model },\n }\n }\n\n const composite = Math.round(((accuracy + completeness + conciseness) / 3) * 100) / 100\n\n return {\n name: 'llm-judge-correctness',\n value: composite,\n details: { model, accuracy, completeness, conciseness },\n }\n}\n","import OpenAI, { AzureOpenAI } from 'openai'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\nimport { registerPricing } from '../pricing/lookup.js'\nimport type { ToolDefinition } from '../tasks/types.js'\nimport type { ArenaProvider, TaskInput, TaskResult, ToolCall } from './types.js'\nimport { buildSchemaSystemMessage, parseSchemaOutput } from './shared.js'\n\n/** Default per-request timeout in ms (60 s). Prevents hanging on unresponsive APIs. */\nexport const REQUEST_TIMEOUT_MS = 60_000\n\nexport interface OpenAIProviderOptions {\n apiKey?: string\n baseURL?: string\n timeoutMs?: number\n}\n\nexport interface AzureOpenAIProviderOptions {\n apiKey?: string\n endpoint?: string\n apiVersion?: string\n deployment?: string\n timeoutMs?: number\n}\n\nexport function openai(model: string, options?: OpenAIProviderOptions): ArenaProvider {\n const client = new OpenAI({\n apiKey: options?.apiKey ?? process.env.OPENAI_API_KEY,\n baseURL: options?.baseURL,\n timeout: options?.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n return makeProvider(`openai/${model}`, 'OpenAI', model, client, model)\n}\n\nexport interface OpenAICompatibleOptions {\n id: string\n name: string\n model: string\n baseURL: string\n apiKey?: string\n apiKeyEnv?: string\n /** Strip `<think>...</think>` blocks from reasoning models (e.g. DeepSeek-R1, MiniMax M2.5) */\n stripThinking?: boolean\n /** Mark this provider as free (e.g. local Ollama models) so it registers zero-cost pricing */\n free?: boolean\n timeoutMs?: number\n}\n\nexport function openaiCompatible(options: OpenAICompatibleOptions): ArenaProvider {\n const apiKey = options.apiKey\n ?? (options.apiKeyEnv ? process.env[options.apiKeyEnv] : undefined)\n ?? 'no-key'\n\n const client = new OpenAI({\n apiKey,\n baseURL: options.baseURL,\n timeout: options.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n if (options.free) {\n registerPricing(options.id, { inputPerToken: 0, outputPerToken: 0 })\n }\n\n return makeProvider(options.id, options.name, options.model, client, options.model, options.stripThinking)\n}\n\n/**\n * Create an Azure OpenAI provider.\n *\n * @param model - The model or deployment name (e.g. \"gpt-4o\", \"gpt-5-mini\").\n * Used as the deployment name unless `options.deployment` overrides it.\n */\nexport function azureOpenai(model: string, options?: AzureOpenAIProviderOptions): ArenaProvider {\n const deployment = options?.deployment ?? model\n\n const client = new AzureOpenAI({\n apiKey: options?.apiKey ?? process.env.AZURE_OPENAI_API_KEY,\n endpoint: options?.endpoint ?? process.env.AZURE_OPENAI_ENDPOINT,\n apiVersion: options?.apiVersion ?? process.env.AZURE_OPENAI_API_VERSION ?? '2024-12-01-preview',\n deployment,\n timeout: options?.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n return makeProvider(`azure/${model}`, 'Azure OpenAI', model, client, deployment)\n}\n\nexport function makeProvider(\n id: string,\n name: string,\n model: string,\n client: OpenAI | AzureOpenAI,\n requestModel: string,\n stripThinking?: boolean,\n): ArenaProvider {\n return {\n id,\n name,\n model,\n\n async run(input: TaskInput): Promise<TaskResult> {\n const start = Date.now()\n\n const params: OpenAI.ChatCompletionCreateParams = {\n model: requestModel,\n messages: [{ role: 'user', content: input.prompt }],\n }\n\n // If a Zod schema is provided, use structured output via response_format\n if (input.schema) {\n params.response_format = { type: 'json_object' }\n params.messages = [\n { role: 'system', content: buildSchemaSystemMessage(input.schema) },\n ...params.messages,\n ]\n }\n\n // If tools are provided, convert to OpenAI tool format\n if (input.tools?.length) {\n params.tools = input.tools.map(toolDefToOpenAI)\n params.tool_choice = 'auto'\n }\n\n const reqOpts: { signal?: AbortSignal; timeout?: number } = { signal: input.signal }\n if (input.timeout) reqOpts.timeout = input.timeout\n const response = await client.chat.completions.create(params, reqOpts)\n let totalPromptTokens = response.usage?.prompt_tokens ?? 0\n let totalCompletionTokens = response.usage?.completion_tokens ?? 0\n\n const choice = response.choices[0]\n const toolCallsRaw = choice?.message?.tool_calls\n const collectedToolCalls: ToolCall[] = []\n let finalResponse = response\n\n // If the model made tool calls, execute handlers and send results back\n if (toolCallsRaw?.length && input.tools?.length) {\n const toolMessages: OpenAI.ChatCompletionMessageParam[] = [\n ...params.messages,\n choice!.message,\n ]\n\n for (const tc of toolCallsRaw) {\n const toolDef = input.tools.find((t) => t.name === tc.function.name)\n let args: unknown\n try {\n args = JSON.parse(tc.function.arguments)\n } catch {\n args = tc.function.arguments\n }\n\n let result: unknown\n if (toolDef?.handler) {\n result = await toolDef.handler(args)\n }\n\n collectedToolCalls.push({ name: tc.function.name, arguments: args, result })\n\n toolMessages.push({\n role: 'tool' as const,\n tool_call_id: tc.id,\n content: JSON.stringify(result ?? {}),\n })\n }\n\n // Follow-up call with tool results\n const followUp = await client.chat.completions.create({\n model: requestModel,\n messages: toolMessages,\n }, reqOpts)\n\n totalPromptTokens += followUp.usage?.prompt_tokens ?? 0\n totalCompletionTokens += followUp.usage?.completion_tokens ?? 0\n finalResponse = followUp\n }\n\n const latencyMs = Date.now() - start\n const finalChoice = finalResponse.choices[0]\n let rawContent = finalChoice?.message?.content ?? ''\n\n if (stripThinking) {\n rawContent = rawContent.replace(/<think>[\\s\\S]*?<\\/think>\\s*/, '')\n }\n\n const output = parseSchemaOutput(rawContent, !!input.schema)\n\n return {\n output,\n usage: {\n promptTokens: totalPromptTokens || undefined,\n completionTokens: totalCompletionTokens || undefined,\n },\n latencyMs,\n raw: finalResponse,\n toolCalls: collectedToolCalls.length > 0 ? collectedToolCalls : undefined,\n }\n },\n }\n}\n\n// ── Gemini (OpenAI-compatible) ──────────────────────────────────────\n\nexport interface GeminiProviderOptions {\n apiKey?: string\n timeoutMs?: number\n}\n\nexport function gemini(model: string, options?: GeminiProviderOptions): ArenaProvider {\n const apiKey = options?.apiKey ?? process.env.GOOGLE_API_KEY\n\n if (!apiKey) {\n throw new Error(\n `Missing API key for google/${model}. Set GOOGLE_API_KEY or pass apiKey option.`,\n )\n }\n\n const client = new OpenAI({\n apiKey,\n baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/',\n timeout: options?.timeoutMs ?? REQUEST_TIMEOUT_MS,\n })\n\n return makeProvider(`google/${model}`, 'Google AI', model, client, model)\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────\n\nfunction toolDefToOpenAI(tool: ToolDefinition): OpenAI.ChatCompletionTool {\n return {\n type: 'function',\n function: {\n name: tool.name,\n description: tool.description,\n parameters: zodToJsonSchema(tool.parameters, { target: 'openAi' }) as Record<string, unknown>,\n },\n }\n}\n","import type { ZodSchema } from 'zod'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\n\n/** Build a system message that includes the actual JSON schema when available. */\nexport function buildSchemaSystemMessage(schema?: ZodSchema): string {\n if (!schema) return 'Respond with valid JSON.'\n const jsonSchema = zodToJsonSchema(schema, { target: 'openAi' })\n return [\n 'Respond with ONLY valid JSON data. No markdown, no code fences, no explanation.',\n '',\n 'Your output must conform to this JSON Schema:',\n JSON.stringify(jsonSchema, null, 2),\n '',\n 'IMPORTANT: Output the actual data values, NOT the schema definition itself.',\n 'Do NOT include keys like \"type\", \"$schema\", or \"items\" from the schema definition in your response.',\n ].join('\\n')\n}\n\n/** Try to parse raw content as JSON when a schema is expected, falling back to the raw string. */\nexport function parseSchemaOutput(rawContent: string, hasSchema: boolean): string | Record<string, unknown> | unknown[] {\n if (!hasSchema) return rawContent\n const cleaned = stripCodeFences(rawContent)\n try {\n return JSON.parse(cleaned) as Record<string, unknown> | unknown[]\n } catch {\n return rawContent\n }\n}\n\n/** Strip markdown code fences (```json ... ```) that some models wrap around JSON output. */\nfunction stripCodeFences(content: string): string {\n const match = content.match(/^```(?:json)?\\s*\\n?([\\s\\S]*?)\\n?\\s*```$/m)\n return match ? match[1]! : content\n}\n","import type { ScorerFn } from './types.js'\nimport { deepEqual } from '../utils/deep-equal.js'\n\n/**\n * Tool-usage scorer — evaluates tool calling accuracy.\n *\n * When task.expected is an object and tools are configured, checks both\n * tool selection and argument correctness:\n * 1.0 — correct tool called with matching arguments\n * 0.5 — correct tool called but arguments don't match\n * 0.0 — wrong tool or no tool called\n *\n * When task.expected is a string (or undefined), only checks if the\n * first configured tool was invoked (1 or 0). Returns -1 (N/A) when\n * no tools are configured on the task.\n */\nexport const toolUsageScorer: ScorerFn = ({ task, result }) => {\n if (!task.tools?.length) {\n return { name: 'tool-usage', value: -1, details: { reason: 'no tools configured on task' } }\n }\n\n const calls = result.toolCalls ?? []\n const expectedIsObject = task.expected !== undefined &&\n typeof task.expected === 'object' && task.expected !== null &&\n !Array.isArray(task.expected)\n\n // Object expected → check tool selection + argument correctness\n if (expectedIsObject) {\n const matchingCall = calls.find((c) => {\n const toolDef = task.tools!.find(t => t.name === c.name)\n if (!toolDef) return false\n return deepEqual(task.expected!, c.arguments)\n })\n\n if (matchingCall) {\n return {\n name: 'tool-usage',\n value: 1,\n details: { matchedTool: matchingCall.name, arguments: matchingCall.arguments, toolCalls: calls },\n }\n }\n\n // Partial credit: a tool was called whose arguments share keys with expected\n // (indicates the right tool was selected but with wrong values)\n const expectedKeys = Object.keys(task.expected as Record<string, unknown>)\n const partialMatch = calls.find((c) => {\n if (typeof c.arguments !== 'object' || c.arguments === null) return false\n const argKeys = Object.keys(c.arguments as Record<string, unknown>)\n return expectedKeys.some(k => argKeys.includes(k))\n })\n\n if (partialMatch) {\n return {\n name: 'tool-usage',\n value: 0.5,\n details: {\n reason: 'correct tool but wrong arguments',\n expected: task.expected,\n actual: partialMatch.arguments,\n toolCalls: calls,\n },\n }\n }\n\n return {\n name: 'tool-usage',\n value: 0,\n details: { reason: 'no matching tool call', expected: task.expected, toolCalls: calls },\n }\n }\n\n // String/undefined expected → simple tool name check (legacy behavior)\n const expectedToolName = task.tools[0]!.name\n const usedTool = calls.some((c) => c.name === expectedToolName)\n\n return {\n name: 'tool-usage',\n value: usedTool ? 1 : 0,\n details: { expectedToolName, usedTool, toolCalls: calls },\n }\n}\n","import type { BuiltInScorerName, ScorerFn } from './types.js'\nimport { latencyScorer } from './latency.js'\nimport { costScorer } from './cost.js'\nimport { correctnessScorer } from './correctness.js'\nimport { schemaCorrectnessScorer } from './schema-correctness.js'\nimport { fuzzySimilarityScorer } from './fuzzy-similarity.js'\nimport { createLlmJudgeScorer } from './llm-judge.js'\nimport { toolUsageScorer } from './tool-usage.js'\n\nconst staticScorers: Partial<Record<BuiltInScorerName, ScorerFn>> = {\n latency: latencyScorer,\n cost: costScorer,\n correctness: correctnessScorer,\n 'schema-correctness': schemaCorrectnessScorer,\n 'fuzzy-similarity': fuzzySimilarityScorer,\n 'tool-usage': toolUsageScorer,\n}\n\nexport function resolveScorers(names: BuiltInScorerName[], judgeModel?: string, timeoutMs?: number): ScorerFn[] {\n return names.map((name) => {\n if (name === 'llm-judge-correctness') {\n return createLlmJudgeScorer(judgeModel, timeoutMs)\n }\n const scorer = staticScorers[name]\n if (!scorer) {\n throw new Error(`Unknown scorer: \"${name}\"`)\n }\n return scorer\n })\n}\n\nexport type { BuiltInScorerName, ScorerFn, ScoreResult, ScorerContext } from './types.js'\n","import type { ArenaProvider, ToolCall } from './providers/types.js'\nimport type { ArenaTask } from './tasks/types.js'\nimport type { ScoreResult, ScorerFn } from './scorers/types.js'\n\nexport interface BenchmarkResult {\n providerId: string\n taskName: string\n run: number\n scores: ScoreResult[]\n error?: string\n raw: {\n output: string | Record<string, unknown> | unknown[]\n latencyMs: number\n usage?: { promptTokens?: number; completionTokens?: number }\n toolCalls?: ToolCall[]\n }\n}\n\nconst DEFAULT_TIMEOUT_MS = 60_000\n\nexport interface RunOptions {\n providers: ArenaProvider[]\n tasks: ArenaTask[]\n scorers: ScorerFn[]\n runs: number\n timeout?: number\n onResult?: (result: BenchmarkResult) => void\n}\n\nfunction withTimeout<T>(run: (signal: AbortSignal) => Promise<T>, ms: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const controller = new AbortController()\n const timer = setTimeout(() => {\n controller.abort()\n reject(new Error(`Request timed out after ${ms}ms`))\n }, ms)\n run(controller.signal).then(\n (v) => { clearTimeout(timer); resolve(v) },\n (e) => { clearTimeout(timer); reject(e) },\n )\n })\n}\n\nexport async function runBenchmarks(options: RunOptions): Promise<BenchmarkResult[]> {\n const { providers, tasks, scorers, runs, onResult } = options\n const timeout = options.timeout ?? DEFAULT_TIMEOUT_MS\n\n const results: BenchmarkResult[] = []\n\n // Tasks run sequentially so every provider faces the same conditions per task.\n // Providers within each task run in parallel — fair head-to-head comparison\n // without queue-induced timeout penalties from full parallelism.\n for (const task of tasks) {\n for (let run = 1; run <= runs; run++) {\n const runResults = await Promise.all(\n providers.map(async (provider) => {\n let result: BenchmarkResult\n\n try {\n const taskResult = await withTimeout((signal) => provider.run({\n prompt: task.prompt,\n schema: task.schema,\n tools: task.tools,\n signal,\n timeout,\n }), timeout)\n\n const scores = await Promise.all(\n scorers.map((scorer) => scorer({ task, result: taskResult }, provider.id))\n )\n\n result = {\n providerId: provider.id,\n taskName: task.name,\n run,\n scores,\n raw: {\n output: taskResult.output,\n latencyMs: taskResult.latencyMs,\n usage: taskResult.usage,\n toolCalls: taskResult.toolCalls,\n },\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n\n result = {\n providerId: provider.id,\n taskName: task.name,\n run,\n scores: [],\n error: message,\n raw: { output: '', latencyMs: 0 },\n }\n }\n\n onResult?.(result)\n return result\n })\n )\n\n results.push(...runResults)\n }\n }\n\n return results\n}\n","/** Format a USD cost with adaptive precision (always 2+ significant figures). */\nconst MAX_FRACTION_DIGITS = 100\nexport function formatCost(usd: number | undefined): string {\n if (usd === undefined) return '—'\n if (usd === 0) return '$0.00'\n if (usd >= 0.01) return `~$${usd.toFixed(2)}`\n const digits = Math.min(\n MAX_FRACTION_DIGITS,\n Math.max(4, -Math.floor(Math.log10(Math.abs(usd))) + 1),\n )\n return `~$${usd.toFixed(digits).replace(/0+$/, '')}`\n}\n\n/** Format a numeric delta with explicit sign. */\nexport function formatDelta(delta: number, precision: number = 4): string {\n const sign = delta >= 0 ? '+' : ''\n return `${sign}${delta.toFixed(precision)}`\n}\n","import type { BenchmarkResult } from '../runner.js'\n\n// ── Shared types ────────────────────────────────────────────────────\n\nexport interface AggregatedDetails {\n costUsd: number | undefined\n totalTokens: number | undefined\n}\n\nexport interface ProviderTaskData {\n providerId: string\n avgScores: Record<string, number>\n avgDetails: AggregatedDetails\n latencyMs: number | undefined\n allErrors: boolean\n errorCount: number\n}\n\nexport interface ColumnStats {\n values: Map<string, number | undefined>\n best: number | undefined\n worst: number | undefined\n}\n\nexport type Medal = 'gold' | 'silver' | 'bronze' | 'none'\n\nexport interface GroupedResults {\n tasks: string[]\n providers: string[]\n scorerNames: string[]\n grouped: Map<string, BenchmarkResult[]>\n byProvider: Map<string, BenchmarkResult[]>\n hasErrors: boolean\n maxRun: number\n}\n\n// ── Grouping ────────────────────────────────────────────────────────\n\nexport function groupResults(results: BenchmarkResult[]): GroupedResults {\n const taskSet = new Set<string>()\n const providerSet = new Set<string>()\n const scorerSet = new Set<string>()\n const grouped = new Map<string, BenchmarkResult[]>()\n const byProvider = new Map<string, BenchmarkResult[]>()\n let hasErrors = false\n let maxRun = 0\n\n for (const r of results) {\n taskSet.add(r.taskName)\n providerSet.add(r.providerId)\n for (const s of r.scores) scorerSet.add(s.name)\n if (r.error) hasErrors = true\n if (r.run > maxRun) maxRun = r.run\n\n const key = `${r.taskName}::${r.providerId}`\n let group = grouped.get(key)\n if (!group) { group = []; grouped.set(key, group) }\n group.push(r)\n\n let provGroup = byProvider.get(r.providerId)\n if (!provGroup) { provGroup = []; byProvider.set(r.providerId, provGroup) }\n provGroup.push(r)\n }\n\n return {\n tasks: [...taskSet],\n providers: [...providerSet],\n scorerNames: [...scorerSet],\n grouped,\n byProvider,\n hasErrors,\n maxRun,\n }\n}\n\n// ── Aggregation ─────────────────────────────────────────────────────\n\nexport function aggregateProviderTask(\n providerId: string,\n grouped: Map<string, BenchmarkResult[]>,\n task: string\n): ProviderTaskData {\n const taskResults = grouped.get(`${task}::${providerId}`) ?? []\n const errorResults = taskResults.filter(r => r.error)\n const successResults = taskResults.filter(r => !r.error)\n\n if (successResults.length === 0) {\n return {\n providerId,\n avgScores: {},\n avgDetails: { costUsd: undefined, totalTokens: undefined },\n latencyMs: undefined,\n allErrors: errorResults.length > 0,\n errorCount: errorResults.length,\n }\n }\n\n return {\n providerId,\n avgScores: averageScores(successResults),\n avgDetails: averageDetails(successResults),\n latencyMs: average(successResults.map(r => r.raw.latencyMs)),\n allErrors: false,\n errorCount: errorResults.length,\n }\n}\n\nexport function averageScores(results: BenchmarkResult[]): Record<string, number> {\n const sums: Record<string, number> = {}\n const counts: Record<string, number> = {}\n\n for (const result of results) {\n for (const score of result.scores) {\n if (score.value < 0) continue\n sums[score.name] = (sums[score.name] ?? 0) + score.value\n counts[score.name] = (counts[score.name] ?? 0) + 1\n }\n }\n\n const avgs: Record<string, number> = {}\n for (const name of Object.keys(sums)) {\n avgs[name] = sums[name]! / counts[name]!\n }\n return avgs\n}\n\nexport function averageDetails(results: BenchmarkResult[]): AggregatedDetails {\n let costSum = 0\n let costCount = 0\n let tokenSum = 0\n let tokenCount = 0\n\n for (const result of results) {\n const costScore = result.scores.find((s) => s.name === 'cost')\n const details = costScore?.details as {\n estimatedUsd?: number | null\n totalTokens?: number\n } | undefined\n\n if (details?.estimatedUsd != null) {\n costSum += details.estimatedUsd\n costCount++\n }\n if (details?.totalTokens != null) {\n tokenSum += details.totalTokens\n tokenCount++\n }\n }\n\n return {\n costUsd: costCount > 0 ? costSum / costCount : undefined,\n totalTokens: tokenCount > 0 ? Math.round(tokenSum / tokenCount) : undefined,\n }\n}\n\nexport function average(nums: number[]): number | undefined {\n if (nums.length === 0) return undefined\n return nums.reduce((a, b) => a + b, 0) / nums.length\n}\n\n// ── Column statistics & medals ──────────────────────────────────────\n\nexport function computeColumnStats(\n providerData: ProviderTaskData[],\n scorerNames: string[]\n): Map<string, ColumnStats> {\n const stats = new Map<string, ColumnStats>()\n const valid = providerData.filter(p => !p.allErrors)\n\n if (scorerNames.includes('latency')) {\n const values = new Map<string, number | undefined>()\n for (const p of providerData) {\n values.set(p.providerId, p.allErrors ? undefined : p.latencyMs)\n }\n const nums = valid.map(p => p.latencyMs).filter((v): v is number => v !== undefined)\n stats.set('latency', {\n values,\n best: nums.length > 0 ? Math.min(...nums) : undefined,\n worst: nums.length > 0 ? Math.max(...nums) : undefined,\n })\n }\n\n if (scorerNames.includes('cost')) {\n const costValues = new Map<string, number | undefined>()\n const tokenValues = new Map<string, number | undefined>()\n for (const p of providerData) {\n costValues.set(p.providerId, p.allErrors ? undefined : p.avgDetails.costUsd)\n tokenValues.set(p.providerId, p.allErrors ? undefined : p.avgDetails.totalTokens)\n }\n const costNums = valid.map(p => p.avgDetails.costUsd).filter((v): v is number => v !== undefined)\n const tokenNums = valid.map(p => p.avgDetails.totalTokens).filter((v): v is number => v !== undefined)\n stats.set('cost', {\n values: costValues,\n best: costNums.length > 0 ? Math.min(...costNums) : undefined,\n worst: costNums.length > 0 ? Math.max(...costNums) : undefined,\n })\n stats.set('tokens', {\n values: tokenValues,\n best: tokenNums.length > 0 ? Math.min(...tokenNums) : undefined,\n worst: tokenNums.length > 0 ? Math.max(...tokenNums) : undefined,\n })\n }\n\n for (const name of scorerNames) {\n if (name === 'latency' || name === 'cost') continue\n const values = new Map<string, number | undefined>()\n for (const p of providerData) {\n values.set(p.providerId, p.allErrors ? undefined : p.avgScores[name])\n }\n const nums = valid.map(p => p.avgScores[name]).filter((v): v is number => v !== undefined)\n stats.set(name, {\n values,\n best: nums.length > 0 ? Math.max(...nums) : undefined,\n worst: nums.length > 0 ? Math.min(...nums) : undefined,\n })\n }\n\n return stats\n}\n\n/** Scorers that measure output quality (vs efficiency metrics like latency/cost). */\nconst QUALITY_SCORERS = new Set([\n 'correctness', 'schema-correctness', 'fuzzy-similarity', 'llm-judge-correctness', 'tool-usage',\n])\n\n/**\n * Check whether a provider passes the quality gate: it must score > 0\n * on at least one quality scorer. If no quality scorers are present,\n * all providers pass.\n */\nexport function passesQualityGate(\n providerId: string,\n columnStats: Map<string, ColumnStats>\n): boolean {\n const qualityColumns = [...columnStats.keys()].filter(k => QUALITY_SCORERS.has(k))\n if (qualityColumns.length === 0) return true\n return qualityColumns.some(col => {\n const val = columnStats.get(col)?.values.get(providerId)\n return val !== undefined && val > 0\n })\n}\n\nexport function computeMedals(\n columnStats: Map<string, ColumnStats>,\n providerIds: string[]\n): Map<string, Medal> {\n const medals = new Map<string, Medal>()\n\n if (providerIds.length < 2) {\n for (const id of providerIds) medals.set(id, 'none')\n return medals\n }\n\n // Quality gate: providers that score 0 on ALL quality scorers are ineligible\n const eligible = new Set(providerIds.filter(id => passesQualityGate(id, columnStats)))\n\n // Count quality wins and efficiency wins separately\n const qualityWins = new Map<string, number>()\n const efficiencyWins = new Map<string, number>()\n for (const id of providerIds) {\n qualityWins.set(id, 0)\n efficiencyWins.set(id, 0)\n }\n\n for (const [colName, colStats] of columnStats) {\n if (colStats.best === undefined) continue\n const bestProviders = [...colStats.values.entries()]\n .filter(([, v]) => v !== undefined && v === colStats.best)\n if (bestProviders.length === 1) {\n const winnerId = bestProviders[0]![0]\n if (QUALITY_SCORERS.has(colName)) {\n qualityWins.set(winnerId, (qualityWins.get(winnerId) ?? 0) + 1)\n } else {\n efficiencyWins.set(winnerId, (efficiencyWins.get(winnerId) ?? 0) + 1)\n }\n }\n }\n\n const totalWins = [...qualityWins.values()].reduce((a, b) => a + b, 0)\n + [...efficiencyWins.values()].reduce((a, b) => a + b, 0)\n if (totalWins === 0) {\n for (const id of providerIds) medals.set(id, 'none')\n return medals\n }\n\n // Rank only eligible providers; ineligible ones always get 'none'\n const eligibleSorted = providerIds\n .filter(id => eligible.has(id))\n .sort((a, b) => {\n const qDiff = (qualityWins.get(b) ?? 0) - (qualityWins.get(a) ?? 0)\n if (qDiff !== 0) return qDiff\n const eDiff = (efficiencyWins.get(b) ?? 0) - (efficiencyWins.get(a) ?? 0)\n if (eDiff !== 0) return eDiff\n return a.localeCompare(b)\n })\n\n const medalList: Medal[] = ['gold', 'silver', 'bronze']\n let rank = 0\n for (let i = 0; i < eligibleSorted.length; i++) {\n if (i > 0) {\n const prevQ = qualityWins.get(eligibleSorted[i - 1]!) ?? 0\n const currQ = qualityWins.get(eligibleSorted[i]!) ?? 0\n if (currQ < prevQ) {\n rank = i\n } else if (currQ === prevQ) {\n const prevE = efficiencyWins.get(eligibleSorted[i - 1]!) ?? 0\n const currE = efficiencyWins.get(eligibleSorted[i]!) ?? 0\n if (currE < prevE) rank = i\n }\n }\n medals.set(eligibleSorted[i]!, rank < medalList.length ? medalList[rank]! : 'none')\n }\n for (const id of providerIds) {\n if (!eligible.has(id)) medals.set(id, 'none')\n }\n\n return medals\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────\n\nexport function providerLabel(providerId: string): string {\n const prefix = providerId.split('/')[0]\n switch (prefix) {\n case 'azure': return '(OpenAI via Azure)'\n case 'openai': return '(OpenAI)'\n case 'anthropic': return '(Anthropic)'\n case 'google': return '(Google)'\n case 'mistral': return '(Mistral)'\n case 'meta': return '(Meta)'\n case 'deepseek': return '(DeepSeek)'\n case 'cohere': return '(Cohere)'\n case 'qwen': return '(Qwen)'\n case 'xai': return '(xAI)'\n case 'minimax': return '(MiniMax)'\n case 'moonshot': return '(Moonshot / Kimi)'\n case 'perplexity': return '(Perplexity)'\n case 'amazon': return '(Amazon)'\n case 'nvidia': return '(NVIDIA)'\n case 'microsoft': return '(Microsoft)'\n case 'ai21': return '(AI21 Labs)'\n case 'bytedance': return '(ByteDance)'\n case 'together': return '(Together AI)'\n case 'fireworks': return '(Fireworks AI)'\n case 'groq': return '(Groq)'\n case 'cerebras': return '(Cerebras)'\n default: return `(${prefix})`\n }\n}\n\nexport function apiKeyHint(providerId: string, error: string): string | undefined {\n const lower = error.toLowerCase()\n const isAuthError = lower.includes('api key') || lower.includes('401') ||\n lower.includes('unauthorized') || lower.includes('authentication') ||\n lower.includes('incorrect api key') || lower.includes('apikey')\n\n if (!isAuthError) return undefined\n\n const prefix = providerId.split('/')[0]\n switch (prefix) {\n case 'openai': return 'Set: export OPENAI_API_KEY=sk-...'\n case 'azure': return 'Set: export AZURE_OPENAI_API_KEY=... and AZURE_OPENAI_ENDPOINT=...'\n case 'anthropic': return 'Set: export ANTHROPIC_API_KEY=sk-ant-...'\n case 'google': return 'Set: export GOOGLE_API_KEY=...'\n default: return `Check the API key for ${providerId}`\n }\n}\n\nexport function rankProviders(\n successByProvider: Map<string, BenchmarkResult[]>,\n providers: string[],\n scorerName: string\n): { id: string; avg: number } | undefined {\n const ranked = providers\n .map((id) => {\n const runs = successByProvider.get(id) ?? []\n const scores = runs\n .flatMap((r) => r.scores.filter((s) => s.name === scorerName && s.value >= 0))\n .map((s) => s.value)\n const avg = scores.length > 0 ? scores.reduce((a, b) => a + b, 0) / scores.length : undefined\n return { id, avg }\n })\n .filter((p) => p.avg !== undefined)\n .sort((a, b) => b.avg! - a.avg!)\n\n return ranked[0] ? { id: ranked[0].id, avg: ranked[0].avg! } : undefined\n}\n\nexport function scorerLabel(name: string): string {\n switch (name) {\n case 'correctness': return 'Match'\n case 'schema-correctness': return 'Schema'\n case 'fuzzy-similarity': return 'Fuzzy'\n case 'llm-judge-correctness': return 'Judge'\n case 'tool-usage': return 'Tool'\n default: return name\n }\n}\n\n/** Medal emoji for display */\nexport function medalEmoji(medal: Medal): string {\n switch (medal) {\n case 'gold': return '🥇'\n case 'silver': return '🥈'\n case 'bronze': return '🥉'\n case 'none': return ''\n }\n}\n","import type { BenchmarkResult } from '../runner.js'\nimport { formatCost } from '../utils/format.js'\nimport {\n type ProviderTaskData,\n type ColumnStats,\n groupResults,\n aggregateProviderTask,\n average,\n computeColumnStats,\n computeMedals,\n providerLabel,\n apiKeyHint,\n rankProviders,\n medalEmoji,\n scorerLabel,\n} from './shared.js'\n\n// ── ANSI color palette ──────────────────────────────────────────────────────\n\nconst reset = '\\x1b[0m'\nconst boldCode = '\\x1b[1m'\nconst dimCode = '\\x1b[2m'\nconst green = '\\x1b[32m'\nconst red = '\\x1b[31m'\nconst yellow = '\\x1b[33m'\nconst cyan = '\\x1b[36m'\nconst brightGreen = '\\x1b[92m'\nconst brightWhite = '\\x1b[97m'\n\nfunction bold(s: string) { return `${boldCode}${s}${reset}` }\nfunction dim(s: string) { return `${dimCode}${s}${reset}` }\n\n// ── String utilities ────────────────────────────────────────────────────────\n\nfunction stripAnsi(s: string): string {\n return s.replace(/\\x1b\\[[0-9;]*m/g, '')\n}\n\n/** Display width accounting for wide emoji (medals, trophy = 2 columns) */\nfunction displayWidth(s: string): number {\n const stripped = stripAnsi(s)\n let width = 0\n for (const ch of stripped) {\n const code = ch.codePointAt(0) ?? 0\n if (code >= 0x1F000) width += 2\n else if (code >= 0x2600 && code <= 0x27BF) width += 2\n else width += 1\n }\n return width\n}\n\n/** Pad string to target display width, accounting for ANSI codes and wide chars */\nfunction padCell(str: string, targetWidth: number, align: 'left' | 'right'): string {\n const dw = displayWidth(str)\n const padding = Math.max(0, targetWidth - dw)\n if (align === 'right') return ' '.repeat(padding) + str\n return str + ' '.repeat(padding)\n}\n\n// ── Sparkline bar ───────────────────────────────────────────────────────────\n\ninterface SparkBarParts { fill: string; track: string }\n\nfunction sparkBar(ratio: number, width: number = 8): SparkBarParts {\n const clamped = Math.max(0, Math.min(1, ratio))\n const fillLen = Math.round(clamped * width)\n const fill = '▓'.repeat(fillLen)\n const track = '░'.repeat(width - fillLen)\n return { fill, track }\n}\n\n// ── Box-drawing ─────────────────────────────────────────────────────────────\n\ntype LinePosition = 'top' | 'header' | 'bottom' | 'merge'\n\nfunction drawTableLine(widths: number[], position: LinePosition): string {\n const totalInner = widths.reduce((sum, w) => sum + w + 2, 0) + widths.length - 1\n\n if (position === 'bottom') {\n return dim(`└${'─'.repeat(totalInner)}┘`)\n }\n if (position === 'merge') {\n return dim(`├${'─'.repeat(totalInner)}┤`)\n }\n\n const segments = widths.map(w => '─'.repeat(w + 2))\n if (position === 'top') {\n return dim(`┌${segments.join('┬')}┐`)\n }\n // header separator\n return dim(`├${segments.join('┼')}┤`)\n}\n\nfunction drawTableRow(\n cells: string[],\n widths: number[],\n aligns: ('left' | 'right')[]\n): string {\n const parts = cells.map((cell, i) =>\n ' ' + padCell(cell, widths[i]!, aligns[i]!) + ' '\n )\n return dim('│') + parts.join(dim('│')) + dim('│')\n}\n\n/** Single-cell row spanning the full table width */\nfunction drawSpanRow(content: string, widths: number[]): string {\n const totalInner = widths.reduce((sum, w) => sum + w + 2, 0) + widths.length - 1\n const dw = displayWidth(content)\n const padding = Math.max(0, totalInner - dw - 1)\n return dim('│') + ' ' + content + ' '.repeat(padding) + dim('│')\n}\n\n// ── Column layout ───────────────────────────────────────────────────────────\n\ninterface TableCol {\n label: string\n width: number\n align: 'left' | 'right'\n statsKey?: string\n}\n\nfunction colorByRank(\n text: string,\n value: number | undefined,\n colStats: ColumnStats,\n providerCount: number\n): string {\n if (value === undefined) return dim('—')\n if (providerCount < 2) return text\n if (colStats.best === undefined || colStats.worst === undefined) return text\n if (colStats.best === colStats.worst) return text\n\n if (value === colStats.best) return `${brightGreen}${boldCode}${text}${reset}`\n if (value === colStats.worst) return `${red}${text}${reset}`\n return `${yellow}${text}${reset}`\n}\n\n\n// ── Main reporter ───────────────────────────────────────────────────────────\n\nexport interface ConsoleReporterOptions {\n sparklines?: boolean\n}\n\nexport function consoleReporter(results: BenchmarkResult[], options?: ConsoleReporterOptions): void {\n const showSparklines = options?.sparklines ?? true\n if (results.length === 0) {\n console.log('\\nNo results to display.\\n')\n return\n }\n\n const { tasks, providers, scorerNames, grouped, byProvider, hasErrors, maxRun } = groupResults(results)\n const hasCost = scorerNames.includes('cost')\n const multi = providers.length >= 2\n\n // Title\n const runsPerCell = maxRun\n const runLabel = runsPerCell > 1 ? ` ${dim(`(${runsPerCell} runs each)`)}` : ''\n console.log('')\n console.log(` ${brightWhite}${boldCode}⬡ Agent Duelist${reset}${runLabel}`)\n console.log(` ${dim('━'.repeat(72))}`)\n console.log('')\n\n // Per-task tables\n for (const task of tasks) {\n console.log(` ${bold(`Task: ${task}`)}`)\n console.log('')\n\n // Gather per-provider data for this task (using pre-grouped map)\n const providerData: ProviderTaskData[] = providers.map(providerId =>\n aggregateProviderTask(providerId, grouped, task)\n )\n\n // Compute column stats and medals\n const columnStats = computeColumnStats(providerData, scorerNames)\n const medals = computeMedals(columnStats, providers)\n\n // Build columns — provider width is dynamic, score columns accommodate sparklines\n const maxProviderLen = Math.max(...providers.map(id => id.length))\n const providerWidth = Math.min(35, Math.max(22, maxProviderLen + 5))\n\n const cols: TableCol[] = [\n { label: 'Provider', width: providerWidth, align: 'left' }\n ]\n\n for (const name of scorerNames) {\n if (name === 'latency') {\n cols.push({ label: 'Latency', width: 10, align: 'right', statsKey: 'latency' })\n } else if (name === 'cost') {\n cols.push({ label: 'Cost', width: 12, align: 'right', statsKey: 'cost' })\n cols.push({ label: 'Tokens', width: 9, align: 'right', statsKey: 'tokens' })\n } else {\n cols.push({ label: scorerLabel(name), width: showSparklines ? 15 : 8, align: 'right', statsKey: name })\n }\n }\n\n if (hasErrors) {\n cols.push({ label: 'Status', width: 8, align: 'left' })\n }\n\n const widths = cols.map(c => c.width)\n const aligns = cols.map(c => c.align)\n\n // ┌ top border ┐\n console.log(` ${drawTableLine(widths, 'top')}`)\n\n // │ header row │\n const headerCells = cols.map(c => bold(c.label))\n console.log(` ${drawTableRow(headerCells, widths, aligns)}`)\n\n // ├ header separator ┤\n console.log(` ${drawTableLine(widths, 'header')}`)\n\n // │ data rows │\n for (const pd of providerData) {\n const medal = medalEmoji(medals.get(pd.providerId) ?? 'none')\n const providerCell = medal ? `${medal} ${pd.providerId}` : pd.providerId\n const cells: string[] = [providerCell]\n\n if (pd.allErrors) {\n // All runs failed — dashes everywhere\n for (const col of cols.slice(1)) {\n if (col.label === 'Status') {\n cells.push(`${red}FAIL${reset}`)\n } else {\n cells.push(dim('—'))\n }\n }\n } else {\n for (const col of cols.slice(1)) {\n if (col.label === 'Status') {\n cells.push(\n pd.errorCount > 0\n ? `${yellow}${pd.errorCount} err${reset}`\n : `${green}OK${reset}`\n )\n continue\n }\n\n const statsKey = col.statsKey!\n const colStats = columnStats.get(statsKey)\n\n if (statsKey === 'latency') {\n const ms = pd.latencyMs\n if (ms === undefined) {\n cells.push(dim('—'))\n } else {\n const text = `${Math.round(ms)}ms`\n cells.push(colStats ? colorByRank(text, ms, colStats, providers.length) : text)\n }\n } else if (statsKey === 'cost') {\n const cost = pd.avgDetails.costUsd\n if (cost === undefined) {\n cells.push(dim('—'))\n } else {\n const text = formatCost(cost)\n cells.push(colStats ? colorByRank(text, cost, colStats, providers.length) : text)\n }\n } else if (statsKey === 'tokens') {\n const tokens = pd.avgDetails.totalTokens\n if (tokens === undefined) {\n cells.push(dim('—'))\n } else {\n const text = `${tokens}`\n cells.push(colStats ? colorByRank(text, tokens, colStats, providers.length) : text)\n }\n } else {\n // Score column (0-1 scale) with optional sparkline bar\n const val = pd.avgScores[statsKey]\n if (val === undefined) {\n cells.push(dim('—'))\n } else {\n const pctStr = `${Math.round(val * 100)}%`.padStart(4)\n let coloredPct: string\n if (multi && colStats) {\n coloredPct = colorByRank(pctStr, val, colStats, providers.length)\n } else {\n // Single provider: threshold-based coloring\n if (val >= 0.8) coloredPct = `${green}${pctStr}${reset}`\n else if (val >= 0.5) coloredPct = `${yellow}${pctStr}${reset}`\n else coloredPct = `${red}${pctStr}${reset}`\n }\n if (showSparklines) {\n const { fill, track } = sparkBar(val)\n const barColor = val >= 0.8 ? green : val >= 0.5 ? yellow : red\n cells.push(`${coloredPct} ${barColor}${fill}${reset}${dim(track)}`)\n } else {\n cells.push(coloredPct)\n }\n }\n }\n }\n }\n\n console.log(` ${drawTableRow(cells, widths, aligns)}`)\n }\n\n // Winner row (2+ providers, at least one success)\n if (multi && providerData.some(p => !p.allErrors)) {\n const winnerId = [...medals.entries()].find(([, m]) => m === 'gold')?.[0]\n if (winnerId) {\n console.log(` ${drawTableLine(widths, 'merge')}`)\n const winnerText = `${brightGreen}${boldCode}🏆 Winner: ${winnerId}${reset} ${dim(providerLabel(winnerId))}`\n console.log(` ${drawSpanRow(winnerText, widths)}`)\n }\n }\n\n // └ bottom border ┘\n console.log(` ${drawTableLine(widths, 'bottom')}`)\n console.log('')\n }\n\n // Summary\n printSummary(results, providers, byProvider)\n\n // Errors — deduplicate by provider + error message and add hints\n const errorResults = results.filter((r) => r.error)\n if (errorResults.length > 0) {\n console.log(` ${bold('Errors')}`)\n console.log(` ${dim('━'.repeat(72))}`)\n\n const seen = new Set<string>()\n for (const r of errorResults) {\n const key = `${r.providerId}::${r.error}`\n if (seen.has(key)) continue\n seen.add(key)\n\n const count = errorResults.filter((e) => e.providerId === r.providerId && e.error === r.error).length\n const suffix = count > 1 ? ` (×${count})` : ''\n console.log(` ${red}✖${reset} ${r.providerId}: ${r.error}${suffix}`)\n\n const hint = apiKeyHint(r.providerId, r.error ?? '')\n if (hint) console.log(` ${dim(hint)}`)\n }\n console.log('')\n }\n\n if (hasCost) {\n console.log(dim(` Costs estimated from OpenRouter pricing catalog. Run npx tsx scripts/update-pricing.ts to refresh.`))\n console.log('')\n }\n}\n\n// ── Summary section ─────────────────────────────────────────────────────────\n\nfunction printSummary(results: BenchmarkResult[], providers: string[], byProvider: Map<string, BenchmarkResult[]>) {\n const successResults = results.filter((r) => !r.error)\n if (successResults.length === 0) return\n\n // Pre-compute success results per provider from the grouped map\n const successByProvider = new Map<string, BenchmarkResult[]>()\n for (const id of providers) {\n successByProvider.set(id, (byProvider.get(id) ?? []).filter((r) => !r.error))\n }\n\n console.log(` ${bold('Summary')}`)\n console.log(` ${dim('━'.repeat(72))}`)\n console.log('')\n\n const single = providers.length === 1\n\n // Best correctness (prefer llm-judge, fallback to correctness)\n const correctnessKey = successResults.some((r) => r.scores.some((s) => s.name === 'llm-judge-correctness' && s.value >= 0))\n ? 'llm-judge-correctness'\n : 'correctness'\n\n const byCorrectness = rankProviders(successByProvider, providers, correctnessKey)\n if (byCorrectness) {\n const medal = single ? `${cyan}◆${reset}` : '🥇'\n const pctStr = `${Math.round(byCorrectness.avg * 100)}%`\n if (single) {\n console.log(` ${medal} Avg correctness: ${brightGreen}${boldCode}${pctStr}${reset}`)\n } else {\n console.log(` ${medal} Most correct: ${bold(byCorrectness.id)} ${dim(providerLabel(byCorrectness.id))} ${brightGreen}${boldCode}${pctStr}${reset}`)\n }\n }\n\n // Fastest\n const byLatency = providers\n .map((id) => {\n const runs = successByProvider.get(id) ?? []\n const avg = average(runs.map((r) => r.raw.latencyMs))\n return { id, avg: avg ?? Infinity }\n })\n .sort((a, b) => a.avg - b.avg)[0]\n\n if (byLatency && byLatency.avg !== Infinity) {\n const medal = single ? `${cyan}◆${reset}` : '🥇'\n const msStr = `${Math.round(byLatency.avg)}ms`\n if (single) {\n console.log(` ${medal} Avg latency: ${brightGreen}${boldCode}${msStr}${reset}`)\n } else {\n console.log(` ${medal} Fastest: ${bold(byLatency.id)} ${dim(providerLabel(byLatency.id))} ${brightGreen}${boldCode}${msStr}${reset}`)\n }\n }\n\n // Cheapest\n const byCost = providers\n .map((id) => {\n const runs = successByProvider.get(id) ?? []\n const costs = runs\n .map((r) => {\n const s = r.scores.find((s) => s.name === 'cost')\n return s && s.value >= 0 ? s.value : undefined\n })\n .filter((c): c is number => c !== undefined)\n const avg = costs.length > 0 ? costs.reduce((a, b) => a + b, 0) / costs.length : undefined\n return { id, avg }\n })\n .filter((p) => p.avg !== undefined)\n .sort((a, b) => a.avg! - b.avg!)[0]\n\n if (byCost?.avg !== undefined) {\n const medal = single ? `${cyan}◆${reset}` : '🥇'\n const costStr = formatCost(byCost.avg)\n if (single) {\n console.log(` ${medal} Avg cost: ${brightGreen}${boldCode}${costStr}${reset}`)\n } else {\n console.log(` ${medal} Cheapest: ${bold(byCost.id)} ${dim(providerLabel(byCost.id))} ${brightGreen}${boldCode}${costStr}${reset}`)\n }\n }\n\n // Overall winner (2+ providers) — quality-first\n if (!single && byCorrectness && byCorrectness.avg > 0) {\n console.log('')\n const pct = `${Math.round(byCorrectness.avg * 100)}%`\n console.log(` 🏆 Overall: ${brightGreen}${boldCode}${byCorrectness.id}${reset} ${dim(providerLabel(byCorrectness.id))} ${dim(`(${pct} avg correctness)`)}`)\n }\n\n console.log('')\n}\n\n","import type { BenchmarkResult } from '../runner.js'\n\nexport function jsonReporter(results: BenchmarkResult[]): string {\n return JSON.stringify(\n {\n timestamp: new Date().toISOString(),\n summary: buildSummary(results),\n results,\n },\n null,\n 2\n )\n}\n\nfunction buildSummary(results: BenchmarkResult[]) {\n const tasks = [...new Set(results.map((r) => r.taskName))]\n const providers = [...new Set(results.map((r) => r.providerId))]\n\n return {\n totalBenchmarks: results.length,\n tasks: tasks.length,\n providers: providers.length,\n providerIds: providers,\n taskNames: tasks,\n }\n}\n","import type { ArenaProvider } from './providers/types.js'\nimport type { ArenaTask } from './tasks/types.js'\nimport type { BuiltInScorerName } from './scorers/types.js'\nimport { resolveScorers } from './scorers/index.js'\nimport { runBenchmarks, type BenchmarkResult } from './runner.js'\nimport { consoleReporter } from './reporter/console.js'\nimport { jsonReporter } from './reporter/json.js'\n\nexport interface ArenaConfig {\n providers: ArenaProvider[]\n tasks: ArenaTask[]\n scorers?: BuiltInScorerName[]\n runs?: number\n /** Model to use for llm-judge-correctness (e.g. 'gemini-3.1-pro-preview'). Falls back to DUELIST_JUDGE_MODEL env var, then gpt-5-mini. */\n judgeModel?: string\n /** Show sparkline bars next to percentage scores. Disable if your terminal doesn't render Unicode blocks. Default: true */\n sparklines?: boolean\n /** Per-request timeout in milliseconds. Requests exceeding this are marked as failures. Default: 60000 (60s) */\n timeout?: number\n}\n\nexport interface RunOptions {\n /** Called after each individual benchmark completes */\n onResult?: (result: BenchmarkResult) => void\n}\n\nexport interface Arena {\n config: ArenaConfig\n run(options?: RunOptions): Promise<BenchmarkResult[]>\n}\n\nexport function defineArena(config: ArenaConfig): Arena {\n if (config.providers.length === 0) {\n throw new Error('At least one provider is required')\n }\n\n const scorerNames = config.scorers ?? ['latency', 'cost', 'correctness']\n const scorerFns = resolveScorers(scorerNames, config.judgeModel, config.timeout)\n const runs = config.runs ?? 1\n\n return {\n config,\n\n async run(options?: RunOptions): Promise<BenchmarkResult[]> {\n if (config.tasks.length === 0) {\n throw new Error('At least one task is required')\n }\n return runBenchmarks({\n providers: config.providers,\n tasks: config.tasks,\n scorers: scorerFns,\n runs,\n timeout: config.timeout,\n onResult: options?.onResult,\n })\n },\n }\n}\n\n// Also export reporters for programmatic use\nexport { consoleReporter, jsonReporter }\n","import type { CiReport, ScorerComparison, CostSummary, ScorerStats } from '../ci.js'\nimport type { BenchmarkResult } from '../runner.js'\nimport { formatDelta } from '../utils/format.js'\n\nexport const COMMENT_MARKER = '<!-- duelist-ci-report -->'\n\nexport function markdownReporter(report: CiReport, _current: BenchmarkResult[]): string {\n const lines: string[] = [COMMENT_MARKER, '']\n\n // Header\n const status = report.failed ? '🔴 Failed' : '🟢 Passed'\n lines.push(`## ⬡ Agent Duelist CI — ${status}`)\n lines.push('')\n\n // Comparison table\n if (report.comparisons.length > 0) {\n lines.push(markdownComparisonTable(report.comparisons))\n lines.push('')\n }\n\n // Cost summary\n if (report.cost.totalUsd > 0 || report.cost.budget !== undefined) {\n lines.push(markdownCostSummary(report.cost))\n lines.push('')\n }\n\n // Flakiness warnings\n if (report.flakyResults.length > 0) {\n lines.push('### ⚠️ Flaky Results')\n lines.push('')\n lines.push('These scorer/task combinations have high variance (CV > 0.3). Consider increasing `runs` or tightening prompts.')\n lines.push('')\n for (const f of report.flakyResults) {\n lines.push(`- **${f.providerId}** × ${f.taskName} → ${f.scorerName} (CV = ${f.current.cv.toFixed(2)})`)\n }\n lines.push('')\n }\n\n // Failure reasons\n if (report.failureReasons.length > 0) {\n lines.push('### Failure Reasons')\n lines.push('')\n for (const reason of report.failureReasons) {\n lines.push(`- ${reason}`)\n }\n lines.push('')\n }\n\n lines.push('---')\n lines.push('*Generated by [agent-duelist](https://github.com/DataGobes/agent-duelist) CI*')\n\n return lines.join('\\n')\n}\n\nexport function markdownComparisonTable(comparisons: ScorerComparison[]): string {\n const lines: string[] = []\n\n lines.push('| Provider | Task | Scorer | Baseline | Current | Delta | Status |')\n lines.push('|----------|------|--------|----------|---------|-------|--------|')\n\n for (const c of comparisons) {\n const baselineStr = c.baseline ? formatStats(c.baseline) : '—'\n const currentStr = formatStats(c.current)\n const deltaStr = c.delta !== null ? formatDelta(c.delta, 3) : '—'\n const status = statusIndicator(c)\n\n lines.push(`| ${c.providerId} | ${c.taskName} | ${c.scorerName} | ${baselineStr} | ${currentStr} | ${deltaStr} | ${status} |`)\n }\n\n return lines.join('\\n')\n}\n\nexport function markdownCostSummary(cost: CostSummary): string {\n const lines: string[] = []\n\n lines.push('### 💰 Cost Summary')\n lines.push('')\n lines.push(`**Total:** $${cost.totalUsd.toFixed(4)}`)\n\n if (cost.budget !== undefined) {\n const pct = cost.budget > 0 ? ((cost.totalUsd / cost.budget) * 100).toFixed(0) : '∞'\n const indicator = cost.overBudget ? '🔴' : '🟢'\n lines.push(`**Budget:** $${cost.budget.toFixed(2)} (${pct}% used) ${indicator}`)\n }\n\n if (cost.perProvider.size > 1) {\n lines.push('')\n lines.push('| Provider | Cost |')\n lines.push('|----------|------|')\n for (const [provider, usd] of cost.perProvider) {\n lines.push(`| ${provider} | $${usd.toFixed(4)} |`)\n }\n }\n\n return lines.join('\\n')\n}\n\nfunction formatStats(stats: ScorerStats): string {\n if (stats.n > 1) {\n const margin = (stats.ci95Upper - stats.ci95Lower) / 2\n return `${stats.mean.toFixed(3)} ± ${margin.toFixed(3)}`\n }\n return stats.mean.toFixed(3)\n}\n\nfunction statusIndicator(c: ScorerComparison): string {\n if (c.regressed) return '🔴 regressed'\n if (c.improved) return '🟢 improved'\n if (c.baseline === null) return '🆕 new'\n return '⚪ unchanged'\n}\n","import type { BenchmarkResult } from '../runner.js'\nimport { formatCost } from '../utils/format.js'\nimport {\n type ProviderTaskData,\n type Medal,\n groupResults,\n aggregateProviderTask,\n average,\n computeColumnStats,\n computeMedals,\n providerLabel,\n apiKeyHint,\n rankProviders,\n medalEmoji,\n scorerLabel,\n} from './shared.js'\n\n// ── XSS prevention ──────────────────────────────────────────────────\n\nfunction esc(s: string): string {\n return s\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;')\n}\n\n// ── Main reporter ───────────────────────────────────────────────────\n\nexport function htmlReporter(results: BenchmarkResult[]): string {\n if (results.length === 0) {\n return emptyReport()\n }\n\n const { tasks, providers, scorerNames, grouped, byProvider, maxRun } = groupResults(results)\n const hasCost = scorerNames.includes('cost')\n const multi = providers.length >= 2\n const runsLabel = maxRun > 1 ? `${maxRun} runs each` : '1 run'\n\n // Build per-task table data\n const taskSections = tasks.map(task => {\n const providerData = providers.map(id => aggregateProviderTask(id, grouped, task))\n const columnStats = computeColumnStats(providerData, scorerNames)\n const medals = computeMedals(columnStats, providers)\n const winnerId = multi\n ? [...medals.entries()].find(([, m]) => m === 'gold')?.[0]\n : undefined\n return { task, providerData, columnStats, medals, winnerId }\n })\n\n // Summary stats\n const successResults = results.filter(r => !r.error)\n const successByProvider = new Map<string, BenchmarkResult[]>()\n for (const id of providers) {\n successByProvider.set(id, (byProvider.get(id) ?? []).filter(r => !r.error))\n }\n\n const correctnessKey = successResults.some(r =>\n r.scores.some(s => s.name === 'llm-judge-correctness' && s.value >= 0)\n ) ? 'llm-judge-correctness' : 'correctness'\n\n const byCorrectness = rankProviders(successByProvider, providers, correctnessKey)\n const byLatency = providers\n .map(id => {\n const runs = successByProvider.get(id) ?? []\n const avg = average(runs.map(r => r.raw.latencyMs))\n return { id, avg: avg ?? Infinity }\n })\n .sort((a, b) => a.avg - b.avg)[0]\n\n const byCost = providers\n .map(id => {\n const runs = successByProvider.get(id) ?? []\n const costs = runs\n .map(r => {\n const s = r.scores.find(s => s.name === 'cost')\n return s && s.value >= 0 ? s.value : undefined\n })\n .filter((c): c is number => c !== undefined)\n const avg = costs.length > 0 ? costs.reduce((a, b) => a + b, 0) / costs.length : undefined\n return { id, avg }\n })\n .filter(p => p.avg !== undefined)\n .sort((a, b) => a.avg! - b.avg!)[0]\n\n // Overall winner — quality-first (fastest/cheapest are shown separately)\n let overallWinner: string | undefined\n if (multi && byCorrectness && byCorrectness.avg > 0) {\n overallWinner = byCorrectness.id\n }\n\n // Error details\n const errorResults = results.filter(r => r.error)\n const deduped = dedupeErrors(errorResults)\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Agent Duelist Report</title>\n<meta name=\"description\" content=\"LLM provider benchmark results — ${providers.length} provider${providers.length !== 1 ? 's' : ''}, ${tasks.length} task${tasks.length !== 1 ? 's' : ''}\">\n<meta property=\"og:title\" content=\"Agent Duelist Report\">\n<meta property=\"og:description\" content=\"LLM provider benchmark: ${providers.map(esc).join(' vs ')}\">\n<meta property=\"og:type\" content=\"website\">\n${renderStyle()}\n</head>\n<body>\n<div class=\"bg-mesh\"><div class=\"bg-mesh-extra\"></div></div>\n<div class=\"report\">\n\n${renderHeader(runsLabel, providers.length, tasks.length)}\n\n${tasks.length > 1 ? renderTabs(tasks) : ''}\n\n<main>\n${taskSections.map((s, i) => renderTaskSection(\n s.task, s.providerData, s.columnStats, s.medals, s.winnerId,\n scorerNames, hasCost, multi, i\n )).join('\\n')}\n</main>\n\n${renderSummary(byCorrectness, byLatency, byCost, overallWinner, multi)}\n\n${deduped.length > 0 ? renderErrors(deduped) : ''}\n\n${renderFooter()}\n\n</div>\n${renderScript(tasks.length)}\n</body>\n</html>`\n}\n\n// ── Empty report ────────────────────────────────────────────────────\n\nfunction emptyReport(): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Agent Duelist Report</title>\n${renderStyle()}\n</head>\n<body>\n<div class=\"bg-mesh\"><div class=\"bg-mesh-extra\"></div></div>\n<div class=\"report\">\n${renderHeader('0 runs', 0, 0)}\n<main><p class=\"empty-msg\">No results to display.</p></main>\n${renderFooter()}\n</div>\n</body>\n</html>`\n}\n\n// ── Error deduplication ─────────────────────────────────────────────\n\ninterface DedupedError {\n providerId: string\n error: string\n count: number\n hint?: string\n}\n\nfunction dedupeErrors(errorResults: BenchmarkResult[]): DedupedError[] {\n const seen = new Map<string, DedupedError>()\n for (const r of errorResults) {\n const key = `${r.providerId}::${r.error}`\n const existing = seen.get(key)\n if (existing) {\n existing.count++\n } else {\n seen.set(key, {\n providerId: r.providerId,\n error: r.error ?? 'Unknown error',\n count: 1,\n hint: apiKeyHint(r.providerId, r.error ?? ''),\n })\n }\n }\n return [...seen.values()]\n}\n\n// ── Render: style ───────────────────────────────────────────────────\n\nfunction renderStyle(): string {\n return `<style>\n:root {\n --bg: #0f172a;\n --bg-deep: #020617;\n --panel: rgba(15, 23, 42, 0.85);\n --accent: #f59e0b;\n --accent-soft: rgba(245, 158, 11, 0.15);\n --text: #e2e8f0;\n --muted: #94a3b8;\n --border: rgba(148, 163, 184, 0.15);\n --green: #22c55e;\n --red: #ef4444;\n --yellow: #eab308;\n --radius: 12px;\n --mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Monaco, Consolas, monospace;\n --sans: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n}\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nhtml, body {\n font-family: var(--sans);\n background: var(--bg);\n color: var(--text);\n min-height: 100vh;\n}\nbody { padding: 24px; display: flex; justify-content: center; }\n\n/* Animated gradient mesh */\n.bg-mesh {\n position: fixed; inset: 0; z-index: 0;\n overflow: hidden; pointer-events: none;\n}\n.bg-mesh::before, .bg-mesh::after {\n content: \"\"; position: absolute; border-radius: 50%;\n filter: blur(120px); opacity: 0.4;\n}\n.bg-mesh::before {\n width: 600px; height: 600px;\n background: radial-gradient(circle, rgba(245,158,11,0.18), transparent 70%);\n top: -10%; left: -5%;\n animation: meshDrift1 18s ease-in-out infinite alternate;\n}\n.bg-mesh::after {\n width: 500px; height: 500px;\n background: radial-gradient(circle, rgba(139,92,246,0.12), transparent 70%);\n bottom: -10%; right: -5%;\n animation: meshDrift2 22s ease-in-out infinite alternate;\n}\n.bg-mesh-extra {\n position: absolute; width: 400px; height: 400px;\n border-radius: 50%; filter: blur(100px); opacity: 0.3;\n background: radial-gradient(circle, rgba(56,189,248,0.12), transparent 70%);\n top: 50%; left: 60%;\n animation: meshDrift3 15s ease-in-out infinite alternate;\n}\n@keyframes meshDrift1 { from { transform: translate(0,0) scale(1); } to { transform: translate(80px,60px) scale(1.15); } }\n@keyframes meshDrift2 { from { transform: translate(0,0) scale(1); } to { transform: translate(-60px,-50px) scale(1.1); } }\n@keyframes meshDrift3 { from { transform: translate(0,0) scale(1); } to { transform: translate(-40px,40px) scale(1.2); } }\n\n/* Report container */\n.report {\n position: relative; z-index: 1;\n width: 100%; max-width: 960px;\n}\n\n/* Header */\n.report-header {\n display: flex; justify-content: space-between; align-items: center;\n padding: 20px 0; margin-bottom: 8px;\n}\n.report-brand {\n display: flex; align-items: center; gap: 10px;\n text-decoration: none; color: var(--muted);\n font-weight: 600; font-size: 14px;\n letter-spacing: 0.04em; text-transform: uppercase;\n}\n.report-brand:hover { color: var(--text); }\n.brand-icon {\n width: 32px; height: 32px; border-radius: 8px;\n background: linear-gradient(135deg, var(--accent-soft), rgba(245,158,11,0.05));\n border: 1px solid rgba(245,158,11,0.3);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px;\n}\n.report-meta {\n font-size: 12px; color: var(--muted);\n text-align: right; line-height: 1.6;\n}\n\n/* Task tabs */\n.task-tabs {\n display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap;\n}\n.task-tab {\n padding: 6px 16px; border-radius: 999px;\n border: 1px solid var(--border);\n background: transparent; color: var(--muted);\n font-size: 13px; font-weight: 500; cursor: pointer;\n transition: all 150ms ease;\n}\n.task-tab:hover { border-color: rgba(245,158,11,0.3); color: var(--text); }\n.task-tab.active {\n background: var(--accent-soft);\n border-color: rgba(245,158,11,0.4);\n color: var(--accent);\n}\n\n/* Task sections */\n.task-section { display: none; }\n.task-section.active { display: block; }\n.task-name {\n font-size: 18px; font-weight: 600;\n margin-bottom: 12px; letter-spacing: -0.01em;\n}\n\n/* Results table */\n.results-table {\n width: 100%; border-collapse: collapse;\n font-size: 13px; margin-bottom: 16px;\n border-radius: var(--radius); overflow: hidden;\n border: 1px solid var(--border);\n}\n.results-table th, .results-table td {\n padding: 10px 14px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n}\n.results-table th {\n background: rgba(0,0,0,0.3);\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.05em;\n color: var(--muted); cursor: pointer;\n user-select: none; white-space: nowrap;\n}\n.results-table th:hover { color: var(--text); }\n.results-table th .sort-arrow { margin-left: 4px; font-size: 10px; }\n.results-table tbody tr {\n background: var(--panel);\n transition: background 120ms ease;\n}\n.results-table tbody tr:hover { background: rgba(15,23,42,0.95); }\n.results-table tbody tr:last-child td { border-bottom: none; }\n\n/* Score cell with progress bar */\n.score-cell { position: relative; min-width: 90px; }\n.score-bar {\n position: absolute; left: 0; bottom: 0;\n height: 3px; border-radius: 2px;\n transition: width 300ms ease;\n}\n.score-val { position: relative; z-index: 1; font-family: var(--mono); font-size: 12px; }\n\n/* Color ranking */\n.rank-best { color: var(--green); font-weight: 600; }\n.rank-worst { color: var(--red); }\n.rank-mid { color: var(--yellow); }\n.rank-neutral { color: var(--text); }\n.rank-error { color: var(--muted); }\n\n/* Winner banner */\n.task-winner {\n display: flex; align-items: center; gap: 10px;\n padding: 12px 18px; margin-bottom: 20px;\n border-radius: var(--radius);\n background: linear-gradient(135deg, rgba(34,197,94,0.08), rgba(34,197,94,0.02));\n border: 1px solid rgba(34,197,94,0.2);\n font-size: 14px; font-weight: 500;\n}\n.task-winner .trophy { font-size: 20px; }\n.task-winner .winner-name { color: var(--green); font-weight: 600; }\n.task-winner .winner-label { color: var(--muted); font-size: 12px; margin-left: 4px; }\n\n/* Summary cards */\n.summary-section { margin-top: 32px; }\n.summary-title {\n font-size: 16px; font-weight: 600;\n margin-bottom: 12px; color: var(--text);\n}\n.summary-cards {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px;\n}\n.summary-card {\n padding: 16px; border-radius: var(--radius);\n border: 1px solid var(--border);\n background: var(--panel);\n}\n.summary-card .card-label {\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.05em;\n color: var(--muted); margin-bottom: 6px;\n}\n.summary-card .card-value {\n font-size: 20px; font-weight: 700;\n color: var(--green); font-family: var(--mono);\n}\n.summary-card .card-provider {\n font-size: 12px; color: var(--muted); margin-top: 4px;\n}\n\n/* Errors */\n.errors-section { margin-top: 24px; }\n.errors-title {\n font-size: 16px; font-weight: 600;\n margin-bottom: 8px; color: var(--red);\n cursor: pointer;\n}\n.errors-list {\n border-radius: var(--radius);\n border: 1px solid rgba(239,68,68,0.2);\n background: rgba(239,68,68,0.04);\n overflow: hidden;\n}\n.error-item {\n padding: 10px 16px;\n border-bottom: 1px solid rgba(239,68,68,0.1);\n font-size: 13px;\n}\n.error-item:last-child { border-bottom: none; }\n.error-provider { font-weight: 600; color: var(--text); }\n.error-msg { color: var(--muted); margin-left: 8px; }\n.error-count { color: var(--muted); font-size: 11px; }\n.error-hint { color: var(--muted); font-size: 12px; margin-top: 4px; font-style: italic; }\n\n/* Footer */\n.report-footer {\n margin-top: 40px; padding: 20px 0;\n border-top: 1px solid var(--border);\n display: flex; justify-content: space-between; align-items: center;\n flex-wrap: wrap; gap: 12px;\n}\n.footer-brand {\n font-size: 13px; color: var(--muted);\n}\n.footer-brand a {\n color: var(--accent); text-decoration: none; font-weight: 500;\n}\n.footer-brand a:hover { text-decoration: underline; }\n.footer-cta {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 6px 14px; border-radius: 8px;\n background: var(--accent-soft);\n border: 1px solid rgba(245,158,11,0.3);\n color: var(--accent); font-size: 12px; font-weight: 500;\n text-decoration: none;\n transition: transform 120ms ease, box-shadow 120ms ease;\n}\n.footer-cta:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(245,158,11,0.2); }\n\n/* Empty state */\n.empty-msg {\n text-align: center; color: var(--muted);\n padding: 60px 20px; font-size: 16px;\n}\n\n/* Responsive */\n@media (max-width: 640px) {\n body { padding: 12px; }\n .report-header { flex-direction: column; align-items: flex-start; gap: 8px; }\n .report-meta { text-align: left; }\n .summary-cards { grid-template-columns: 1fr; }\n .results-table { font-size: 12px; }\n .results-table th, .results-table td { padding: 8px 10px; }\n .report-footer { flex-direction: column; align-items: flex-start; }\n}\n</style>`\n}\n\n// ── Render: header ──────────────────────────────────────────────────\n\nfunction renderHeader(runsLabel: string, providerCount: number, taskCount: number): string {\n const now = new Date().toISOString().replace('T', ' ').slice(0, 19) + ' UTC'\n return `<header class=\"report-header\">\n <a class=\"report-brand\" href=\"https://github.com/DataGobes/agent-duelist\" target=\"_blank\" rel=\"noopener\">\n <div class=\"brand-icon\">&#x2B21;</div>\n <span>Agent Duelist</span>\n </a>\n <div class=\"report-meta\">\n ${providerCount} provider${providerCount !== 1 ? 's' : ''} &middot;\n ${taskCount} task${taskCount !== 1 ? 's' : ''} &middot;\n ${esc(runsLabel)}<br>\n ${esc(now)}\n </div>\n</header>`\n}\n\n// ── Render: tabs ────────────────────────────────────────────────────\n\nfunction renderTabs(tasks: string[]): string {\n const buttons = tasks.map((t, i) =>\n `<button class=\"task-tab${i === 0 ? ' active' : ''}\" data-task=\"${i}\">${esc(t)}</button>`\n ).join('\\n ')\n return `<nav class=\"task-tabs\">\n ${buttons}\n </nav>`\n}\n\n// ── Render: task section ────────────────────────────────────────────\n\nfunction renderTaskSection(\n task: string,\n providerData: ProviderTaskData[],\n columnStats: Map<string, import('./shared.js').ColumnStats>,\n medals: Map<string, Medal>,\n winnerId: string | undefined,\n scorerNames: string[],\n _hasCost: boolean,\n multi: boolean,\n index: number\n): string {\n // Build columns\n const cols: { label: string; key: string; isScore: boolean }[] = [\n { label: 'Provider', key: 'provider', isScore: false },\n ]\n\n for (const name of scorerNames) {\n if (name === 'latency') {\n cols.push({ label: 'Latency', key: 'latency', isScore: false })\n } else if (name === 'cost') {\n cols.push({ label: 'Cost', key: 'cost', isScore: false })\n cols.push({ label: 'Tokens', key: 'tokens', isScore: false })\n } else {\n cols.push({ label: scorerLabel(name), key: name, isScore: true })\n }\n }\n\n // Header row\n const ths = cols.map(c =>\n `<th data-col=\"${esc(c.key)}\">${esc(c.label)}<span class=\"sort-arrow\"></span></th>`\n ).join('')\n\n // Data rows\n const rows = providerData.map(pd => {\n const medal = medalEmoji(medals.get(pd.providerId) ?? 'none')\n const cells: string[] = []\n\n // Provider cell\n const medalHtml = medal ? `${medal} ` : ''\n cells.push(`<td>${medalHtml}${esc(pd.providerId)}</td>`)\n\n if (pd.allErrors) {\n for (let ci = 1; ci < cols.length; ci++) {\n cells.push(`<td class=\"rank-error\">&mdash;</td>`)\n }\n } else {\n for (const col of cols.slice(1)) {\n cells.push(renderDataCell(col.key, col.isScore, pd, columnStats, multi))\n }\n }\n\n return `<tr>${cells.join('')}</tr>`\n }).join('\\n')\n\n // Winner banner\n const winnerHtml = winnerId\n ? `<div class=\"task-winner\">\n <span class=\"trophy\">&#x1F3C6;</span>\n <span>Winner: <span class=\"winner-name\">${esc(winnerId)}</span>\n <span class=\"winner-label\">${esc(providerLabel(winnerId))}</span></span>\n </div>`\n : ''\n\n return `<section class=\"task-section${index === 0 ? ' active' : ''}\" data-task-idx=\"${index}\">\n <h2 class=\"task-name\">${esc(task)}</h2>\n <table class=\"results-table\">\n <thead><tr>${ths}</tr></thead>\n <tbody>${rows}</tbody>\n </table>\n ${winnerHtml}\n</section>`\n}\n\n// ── Render: data cell ───────────────────────────────────────────────\n\nfunction renderDataCell(\n key: string,\n _isScore: boolean,\n pd: ProviderTaskData,\n columnStats: Map<string, import('./shared.js').ColumnStats>,\n multi: boolean\n): string {\n const colStats = columnStats.get(key)\n\n if (key === 'latency') {\n const ms = pd.latencyMs\n if (ms === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n const rankClass = multi && colStats ? rankClass_(ms, colStats) : 'rank-neutral'\n return `<td class=\"${rankClass}\" data-sort-val=\"${ms}\">${Math.round(ms)}ms</td>`\n }\n\n if (key === 'cost') {\n const cost = pd.avgDetails.costUsd\n if (cost === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n const rankClass = multi && colStats ? rankClass_(cost, colStats) : 'rank-neutral'\n return `<td class=\"${rankClass}\" data-sort-val=\"${cost}\">${esc(formatCost(cost))}</td>`\n }\n\n if (key === 'tokens') {\n const tokens = pd.avgDetails.totalTokens\n if (tokens === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n const rankClass = multi && colStats ? rankClass_(tokens, colStats) : 'rank-neutral'\n return `<td class=\"${rankClass}\" data-sort-val=\"${tokens}\">${tokens}</td>`\n }\n\n // Score column (0-1)\n const val = pd.avgScores[key]\n if (val === undefined) return `<td class=\"rank-error\">&mdash;</td>`\n\n const pct = Math.round(val * 100)\n let rankCls: string\n if (multi && colStats) {\n rankCls = rankClass_(val, colStats)\n } else {\n rankCls = val >= 0.8 ? 'rank-best' : val >= 0.5 ? 'rank-mid' : 'rank-worst'\n }\n\n const barColor = val >= 0.8 ? 'var(--green)' : val >= 0.5 ? 'var(--yellow)' : 'var(--red)'\n\n return `<td class=\"score-cell ${rankCls}\" data-sort-val=\"${val}\">\n <span class=\"score-val\">${pct}%</span>\n <div class=\"score-bar\" style=\"width:${pct}%;background:${barColor}\"></div>\n </td>`\n}\n\nfunction rankClass_(value: number, colStats: import('./shared.js').ColumnStats): string {\n if (colStats.best === undefined || colStats.worst === undefined) return 'rank-neutral'\n if (colStats.best === colStats.worst) return 'rank-neutral'\n if (value === colStats.best) return 'rank-best'\n if (value === colStats.worst) return 'rank-worst'\n return 'rank-mid'\n}\n\n// ── Render: summary ─────────────────────────────────────────────────\n\nfunction renderSummary(\n byCorrectness: { id: string; avg: number } | undefined,\n byLatency: { id: string; avg: number } | undefined,\n byCost: { id: string; avg: number | undefined } | undefined,\n overallWinner: string | undefined,\n multi: boolean\n): string {\n const cards: string[] = []\n\n if (byCorrectness) {\n const pct = `${Math.round(byCorrectness.avg * 100)}%`\n const provider = multi\n ? `<div class=\"card-provider\">${esc(byCorrectness.id)} ${esc(providerLabel(byCorrectness.id))}</div>`\n : ''\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">${multi ? 'Most Correct' : 'Avg Correctness'}</div>\n <div class=\"card-value\">${pct}</div>\n ${provider}\n </div>`)\n }\n\n if (byLatency && byLatency.avg !== Infinity) {\n const ms = `${Math.round(byLatency.avg)}ms`\n const provider = multi\n ? `<div class=\"card-provider\">${esc(byLatency.id)} ${esc(providerLabel(byLatency.id))}</div>`\n : ''\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">${multi ? 'Fastest' : 'Avg Latency'}</div>\n <div class=\"card-value\">${ms}</div>\n ${provider}\n </div>`)\n }\n\n if (byCost?.avg !== undefined) {\n const cost = esc(formatCost(byCost.avg))\n const provider = multi\n ? `<div class=\"card-provider\">${esc(byCost.id)} ${esc(providerLabel(byCost.id))}</div>`\n : ''\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">${multi ? 'Cheapest' : 'Avg Cost'}</div>\n <div class=\"card-value\">${cost}</div>\n ${provider}\n </div>`)\n }\n\n if (overallWinner) {\n cards.push(`<div class=\"summary-card\">\n <div class=\"card-label\">Overall Winner</div>\n <div class=\"card-value\">&#x1F3C6;</div>\n <div class=\"card-provider\">${esc(overallWinner)} ${esc(providerLabel(overallWinner))}</div>\n </div>`)\n }\n\n if (cards.length === 0) return ''\n\n return `<section class=\"summary-section\">\n <h2 class=\"summary-title\">Summary</h2>\n <div class=\"summary-cards\">\n ${cards.join('\\n ')}\n </div>\n</section>`\n}\n\n// ── Render: errors ──────────────────────────────────────────────────\n\nfunction renderErrors(errors: DedupedError[]): string {\n const items = errors.map(e => {\n const suffix = e.count > 1 ? ` <span class=\"error-count\">(&times;${e.count})</span>` : ''\n const hint = e.hint ? `<div class=\"error-hint\">${esc(e.hint)}</div>` : ''\n return `<div class=\"error-item\">\n <span class=\"error-provider\">${esc(e.providerId)}:</span>\n <span class=\"error-msg\">${esc(e.error)}</span>${suffix}\n ${hint}\n </div>`\n }).join('\\n')\n\n return `<section class=\"errors-section\">\n <h2 class=\"errors-title\" onclick=\"this.nextElementSibling.style.display=this.nextElementSibling.style.display==='none'?'block':'none'\">Errors</h2>\n <div class=\"errors-list\">\n ${items}\n </div>\n</section>`\n}\n\n// ── Render: footer ──────────────────────────────────────────────────\n\nfunction renderFooter(): string {\n return `<footer class=\"report-footer\">\n <div class=\"footer-brand\">\n Powered by <a href=\"https://github.com/DataGobes/agent-duelist\" target=\"_blank\" rel=\"noopener\">Agent Duelist</a>\n </div>\n <a class=\"footer-cta\" href=\"https://github.com/DataGobes/agent-duelist\" target=\"_blank\" rel=\"noopener\">\n &#x2B50; Star on GitHub\n </a>\n</footer>`\n}\n\n// ── Render: script ──────────────────────────────────────────────────\n\nfunction renderScript(taskCount: number): string {\n return `<script>\n(function() {\n /* Tab switching */\n ${taskCount > 1 ? `\n var tabs = document.querySelectorAll('.task-tab');\n var sections = document.querySelectorAll('.task-section');\n tabs.forEach(function(tab) {\n tab.addEventListener('click', function() {\n var idx = parseInt(tab.getAttribute('data-task'));\n tabs.forEach(function(t) { t.classList.remove('active'); });\n sections.forEach(function(s) { s.classList.remove('active'); });\n tab.classList.add('active');\n sections[idx].classList.add('active');\n });\n });` : ''}\n\n /* Column sorting */\n document.querySelectorAll('.results-table th').forEach(function(th, colIdx) {\n var table = th.closest('table');\n var asc = true;\n th.addEventListener('click', function() {\n var tbody = table.querySelector('tbody');\n var rows = Array.from(tbody.querySelectorAll('tr'));\n rows.sort(function(a, b) {\n var aCell = a.children[colIdx];\n var bCell = b.children[colIdx];\n var aVal = aCell.getAttribute('data-sort-val');\n var bVal = bCell.getAttribute('data-sort-val');\n if (aVal !== null && bVal !== null) {\n return asc ? parseFloat(aVal) - parseFloat(bVal) : parseFloat(bVal) - parseFloat(aVal);\n }\n var aText = aCell.textContent || '';\n var bText = bCell.textContent || '';\n return asc ? aText.localeCompare(bText) : bText.localeCompare(aText);\n });\n rows.forEach(function(row) { tbody.appendChild(row); });\n\n /* Update sort arrows */\n table.querySelectorAll('th .sort-arrow').forEach(function(a) { a.textContent = ''; });\n th.querySelector('.sort-arrow').textContent = asc ? ' \\\\u25B2' : ' \\\\u25BC';\n asc = !asc;\n });\n });\n})();\n</script>`\n}\n","import { readFileSync, writeFileSync, mkdirSync } from 'node:fs'\nimport { dirname } from 'node:path'\nimport type { BenchmarkResult } from './runner.js'\nimport { formatDelta } from './utils/format.js'\n\n// ── Types ────────────────────────────────────────────────────────────\n\nexport interface CiOptions {\n configPath: string\n baselinePath: string\n budget?: number\n thresholds: Map<string, number>\n updateBaseline: boolean\n comment: boolean\n quiet: boolean\n}\n\nexport interface ScorerStats {\n mean: number\n stddev: number\n cv: number // coefficient of variation\n n: number\n ci95Lower: number\n ci95Upper: number\n}\n\nexport interface ScorerComparison {\n providerId: string\n taskName: string\n scorerName: string\n baseline: ScorerStats | null\n current: ScorerStats\n delta: number | null // current.mean - baseline.mean (null when no baseline)\n regressed: boolean\n improved: boolean\n flaky: boolean\n}\n\nexport interface CostSummary {\n totalUsd: number\n perProvider: Map<string, number>\n budget: number | undefined\n overBudget: boolean\n}\n\nexport interface CiReport {\n comparisons: ScorerComparison[]\n cost: CostSummary\n failed: boolean\n flakyResults: ScorerComparison[]\n failureReasons: string[]\n}\n\n// ── Constants ────────────────────────────────────────────────────────\n\n/** Scorers where lower values are better */\nconst LOWER_IS_BETTER = new Set(['cost'])\n\n/** CV threshold above which a scorer is flagged as flaky */\nconst FLAKY_CV_THRESHOLD = 0.3\n\n/**\n * T-distribution critical values for 95% two-tailed CI.\n * Index = degrees of freedom (df). For df > 30 we use z ≈ 1.96.\n */\nconst T_CRITICAL_95: Record<number, number> = {\n 1: 12.706, 2: 4.303, 3: 3.182, 4: 2.776, 5: 2.571,\n 6: 2.447, 7: 2.365, 8: 2.306, 9: 2.262, 10: 2.228,\n 15: 2.131, 20: 2.086, 25: 2.060, 30: 2.042,\n}\n\nconst T_CRITICAL_KEYS = Object.keys(T_CRITICAL_95).map(Number).sort((a, b) => a - b)\n\nfunction tCritical(df: number): number {\n if (df <= 0) return 1.96\n if (T_CRITICAL_95[df] !== undefined) return T_CRITICAL_95[df]!\n // Interpolate between known values or fall back to z-approximation\n const keys = T_CRITICAL_KEYS\n if (df > keys[keys.length - 1]!) return 1.96\n // Find surrounding keys and linearly interpolate\n for (let i = 0; i < keys.length - 1; i++) {\n if (df > keys[i]! && df < keys[i + 1]!) {\n const low = keys[i]!, high = keys[i + 1]!\n const ratio = (df - low) / (high - low)\n return T_CRITICAL_95[low]! + ratio * (T_CRITICAL_95[high]! - T_CRITICAL_95[low]!)\n }\n }\n return 1.96\n}\n\n// ── Stats ────────────────────────────────────────────────────────────\n\nexport function computeScorerStats(samples: number[]): ScorerStats {\n const n = samples.length\n if (n === 0) {\n return { mean: 0, stddev: 0, cv: 0, n: 0, ci95Lower: 0, ci95Upper: 0 }\n }\n\n const mean = samples.reduce((a, b) => a + b, 0) / n\n\n if (n === 1) {\n return { mean, stddev: 0, cv: 0, n: 1, ci95Lower: mean, ci95Upper: mean }\n }\n\n const variance = samples.reduce((sum, x) => sum + (x - mean) ** 2, 0) / (n - 1)\n const stddev = Math.sqrt(variance)\n const cv = mean !== 0 ? stddev / Math.abs(mean) : 0\n const se = stddev / Math.sqrt(n)\n const t = tCritical(n - 1)\n\n return {\n mean,\n stddev,\n cv,\n n,\n ci95Lower: mean - t * se,\n ci95Upper: mean + t * se,\n }\n}\n\n// ── Grouping ─────────────────────────────────────────────────────────\n\n/** Group key: providerId::taskName::scorerName */\nfunction groupKey(providerId: string, taskName: string, scorerName: string): string {\n return `${providerId}::${taskName}::${scorerName}`\n}\n\nexport function computeStats(results: BenchmarkResult[]): Map<string, ScorerStats> {\n const grouped = new Map<string, number[]>()\n\n for (const r of results) {\n if (r.error) continue\n for (const score of r.scores) {\n if (score.value < 0) continue // skip unavailable scores (e.g., cost = -1)\n const key = groupKey(r.providerId, r.taskName, score.name)\n if (!grouped.has(key)) grouped.set(key, [])\n grouped.get(key)!.push(score.value)\n }\n }\n\n const stats = new Map<string, ScorerStats>()\n for (const [key, samples] of grouped) {\n stats.set(key, computeScorerStats(samples))\n }\n return stats\n}\n\n// ── Cost ─────────────────────────────────────────────────────────────\n\nexport function computeCostSummary(results: BenchmarkResult[], budget?: number): CostSummary {\n let totalUsd = 0\n const perProvider = new Map<string, number>()\n\n for (const r of results) {\n if (r.error) continue\n const costScore = r.scores.find((s) => s.name === 'cost')\n if (!costScore || costScore.value < 0) continue\n\n const details = costScore.details as { estimatedUsd?: number } | undefined\n const usd = details?.estimatedUsd ?? 0\n if (usd <= 0) continue\n\n totalUsd += usd\n perProvider.set(r.providerId, (perProvider.get(r.providerId) ?? 0) + usd)\n }\n\n return {\n totalUsd,\n perProvider,\n budget,\n overBudget: budget !== undefined && totalUsd > budget,\n }\n}\n\n// ── Comparison ───────────────────────────────────────────────────────\n\nexport function compareResults(\n baselineStats: Map<string, ScorerStats> | null,\n currentStats: Map<string, ScorerStats>,\n thresholds: Map<string, number>,\n budget?: number,\n currentResults?: BenchmarkResult[],\n): CiReport {\n const comparisons: ScorerComparison[] = []\n const failureReasons: string[] = []\n\n for (const [key, current] of currentStats) {\n const [providerId, taskName, scorerName] = key.split('::') as [string, string, string]\n const baseline = baselineStats?.get(key) ?? null\n\n let delta: number | null = null\n let regressed = false\n let improved = false\n\n if (baseline) {\n delta = current.mean - baseline.mean\n const threshold = thresholds.get(scorerName)\n\n if (threshold !== undefined) {\n const lowerIsBetter = LOWER_IS_BETTER.has(scorerName)\n regressed = detectRegression(baseline, current, threshold, lowerIsBetter)\n improved = detectImprovement(baseline, current, threshold, lowerIsBetter)\n }\n }\n\n const flaky = current.n > 1 && current.cv > FLAKY_CV_THRESHOLD\n\n comparisons.push({\n providerId, taskName, scorerName,\n baseline, current, delta,\n regressed, improved, flaky,\n })\n }\n\n // Cost check\n const cost = computeCostSummary(currentResults ?? [], budget)\n\n // Determine failure\n const regressions = comparisons.filter((c) => c.regressed)\n if (regressions.length > 0) {\n for (const r of regressions) {\n failureReasons.push(\n `${r.providerId} × ${r.taskName}: ${r.scorerName} regressed by ${formatDelta(r.delta!)}`\n )\n }\n }\n if (cost.overBudget) {\n failureReasons.push(\n `Total cost $${cost.totalUsd.toFixed(4)} exceeds budget $${cost.budget!.toFixed(2)}`\n )\n }\n\n const flakyResults = comparisons.filter((c) => c.flaky)\n const failed = failureReasons.length > 0\n\n return { comparisons, cost, failed, flakyResults, failureReasons }\n}\n\nfunction detectRegression(\n baseline: ScorerStats,\n current: ScorerStats,\n threshold: number,\n lowerIsBetter: boolean,\n): boolean {\n // For single-run comparisons: simple delta\n if (baseline.n === 1 && current.n === 1) {\n const delta = current.mean - baseline.mean\n if (lowerIsBetter) return delta > threshold\n return delta < -threshold\n }\n\n // Multi-run: conservative CI comparison\n if (lowerIsBetter) {\n // Cost-like: regresses if current lower bound is significantly above baseline upper bound\n return current.ci95Lower - baseline.ci95Upper > threshold\n }\n // Quality-like: regresses if current lower bound is significantly below baseline upper bound\n return baseline.ci95Upper - current.ci95Lower > threshold && current.mean < baseline.mean\n}\n\nfunction detectImprovement(\n baseline: ScorerStats,\n current: ScorerStats,\n threshold: number,\n lowerIsBetter: boolean,\n): boolean {\n if (baseline.n === 1 && current.n === 1) {\n const delta = current.mean - baseline.mean\n if (lowerIsBetter) return delta < -threshold\n return delta > threshold\n }\n\n if (lowerIsBetter) {\n return baseline.ci95Lower - current.ci95Upper > threshold\n }\n return current.ci95Lower - baseline.ci95Upper > threshold\n}\n\n// ── Baseline I/O ─────────────────────────────────────────────────────\n\nexport interface BaselineData {\n timestamp: string\n results: BenchmarkResult[]\n}\n\nexport function loadBaseline(path: string): BaselineData | null {\n try {\n const raw = readFileSync(path, 'utf-8')\n const data = JSON.parse(raw) as Record<string, unknown>\n\n // Support both formats: { results: [...] } and { results: [...], timestamp: ... }\n const results = (data.results ?? data) as BenchmarkResult[]\n if (!Array.isArray(results)) return null\n\n return {\n timestamp: (data.timestamp as string) ?? 'unknown',\n results,\n }\n } catch {\n return null\n }\n}\n\nexport function saveBaseline(path: string, results: BenchmarkResult[]): void {\n mkdirSync(dirname(path), { recursive: true })\n const data: BaselineData = {\n timestamp: new Date().toISOString(),\n results,\n }\n writeFileSync(path, JSON.stringify(data, null, 2))\n}\n","import { readFileSync } from 'node:fs'\n\n// ── Types ────────────────────────────────────────────────────────────\n\nexport interface GitHubContext {\n token: string\n owner: string\n repo: string\n prNumber: number\n}\n\ninterface GitHubComment {\n id: number\n body?: string\n}\n\n// ── Context detection ────────────────────────────────────────────────\n\nexport function detectGitHubContext(): GitHubContext | null {\n const token = process.env.GITHUB_TOKEN\n const repository = process.env.GITHUB_REPOSITORY\n const eventPath = process.env.GITHUB_EVENT_PATH\n\n if (!token || !repository) return null\n\n const [owner, repo] = repository.split('/')\n if (!owner || !repo) return null\n\n let prNumber: number | undefined\n\n // Try to get PR number from event payload\n if (eventPath) {\n try {\n const event = JSON.parse(readFileSync(eventPath, 'utf-8')) as Record<string, unknown>\n\n // pull_request event\n if (event.pull_request && typeof event.pull_request === 'object') {\n const pr = event.pull_request as Record<string, unknown>\n prNumber = pr.number as number\n }\n\n // issue_comment or other events with issue.pull_request\n if (!prNumber && event.issue && typeof event.issue === 'object') {\n const issue = event.issue as Record<string, unknown>\n if (issue.pull_request) {\n prNumber = issue.number as number\n }\n }\n } catch {\n // Can't read event file — not fatal\n }\n }\n\n // Fallback: DUELIST_PR_NUMBER env var for manual use\n if (!prNumber && process.env.DUELIST_PR_NUMBER) {\n prNumber = parseInt(process.env.DUELIST_PR_NUMBER, 10)\n }\n\n if (!prNumber) return null\n\n return { token, owner, repo, prNumber }\n}\n\n// ── PR comment helpers ───────────────────────────────────────────────\n\nconst API_BASE = 'https://api.github.com'\n\nfunction ghHeaders(token: string, extra?: Record<string, string>): Record<string, string> {\n return {\n Authorization: `Bearer ${token}`,\n Accept: 'application/vnd.github+json',\n 'X-GitHub-Api-Version': '2022-11-28',\n ...extra,\n }\n}\n\nexport async function findExistingComment(\n ctx: GitHubContext,\n marker: string,\n): Promise<number | null> {\n let page = 1\n const perPage = 50\n\n while (true) {\n const url = `${API_BASE}/repos/${ctx.owner}/${ctx.repo}/issues/${ctx.prNumber}/comments?per_page=${perPage}&page=${page}`\n const res = await fetch(url, { headers: ghHeaders(ctx.token) })\n\n if (!res.ok) return null\n\n const comments = (await res.json()) as GitHubComment[]\n if (comments.length === 0) break\n\n for (const comment of comments) {\n if (comment.body?.includes(marker)) {\n return comment.id\n }\n }\n\n if (comments.length < perPage) break\n page++\n }\n\n return null\n}\n\nexport async function upsertPrComment(\n ctx: GitHubContext,\n body: string,\n marker: string,\n): Promise<void> {\n const existingId = await findExistingComment(ctx, marker)\n\n if (existingId) {\n // Update existing comment\n const url = `${API_BASE}/repos/${ctx.owner}/${ctx.repo}/issues/comments/${existingId}`\n const res = await fetch(url, {\n method: 'PATCH',\n headers: ghHeaders(ctx.token, { 'Content-Type': 'application/json' }),\n body: JSON.stringify({ body }),\n })\n\n if (!res.ok) {\n const text = await res.text()\n console.warn(`Failed to update PR comment: ${res.status} ${text}`)\n }\n } else {\n // Create new comment\n const url = `${API_BASE}/repos/${ctx.owner}/${ctx.repo}/issues/${ctx.prNumber}/comments`\n const res = await fetch(url, {\n method: 'POST',\n headers: ghHeaders(ctx.token, { 'Content-Type': 'application/json' }),\n body: JSON.stringify({ body }),\n })\n\n if (!res.ok) {\n const text = await res.text()\n console.warn(`Failed to create PR comment: ${res.status} ${text}`)\n }\n }\n}\n","import { z } from 'zod'\nimport type { TaskPack } from './types.js'\n\nexport const structuredOutputPack: TaskPack = {\n name: 'structured-output',\n label: 'Structured Output',\n description: 'Zod schema stress test — flat objects, nesting, arrays, enums, empty arrays, and adversarial input',\n\n tasks: [\n {\n name: 'so:flat-entity',\n prompt:\n \"Extract the person's details from this text: 'Maria Garcia, age 34, works as a software architect in Barcelona, Spain. Her employee ID is EMP-2847.' Return as JSON.\",\n expected: {\n name: 'Maria Garcia',\n age: 34,\n role: 'software architect',\n city: 'Barcelona',\n country: 'Spain',\n employeeId: 'EMP-2847',\n },\n schema: z.object({\n name: z.string(),\n age: z.number(),\n role: z.string(),\n city: z.string(),\n country: z.string(),\n employeeId: z.string(),\n }),\n },\n\n {\n name: 'so:nested-object',\n prompt:\n \"Parse this shipping label into structured JSON: 'Ship to: Acme Corp, Attn: John Lee, 4th Floor, 742 Evergreen Terrace, Springfield, IL 62704, USA. Order #ORD-9912, 3 items, 2.4kg, express shipping.' Use shippingMethod values: standard, express, or overnight. Return as JSON.\",\n expected: {\n recipient: { company: 'Acme Corp', contact: 'John Lee', floor: '4th Floor' },\n address: { street: '742 Evergreen Terrace', city: 'Springfield', state: 'IL', zip: '62704', country: 'USA' },\n order: { id: 'ORD-9912', itemCount: 3, weightKg: 2.4, shippingMethod: 'express' },\n },\n schema: z.object({\n recipient: z.object({ company: z.string(), contact: z.string(), floor: z.string() }),\n address: z.object({\n street: z.string(),\n city: z.string(),\n state: z.string(),\n zip: z.string(),\n country: z.string(),\n }),\n order: z.object({\n id: z.string(),\n itemCount: z.number(),\n weightKg: z.number(),\n shippingMethod: z.enum(['standard', 'express', 'overnight']),\n }),\n }),\n },\n\n {\n name: 'so:array-of-objects',\n prompt:\n \"Extract all mentioned products with their prices and categories from this text: 'Our summer sale includes the UltraWidget Pro ($49.99, Electronics), ComfortMax Chair ($199.00, Furniture), and AquaPure Filter ($24.50, Home & Kitchen). The SmartLamp Mini is also available at $34.99 in the Electronics category.' Return as a JSON array.\",\n expected: [\n { name: 'UltraWidget Pro', price: 49.99, category: 'Electronics' },\n { name: 'ComfortMax Chair', price: 199.0, category: 'Furniture' },\n { name: 'AquaPure Filter', price: 24.5, category: 'Home & Kitchen' },\n { name: 'SmartLamp Mini', price: 34.99, category: 'Electronics' },\n ],\n schema: z.array(z.object({ name: z.string(), price: z.number(), category: z.string() })),\n },\n\n {\n name: 'so:empty-arrays',\n prompt:\n \"Extract all error codes and their severity levels from this log message: 'System health check completed at 14:32 UTC. All services operational. No warnings or errors detected. Uptime: 99.97%.' Classify status as one of: healthy, degraded, or down. Return as JSON.\",\n expected: { errors: [], warnings: [], status: 'healthy', uptimePercent: 99.97 },\n schema: z.object({\n errors: z.array(z.object({ code: z.string(), severity: z.string() })),\n warnings: z.array(z.string()),\n status: z.enum(['healthy', 'degraded', 'down']),\n uptimePercent: z.number(),\n }),\n },\n\n {\n name: 'so:enum-classification',\n prompt:\n 'Classify each of these support tickets by priority (low/medium/high/critical) and category (billing/technical/account/general). Use just the letter (A, B, C, D) as the id.\\nTicket A: \\'My account was charged twice for the same subscription.\\'\\nTicket B: \\'The API returns 500 errors intermittently.\\'\\nTicket C: \\'How do I update my display name?\\'\\nTicket D: \\'Production database is completely unresponsive, all services down.\\'\\nReturn as a JSON array.',\n expected: [\n { id: 'A', priority: 'high', category: 'billing' },\n { id: 'B', priority: 'high', category: 'technical' },\n { id: 'C', priority: 'low', category: 'account' },\n { id: 'D', priority: 'critical', category: 'technical' },\n ],\n schema: z.array(\n z.object({\n id: z.string(),\n priority: z.enum(['low', 'medium', 'high', 'critical']),\n category: z.enum(['billing', 'technical', 'account', 'general']),\n })\n ),\n },\n\n {\n name: 'so:adversarial-input',\n prompt:\n 'Extract the actual product review data from this messy input. Ignore any JSON-like noise in the text.\\n\\nUser said: \\'I bought the {product: \"fake\"} headphones for $59.99 and they\\'re great! Rating: 5/5. The \"noise-cancelling\" feature works well even in {\"noisy\": true} environments. Would recommend to friend=true. Purchased on 01/15/2026.\\'\\nReturn as JSON. Use ISO 8601 date format (YYYY-MM-DD).',\n expected: {\n product: 'headphones',\n price: 59.99,\n rating: 5,\n maxRating: 5,\n features: ['noise-cancelling'],\n recommended: true,\n purchaseDate: '2026-01-15',\n },\n schema: z.object({\n product: z.string(),\n price: z.number(),\n rating: z.number(),\n maxRating: z.number(),\n features: z.array(z.string()),\n recommended: z.boolean(),\n purchaseDate: z.string(),\n }),\n },\n ],\n\n scorers: ['correctness', 'schema-correctness', 'latency', 'cost'],\n}\n","import { z } from 'zod'\nimport type { TaskPack } from './types.js'\n\nexport const toolCallingPack: TaskPack = {\n name: 'tool-calling',\n label: 'Tool Calling',\n description: 'Function invocation accuracy — single calls, complex params, tool selection, parallel calls, and relevance detection',\n\n tasks: [\n {\n name: 'tc:simple-single-tool',\n prompt: \"What's the current weather in Tokyo?\",\n tools: [{\n name: 'getWeather',\n description: 'Get current weather for a city',\n parameters: z.object({\n city: z.string(),\n units: z.enum(['celsius', 'fahrenheit']).optional(),\n }),\n handler: async ({ city, units }: { city: string; units?: string }) => ({\n city,\n tempC: 8,\n condition: 'cloudy',\n units: units ?? 'celsius',\n }),\n }],\n expected: { city: 'Tokyo' },\n },\n\n {\n name: 'tc:complex-params',\n prompt: 'Search for Italian restaurants within 2 miles of downtown Portland that are open now and have at least a 4-star rating.',\n tools: [{\n name: 'searchRestaurants',\n description: 'Search for restaurants matching criteria',\n parameters: z.object({\n cuisine: z.string(),\n location: z.string(),\n radiusMiles: z.number(),\n minRating: z.number(),\n openNow: z.boolean(),\n }),\n handler: async (_args: {\n cuisine: string; location: string;\n radiusMiles: number; minRating: number; openNow: boolean\n }) => ({\n results: [{ name: 'Trattoria Roma', rating: 4.5, distance: 1.2 }],\n }),\n }],\n expected: {\n cuisine: 'Italian',\n location: 'downtown Portland',\n radiusMiles: 2,\n minRating: 4,\n openNow: true,\n },\n },\n\n {\n name: 'tc:select-from-many',\n prompt: 'Convert 150 USD to Euros.',\n tools: [\n {\n name: 'getWeather',\n description: 'Get current weather for a city',\n parameters: z.object({ city: z.string() }),\n handler: async () => ({ tempC: 20 }),\n },\n {\n name: 'convertCurrency',\n description: 'Convert an amount between currencies',\n parameters: z.object({\n amount: z.number(),\n from: z.string(),\n to: z.string(),\n }),\n handler: async ({ amount, from, to }: {\n amount: number; from: string; to: string\n }) => ({\n amount, from, to, result: 138.75, rate: 0.925,\n }),\n },\n {\n name: 'translateText',\n description: 'Translate text between languages',\n parameters: z.object({ text: z.string(), targetLang: z.string() }),\n handler: async () => ({ translated: '' }),\n },\n {\n name: 'calculateTip',\n description: 'Calculate tip amount for a bill',\n parameters: z.object({ billAmount: z.number(), tipPercent: z.number() }),\n handler: async () => ({ tip: 0 }),\n },\n ],\n expected: { amount: 150, from: 'USD', to: 'EUR' },\n },\n\n {\n name: 'tc:parallel-calls',\n prompt: \"I'm planning a trip. What's the weather like in both Paris and London right now?\",\n tools: [{\n name: 'getWeather',\n description: 'Get current weather for a city',\n parameters: z.object({ city: z.string() }),\n handler: async ({ city }: { city: string }) => {\n const data: Record<string, { tempC: number; condition: string }> = {\n Paris: { tempC: 12, condition: 'partly cloudy' },\n London: { tempC: 9, condition: 'rainy' },\n }\n return data[city] ?? { tempC: 15, condition: 'unknown' }\n },\n }],\n expected: 'weather data for Paris and London',\n },\n\n ],\n\n scorers: ['tool-usage', 'latency', 'cost'],\n}\n","import { z } from 'zod'\nimport type { TaskPack } from './types.js'\n\nexport const reasoningPack: TaskPack = {\n name: 'reasoning',\n label: 'Reasoning',\n description: 'Logic, math, and multi-step thinking — arithmetic, deduction, data interpretation, critical path, and business rules',\n\n tasks: [\n {\n name: 'rs:saas-mrr-calc',\n prompt: `A SaaS company charges $49/month for the basic plan and $149/month for pro.\nIn Q1 they had 200 basic subscribers and 85 pro subscribers.\nIn Q2, 15% of basic users upgraded to pro and they gained 40 new basic subscribers.\nNo one churned. What is the Q2 monthly recurring revenue (MRR)?\nReturn as JSON with your reasoning and the final MRR number.`,\n expected: { mrr: 27425 },\n schema: z.object({\n reasoning: z.string().optional(),\n mrr: z.number(),\n }),\n },\n\n {\n name: 'rs:logical-deduction',\n prompt: `Five developers — Alice, Bob, Carol, Dave, and Eve — each use a different\nprimary language: Rust, TypeScript, Python, Go, and Java. Given:\n1. Alice does not use Python, Java, or Go.\n2. Bob uses TypeScript.\n3. Carol uses neither Rust nor Go.\n4. Dave does not use Java.\n5. Eve uses neither Rust, Go, nor Java.\nWhat language does each developer use? Return as JSON.`,\n expected: {\n Alice: 'Rust',\n Bob: 'TypeScript',\n Carol: 'Java',\n Dave: 'Go',\n Eve: 'Python',\n },\n schema: z.object({\n Alice: z.string(),\n Bob: z.string(),\n Carol: z.string(),\n Dave: z.string(),\n Eve: z.string(),\n }),\n },\n\n {\n name: 'rs:data-interpretation',\n prompt: `Given this quarterly revenue data:\n| Quarter | Revenue | Growth |\n|---------|---------|--------|\n| Q1 2025 | $2.1M | - |\n| Q2 2025 | $2.4M | 14.3% |\n| Q3 2025 | $2.2M | -8.3% |\n| Q4 2025 | $2.8M | 27.3% |\n\nWhich quarter had the highest absolute revenue increase compared to the previous\nquarter? What was the full-year total revenue in millions? Return as JSON.`,\n expected: {\n highestGrowthQuarter: 'Q4 2025',\n absoluteIncrease: 0.6,\n fullYearRevenue: 9.5,\n },\n schema: z.object({\n highestGrowthQuarter: z.string(),\n absoluteIncrease: z.number(),\n fullYearRevenue: z.number(),\n }),\n },\n\n {\n name: 'rs:critical-path',\n prompt: `A deployment pipeline has these stages with dependencies:\n- Build (3 min, no dependency)\n- Unit tests (5 min, depends on Build)\n- Integration tests (8 min, depends on Build)\n- Security scan (4 min, depends on Build)\n- Staging deploy (2 min, depends on Unit tests AND Integration tests AND Security scan)\n- Smoke tests (3 min, depends on Staging deploy)\n\nAssuming stages run in parallel where possible, what is the total pipeline\nduration in minutes? Which stages are on the critical path? Return as JSON.`,\n expected: {\n totalMinutes: 16,\n criticalPath: ['Build', 'Integration tests', 'Staging deploy', 'Smoke tests'],\n },\n schema: z.object({\n totalMinutes: z.number(),\n criticalPath: z.array(z.string()),\n }),\n },\n\n {\n name: 'rs:pricing-rules',\n prompt: `Apply these pricing rules to each customer and return the final price:\nRules:\n- Base price: $100\n- Enterprise customers (>100 seats): 30% discount\n- Annual billing: additional 15% off the discounted price\n- Non-profit organizations: flat $50 regardless of other rules\n\nCustomers:\nA: 50 seats, monthly billing, for-profit\nB: 200 seats, annual billing, for-profit\nC: 75 seats, annual billing, non-profit\nD: 150 seats, monthly billing, for-profit\n\nReturn as a JSON array with customer id and finalPrice.`,\n expected: [\n { id: 'A', finalPrice: 100 },\n { id: 'B', finalPrice: 59.5 },\n { id: 'C', finalPrice: 50 },\n { id: 'D', finalPrice: 70 },\n ],\n schema: z.array(z.object({\n id: z.string(),\n finalPrice: z.number(),\n })),\n },\n ],\n\n scorers: ['correctness', 'latency', 'cost'],\n}\n","import type { TaskPack } from './types.js'\nimport { structuredOutputPack } from './structured-output.js'\nimport { toolCallingPack } from './tool-calling.js'\nimport { reasoningPack } from './reasoning.js'\n\nconst registry = new Map<string, TaskPack>()\n\nfunction register(pack: TaskPack): void {\n registry.set(pack.name, pack)\n}\n\nregister(structuredOutputPack)\nregister(toolCallingPack)\nregister(reasoningPack)\n\n/** Get a pack by name. Throws if not found. */\nexport function loadPack(name: string): TaskPack {\n const pack = registry.get(name)\n if (!pack) {\n const available = [...registry.keys()].join(', ')\n throw new Error(`Unknown pack \"${name}\". Available packs: ${available}`)\n }\n return pack\n}\n\n/** Get all available pack names */\nexport function listPacks(): Array<{ name: string; label: string; description: string; taskCount: number }> {\n return [...registry.values()].map((p) => ({\n name: p.name,\n label: p.label,\n description: p.description,\n taskCount: p.tasks.length,\n }))\n}\n","import type { ArenaConfig } from '../arena.js'\nimport type { ArenaProvider } from '../providers/types.js'\nimport type { BuiltInScorerName } from '../scorers/types.js'\nimport { loadPack } from './index.js'\n\nexport interface PackRunConfig {\n /** Pack names to load */\n packs: string[]\n /** Providers from user config or CLI defaults */\n providers: ArenaProvider[]\n /** Override runs count. Default: 1 */\n runs?: number\n /** Per-request timeout in ms. Forwarded from arena config. */\n timeout?: number\n}\n\n/**\n * Merge packs into a single ArenaConfig.\n * - Tasks are concatenated across packs\n * - Scorers are merged (union of all pack scorers, deduped)\n */\nexport function buildPackConfig(config: PackRunConfig): ArenaConfig {\n const packs = config.packs.map((name) => loadPack(name))\n\n const tasks = packs.flatMap((p) => p.tasks)\n\n const scorerSet = new Set<BuiltInScorerName>()\n for (const pack of packs) {\n for (const scorer of pack.scorers) {\n scorerSet.add(scorer)\n }\n }\n\n return {\n providers: config.providers,\n tasks,\n scorers: [...scorerSet],\n runs: config.runs ?? 1,\n timeout: config.timeout,\n }\n}\n"],"mappings":"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EA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,GAAG,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAAE,IAAE,KAAIA,GAAEA,GAAE,IAAE,EAA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","names":["o","e","t","r","r","t","s","e","o","c","n","i","l","g","m","a","p","m","h","e","t","s","n","o","l","u","a","r","g","v","d","_","c","y","A","b","k","i","p","D","L","T","O","F","w","j","S","$","R","V","U","M","z","E","I","init_dist","f","B","module","__defProp","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","__export","__copyProps","i","fn","n","e","resolve","resolve2","at","G","A","E","Q","g","B","s","R","r","U","t","C","I","D","i","w","J","K","o","N","Y","a","X","s","e","n","i","o","c","u","p","g","b","K","d","je","Ue","Ie","en","De","me","r","Y","$e","tn","sn","Te","f","_","We","Z","v","re","Fe","R","L","E","N","t","a","h","l","w","m","C","z","A","$","fe","le","P","Ee","I","O","ue","he","ne","M","T","ge","be","pe","we","S","k","te","H","j","Le","B","G","de","ce","q","Re","Oe","ke","ye","Be","Ce","He","Xe","se","Ke","Ye","Qe","Ze","Ve","F","oe","Ne","Me","ae","ee","nn","Q","J","_e","Se","Pe","Je","xe","Ge","qe","ze","ie","ve","Ae","qt","zt","p","a","o","m","c","f","e","n","t","i","r","s","e","s","n","r","o","c","a","p","f","u","t","i","d","O","C","R","I","L","E","d","p","O","se","te","oe","K","o","R","D","me","N","pe","y","C","de","E","ge","Q","_","A","T","Pe","I","F","v","J","P","je","be","xe","k","ye","G","_e","Se","b","X","w","ve","z","we","Me","Te","Fe","H","$e","init_dist","s","e","n","a","f","t","r","L","c","i","u","m","g","h","l","m","u","h","d","o","w","l","E","r","s","e","a","y","t","p","c","D","f","n","i","m","a","e","s","i","r","t","$e","c","i","o","n","a","u","m","e","t","r","s","E","f","import_esbuild","s","i","init_dist","r","t","e","o","m","a","$e","u","ge","de","readFileSync","writeFileSync","mkdirSync","dirname","i","v","v","i","a","b","OpenAI","AzureOpenAI","zodToJsonSchema","OpenAI","AzureOpenAI","s","c","t","k","resolve","v","e","r","s","a","b","p","v","k","i","s","w","i","c","p","m","r","e","a","b","r","f","c","s","m","r","a","b","c","p","i","t","e","a","b","i","n","se","t","r","s","c","readFileSync","z","z","p","p","__dirname","dirname","readFileSync","writeFileSync","mkdirSync","r","p","s"]}