From 7f562a286ffce1e04c71ad0ee3c64e53d680cddf Mon Sep 17 00:00:00 2001 From: Steve Shreeve Date: Wed, 16 Sep 2026 00:50:42 -0600 Subject: [PATCH] emitter: one counting header for every range loop A range loop now lowers to the same counting header in every form: block statement, block in tail or value position, postfix, and parenthesized comprehension. The postfix and comprehension forms, and a block loop in tail position, used to materialize the range with Array.from and iterate it with for-of; only the component render path still builds the range, because __reconcile consumes the array. Direction: a literal step's sign decides, and a zero literal rejects; a variable step binds once and the header tests its sign; with no step, two literal bounds decide statically, so [3..1] descends in every form, and any variable bound ascends, with `by -1` to descend. Negative literal bounds are literals, so [2..-2] needs no temp. A second loop variable is the iteration index, which the block paths never bound. Behavior that changes: [1..n] with n = 0 ran twice in the materialized forms and now runs zero times, which fixes the zero-tests and zero-jobs cases in the sites and swarm packages; a variable range with start above end ran downward in those forms and is now empty; a fractional bound compares directly instead of flooring through Array length, and the one site that relied on the floor, the pdf name-record reader, now spells it with >> 1. Corpus: compose4.js line 16 changes from the Array.from helper to `for (let n = 1; n <= 3; n++) {`, with its map; 184 artifacts unchanged. The parser is untouched. The browser bundle is regenerated under the pinned Bun. Measured on the loop alone with a trivial body: 4.8x faster at 8 iterations, 9.0x at 1024, 6.9x at 65536. The barcodes package emits no materialized range anywhere, its parity oracles report zero mismatches, and its bench is unchanged because its hot loops were already block form. Battery: 36 rows across loops.rip and comprehensions.rip pin every form and direction, the two-variable form, evaluation order, per-iteration capture, fractional and negative bounds, and the emitted headers. --- dist/@rip/rip.js | 82 ++++----- dist/@rip/rip.min.js | 232 ++++++++++++------------- dist/@rip/rip.min.js.br | Bin 177663 -> 177491 bytes packages/pdf/pdf.rip | 2 +- src/emitter.js | 89 +++++----- test/corpus/expected/compose4.js | 2 +- test/corpus/expected/compose4.map.json | 2 +- test/rip/comprehensions.rip | 46 +++++ test/rip/loops.rip | 103 +++++++++++ 9 files changed, 352 insertions(+), 206 deletions(-) diff --git a/dist/@rip/rip.js b/dist/@rip/rip.js index 9c522473..aa58ce44 100644 --- a/dist/@rip/rip.js +++ b/dist/@rip/rip.js @@ -13161,19 +13161,27 @@ ${pad}`); this.patternNames(v, names, true); return names; } - rangedByHeader(node, markVar, vars, iter, step) { + rangedHeader(node, markVar, vars, iter, step) { const [dots, from, to] = iter; const cmpUp = dots === ".." ? "<=" : "<"; const cmpDown = dots === ".." ? ">=" : ">"; const numText = (s) => typeof s === "string" && /^[0-9.]/.test(s) ? s : null; - const posLit = numText(step) ?? (isNode(step) && step[0] === "+" && step.length === 2 ? numText(step[1]) : null); - const negLit = isNode(step) && step[0] === "-" && step.length === 2 ? numText(step[1]) : null; - if ((posLit ?? negLit) !== null && Number((posLit ?? negLit).replace(/_/g, "")) === 0) { + const signedText = (x) => numText(x) ?? (isNode(x) && (x[0] === "+" || x[0] === "-") && x.length === 2 && numText(x[1]) !== null ? `${x[0] === "-" ? "-" : ""}${numText(x[1])}` : null); + const literal = (x) => { + const text = signedText(x); + return text === null ? null : Number(text.replace(/_/g, "")); + }; + const stepLit = step === null ? null : literal(step); + if (stepLit === 0) { throw this.positionedError(node, "emitter: a BY step of 0 never advances the loop"); } + const fromLit = literal(from); + const toLit = literal(to); + const descends = step === null ? fromLit !== null && toLit !== null && fromLit > toLit : stepLit !== null && stepLit < 0; const v = vars[0]; - const toRef = this.singleReadIterable(to) ? null : this.loopTempName("_ref"); - const stepRef = posLit !== null || negLit !== null ? null : this.loopTempName("_step"); + const idx = vars.length === 2 ? vars[1] : null; + const toRef = toLit !== null || this.singleReadIterable(to) ? null : this.loopTempName("_ref"); + const stepRef = step === null || stepLit !== null ? null : this.loopTempName("_step"); this.b.emit("for (let "); markVar(v); this.b.emit(" = "); @@ -13186,32 +13194,42 @@ ${pad}`); this.b.emit(`, ${stepRef} = `); this.mark(node, "step", () => this.expr(step)); } + if (idx !== null) { + this.b.emit(", "); + markVar(idx); + this.b.emit(" = 0"); + } const toText = () => { if (toRef !== null) this.b.emit(toRef); else this.expr(to); }; + const advance = () => { + if (stepRef !== null) + this.b.emit(`${v} += ${stepRef}`); + else if (step === null) + this.b.emit(descends ? `${v}--` : `${v}++`); + else { + this.b.emit(`${v} ${descends ? "-=" : "+="} `); + this.mark(node, "step", () => this.b.emit(String(Math.abs(stepLit)))); + } + if (idx !== null) + this.b.emit(`, ${idx}++`); + }; this.b.emit("; "); if (stepRef !== null) { this.b.emit(`${stepRef} > 0 ? ${v} ${cmpUp} `); toText(); this.b.emit(` : ${v} ${cmpDown} `); toText(); - this.b.emit(`; ${v} += ${stepRef})`); - } else if (negLit !== null) { - this.b.emit(`${v} ${cmpDown} `); - toText(); - this.b.emit(`; ${v} -= `); - this.mark(node, "step", () => this.b.emit(negLit)); - this.b.emit(")"); } else { - this.b.emit(`${v} ${cmpUp} `); + this.b.emit(`${v} ${descends ? cmpDown : cmpUp} `); toText(); - this.b.emit(`; ${v} += `); - this.mark(node, "step", () => this.b.emit(posLit)); - this.b.emit(")"); } + this.b.emit("; "); + advance(); + this.b.emit(")"); } forIn(node, ind) { this.inCtrl(() => this.forInCtrl(node, ind)); @@ -13226,26 +13244,8 @@ ${pad}`); if (isNode(vars[0]) && (isRange(iter) || step !== null)) { throw this.positionedError(node, "emitter: pattern loop variables with ranges or BY steps are not supported yet"); } - if (isRange(iter) && step === null) { - const [dots, from, to] = iter; - const toRef = this.singleReadIterable(to) ? null : this.loopTempName("_ref"); - this.b.emit("for (let "); - markVar(vars[0]); - this.b.emit(" = "); - this.expr(from); - if (toRef) { - this.b.emit(`, ${toRef} = `); - this.expr(to); - } - this.b.emit(`; ${vars[0]} ${dots === ".." ? "<=" : "<"} `); - if (toRef) - this.b.emit(toRef); - else - this.expr(to); - this.b.emit(`; ${vars[0]}++) `); - this.guardedBlock(body, guard, ind); - } else if (isRange(iter)) { - this.rangedByHeader(node, markVar, vars, iter, step); + if (isRange(iter)) { + this.rangedHeader(node, markVar, vars, iter, step); this.b.emit(" "); this.guardedBlock(body, guard, ind); } else if (step !== null) { @@ -13568,8 +13568,8 @@ ${pad ?? ""}`); if (isNode(vars[0]) && (isRange(iter) || step !== null)) { throw this.positionedError(node, "emitter: pattern loop variables with ranges or BY steps are not supported yet"); } - if (isRange(iter) && step !== null) { - this.rangedByHeader(node, markVar, vars, iter, step); + if (isRange(iter)) { + this.rangedHeader(node, markVar, vars, iter, step); return setups; } if (step !== null) { @@ -30600,7 +30600,7 @@ var sha256 = function(input) { let w = new Uint32Array(64); let i = 0; while (i < padded.length) { - for (let j of ((s, e2) => Array.from({ length: Math.max(0, Math.abs(e2 - s)) }, (_, i2) => s + i2 * (s <= e2 ? 1 : -1)))(0, 16)) { + for (let j = 0;j < 16; j++) { w[j] = view.getUint32(i + j * 4, false); } for (let j = 16;j < 64; j++) { @@ -30637,7 +30637,7 @@ var sha256 = function(input) { } let digest = new Uint8Array(32); let out = new DataView(digest.buffer); - for (let i2 of ((s, e2) => Array.from({ length: Math.max(0, Math.abs(e2 - s)) }, (_, i3) => s + i3 * (s <= e2 ? 1 : -1)))(0, 8)) { + for (let i2 = 0;i2 < 8; i2++) { out.setUint32(i2 * 4, H[i2], false); } return digest; diff --git a/dist/@rip/rip.min.js b/dist/@rip/rip.min.js index ee0e6678..3b0bedb1 100644 --- a/dist/@rip/rip.min.js +++ b/dist/@rip/rip.min.js @@ -1,41 +1,41 @@ -var t2=Object.defineProperty;var r2=(e)=>e;function n2(e,t){this[e]=r2.bind(null,t)}var Ce=(e,t)=>{for(var r in t)t2(e,r,{get:t[r],enumerable:!0,configurable:!0,set:n2.bind(t,r)})};class de{constructor(e,t=""){this.path=t,this.text=e;let r=[0];for(let i=0;ithis.text.length)e=this.text.length;let t=this.lineStarts,r=0,i=t.length-1;while(r<=i){let n=r+i>>1;if(t[n]<=e)r=n+1;else i=n-1}return{line:i,col:e-t[i]}}offsetAt(e,t){if(e<0)return 0;if(e>=this.lineStarts.length)return this.text.length;let r=this.lineStarts[e],i=e+1r&&this.text.charCodeAt(i-1)===13)i--;let n=r+Math.max(0,t);return n>i?i:n}slice(e,t){return this.text.slice(e,t)}}var Y={on:!1,n:0},mi=()=>{if(Y.on=typeof process<"u"&&!!process.env.RIP_COUNT_OPS,Y.on)Y.n=0;return Y.on};class Kr extends Error{constructor(e){super(e);this.name="TypeTextError"}}var Ct=(e)=>String(e??"").trim(),Pe=(e)=>String(e??""),di=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},pi=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},gi=()=>()=>!1,bi=()=>new Set;function ne(e){return String(e).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function Yr(e){return String(e).replace(/_([a-z])/g,(t,r)=>r.toUpperCase())}function zr(e){return ne(e)+"_id"}function Je(e){if(typeof e!=="string"||!/^[a-z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function qr(e){if(typeof e!=="string"||!/^[A-Z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function i2(e){return typeof e==="string"&&/^[a-z_][a-z0-9_]*$/.test(e)}function s2(e){return typeof e==="string"&&e.length>0&&!/[\u0000-\u001f\u007f".]/.test(e)}var Xr={__proto__:null,mixin:"target",times:"none",softDelete:"none",belongsTo:"target",hasOne:"target",hasMany:"target",index:"columns",unique:"columns",idStart:"int",table:"name",tableWas:"name",primary:"field"},yi=["idStart","table","tableWas","primary","times","softDelete"],Si=["belongsTo","hasOne","hasMany"],Jr={__proto__:null,column:"literal",was:"column"},Ri={__proto__:null,as:"property",foreignKey:"column",through:"model",targetKey:"column"};function Zr(e,t,r){if(typeof r!=="string"||!r.length)return"'"+t+"' requires a non-empty string";if(e==="property"&&!Je(r))return"'"+t+"' is a property name — canonical camelCase, e.g. {"+t+": author}";if(e==="model"&&!qr(r))return"'"+t+"' is a model name — canonical PascalCase, e.g. {"+t+": Membership}";if(e==="column"&&!i2(r))return"'"+t+"' is a column name Rip generates — lowercase, digits and underscores "+"only, e.g. {"+t+': "author_id"}';if(e==="literal"&&!s2(r))return"'"+t+"' is a database column name — any spelling the database uses, but with "+"no dots, double quotes, or control characters";return null}var a2=new Set(["input","shape","mixin","enum","union","model"]);var o2=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),Ei=new Set(["integer","number","boolean","date","datetime"]),l2={__proto__:null,id:"integer",int:"integer",whole:"integer",float:"number",money:"integer",money_even:"integer",cents:"integer",decimal:"string",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},c2=new Set(["string","email","url","phone","zip"]),f2=new Set(["TERMINATOR","INDENT","OUTDENT","=","COMPOUND_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","LEADING_WHEN","THEN","IF","UNLESS","UNARY","UNARY_MATH"]),ki=new Set(["defaultMaxString"]),P1=(e)=>e&&(e.kind==="IDENTIFIER"||e.kind==="PROPERTY"),Ze=(e)=>e&&typeof e.value==="string"&&/^[a-z]+$/.test(e.value)&&(e.kind===e.value.toUpperCase()||e.kind==="LEADING_WHEN"||e.kind==="RELATION"||e.kind==="STATEMENT"),h2=(e)=>`__${e}__behavior`,V1=(e,t,r=!1)=>{if(e[t]?.kind!==":")return null;let i=e[t+1];if(!i||i.spaced)return null;if(P1(i)||r&&/^[a-z]+$/.test(i.value)&&i.kind===i.value.toUpperCase())return i;return null};function u2(e,t){if(typeof e?.start!=="number")throw e;t(e)}function Ai(e,t,r,i,n=null){if(r.indexOf("schema")===-1)return;let s=[],a={defaultMaxString:null,tolerate:n},o=0,l=0;while(l0){l+=f;continue}if(p2(e,l,i)){l=g2(e,l,s,a,t,i,r);continue}s.push(c),l++}e.length=0;for(let c of s)e.push(c)}function m2(e,t,r,i,n){let s=e[t];if(!s||s.kind!=="IDENTIFIER"||s.value!=="schema")return 0;if(e[t+1]?.kind!==".")return 0;let a=e[t+2];if(!a||a.kind!=="PROPERTY")return 0;if(e[t+3]?.kind!=="=")return 0;let o=e[t-1];if(o&&o.kind!=="TERMINATOR"&&o.kind!=="INDENT"&&o.kind!=="OUTDENT")return 0;let l=a.value;if(!ki.has(l))n(`unknown schema pragma 'schema.${l}' — known pragmas: ${[...ki].join(", ")}`,a.start);if(i>0)n(`schema pragma 'schema.${l}' must be declared at file top level — inside a nested block it would leak into later top-level schemas`,a.start);let c=e[t+4];if(!c||c.kind!=="NUMBER")n(`pragma 'schema.${l}' requires a number literal — example: schema.${l} = 100`,(c??a).start);let f=Number(c.value);if(!Number.isFinite(f)||f<0||!Number.isInteger(f))n(`pragma 'schema.${l}' expects a non-negative integer (got ${c.value}); use 0 to disable`,c.start);r[l]=f===0?null:f;let h=t+5;if(e[h]?.kind==="TERMINATOR")h++;return h-t}var vi=(e,t)=>{if(e[t]?.kind==="SYMBOL")return e[t];return e[t]?.kind===":"&&e[t].spaced?V1(e,t,!0):null},Oi=(e,t)=>e[t]?.kind==="SYMBOL"?1:2,d2=(e,t)=>{if(e[t]?.kind!==","||!P1(e[t+1])||e[t+1].value!=="on")return t;let r=t+2;if(e[r]?.kind===":")r++;while(r")s("inline schema bodies do not support '->' (methods/hooks/scopes/transforms) — use the indented form",y.start);else if(_===0&&(p==="EFFECT"||p==="!>"))s(`inline schema bodies do not support '${y.value}' (${p==="EFFECT"?"computed getters":"eager-derived fields"}) — use the indented form`,y.start);b++}while(b>R&&e[b-1].kind==="TERMINATOR")b--;if(m=e.slice(R,b),S=b,!m.length)s("inline schema body is empty — add '; field; …' entries or switch to the indented form",o.start);g=m[m.length-1].end}else{if(e[f]?.kind==="TERMINATOR")f++;if(e[f]?.kind!=="INDENT")s(`expected an indented schema body after 'schema${c?" :"+l:""}'`,o.start);let R=f,b=0,_=-1;for(let y=R;yR.kind==="SYMBOL"?[{...R,kind:":",value:":",end:R.start+1},{...R,kind:"IDENTIFIER",start:R.start+1,spaced:!1}]:[R]);let d=b2(l,c,m,{schemaStart:o.start,defaultMaxString:i.defaultMaxString,tolerate:i.tolerate??null},s);if(u)d.adapterTokens=u;return d.start=(c??m[0]).start,d.end=g,d.primitiveSpans=[c,...m].filter((R)=>R&&typeof R.value==="string"&&/^[A-Za-z_$][\w$]*$/.test(R.value)).map((R)=>({value:R.value,sourceStart:R===c&&R.end-R.start===R.value.length+1?R.start+1:R.start,sourceEnd:R.end})),r.push({id:n(),kind:"SCHEMA",value:"schema",start:o.start,end:o.end,spaced:o.spaced}),r.push({id:n(),kind:"SCHEMA_BODY",value:d,start:d.start,end:d.end,spaced:!0}),S}function b2(e,t,r,i,n){let s=[],a=y2(r);if(e==="input"&&!t&&a.length>0&&V1(a[0],0))e="enum";if(e==="enum")for(let o of a)$2(o,s,n);else if(e==="union"){for(let c of a)I2(c,s,n);let o=s.filter((c)=>c.tag==="directive"&&c.name==="on").length,l=s.filter((c)=>c.tag==="union-member");if(o!==1)n(o===0?":union requires an '@on :field' discriminator — untagged unions are not supported":`:union takes exactly one '@on :field' discriminator (got ${o})`,i.schemaStart);if(l.length<2)n(`:union needs at least two constituent schemas (got ${l.length})`,i.schemaStart)}else{for(let o of a)S2(e,o,s,i,n);if(e==="model")T2(s,n);else for(let o of s){if(o.tag==="scope"||o.tag==="defaultScope")n(`:${e} schemas don't accept query scopes — '@${o.tag==="scope"?"scope":"defaultScope"}' is :model-only`,o.start);if(e==="mixin"&&(o.tag==="method"||o.tag==="computed"||o.tag==="derived"))n(`:mixin schemas are fields-only — '${o.name}' is a ${o.tag}; move it to a :shape or :model`,o.start);if(e==="mixin"&&o.tag==="ensure")n(":mixin schemas don't accept @ensure refinements — move the invariant to a :shape or :model that composes this mixin",o.start);if(e==="input"&&(o.tag==="method"||o.tag==="computed"))n(`:input schemas are fields-only — '${o.name}' is a ${o.tag}; use :shape or :model if you need behavior`,o.start);if(o.tag==="directive"&&o.name!=="mixin")n(`:${e} schemas only accept '@mixin Name'${e==="input"?" and '@ensure'":""} — '@${o.name}' is ${["times","softDelete","belongsTo","hasMany","hasOne","unique","index","idStart","table","tableWas","primary"].includes(o.name)?":model-only":"not a schema directive"}`,o.start)}}return{kind:e,entries:s,toJSON(){return this.kind}}}function y2(e){let t=[],r=[],i=0;for(let n of e){if(n.kind==="INDENT")i++;if(n.kind==="OUTDENT")i--;if(n.kind==="TERMINATOR"&&i===0){if(r.length)t.push(r),r=[];continue}r.push(n)}if(r.length)t.push(r);return t}function S2(e,t,r,i,n){let s=t[0];if(!s)return;if(s.kind==="@"){let C=t[1];if(!P1(C))n("expected a directive name after '@'",s.start);let w=C.value;if(w==="ensure"){let a1=2,h1=!1;if(t[2]?.kind==="DAMMIT"&&!t[2].spaced)h1=!0,a1=3;let f1=_2(t.slice(a1),s,n);for(let z of f1)r.push({tag:"ensure",name:"ensure",message:z.message,field:z.field,fieldStart:z.fieldStart,async:h1,paramTokens:z.paramTokens,bodyTokens:z.bodyTokens,start:s.start});return}if(w==="scope"){let a1=k2(t.slice(2),s,n);r.push({tag:"scope",name:a1.name,paramTokens:a1.paramTokens,bodyTokens:a1.bodyTokens,start:s.start});return}if(w==="defaultScope"){let a1=Ii(t.slice(2),s,"@defaultScope",n);if(a1.paramTokens.length)n("@defaultScope takes no parameters — write '@defaultScope -> @where(...)'",s.start);r.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:a1.bodyTokens,start:s.start});return}let D=null,B=t.slice(2);if(w==="mixin"){let a1=B[0];if(!P1(a1))n("@mixin requires a target name — '@mixin Timestamps'",s.start);if(B.length>1)n("@mixin takes exactly one schema name",B[1].start);D=[{target:a1.value}]}r.push({tag:"directive",name:w,args:D,argTokens:B,start:s.start,nameStart:C.start});return}if(s.kind==="PROPERTY"){if(i.tolerate){try{Ti(e,s,t,r,n)}catch(C){u2(C,i.tolerate)}return}Ti(e,s,t,r,n);return}if(s.kind!=="IDENTIFIER"&&!Ze(s))n(`unexpected ${s.kind} at schema top level — allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), computed getters ('name: ~> body')`,s.start);let a=s.value;if(t[1]?.kind===":")n(`schema fields use 'name type' (space, no colon) — got '${a}:'`,t[1].start);let o=[],l=1;while(l{if(t[C]?.kind==="STRING"&&t[C].value.startsWith('"'))return{value:JSON.parse(t[C].value),bracketed:!1,start:t[C].start,end:t[C].end,next:C+1};if((t[C]?.kind==="["||t[C]?.kind==="INDEX_START")&&t[C+1]?.kind==="STRING"&&t[C+1].value.startsWith('"')&&(t[C+2]?.kind==="]"||t[C+2]?.kind==="INDEX_END"))return{value:JSON.parse(t[C+1].value),bracketed:!0,start:t[C].start,end:t[C+2].end,next:C+3};return null},b=void 0,_=null,y=R(l);if(g?.kind==="UNARY_MATH"&&g.value==="~"){let C=V1(t,l+1),w=t[l+1];if(C){h=!0,u=C.value;let D=l2[u];if(D&&typeof D==="object")c=D.type,m=!0;else c=D||"any";l+=3}else if(w?.kind==="IDENTIFIER"&&!w.spaced){if(!Ei.has(w.value))n(`'~${w.value}' is not coercible — built-in coercion exists for: ${[...Ei].join(", ")}; named coercers use a symbol ('~:${w.value}'); otherwise write a transform ('${a}, -> …')`,w.start);h=!0,c=w.value,l+=2}else n("'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) or a registered coercer symbol ('~:ssn', …)",g.start);S=!0}else if(g?.kind==="IDENTIFIER")c=g.value,S=!0,l++;else if(y&&(!y.bracketed||t[y.next]?.kind==="|")){f=[];let C=(w)=>{if(f.push(w.value),w.bracketed){if(_)n(`field '${a}' brackets more than one union member as its default — a field has one default`,w.start);b=w.value,_={start:w.start,end:w.end}}};C(y),l=y.next,S=!0;while(t[l]?.kind==="|"){let w=R(l+1);if(!w)n(`literal unions contain string literals only — '${t[l+1]?.kind??""}' is not allowed as a union member; use the '?' modifier for nullability`,t[l].start);C(w),l=w.next}c="literal-union"}let p=!1,k=(C)=>(t[C]?.kind==="["||t[C]?.kind==="INDEX_START")&&(t[C+1]?.kind==="]"||t[C+1]?.kind==="INDEX_END");if(k(l)){if(p=!0,l+=2,k(l))n(`field '${a}' — nested array types ('${c}[][]') are not supported: one '[]' validates element-wise; use 'json' or a '-> transform' for deeper nesting`,t[l].start)}if(h&&p)n(`coercion ('~${c}') does not apply to array types — coerce per-element with a transform instead`,g.start);if(m)p=!0;if(p&&f)n("array-of-literal-union is not supported — use 'string[]' for an array of strings",g.start);let I=g?.kind==="UNARY_MATH"&&g.value==="~"?t[d+1]:g,A=S?[I.start,t[l-1].end]:null,x=t.slice(l);if(S&&x[0]?.kind==="->")n(`field '${a}' has a transform after the type; a comma is required before '->' — write '${a} ${c}, -> …'`,x[0].start);let O=null,G=void 0,K=!1;if(_)G=b,K=!0;let V={};if(_)V.start=_.start,V.end=_.end;let Z=null,W=null,j=null,q=!1,t1=!1;if(x.length>0){if(x[0]?.kind===",")x=x.slice(1);if(x.length>=2&&x[0].kind==="INDENT"){let w=0,D=-1;for(let B=0;B"){let a1=L2(D),h1=D[0].kind==="@"&&a1===2;if(a1>0&&!h1)n(`field '${a}' has a transform after other content; a comma is required before '->'`,D[a1].start);if(!h1){while(D.length&&(D[D.length-1].kind==="OUTDENT"||D[D.length-1].kind==="TERMINATOR"))D=D.slice(0,-1);if(!D.length)continue}}let B=D[0];if(B.kind==="["||B.kind==="INDEX_START"){if(K)n(`field '${a}' has more than one '[…]' default bracket`,B.start);G=C2(D,a,n,V),K=!0}else if(B.kind==="{"){if(e!=="model"&&e!=="mixin")n(`field attrs ('{…}') are persistence metadata — :model/:mixin-only ('{was: "old_column"}' annotates a column rename)`,B.start);if(j)n(`field '${a}' has more than one '{…}' attrs bracket`,B.start);j=R2(D,a,n)}else if(D2(D)){if(O)n(`field '${a}' has more than one range constraint — one 'min..max' per field`,B.start);O=x2(D,a,n)}else if(B.kind==="REGEX"&&D.length===1){if(Z)n(`field '${a}' has more than one regex constraint`,B.start);Z=P2(B,n)}else if(B.kind==="->"){if(w!==C.length-1)n(`transform '-> …' must be the last element on the field line for '${a}'`,B.start);W=D.slice(1)}else if(B.kind==="@"){let a1=P1(D[1])?D[1].value:null;if(e!=="model"&&e!=="mixin")n(`inline '@${a1??""}' on field '${a}' is persistence metadata — :model/:mixin-only ('@unique' marks single-column uniqueness)`,B.start);if(D.length>2&&D[2].kind==="->"){if(w!==C.length-1)n(`transform '-> …' must be the last element on the field line for '${a}'`,D[2].start);W=D.slice(3),D=D.slice(0,2)}if(D.length===2&&a1==="unique"){if(q)n(`field '${a}' has more than one '@unique'`,B.start);q=!0}else if(D.length===2&&a1==="primary"){if(e!=="model")n(`inline '@primary' on field '${a}' is :model-only — a mixin cannot declare the primary key`,B.start);if(t1)n(`field '${a}' has more than one '@primary'`,B.start);t1=!0}else n(`unknown inline attribute '@${a1??""}' on field '${a}' — the inline attributes are '@unique' and '@primary'`,B.start)}else n(`unexpected trailer for field '${a}' — expected '[…]' default, '/regex/', 'min..max' range, or '-> transform'`,B.start)}}if(h&&W)n(`field '${a}' has both '~${c}' coercion and a '->' transform — a transform replaces coercion; coerce inside it instead`,s.start);let M={};if(O){if(O.min!==void 0)M.min=O.min;if(O.max!==void 0)M.max=O.max;if(O.min===void 0&&M.min===void 0&&o.includes("!"))M.min=1}if(Z)M.regex=Z;if(K)M.default=G;if(f&&M.default!==void 0&&!f.includes(M.default))n(`field '${a}' defaults to ${JSON.stringify(M.default)}, which is not a member of its literal union (${f.map((C)=>JSON.stringify(C)).join(" | ")})`,s.start);if(i.defaultMaxString!=null&&!Z&&!f&&c2.has(c)&&M.max===void 0)M.max=i.defaultMaxString;if(M.min!==void 0&&M.max!==void 0&&M.min>M.max)n(`field '${a}' would have impossible constraints min=${M.min} > max=${M.max} after sugar is applied — write an explicit range or drop the conflicting pragma`,s.start);let N=M.min!==void 0||M.max!==void 0||M.default!==void 0||M.regex!==void 0?M:null;r.push({tag:"field",name:a,modifiers:o,typeName:c,array:p,literals:f,coerce:h,coercer:u,constraints:N,transformTokens:W,unique:q,primary:t1,attrs:j,start:s.start,typeSpan:A,defaultSpan:V.start===void 0?null:[V.start,V.end]})}function Qr(e,t,r,i){if(e[e.length-1]?.kind!=="}")i(`${r} — the '{…}' options bracket never closes`,e[0].start);let n=e.slice(1,-1).filter((a)=>a.kind!=="TERMINATOR"&&a.kind!=="INDENT"&&a.kind!=="OUTDENT"),s={};for(let a of Ne(n)){if(!a.length)continue;let o=a[0];if(!P1(o))i(`${r} options must be '{key: value}' pairs — got ${o.kind}`,o.start);let l=o.value,c=t[l];if(c===void 0)i(`unknown ${r} option '${l}' — known options: ${Object.keys(t).join(", ")}`,o.start);if(l in s)i(`${r} repeats option '${l}'`,o.start);let f=1;if(a[f]?.kind===":")f++;let h=a.slice(f);if(h.length!==1)i(`${r} option '${l}' takes a single value`,(h[0]??o).start);let u=h[0],m=c==="property"||c==="model",S;if(m){if(!P1(u)&&!Ze(u)){let d=u.kind==="STRING"&&u.value.startsWith('"')?JSON.parse(u.value):null,R=d&&!Zr(c,l,d)?d:c==="model"?"Membership":"author";i(`${r} option '${l}' names ${c==="model"?"a model":"a property"}, `+`so it is written BARE — '{${l}: ${R}}', not ${u.kind==="STRING"?u.value:`a ${u.kind}`}. Quoting would name a database identifier, which is a different thing`,u.start)}S=u.value}else{if(u.kind!=="STRING"||!u.value.startsWith('"'))i(`${r} option '${l}' names a database column, so it is QUOTED — `+`'{${l}: "${P1(u)?ne(u.value):"author_id"}"}'. A bare name would be a Rip name, which is a different thing`,u.start);S=JSON.parse(u.value)}let g=Zr(c,l,S);if(g)i(`${r} option ${g}; got '${S}'`,o.start);s[l]=S}if(!Object.keys(s).length)i(`${r} has an empty '{…}' options bracket`,e[0].start);return s}function R2(e,t,r){return Qr(e,Jr,`field '${t}'`,r)}function E2(e,t,r){let i=Qr(e,Ri,`@${t}`,r);if(i.through&&t==="belongsTo")r("@belongsTo option 'through' is for @hasMany/@hasOne — a @belongsTo holds its key in its own row, so it has nothing to read through",e[0].start);if(i.targetKey&&!i.through)r(`@${t} option 'targetKey' names a column on the join model, so it requires 'through' — '{through: Membership, targetKey: "team_id"}'`,e[0].start);return i}function k2(e,t,r){if(!e.length)r("@scope requires ':name, -> body' (or ':name, (args) -> body')",t.start);let i=V1(e,0);if(!i)r("@scope name must be a :symbol — '@scope :active, -> @where(active: true)'",e[0].start);let n=i.value,s=e[2],a=s&&!s.spaced&&s.start===i.end&&(s.value==="!"||s.value==="?");if(a||!/^[a-z][a-zA-Z0-9]*$/.test(n))r(`@scope name ':${n}${a?s.value:""}' must be a lowercase-first alphanumeric identifier — scopes chain as query-builder methods`,i.start);let o=e.slice(2);if(o[0]?.kind===",")o=o.slice(1);if(!o.length)r(`@scope :${n} is missing its body — '@scope :${n}, -> @where(...)'`,i.start);let l=Ii(o,i,`@scope :${n}`,r);return{name:n,paramTokens:l.paramTokens,bodyTokens:l.bodyTokens}}function Ii(e,t,r,i){if(!e.length)i(`${r}: expected '-> body' or '(args) -> body'`,t.start);let n=[],s=0,a=e[0];if(a.kind==="("||a.kind==="PARAM_START"||a.kind==="CALL_START"){let c=1;s=1;while(s0){let f=e[s].kind;if(f==="("||f==="PARAM_START"||f==="CALL_START")c++;if(f===")"||f==="PARAM_END"||f==="CALL_END"){if(c--,c===0){s++;break}}n.push(e[s]),s++}if(c!==0)i(`${r}: unclosed '(' in parameters`,a.start)}let o=e[s];if(o?.kind!=="->")i(`${r}: expected '->' ${n.length?"after parameters":"to start the body"}`,(o??t).start);let l=e.slice(s+1);if(!l.length)i(`${r}: function body is empty`,o.start);return{paramTokens:n,bodyTokens:l}}function T2(e,t){let r=new Set;for(let g of e){if(g.tag!=="directive")continue;let d=Xr[g.name];if(d===void 0)t(`unknown directive '@${g.name}' on :model — legal: ${Object.keys(Xr).map((R)=>"@"+R).join(", ")}, @ensure, @scope, @defaultScope`,g.nameStart??g.start);if(yi.includes(g.name)){if(r.has(g.name))t(d==="none"?`duplicate '@${g.name}' — declared twice; a :model declares it once`:`duplicate '@${g.name}' — a :model declares it at most once (the second would silently override the first)`,g.nameStart??g.start);r.add(g.name)}if(g.name!=="mixin")g.args=w2(g,d,t)}if(e.some((g)=>g.tag==="directive"&&g.name==="mixin"))return;let n=new Set,s=new Map,a=new Map,o=new Map,l=(g,d,R,b)=>{if(n.has(d))t(`${s.get(d)} and ${R} both own column '${d}' — every table column has exactly one owner`,b);if(a.has(g))t(`${o.get(g)} and ${R} both own property '${g}' (columns '${a.get(g)}' and '${d}') — every property reads exactly one column`,b);n.add(d),s.set(d,R),a.set(g,d),o.set(g,R)},c=e.find((g)=>g.tag==="directive"&&g.name==="primary"),f=e.filter((g)=>g.tag==="field"&&g.primary);if(f.length>1)t(`both '${f[0].name}' and '${f[1].name}' declare '@primary' — a row has one identity`,f[1].start);if(f.length===1){if(c)t(`'@primary ${c.args[0].name}' and inline '@primary' on field '${f[0].name}' are two answers to one question — state it once`,c.start);c={tag:"directive",name:"primary",args:[{name:f[0].name}],start:f[0].start}}let h=c?c.args[0].column??ne(c.args[0].name):"id",u=c?c.args[0].name:"id",m=e.find((g)=>g.tag==="field"&&g.name===u)??null,S=!!(c&&m);if(!c&&m)t(`field '${u}' collides with the runtime-managed primary key — a :model's ${u} is sequence-assigned. Drop the declaration, or write '@primary ${u}' to make it a caller-supplied natural key instead`,m.start);if(S){if(!m.modifiers?.includes("!"))t(`the primary key '${u}' is declared optional — a row's identity is never absent; declare it required ('${u}! string')`,m.start);if(m.array)t(`the primary key '${u}' is declared as an array — a primary key is one value`,m.start);let g=e.find((d)=>d.tag==="directive"&&d.name==="idStart");if(g)t(`@idStart seeds the sequence behind a runtime-managed primary key, but '${u}' is declared as a field, which makes it caller-supplied — there is no sequence to seed. Drop @idStart, or drop the field declaration`,g.start);if(c.args[0].column!==void 0&&c.args[0].column!==(m.attrs?.column??ne(u)))t(`@primary names column '${c.args[0].column}' but field '${u}' reads a different one — state the column once, on the field`,c.start)}else l(u,h,"the primary key",c?.start??e[0]?.start??0);for(let g of e){if(g.tag!=="field")continue;l(g.name,g.attrs?.column??ne(g.name),`field '${g.name}'`,g.start)}for(let g of e){if(g.tag!=="directive")continue;if(g.name==="times")l("createdAt","created_at","@times",g.start),l("updatedAt","updated_at","@times",g.start);else if(g.name==="softDelete")l("deletedAt","deleted_at","@softDelete",g.start);else if(g.name==="belongsTo"){let d=g.args[0],R=d.foreignKey??zr(d.as??d.target);l(Yr(R),R,`the @belongsTo ${d.target}${d.as?` (as ${d.as})`:""} relation`,g.start)}}for(let g of e){if(g.tag!=="directive"||g.name!=="index"&&g.name!=="unique")continue;let d=g.args[0].fields.map((R)=>a.get(R)??(n.has(R)?R:ne(R)));d.forEach((R,b)=>{if(d.indexOf(R)!==b)t(`@${g.name} columns must be distinct after canonicalization: ${d.join(", ")}`,g.colTokens?.[b]?.start??g.start)}),d.forEach((R,b)=>{if(!n.has(R))t(`@${g.name}: unknown column '${g.args[0].fields[b]}' — the table has: ${[...n].sort().join(", ")}`,g.colTokens?.[b]?.start??g.start)})}}function w2(e,t,r){let i=e.argTokens??[],n=(s,a)=>r(`@${e.name}: ${a}`,s.start);switch(t){case"none":{if(i.length)n(i[0],"takes no arguments");return null}case"target":{let s=i[0];if(!P1(s))r(`@${e.name} requires a target name — '@${e.name} User'`,(s??{start:e.start}).start);let a=!1,o=1;if(i[o]?.kind==="?"&&!i[o].spaced)a=!0,o++;let l=null;if(i[o]?.kind===","&&i[o+1]?.kind==="{")l=E2(i.slice(o+1),e.name,r),o=i.length;if(oP1(c)||Ze(c),l=0;if(V1(i,0)){let c=V1(i,0);s.push(c.value),a.push(c),l=2}else if(o(i[0]))s.push(i[0].value),a.push(i[0]),l=1;else if(i[0]?.kind==="["||i[0]?.kind==="INDEX_START"){let c=1;l=1;let f=[];while(l0){let h=i[l];if(h.kind==="["||h.kind==="INDEX_START")c++;if(h.kind==="]"||h.kind==="INDEX_END"){if(c--,c===0){l++;break}}if(c>=1)f.push(h);l++}if(c!==0)n(i[0],"unclosed '[' in the column list");for(let h of Ne(f)){let u=V1(h,0),m=u??(o(h[0])?h[0]:null);if(!m||h.length>(u?2:1))n(h[u?2:1]??h[0]??i[0],`column names are bare identifiers or :symbols — '@${e.name} [:a, :b]'`);s.push(m.value),a.push(m)}}if(!s.length)r(`@${e.name} requires a field name or list — '@${e.name} :email' or '@${e.name} [:a, :b]'`,(i[0]??{start:e.start}).start);if(l1)n(i[1],`takes one table name — unexpected ${i[1].kind}`);if(o);else{if(/[A-Z]{2,}/.test(a))r(`@${e.name} ${a}: a bare name is a LOGICAL name that Rip snake_cases, and consecutive capitals convert surprisingly ('${a}' → '${ne(a)}'). Spell it 'MdmUser'-style, or name the table exactly by quoting it: '@${e.name} "${a}"'`,s.start);a=ne(a)}return[{name:a}]}case"field":{let s=i[0];if(!P1(s)&&!Ze(s))r(`@${e.name} requires a property name — '@${e.name} patientId'`,(s??{start:e.start}).start);let a=1,o=null;if(i[a]?.kind===","&&i[a+1]?.kind==="{")o=Qr(i.slice(a+1),Jr,`@${e.name}`,r),a=i.length;if(a0){let m=r[a].kind;if(m==="("||m==="PARAM_START"||m==="CALL_START")u++;if(m===")"||m==="PARAM_END"||m==="CALL_END"){if(u--,u===0){a++;break}}o.push(r[a]),a++}if(u!==0)n(`'${s}': unclosed '(' in parameters`,r[2].start)}let l=r[a],c=null,f=-1;if(l?.kind==="->"||l?.kind==="EFFECT"||l?.kind==="!>")c=l.kind==="EFFECT"?"~>":l.kind,f=a+1;else if(P1(l)||l?.kind==="STRING"||l?.kind==="NUMBER")n(`schema fields use 'name type' (space, no colon) — got '${s}:'; for methods/computed use 'name: -> body' or 'name: ~> body'`,r[1].start);else n(`schema top-level '${s}:' must be followed by '->' (method), '~>' (computed getter), or '!>' (eager derived)`,r[1].start);let h=c==="~>"?"computed":c==="!>"?"derived":e==="model"&&o2.has(s)?"hook":"method";if(o.length&&h!=="method")n(`'${s}': ${h==="computed"?"computed getters (~>)":h==="derived"?"eager-derived fields (!>)":"lifecycle hooks"} take no parameters — only methods do`,r[1].start);i.push({tag:h,name:s,paramTokens:o,bodyTokens:r.slice(f),start:t.start})}function _2(e,t,r){let i=e;if(!i.length)r("@ensure requires 'message, (x) -> body' or a '[…]' array of pairs",t.start);let n=i[0];if(n.kind==="["||n.kind==="INDEX_START"){let a=N2(i,n,r),o=A2(a);if(o.length===0)r("@ensure […] must contain at least one 'message, fn' pair",n.start);return wi(o,n,r)}let s=Ne(i);if(s.length<2)r("@ensure inline form must be 'message, (x) -> body' — did you forget the comma?",n.start);if(s.length>3||s.length===3&&!$i(s[1]))r(`@ensure inline form takes 'message[, :field], fn' (got ${s.length} comma-separated parts) — use '@ensure […]' for multiple refinements`,n.start);return wi(s,n,r)}var $i=(e)=>e&&e.length===2&&V1(e,0)!==null;function wi(e,t,r){let i=[],n=0;while(n=e.length)r(`@ensure: missing function after message${a?" and :field":""}`,(s[0]??t).start);i.push(v2(s,a,e[n++],t,r))}return i}function N2(e,t,r){let i=0,n=[];for(let s=0;s=2&&n[0].kind==="INDENT"&&n[n.length-1].kind==="OUTDENT"){let o=0,l=!1;for(let c=0;c=1)n.push(a)}r("@ensure: unclosed '['",t.start)}function A2(e){let t=[],r=[],i=0;for(let n of e){let s=n.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")i++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")i--;if(i===0&&(s===","||s==="TERMINATOR")){if(r.length)t.push(r),r=[];continue}r.push(n)}if(r.length)t.push(r);return t}function v2(e,t,r,i,n){if(!e?.length)n("@ensure: missing message (expected a string literal)",i.start);if(e.length!==1||e[0].kind!=="STRING"||!e[0].value.startsWith('"'))n("@ensure: each refinement's first element must be a string literal message",(e[0]??i).start);let s=e[0],a=JSON.parse(s.value),o=t?V1(t,0):null,l=t?o.value:null,c=o?.start??null;if(!r?.length)n("@ensure: missing function after message",s.start);let f=r[0];if(f.kind!=="("&&f.kind!=="PARAM_START")n("@ensure: expected '(args) -> body' after the message — predicates declare their parameter explicitly ('(u) -> …')",f.start);let h=1,u=1,m=[];while(u0){let d=r[u].kind;if(d==="("||d==="PARAM_START")h++;if(d===")"||d==="PARAM_END"){if(h--,h===0){u++;break}}m.push(r[u]),u++}if(h!==0)n("@ensure: unclosed '(' in predicate parameters",f.start);let S=r[u];if(S?.kind!=="->")n("@ensure: expected '->' after predicate parameters",(S??s).start);let g=r.slice(u+1);if(!g.length)n("@ensure: predicate function body is empty",S.start);return{message:a,field:l,fieldStart:c,paramTokens:m,bodyTokens:g}}function Di(e,t,r,i=null){if(!e.length)return[];let n=O2(e,t,r,i);for(let s=n.length-1;s>=0&&n[s].type===null;s--)n[s].optional=!0;return n}function O2(e,t,r,i){let n=(s)=>s.kind!=="TERMINATOR"&&s.kind!=="INDENT"&&s.kind!=="OUTDENT";return Ne(e).map((s)=>{let a=s.filter((f)=>n(f)&&f.kind!=="TYPE"),o=a.length>=3&&(a[0].kind==="IDENTIFIER"||a[0].kind==="PROPERTY")&&a[1].kind===":";if(!o&&(a.length!==1||a[0].kind!=="IDENTIFIER"))r(`${t}: parameters must be plain identifiers, optionally typed ('name' or 'name: Type')`,(a[0]??s[0]).start);let l=o?[...s].filter(n).pop():null,c=o&&i!==null?Ct(i.slice(a[1].end,l.end)).trim():null;return{name:a[0].value,type:c,optional:!1}})}function I2(e,t,r){let i=e[0];if(!i)return;if(i.kind==="@"){let n=e[1];if(!n||n.value!=="on")r(`:union bodies accept only '@on :field' and constituent schema names — '@${n?.value??""}' is not allowed`,(n??i).start);let s=V1(e,2);if(!s)r("@on requires the discriminator field as a symbol — '@on :kind'",(e[2]??n).start);if(e.length>4)r("@on takes exactly one :field symbol",e[4].start);t.push({tag:"directive",name:"on",args:[{field:s.value}],start:i.start});return}if(i.kind==="IDENTIFIER"&&e.length===1){t.push({tag:"union-member",name:i.value,start:i.start});return}r(`:union bodies accept only '@on :field' and bare constituent schema names (one per line) — got ${i.kind}${e.length>1?" followed by "+e[1].kind:""}`,i.start)}function $2(e,t,r){let i=e[0];if(!i)return;if(i.kind==="@")r(`:enum schemas don't accept '@${e[1]?.value??"directive"}' — enums hold only :symbol members`,i.start);let n=V1(e,0);if(!n)r(`enum member must be a :symbol — use ':${i.value??"name"}' for a bare member or ':${i.value??"name"} value' for a valued one`,i.start);let s=n.value,a=e[2];if(!a){t.push({tag:"enum-member",name:s,value:void 0,start:i.start});return}if(a.kind===":")r(`enum member ':${s}' — drop the ':' before the value; use ':${s} value'`,a.start);if(e.length>3&&!(e.length===4&&a.kind==="-"&&e[3].kind==="NUMBER"))r(`extra tokens after enum member ':${s}' value`,e[3].start);let o=a.kind==="-"&&e[3]?.kind==="NUMBER"?-Number(e[3].value):xi(a,`enum member ':${s}' value`,r);t.push({tag:"enum-member",name:s,value:o,start:i.start})}function D2(e){return e.some((t)=>t.kind==="..")&&e.every((t)=>t.kind===".."||t.kind==="NUMBER"||t.kind==="-")}function x2(e,t,r){let i=0,n=()=>{let l=1;if(e[i]?.kind==="-")l=-1,i++;let c=e[i++];if(c?.kind!=="NUMBER")r("range endpoints must be numeric literals",(c??e[0]).start);return l*Number(c.value)},s;if(e[i]?.kind!=="..")s=n();i++;let a;if(ia)r(`range '${s}..${a}' is reversed — write the smaller endpoint first`,e[0].start);let o={};if(s!==void 0)o.min=s;if(a!==void 0)o.max=a;return o}function C2(e,t,r,i={}){let n=e.slice(1,-1);if(n.length)i.start=n[0].start,i.end=n[n.length-1].end;let s=Ne(n);if(s.length!==1)r(s.length===2?"size/value ranges use 'min..max' syntax, not brackets — replace the bracket pair with a range":`the constraint bracket takes a single default value (got ${s.length} elements)`,e[0].start);let a=s[0];if(a.length===1&&a[0].kind==="REGEX")r(`regex constraints are written bare, not in brackets — replace '[${a[0].value}]' with '${a[0].value}'`,e[0].start);if(a.length===2&&a[0].kind==="-"&&a[1].kind==="NUMBER")return-Number(a[1].value);let o=V1(a,0);if(o&&a.length===2)return o.value;if(a.length!==1)r(`default values must be literals (number, string, boolean, null, :symbol) — field '${t}'`,a[0].start);return xi(a[0],`field '${t}' default`,r)}function P2(e,t){let r=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(e.value);if(!r)t(`invalid regex literal ${JSON.stringify(e.value)}`,e.start);try{return new RegExp(r[1],r[2])}catch(i){t(`invalid regex '${e.value}': ${i.message}`,e.start)}}function xi(e,t,r){switch(e.kind){case"NUMBER":return Number(e.value);case"STRING":if(!e.value.startsWith('"'))r(`${t} must be a plain string literal (heredocs have no literal key form)`,e.start);return JSON.parse(e.value);case"BOOL":return e.value==="true";case"NULL":return null;case"UNDEFINED":return;default:r(`${t} must be a literal (number, string, boolean, null) — got ${e.kind}`,e.start)}}function Ne(e){let t=[],r=[],i=0;for(let n of e){let s=n.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")i++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")i--;if(s===","&&i===0){if(r.length)t.push(r);r=[];continue}r.push(n)}if(r.length)t.push(r);return t}function L2(e){let t=0;for(let r=0;r")return r}return-1}function Ci(e,t,r,i=null,n=null,s=!1,a=null,o=null){let l=[],c=(u)=>{if(l.length&&typeof l[l.length-1]==="string")l[l.length-1]+=u;else l.push(u)},f=(u,m=null)=>l.push({ts:u,span:m}),h=(u)=>l.push({body:u});if(c(`{kind: ${JSON.stringify(e.kind)}`),t)c(`, name: ${JSON.stringify(t)}`);if(c(", entries: ["),e.entries.forEach((u,m)=>{if(m>0)c(", ");j2(u,r.get(m),n?.get(m)??null,c,f,s,a?.get(m)??null,o?.get(m)??null,h)}),c("]"),i)c(", adapter: "),h(i);return c("}"),l}var Le=(e)=>typeof e==="string"?e:e.code;function Pi(e,t,r,i){let n=[];return e.entries.forEach((s,a)=>{if(s.tag!=="derived"&&s.tag!=="computed"&&s.tag!=="method")return;let o=r.get(a);if(o===void 0)return;let l=i?.get(a)??null,c=Le(o);for(let[f,h]of Li(o,l).reverse())c=c.slice(0,f)+h+c.slice(f);n.push(`${s.name}: ${c}`)}),n.length?`const ${h2(t)} = {${n.join(", ")}};`:null}function Li(e,t,r=!0){if(typeof e==="string")return[];let i=r?(e.annots??[]).map(([n,s])=>[n,s]):[];if(t!==null){let{code:n,thisAt:s}=e;i.push([s,`this: ${t}${n[s]===")"?"":", "}`])}return i.sort((n,s)=>n[0]-s[0])}function M2(e,t,r,i,n=!1){let s=Li(e,t,n);if(s.length===0){r(Le(e));return}let{code:a}=e,o=0;for(let[l,c]of s)r(a.slice(o,l)),i(c),o=l;r(a.slice(o))}function j2(e,t,r,i,n,s=!1,a=null,o=null,l=i){switch(e.tag){case"computed":case"method":case"derived":case"hook":case"scope":case"defaultScope":i(`{tag: ${JSON.stringify(e.tag)}, name: ${JSON.stringify(e.name)}, fn: `),M2(t,r,l,n,s),i("}");return;default:let c={},f=F2(e,t,c),h=[];if(s&&a!==null&&c.defaultEnd!==void 0)h.push({at:c.defaultEnd,ts:` satisfies ${a}`,span:e.defaultSpan??null});if(s&&e.tag==="field"&&t!==void 0&&typeof t!=="string"&&Le(t).startsWith("it",t.thisAt)){let m=Le(t);h.push({at:f.length-1-m.length+t.thisAt+2,ts:": any"})}if(s&&e.tag==="ensure"&&o!==null&&c.fnAt!==void 0&&typeof t!=="string"&&t!==void 0){let m=/^[A-Za-z_$][\w$]*/.exec(Le(t).slice(t.thisAt))?.[0];if(m)h.push({at:c.fnAt+t.thisAt+m.length,ts:`: ${o}`})}let u=0;for(let m of h)i(f.slice(u,m.at)),n(m.ts,m.span??null),u=m.at;i(f.slice(u))}}function F2(e,t,r={}){if(t!==void 0)t=Le(t);switch(e.tag){case"field":{let i=['tag: "field"',`name: ${JSON.stringify(e.name)}`,`modifiers: ${JSON.stringify(e.modifiers)}`,`typeName: ${JSON.stringify(e.typeName)}`,`array: ${e.array?"true":"false"}`];if(e.unique)i.push("unique: true");if(e.primary)i.push("primary: true");if(e.literals)i.push(`literals: ${JSON.stringify(e.literals)}`);if(e.coerce){if(i.push("coerce: true"),e.coercer)i.push(`coercer: ${JSON.stringify(e.coercer)}`)}if(e.constraints){let n=[];if(e.constraints.min!==void 0)n.push(`min: ${Pt(e.constraints.min)}`);if(e.constraints.max!==void 0)n.push(`max: ${Pt(e.constraints.max)}`);let s=-1;if(e.constraints.default!==void 0)s=n.length,n.push(`default: ${Pt(e.constraints.default)}`);if(e.constraints.regex!==void 0)n.push(`regex: ${e.constraints.regex.toString()}`);if(n.length){if(s>=0){let a=`{${i.join(", ")}, constraints: {`;r.defaultEnd=a.length+n.slice(0,s+1).join(", ").length}i.push(`constraints: {${n.join(", ")}}`)}}if(e.attrs)i.push(`attrs: {${Object.keys(e.attrs).sort().map((n)=>`${n}: ${Pt(e.attrs[n])}`).join(", ")}}`);if(t)i.push(`transform: ${t}`);return`{${i.join(", ")}}`}case"directive":{let i=['tag: "directive"',`name: ${JSON.stringify(e.name)}`];if(e.args){if(e.name==="mixin"||Si.includes(e.name)){let n=e.args[0];i.push(`args: [{target: ${JSON.stringify(n.target)}${n.optional?", optional: true":""}${n.as?`, as: ${JSON.stringify(n.as)}`:""}${n.foreignKey?`, foreignKey: ${JSON.stringify(n.foreignKey)}`:""}${n.through?`, through: ${JSON.stringify(n.through)}`:""}${n.targetKey?`, targetKey: ${JSON.stringify(n.targetKey)}`:""}}]`)}else if(e.name==="primary")i.push(`args: [{name: ${JSON.stringify(e.args[0].name)}${e.args[0].column?`, column: ${JSON.stringify(e.args[0].column)}`:""}}]`);else if(e.name==="on")i.push(`args: [{field: ${JSON.stringify(e.args[0].field)}}]`);else if(e.name==="unique"||e.name==="index")i.push(`args: [{fields: ${JSON.stringify(e.args[0].fields)}}]`);else if(e.name==="idStart")i.push(`args: [{value: ${e.args[0].value}}]`);else if(e.name==="table"||e.name==="tableWas")i.push(`args: [{name: ${JSON.stringify(e.args[0].name)}}]`)}return`{${i.join(", ")}}`}case"ensure":{let i=['tag: "ensure"',`message: ${JSON.stringify(e.message)}`];r.fnAt=`{${i.join(", ")}, fn: `.length;let n=[...i,`fn: ${t}`];if(e.field)n.push(`field: ${JSON.stringify(e.field)}`);if(e.async)n.push("async: true");return`{${n.join(", ")}}`}case"enum-member":{let i=['tag: "enum-member"',`name: ${JSON.stringify(e.name)}`];if(e.value!==void 0)i.push(`value: ${JSON.stringify(e.value)}`);return`{${i.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(e.name)}}`;default:throw Error(`schema: unknown entry tag '${e.tag}'`)}}function Pt(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);return String(e)}var B2=new Set(["pick","omit","partial","required","extend"]);function U1(e){return e&&e.valueOf?e.valueOf():e}function Mi(e){return e.entries.some((t)=>t.tag==="directive"&&t.name==="mixin")}function U2(e){return Yr(e.foreignKey??zr(e.as??e.target))}function V2(e){if(Mi(e))return null;let t=new Map;for(let a of e.entries)if(a.tag==="field")t.set(a.name,a);if(e.kind!=="model")return t;let r=(a,o,l)=>{if(!t.has(a))t.set(a,{tag:"field",name:a,modifiers:l?["!"]:["?"],typeName:o,array:!1})},i=!1,n=!1,s=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="times")i=!0;else if(a.name==="softDelete")n=!0;else if(a.name==="belongsTo"){let o=a.args&&a.args[0];if(o&&o.target)s.push({fk:U2(o),required:o.optional!==!0})}}if(r("id","integer",!0),i)r("createdAt","datetime",!0),r("updatedAt","datetime",!0);if(n)r("deletedAt","datetime",!1);for(let{fk:a,required:o}of s)r(a,"integer",o);return t}function W2(e){if(Mi(e))return null;let t=new Map;for(let r of e.entries)if(r.tag==="field")t.set(r.name,r);return t}function _i(e,t){let r=e.modifiers.filter((n)=>n!==(t==="partial"?"!":"?")),i=t==="partial"?"?":"!";if(!r.includes(i))r=[...r,i];return{...e,modifiers:r}}function H2(e,t,r){switch(t.method){case"pick":{let i=new Map;for(let n of t.keys){if(!e.has(n))return null;i.set(n,e.get(n))}return i}case"omit":{let i=new Set(t.keys),n=new Map;for(let[s,a]of e)if(!i.has(s))n.set(s,a);return n}case"partial":{let i=new Map;for(let[n,s]of e)i.set(n,_i(s,"partial"));return i}case"required":{let i=new Set(t.keys),n=new Map;for(let[s,a]of e)n.set(s,i.has(s)?_i(a,"required"):a);return n}case"extend":{let i=t.otherDescriptor||r.get(t.otherName);if(!i)return null;let n=W2(i);if(!n)return null;let s=new Map(e);for(let[a,o]of n){if(s.has(a))return null;s.set(a,o)}return s}default:return null}}function G2(e,t,r){let i=V2(e);if(!i)return null;for(let n of t)if(i=H2(i,n,r),!i)return null;return{kind:"shape",entries:[...i.values()]}}function K2(e){let t=[],r=e;while(!0){if(!Array.isArray(r))return null;let i=r[0];if(!Array.isArray(i))return null;if(U1(i[0])!==".")return null;let n=U1(i[2]);if(!B2.has(n))return null;let s=r.slice(1),a;if(n==="partial"){if(s.length)return null;a={method:n}}else if(n==="extend"){if(s.length!==1)return null;let c=s[0];if(Array.isArray(c)){let f=U1(c[0])==="schema"&&c.length===2&&c[1]&&typeof c[1]==="object"&&Array.isArray(c[1].entries)?c[1]:null;if(!f||f.kind!=="shape"&&f.kind!=="input")return null;a={method:n,otherDescriptor:f}}else{let f=U1(c);if(typeof f!=="string"||!/^[A-Za-z_$][\w$]*$/.test(f))return null;a={method:n,otherName:f}}}else{let c=Y2(s);if(!c||!c.length)return null;a={method:n,keys:c}}t.unshift(a);let o=i[1];if(Array.isArray(o)){r=o;continue}let l=U1(o);if(typeof l!=="string")return null;return{base:l,ops:t}}}function Y2(e){let t=[];for(let r of e)if(Array.isArray(r)){if(U1(r[0])!=="array")return null;for(let i=1;i{r[2]=["schema",t]})}var Lt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]),Me=new Set(["a","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tspan","use","view"]),Ae=new Set([...Lt,...Me]),en=new Set([...Me].filter((e)=>!Lt.has(e))),Mt=new Set(["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","command","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"]),Fi=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),ve=new Set(["accesskey","autocapitalize","autocorrect","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","popover","role","slot","spellcheck","style","tabindex","title","translate","writingsuggestions"]),Qe={__proto__:null,a:["href","target","download","ping","rel","hreflang","type","referrerpolicy"],area:["alt","coords","shape","href","target","download","ping","rel","referrerpolicy"],audio:["src","crossorigin","preload","autoplay","loop","muted","controls"],base:["href","target"],blockquote:["cite"],button:["command","commandfor","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","popovertarget","popovertargetaction","type","value"],canvas:["width","height"],col:["span"],colgroup:["span"],data:["value"],del:["cite","datetime"],details:["name","open"],dialog:["open","closedby"],embed:["src","type","width","height"],fieldset:["disabled","form","name"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","rel","target"],iframe:["src","srcdoc","name","sandbox","allow","allowfullscreen","width","height","referrerpolicy","loading"],img:["alt","src","srcset","sizes","crossorigin","usemap","ismap","width","height","referrerpolicy","decoding","loading","fetchpriority"],input:["accept","alpha","alt","autocomplete","checked","colorspace","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","popovertarget","popovertargetaction","readonly","required","size","src","step","type","value","width"],ins:["cite","datetime"],label:["for"],li:["value"],link:["href","crossorigin","rel","media","integrity","hreflang","type","referrerpolicy","sizes","imagesrcset","imagesizes","as","blocking","disabled","fetchpriority"],map:["name"],meta:["name","http-equiv","content","charset","media"],meter:["value","min","max","low","high","optimum"],object:["data","type","name","form","width","height"],ol:["reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],progress:["value","max"],q:["cite"],script:["src","type","nomodule","async","defer","crossorigin","integrity","referrerpolicy","blocking","fetchpriority"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["type","media","src","srcset","sizes","width","height"],style:["media","blocking"],table:["align","bgcolor","border","cellpadding","cellspacing","width"],tbody:["align","valign"],td:["colspan","rowspan","headers","align","bgcolor","height","nowrap","valign","width"],template:["shadowrootmode","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"],tfoot:["align","valign"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],th:["colspan","rowspan","headers","scope","abbr","align","bgcolor","height","nowrap","valign","width"],thead:["align","valign"],time:["datetime"],tr:["align","bgcolor","valign"],track:["default","kind","label","src","srclang"],video:["src","crossorigin","poster","preload","autoplay","playsinline","loop","muted","controls","width","height"]};for(let e in Qe)Qe[e]=new Set(Qe[e]);var et=new Set(["id","class","style","lang","tabindex","href","pathLength","crossorigin","transform","viewBox","preserveAspectRatio","xmlns","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","d","points","dx","dy","rotate","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","clip-path","clip-rule","mask","filter","color","display","visibility","pointer-events","vector-effect","dominant-baseline","text-anchor","font-family","font-size","font-weight","font-style","letter-spacing","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","markerWidth","markerHeight","refX","refY","orient","markerUnits","maskUnits","maskContentUnits","clipPathUnits","filterUnits","primitiveUnits","in","in2","result","stdDeviation","values","type","mode","operator","radius","scale","baseFrequency","numOctaves","seed","dur","repeatCount","begin","end","from","to","attributeName","keyTimes","keySplines","calcMode","restart","min","max"]);function tn(e){let t=String(e).toLowerCase(),r=new Set(ve),i=Qe[t];if(i)for(let n of i)r.add(n);if(Me.has(String(e)))for(let n of et)r.add(n);return[...r]}function q2(e,t){if(Math.abs(e.length-t.length)>2)return 3;let r=Array.from({length:t.length+1},(i,n)=>n);for(let i=1;i<=e.length;i++){let n=[i];for(let s=1;s<=t.length;s++)n[s]=Math.min(r[s]+1,n[s-1]+1,r[s-1]+(e[i-1]===t[s-1]?0:1));r=n}return r[t.length]}function Bi(e,t){let r=tn(e),i=String(t).toLowerCase(),n=r.find((l)=>l.toLowerCase()===i);if(n!==void 0&&n!==t)return n;if(String(t).length<3)return null;let s=null,a=3,o=!1;for(let l of r){if(l===String(t))continue;let c=q2(String(t),l);if(cAe.has(String(e).split("#")[0]),Hi=(e)=>typeof e==="string"&&X2.test(e),jt=(e)=>J2(e)||Hi(e);function Gi(e,t,r){let i=!1;for(let y of e)if(y.kind==="RENDER"){i=!0;break}if(!i)return e;let n=[],s=(y,p,k,I={})=>{let{at:A,...x}=I,O=A??k.end;return{id:t(),kind:y,value:p,start:O,end:O,spaced:!1,newLine:!1,generated:!0,origin:k.id,...x}},a=!1,o=0,l=0,c=[],f=[],h=[],u=(y,p,k)=>p{let x=1,O=p;while(O>=0&&x>0){if(Y.on)Y.n++;let G=u(y,O,A)?.kind;if(G===k)x++;else if(G===I)x--;if(x>0)O--}return O},S=(y)=>{let p=n.length;while(p>0&&u(n,p,y)?.kind==="OUTDENT")p=m(n,p-1,"OUTDENT","INDENT",y);while(p>0){if(Y.on)Y.n++;let I=n[p-1].kind;if(I==="TERMINATOR"||I==="RENDER")break;if(I==="OUTDENT"){p=m(n,p-2,"OUTDENT","INDENT",y);continue}if(I==="INDENT"){let A=u(n,p,y)?.kind;if(A==="CALL_END"||A===")"){p=m(n,p-1,A,A==="CALL_END"?"CALL_START":"(",y);continue}break}if(I==="CALL_END"||I===")"){p=m(n,p-2,I,I==="CALL_END"?"CALL_START":"(",y);continue}if(I==="INTERPOLATION_END"){p=m(n,p-2,"INTERPOLATION_END","INTERPOLATION_START",y);continue}if(I==="STRING_END"){p=m(n,p-2,"STRING_END","STRING_START",y);continue}p--}let k=u(n,p,y);return k?.kind==="IDENTIFIER"&&(jt(k.value)||(p===0||["INDENT","TERMINATOR","RENDER"].includes(n[p-1]?.kind)))},g=()=>{let y=0;for(let p=n.length-1;p>=0;p--){if(Y.on)Y.n++;let k=n[p].kind;if(Vi.has(k))y++;else if(Ui.has(k)){if(y===0)return 1;y--}else if(k==="TERMINATOR"||k==="RENDER"||k==="INDENT"||k==="OUTDENT")break}return 0},d=(y)=>{let p=n[n.length-1];if(!p)return!1;if(g()!==0)return!1;let k=p.kind;if((k===","||k==="IDENTIFIER"||k==="PROPERTY")&&S(y))return!0;if((k==="INDENT"||k==="TERMINATOR")&&f.includes(l))return!0;return!1},R=(y)=>{let p=1;for(let k=y+1;k0;k++){if(Y.on)Y.n++;let I=e[k].kind;if(I==="("||I==="CALL_START")p++;else if(I===")"){if(p--,p===0)e[k].kind="CALL_END"}else if(I==="CALL_END")p--}},b=(y)=>{let p=1;for(let k=n.length-1;k>=0&&p>0;k--){if(Y.on)Y.n++;if(n[k].kind==="CALL_END")p++;else if(n[k].kind==="CALL_START"){if(p--,p===0&&k>0&&n[k-1].kind==="PROPERTY"&&n[k-1].value==="__clsx")return!0}}return!1},_=(y)=>{while(h.length>0){let p=h[h.length-1];if(y.kind==="INDENT"||Ui.has(y.kind)){p.depth++;return}if(y.kind==="OUTDENT"||Vi.has(y.kind)){if(p.depth===0){n.push(s("CALL_END",")",n[n.length-1]??y)),h.pop();continue}p.depth--;return}if(y.kind==="TERMINATOR"&&p.depth===0){n.push(s("CALL_END",")",n[n.length-1]??y)),h.pop();continue}return}};for(let y=0;y0)_(p);if(p.kind==="RENDER"){a=!0,o=l+1,n.push(p);continue}if(p.kind==="INDENT"){l++,n.push(p);continue}if(p.kind==="OUTDENT"){l--;while(f.length>0&&f[f.length-1]>l)f.pop();n.push(p);while(c.length>0&&c[c.length-1]>l)n.push(s("CALL_END",")",p)),c.pop();if(a&&l0){let I=n[n.length-1].kind;if(I==="TERMINATOR"||I==="INDENT"||I==="RENDER"){n.push(s("IDENTIFIER","__text__",p,{at:p.start,spaced:p.spaced,newLine:p.newLine})),n.push(s("CALL_START","(",p,{at:p.start})),h.push({depth:0});continue}}if(p.kind==="UNARY_MATH"&&p.value==="~"&&k?.kind==="IDENTIFIER"){n.push(s("PROPERTY","__transition__",p,{spaced:p.spaced,newLine:p.newLine})),n.push(s(":",":",p)),k.kind="STRING",k.value=`"${k.value}"`,k.transitionValue=!0;continue}if(p.transitionValue&&k!==null&&Wi.has(k.kind)){n.push(p),n.push(s(",",",",p,{at:k.start}));continue}if(p.kind==="BIND"){let I=n[n.length-1];if(I!==void 0&&(I.kind==="IDENTIFIER"||I.kind==="PROPERTY")&&k!==null&&(k.kind==="IDENTIFIER"||k.kind==="@")){I.value=`__bind_${I.value}__`,n.push(s(":",":",p));continue}}if(p.kind==="PROPERTY"&&p.value[0]==="$"&&p.value.length>1&&![".","?.","@"].includes(n[n.length-1]?.kind)){n.push({...p,kind:"STRING",value:`"data-${p.value.slice(1)}"`});continue}if(p.kind==="IDENTIFIER"&&k?.kind==="-"&&!k.spaced){let I=[p.value],A=y+1,x=p.end;while(A+11&&e[A-1].kind==="PROPERTY"){let O=I.join("-");if(O[0]==="$")O=`data-${O.slice(1)}`;n.push({...p,kind:"STRING",value:`"${O}"`,end:x}),y=A-1;continue}}if(p.kind==="."){let I=n[n.length-1]?.kind;if(I==="INDENT"||I==="TERMINATOR"||I==="RENDER"){if(k?.kind==="PROPERTY"){let A=e[y+2];if(!A||A.kind!==":"){n.push(s("IDENTIFIER","div",p,{spaced:p.spaced,newLine:p.newLine})),n.push(p);continue}p={...p,kind:"IDENTIFIER",value:"div"}}else if(!k||k.kind!=="(")p={...p,kind:"IDENTIFIER",value:"div"}}}if(p.kind==="."&&k?.kind==="("){let I=n[n.length-1]?.kind,A=I==="INDENT"||I==="TERMINATOR"||I==="RENDER";if(k.kind="CALL_START",R(y+1),A)n.push(s("IDENTIFIER","div",p,{spaced:p.spaced,newLine:p.newLine})),n.push(p),n.push(s("PROPERTY","__clsx",p));else if(I===":")n.push(s("IDENTIFIER","__clsx",p,{spaced:p.spaced,newLine:p.newLine}));else n.push(p),n.push(s("PROPERTY","__clsx",p));continue}if(p.kind==="@"&&k?.kind==="PROPERTY"&&!k.spaced){let I=e[y+2],A=I?.kind===".",x=I?.kind===":";if(!A&&!x&&d(p)){let O=String(k.value),G=`on${O[0].toUpperCase()}${O.slice(1)}`;if(I?.kind==="=")r(`a \`=\` cannot follow a bare event directive on one line — \`@${O} = expr\` would assign to the minted handler and invoke the assignment as the listener; bind explicitly (\`@${O}: handler\`), or keep the bare \`@${O}\` and put the text on its own \`= expr\` line`,I.start);if(n.push(p),n.push(k),n.push(s(":",":",k)),n.push(s("@","@",k)),n.push(s("PROPERTY",G,k)),y++,e[y+1]?.kind==="INDENT")n.push(s(",",",",k,{at:e[y+1].start})),n.push(s("->","->",k,{at:e[y+1].start,newLine:!0})),f.push(l+1);else if(e[y+1]!==void 0&&Wi.has(e[y+1].kind))n.push(s(",",",",k,{at:e[y+1].start}));continue}}if(k?.kind==="INDENT"&&p.kind!=="->"&&p.kind!=="=>"&&p.kind!=="CALL_START"&&p.kind!=="("){let I=n[n.length-1]?.kind,A=["IF","UNLESS","WHILE","UNTIL","WHEN","FORIN","FOROF","FORAS","FORASAWAIT","BY"].includes(I),x=p.kind==="IDENTIFIER"&&(I==="INDENT"||I==="TERMINATOR"||I==="RENDER"),O=!1,G=!1;if(p.kind==="CALL_END")G=b(p);if(G)O=!0;else if(p.kind==="IDENTIFIER"&&jt(p.value)&&!A)O=!0;else if(p.kind==="IDENTIFIER"&&!A)O=x||S(p);else if(["PROPERTY","STRING","STRING_END","NUMBER","BOOL","CALL_END",")","]","INDEX_END","}","PRESENCE"].includes(p.kind))O=S(p);if(O){let K=!1;if(p.kind==="PROPERTY"&&n[n.length-1]?.kind==="."){let Z=n.length;while(Z>=2&&n[Z-1].kind==="."&&n[Z-2].kind==="PROPERTY")Z-=2;if(Z>=2&&n[Z-1].kind==="."&&n[Z-2].kind==="IDENTIFIER"&&jt(n[Z-2].value)){let W=n[Z-3]?.kind??null;if(W===null||["INDENT","OUTDENT","TERMINATOR","RENDER"].includes(W))K=!0}}let V=G||p.kind==="IDENTIFIER"&&(jt(p.value)||x)||K;if(n.push(p),V)n.push(s("CALL_START","(",p,{at:k.start})),n.push(s("->","->",p,{at:k.start,newLine:!0})),c.push(l+1);else n.push(s(",",",",p,{at:k.start})),n.push(s("->","->",p,{at:k.start,newLine:!0}));f.push(l+1);continue}}if(p.kind==="IDENTIFIER"&&Hi(p.value)&&(k?.kind==="OUTDENT"||k?.kind==="TERMINATOR")){n.push(p),n.push(s("CALL_START","(",p)),n.push(s("CALL_END",")",p));continue}n.push(p)}e.length=n.length;for(let y=0;y=e.length)return null;if(!F1.test(e[t]))return null;let r=t+1;while(r=0;a--){if(Y.on)Y.n++;if(s>=0&&(n<0||i[s].at>n))e[a]=i[s--].token;else e[a]=e[n--]}return e}var Z2=new Set(["IF","UNLESS","WHILE","UNTIL","WHEN","LEADING_WHEN","CATCH","FOR","LOOP","CLASS"]),Q2=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),el=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]);function tl(e,t){let r=0;for(let i=t-1;i>=0;i--){if(Y.on)Y.n++;let n=e[i].kind;if(el.has(n)||n==="OUTDENT"){r++;continue}if(Q2.has(n)||n==="INDENT"){if(r===0)return!1;r--;continue}if(r>0)continue;if(Z2.has(n))return!0;if(n==="TERMINATOR")return!1}return!1}function rl(e,t){let r=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),i=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]),n=[],s=[],a=(S,g)=>{let d=0;for(let R=g-1;R>=S;R--){if(Y.on)Y.n++;let b=e[R].kind;if(i.has(b)||b==="OUTDENT"){d++;continue}if(r.has(b)||b==="INDENT"){if(b==="INDENT")return!1;if(d--,d<0)return!1;continue}if(d>0)continue;if(Bt(e,R))return!0}return!1},o=(S,g)=>{let d=0;for(let R=g-1;R>=S;R--){if(Y.on)Y.n++;let b=e[R].kind;if(i.has(b)||b==="OUTDENT"){d++;continue}if(r.has(b)||b==="INDENT"){if(d--,d<0)return!1;continue}if(d>0)continue;if(b===":"&&e[R-1]?.kind==="PROPERTY")return Ji(e,g+1);if(b==="TERMINATOR")return!1}return!1},l=new Set(["IF","UNLESS","TRY","CATCH","FINALLY","SWITCH","FOR","CLASS"]),c=(S)=>{let g=0,d=0,R=0;for(let b=S;b({id:t(),kind:S,value:S,start:g,end:g,spaced:!1,newLine:!1,generated:!0,origin:d}),h=(S)=>{let g=c(S),d=null;for(let y=S;y=S;y--){if(Y.on)Y.n++;if(!e[y].generated){R=e[y];break}}let b=null;for(let y=g;y{while(s.length&&s[s.length-1].end===S){let g=s.pop();n.push({at:S,token:f("OUTDENT",g.closeAt,g.afterId)}),u=S}};for(let S=0;S"||g.kind==="=>")&&e[S+1]&&e[S+1].kind!=="INDENT"){let d=h(S+1);n.push({at:S+1,token:f("INDENT",d.openAt,d.firstReal?d.firstReal.id:null)}),s.push(d)}else if(g.kind==="THEN"&&tl(e,S)){let d=h(S+1);g.kind="INDENT",g.value="INDENT",g.generated=!0,g.start=g.end=d.firstReal?d.firstReal.start:g.end,g.origin=d.firstReal?d.firstReal.id:null,s.push(d)}else if(g.kind==="ELSE"&&e[S+1]&&e[S+1].kind!=="INDENT"&&e[S+1].kind!=="IF"&&(u===S||e[S-1]?.kind==="OUTDENT")){let d=h(S+1);n.push({at:S+1,token:f("INDENT",d.openAt,d.firstReal?d.firstReal.id:null)}),s.push(d)}}return m(e.length),n}var Ft=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS","DAMMIT","?","PRESENCE"]),Yi=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_START","REGEX","HEREGEX_START","SYMBOL","MAP_START","PARAM_START","IF","TRY","SWITCH","CLASS","THIS","SUPER","UNDEFINED","NULL","BOOL","UNARY","NEW","DO","DO_IIFE","UNARY_MATH","AWAIT","YIELD","THROW","@","->","=>","[","(","{","--","++"]),zi=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","??","THEN","ELSE"]),qi=new Set(["IF","TRY","FINALLY","CATCH","SWITCH","FOR","CLASS"]),Xi=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END",")","CALL_END","]","INDEX_END","}","PICK_END","BOOL","NULL","UNDEFINED","THIS","@"]),se=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),ie=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),Bt=(e,t)=>{let r=e[t],i=e[t+1];if(!r||!i||!i.spaced||!Ft.has(r.kind))return!1;if((r.kind==="]"||r.kind==="}")&&(i.kind==="->"||i.kind==="=>"))return!1;if(r.kind==="IDENTIFIER"&&(r.value==="Infinity"||r.value==="NaN")&&(i.kind==="->"||i.kind==="=>"))return!1;if(Yi.has(i.kind))return!0;return i.kind==="..."&&e[t+2]!=null&&Yi.has(e[t+2].kind)},Ji=(e,t)=>{if(!e[t])return!1;let r=(i)=>(e[i]?.kind==="DAMMIT"||e[i]?.kind==="VOID_MARKER")&&e[i+1]?.kind===":";if(e[t].kind==="@"&&(e[t+2]?.kind===":"||r(t+2)))return!0;if(e[t+1]?.kind===":"||r(t+1))return!0;if(se.has(e[t].kind)){let i=1,n=t;while(++n0){if(Y.on)Y.n++;if(se.has(e[n].kind))i++;else if(ie.has(e[n].kind))i--}if(i===0&&e[n]?.kind===":")return!0}return!1},Zi=new Set(["->","=>","[","(",",","{","ELSE","="]),nn=new Set(["INDENT","OUTDENT","TERMINATOR"]),nl=new Set(["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL","DEF"]),Qi=(e,t)=>{let r=0;for(;t>=0;t--){if(Y.on)Y.n++;let i=e[t].kind;if(r===0&&nl.has(i))return!0;if(ie.has(i)){r++;continue}if(se.has(i)){if(r>0){r--;continue}if(!e[t].generated||nn.has(i))return!1;continue}if(r===0&&nn.has(i))return!1}return!1};function il(e,t){let r=[],i=[],n=[0],s=null,a=-1,o=()=>r[r.length-1],l=(d,R,b,_={})=>({id:t(),kind:d,value:d,start:R,end:R,spaced:_.spaced??!1,newLine:_.newLine??!1,generated:!0,origin:b}),c=(d)=>{r.pop(),i.push({at:d,token:l("}",s?s.end:0,s?s.id:null)})},f=(d)=>Ji(e,d),h=()=>{for(let d=r.length-1;d>=0;d--){if(Y.on)Y.n++;let R=r[d];if(R.kind==="object")return R;if(!(R.kind==="INDENT"&&R.listContinuation))return null}return null},u=(d,R)=>{if(e[R]?.kind!=="...")return!1;let b=r[r.indexOf(d)-1];if(!b||!(b.kind==="["||b.kind==="CALL_START"))return!0;return S(b.at,d.at)},m=(d)=>{let R=e[d-1];return Boolean(R&&Ft.has(R.kind)&&f(d+1)&&!Qi(e,d-1))},S=(d,R)=>{let b=0;for(let _=R-1;_>d;_--){if(Y.on)Y.n++;let y=e[_].kind;if(ie.has(y)){b++;continue}if(se.has(y)){if(y==="INDENT"&&b===0)return m(_);if(b--,b<0)return!1;continue}if(b>0)continue;if(y==="TERMINATOR")return!1;if(Bt(e,_))return!0}return!1},g=(d)=>{for(let R=0;d1)n.pop();if(b==="OUTDENT")for(let y=r.length-1;y>=0;y--){let p=r[y];if(p.kind!=="object"&&p.kind!=="CONTROL")break;if(p.kind==="object")p.sameLine=!1}continue}if(b==="TERNARY")n[n.length-1]++;if(b===":"){let y=n.length-1;if(n[y]>0){n[y]--;continue}if(_?.kind==="DAMMIT")_.kind="VOID_MARKER";let p=_?.kind==="VOID_MARKER"?1:0,k=ie.has(_?.kind)?o()?.at??d-1:d-1-p;if(e[d-2-p]?.kind==="@")k=d-2-p;let I=e[k-1],x=!Bt(e,k-1)&&(k<=0||nn.has(I?.kind)||Boolean(I?.newLine)),O=o(),G=r[r.length-2],K=(q)=>q&&(q.kind==="{"||q.kind==="PICK_START"||q.kind==="OPTPICK_START"||q.kind==="object"),V=(q)=>q==="{"||q==="PICK_START"||q==="OPTPICK_START",Z=O?.kind==="INDENT"&&O.listContinuation?h():null,W=Boolean(Z),j=Z?Z.at:O?.kind==="INDENT"&&G?G.at:O?.at;if(O&&(K(O)||O.kind==="INDENT"&&(V(G?.kind)||W))&&!(j!=null&&S(j,k))&&(x||I?.kind===","||V(I?.kind)||e[k]?.kind==="{"))continue;r.push({kind:"object",at:k,sameLine:!0,startsLine:x}),i.push({at:k,token:l("{",e[k].start,e[k].id,{spaced:e[k].spaced,newLine:e[k].newLine})});continue}if(zi.has(b)||(b==="."||b==="?.")&&R.newLine){if(b==="||"||b==="&&"||b==="??"||b==="ELSE")continue;if(b==="TERMINATOR"){n[n.length-1]=0;for(let y=r.length-1;y>=0;y--){let p=r[y];if(p.kind!=="object"&&p.kind!=="CONTROL")break;if(p.kind==="object")p.sameLine=!1}}while(o()?.kind==="object"||b==="TERMINATOR"&&o()?.kind==="CONTROL"&&o()?.trigger==="CLASS"){let y=o();if(y.kind==="CONTROL"){r.pop();continue}if(b==="TERMINATOR")if(_?.kind!==","&&!(y.startsLine&&(f(d+1)||u(y,d+1))))c(d);else break;else if(y.sameLine&&_?.kind!==":"&&!((b==="POST_IF"||b==="POST_UNLESS")&&y.startsLine&&g(d+1)))c(d);else break}continue}if(b===","){let y=h(),p=(k)=>f(k)||u(y,k);if(y&&!S(y.at,d)&&!p(d+1)&&(e[d+1]?.kind!=="TERMINATOR"||!p(d+2))){if(e[d+1]?.kind==="INDENT"&&p(d+2))a=d;else if(o()?.kind==="object"){let k=e[d+1]?.kind==="OUTDENT"?1:0;while(o()?.kind==="object")c(d+k)}}}}if(e.length&&!e[e.length-1].generated)s=e[e.length-1];while(o()?.kind==="object"||o()?.kind==="CONTROL")if(o().kind==="object")c(e.length);else r.pop();return i}function sl(e,t){let r=[],i=[],n=-1,s=(l,c,f)=>({id:t(),kind:l,value:l==="CALL_START"?"(":")",start:c,end:c,spaced:!1,newLine:!1,generated:!0,origin:f}),a=null,o=(l)=>{r.pop(),i.push({at:l,token:s("CALL_END",a?a.end:0,a?a.id:null)})};for(let l=0;l0&&!e[l-1].generated)a=e[l-1];if(r[r.length-1]==="call"&&qi.has(h)&&!(h==="FOR"&&!c.newLine&&e[l-1]&&Xi.has(e[l-1].kind))){r.push(h==="CLASS"?"CONTROL_CLASS":"CONTROL");continue}if(h==="INDENT"){if(l===n){r.push("INDENT");continue}let u=e[l-1];if(!u||!Zi.has(u.kind))while(r[r.length-1]==="call")o(l);if(r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")r.pop();r.push("INDENT");continue}if(se.has(h))r.push(h);else if(ie.has(h)){while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();r.pop()}if(zi.has(h)||(h==="."||h==="?.")&&c.newLine){if(h==="||"||h==="&&"||h==="??")continue;if(h==="ELSE"&&e[l-1]?.kind==="OUTDENT")continue;if(e[l-1]?.kind!==",")while(r[r.length-1]==="call"||h==="TERMINATOR"&&r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();continue}if(Bt(e,l)||Ft.has(h)&&f&&f.spaced&&(f.kind==="+"||f.kind==="-")&&e[l+2]&&!e[l+2].spaced&&!e[l+2].newLine)i.push({at:l+1,token:s("CALL_START",f.start,f.generated?f.origin:f.id)}),r.push("call");else if(Ft.has(h)&&f?.kind==="INDENT"&&e[l+2]?.kind==="{"&&e[l+2].generated&&!Qi(e,l))i.push({at:l+1,token:s("CALL_START",e[l+2].start,e[l+2].origin)}),r.push("call"),n=l+1}if(e.length&&!e[e.length-1].generated)a=e[e.length-1];while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(e.length);else r.pop();return i}var Ut=(e,t)=>sn(e,rl,t),Vt=(e,t)=>sn(e,il,t),Wt=(e,t)=>sn(e,sl,t);var is=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END","BOOL","NULL","UNDEFINED",")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END","THIS","@","SUPER","?","PRESENCE","DAMMIT","CAST","IMPORT_META"]),al=new Set(["IDENTIFIER","PROPERTY","(","CALL_START","PARAM_START","{","[","INDEX_START","STRING","NUMBER","BOOL","NULL","UNDEFINED","-","UNARY","NEW","RESERVED"]),ae=new Set(["(","CALL_START","PARAM_START","[","INDEX_START","{","PICK_START","OPTPICK_START"]),oe=new Set([")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END"]),ol=new Set(["TERMINATOR","INDENT","OUTDENT",",","=","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN","GATE","EFFECT","->"]),ll=new Set(["+","-","MATH","**","SHIFT","COMPARE","MATCH","&&","||","??","^","RELATION","TERNARY","?","PRESENCE",":","?.","DAMMIT","EXTENDS","..","...","IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW","CATCH","FINALLY"]),cl=new Set(["IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW"]),fl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",".",",",":","?","TERNARY","...","|","&","=>","EXTENDS","(",")","PARAM_START","PARAM_END","[","]","INDEX_START","INDEX_END","{","}","INDENT","OUTDENT","TERMINATOR"]),hl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",")","PARAM_END","]","INDEX_END","}"]),ul=new Set(["TERMINATOR","INDENT","OUTDENT","{",","]),Kt=(e,t,r)=>{if(t-1{let s=0,a=[],o=(u=0)=>a[a.length-1-u],l=null,c=!1,f=[],h=(u,m)=>{s-=m;for(let S=0;S"){h(m,1),c=!0;continue}if(S==="SHIFT"&&m.value===">>"){h(m,2),c=!0;continue}if(S==="SHIFT"&&m.value===">>>"){h(m,3),c=!0;continue}if(S==="UNARY"&&m.value==="typeof"){c=!1;continue}if(m.word==="is"&&c&&u-2>=t&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY"||e[u-1].kind==="THIS")&&(e[u-2].kind==="=>"||e[u-2].value==="asserts"||e[u-2].kind===":"&&e[u-3]?.kind==="CALL_END")){c=!1;continue}if(S==="RELATION"&&m.value==="in"&&o()==="["&&o(1)==="{"&&u-2>=t&&(e[u-2].kind==="["||e[u-2].kind==="INDEX_START")&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY")&&Kt(e,u-2,t)){c=!1;continue}if(m.value==="?"&&c&&e[u+1]?.kind===":"){c=!1;continue}if(S==="-"&&e[u+1]?.kind==="NUMBER"&&!c){u++,c=!0;continue}if((S==="-"||S==="+")&&e[u+1]?.value==="readonly"&&(e[u+2]?.kind==="["||e[u+2]?.kind==="INDEX_START")&&o()==="{"&&Kt(e,u,t)){c=!1;continue}if((S==="-"||S==="+")&&e[u+1]?.value==="?"&&e[u+2]?.kind===":"&&o()==="{"&&(e[u-1]?.kind==="]"||e[u-1]?.kind==="INDEX_END")){c=!0;continue}if(S==="="&&s>0){c=!1;continue}if((o()==="{"||n.methods&&o()===void 0)&&S==="CALL_START"){let g=e[u-1],d=Kt(e,u-1,t);if(g&&(g.kind==="IDENTIFIER"||g.kind==="PROPERTY")&&d){let R=1,b=u+1;while(b0){if(e[b].kind==="CALL_START")R++;else if(e[b].kind==="CALL_END")R--;b++}if(R===0&&e[b]?.kind===":"){f.push(b-1),a.push("("),c=!1;continue}if(R===0)i(`an interface method shorthand needs a return type — \`${g.value}(…): T\``,g.start)}}if(S==="CALL_END"&&u===f[f.length-1]){f.pop(),a.pop(),c=!0;continue}if(fl.has(S)){if(es.has(S))a.push(es.get(S));else if(ml.has(S))a.pop();c=hl.has(S);continue}i(`code expression ('${m.word??m.value}') in a type body — types erase and cannot execute`,m.start)}if(s>0)i("unclosed '<' in a type body — the generic never closes",l.start)},dl=new Set(["=",":","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN",",","[","(","{","CALL_START","INDEX_START","PARAM_START","PICK_START","OPTPICK_START","RETURN","THROW","AWAIT","YIELD"]),Z1=(e,t)=>{let r=e[t];if(!r)return!0;if(r.kind==="TERMINATOR"||r.kind==="EXPORT")return!0;if(r.kind!=="INDENT"&&r.kind!=="OUTDENT")return!1;let i=0;for(let n=t;n>=0;n--){if(Y.on)Y.n++;let s=e[n].kind;if(s==="OUTDENT")i++;else if(s==="INDENT"){if(i===0){let a=e[n-1];return!(a&&dl.has(a.kind))}i--}}return!0},on=(e,t,r)=>{if(r<=t)return!1;let i=new Set(["|","&",",",":","?","TERNARY",".","..."]),n=0,s=0,a=0,o=0,l=!1,c=[],f=null;for(let h=t;h"){let S=h>t?e[h-1].kind:null;if((S===")"||S==="PARAM_END")&&f&&(f.colon||f.empty)){l=!1;continue}return!1}if(u==="("||u==="PARAM_START"){c.push({colon:!1,open:h}),n++,l=!1;continue}if(u===")"||u==="PARAM_END"){if(--n<0)return!1;let S=c.pop();f=S?{colon:S.colon,empty:h===S.open+1}:null,l=!0;continue}if(u==="["||u==="INDEX_START"){s++,l=!1;continue}if(u==="]"||u==="INDEX_END"){if(--s<0)return!1;l=!0;continue}if(u==="{"){a++,l=!1;continue}if(u==="}"){if(--a<0)return!1;l=!0;continue}if(u==="COMPARE"){if(m==="<"){o++,l=!1;continue}if(m===">"){if(o<=0)return!1;o--,l=!0;continue}return!1}if(u==="SHIFT"){if(m===">>"){if(o<2)return!1;o-=2,l=!0;continue}if(m===">>>"){if(o<3)return!1;o-=3,l=!0;continue}return!1}if(u==="="){if(o>0){l=!1;continue}return!1}if(i.has(u)){if(u===":"&&c.length)c[c.length-1].colon=!0;l=!1;continue}if(u==="IDENTIFIER"||u==="PROPERTY"||u==="NUMBER"||u==="RESERVED"||u==="STRING"||u==="NULL"||u==="UNDEFINED"||u==="BOOL"){if(l)return!1;l=!0;continue}return!1}return n===0&&s===0&&a===0&&o===0&&l},ts=(e,t,r,i)=>{let n=[],s=[],a=[],o=0,l=t,c=e[t-1]?.end??0,f=(u)=>i("unclosed '<' in a type — the generic argument list never closes"+(r.cast?"; if the '<' was meant as a comparison, parenthesize the cast: '(x as T) < y'":""),u.start),h=(u,m)=>{for(let S=0;Sl&&u.newLine)break;if(m==="SHIFT"&&(u.value===">>"||u.value===">>>")&&a.length>0){h(u,u.value===">>"?2:3),n.push(u.value),c=u.end,t++;continue}if(m==="COMPARE"&&u.value===">"){if(o===0)break;h(u,1),n.push(u.value),c=u.end,t++;continue}if(ae.has(m)||m==="COMPARE"&&u.value==="<"){o++;let g=m==="{"?"{":m==="["||m==="INDEX_START"?"[":m==="COMPARE"?"<":"(";if(s.push(g),g==="<")a.push(u);n.push(u.value),c=u.end,t++;continue}if(oe.has(m)){if(o===0)break;if(s[s.length-1]==="<")f(a[a.length-1]);o--,s.pop(),n.push(u.value),c=u.end,t++;continue}if(m==="INTERPOLATION_END"||m==="STRING_END"||m==="HEREGEX_END")break;if(o===0){if(ol.has(m))break;if(r.stopAtFatArrow&&m==="=>")break;if(r.cast&&ll.has(m))if(t===l&&(m==="-"||m==="+")&&e[t+1]?.kind==="NUMBER"){if(m==="+")i("a numeric literal type spells its sign with '-' (TypeScript has no '+1' type)",u.start,e[t+1].end)}else break;if(r.alias&&cl.has(m))break}else{if(m==="INDENT"||m==="OUTDENT"){t++;continue}if(m==="TERMINATOR"){n.push(";"),c=u.end,t++;continue}if(m==="PROPERTY"&&s[s.length-1]==="{"){let g=n[n.length-1];if(g&&g!=="{"&&g!==","&&g!==";")n.push(";")}}if(m==="?"&&!u.spaced&&e[t+1]?.kind===":"&&n.length){n[n.length-1]+="?",c=u.end,t++;continue}n.push(u.word==="is"?u.word:u.value),c=u.end,t++}if(a.length)f(a[0]);return{parts:n,consumed:t-l,end:c}},pl=(e)=>e.join(" ").replace(/\s+/g," ").trim().replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ : /g,": "),gl=(e,t,r)=>{let i=(l)=>l==="("||l==="PARAM_START"||l==="CALL_START",n=(l)=>l===")"||l==="PARAM_END"||l==="CALL_END";if(r-t<2||!i(e[t].kind))return!1;let s=0;for(let l=t;l{if(!(e[t]?.kind==="COMPARE"&&e[t].value==="<"&&!e[t].spaced))return t;let r=0;while(t")r--;else if(i.kind==="SHIFT"&&i.value===">>")r-=2;else if(i.kind==="SHIFT"&&i.value===">>>")r-=3;else if(i.kind==="TERMINATOR"||i.kind==="INDENT"||i.kind==="OUTDENT")return-1;if(t++,r===0)break}return r===0?t:-1},Yt=(e,t)=>{if(t<0||!e[t]||ln(e[t])>=0)return t;let r=0;while(t>=0){if(Y.on)Y.n++;let i=e[t];if(i.kind==="TERMINATOR"||i.kind==="INDENT"||i.kind==="OUTDENT")return-1;if(r+=ln(i),t--,r===0)break}return r===0?t:-1},zt=(e,t)=>{let r=Yt(e,t-1);if(r<0||e[r]?.kind!=="IDENTIFIER")return!1;let i=e[r-1];if(!(i?.kind==="IDENTIFIER"&&i.value==="type"))return!1;return Z1(e,r-2)},ln=(e)=>e.kind==="COMPARE"&&e.value==="<"?1:e.kind==="COMPARE"&&e.value===">"?-1:e.kind==="SHIFT"&&e.value===">>"?-2:e.kind==="SHIFT"&&e.value===">>>"?-3:0,J1=(e,t)=>{let r=e[t];if(!r||r.kind!=="IDENTIFIER"&&r.kind!=="PROPERTY")return!1;if(e[t-1]?.kind==="DEF")return!0;return r.kind==="PROPERTY"&&e[t-1]?.kind==="@"&&e[t-2]?.kind==="DEF"},bl=(e,t)=>{let r=e[t-1];if(!r)return!1;if(r.kind===")"||r.kind==="CALL_END"||r.kind==="PARAM_END")return!0;if(r.kind==="IDENTIFIER"||r.kind==="PROPERTY"){if(J1(e,t-1))return!0;let i=e[t-2]?.kind==="@"?t-3:t-2;if(Z1(e,i))return!0}if(r.kind==="VOID_MARKER"&&J1(e,t-2))return!0;return null},rs=(e)=>e.kind==="TERMINATOR"||e.kind==="INDENT"||e.kind==="OUTDENT",yl=(e,t)=>{if(t.upTo>e.length||t.upTo>0&&e[t.upTo-1]!==t.ref){t.answers.clear(),t.level=0;let r=e.length-1;while(r>=0&&!rs(e[r])){if(Y.on)Y.n++;r--}t.upTo=r+1}for(let r=t.upTo;r{let i=e[e.length-1];if(!i)return!1;if(!(i.kind==="COMPARE"&&i.value===">"||i.kind==="SHIFT"&&(i.value===">>"||i.value===">>>")))return!1;if(t)return!0;return yl(e,r),r.answers.get(r.level)??!1},Gt=(e,t)=>{let r=0,i=!1;for(let n=t+1;n")return-1;if(s==="=>")i=!0;else if(s==="="||s==="REACTIVE_ASSIGN"||s==="COMPUTED_ASSIGN"||s==="READONLY_ASSIGN"||s==="GATE"||s==="EFFECT"){if(!i||on(e,t+1,n))return n}}}return-1},Sl=(e)=>{let t=[new Map],r=Array(e.length),i=[{id:0,up:null}],n=0;for(let s=0;s"||l==="=>";i.push({id:o,up:c?null:i[i.length-1]})}else if(a==="OUTDENT"){if(i.length>1)i.pop()}else if(ae.has(a))n++;else if(oe.has(a))n--;else if(n===0&&(a==="IDENTIFIER"||a==="PROPERTY")&&e[s+1]?.kind==="=")for(let o=i[i.length-1];o;o=o.up){if(Y.on)Y.n++;t[o.id].set(e[s].value,s)}}return{blockMaps:t,blockIdAt:r}},Rl=(e,t)=>{let r=0;for(;t"||i==="=>")return!0;if(i==="TERMINATOR"||i==="INDENT"||i==="OUTDENT")return!1}}return!1},El=(e,t)=>{let r=0;for(let i=t+1;i{let i=0;for(let n=t;n{let r=0;for(let i=t;i","=>","DO","DO_IIFE","TRY","LOOP"]),_l=new Set(["IF","UNLESS","SWITCH","WHILE","UNTIL","FOR","CLASS"]),Nl=new Set(["->","=>","THEN","ELSE"]),Al=new Set(["TERMINATOR","INDENT","OUTDENT","THEN","ELSE","IF","UNLESS","POST_IF","POST_UNLESS","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW",",","=","COMPOUND_ASSIGN","&&","||","??","TERNARY","?",":","RELATION","+","-","MATH","**","SHIFT","&","|","^","STRING_START","STRING_END","INTERPOLATION_START","INTERPOLATION_END"]),vl=new Map([["yes","true"],["no","false"],["on","true"],["off","false"],["true","true"],["false","false"],["null","null"],["undefined","undefined"],["this","this"]]);function qt(e,t,r,i){let n=[],s=[],a=new WeakSet,o=()=>s[s.length-1]??null,l=!1,c=[],f=()=>c.length>0&&!!c[c.length-1],h=()=>c[c.length-1]??!1,u=(x)=>{let O=vl.get(x.value);if(O===void 0)return;i(`'${x.value}' cannot name a binding — every read of '${x.value}' lowers to \`${O}\`, so the binding would be unreachable`,x.start,x.end)},m=-1,S=0,g=!1,d=!1,R=null,b=(x,O)=>(R??=Sl(e),(R.blockMaps[R.blockIdAt[x]].get(O)??-1)>=x),_=null,y=(x)=>{let O=[],G=x,K=!0,V=-1;for(;;){if(Y.on)Y.n++;let q=El(e,G);if(q<0){if(Gt(e,G)>=0)break;O.push({colon:G,shaped:!1,assigned:!1}),K=!1,V=-1;break}if(Tl(e,G+1,q)){O.push({colon:G,shaped:!1,assigned:!1}),K=!1,V=-1;break}O.push({colon:G,shaped:q>G+1&&on(e,G+1,q),assigned:b(q+1,e[G-1].value)}),V=q;let t1=e[q+1];if(t1&&(t1.kind==="IDENTIFIER"||t1.kind==="PROPERTY")&&e[q+2]?.kind===":"){G=q+2;continue}break}let Z=V>=0?e[V+1]:null,W=K&&Z!=null&&Z.kind!=="OUTDENT",j=W&&O.every((q)=>q.shaped&&q.assigned);if(!j&&W&&O.some((q)=>q.shaped)&&O.some((q)=>q.assigned)){let q=O.find((N)=>!(N.shaped&&N.assigned)),t1=e[q.colon-1],M=q.shaped?`'${t1.value}' is never assigned in this block`:`the value after '${t1.value}:' is not a type`;i("these adjacent 'name:' lines are ambiguous — with every line a type and every "+`name assigned later they would all claim as typed forward declarations, but ${M}; for typed forwards, assign every name in this block or add an initializer ('${t1.value}: T = value'); for an implicit object, parenthesize the literal or assign it to a target`,t1.start)}_??=new Map;for(let q of O)_.set(q.colon,j);return j},p=(x,O,G,K,V)=>({id:t(),kind:x,value:O,start:G,end:K,spaced:V.spaced,newLine:V.newLine,generated:!1,origin:null}),k=(x,O,G,K)=>{if(e[G]?.kind===":")i("type annotations use a single ':' (e.g. `x: number`), not '::'",O.start,e[G].end);let V=ts(e,G,K,i);if(V.parts.length===0)return-1;for(let Z=G;Z R) => body`, not `(x): (a: T) => R => body`",e[G].start);return n.push(p(x,pl(V.parts),O.start,V.end,O)),G+V.consumed-1},I=(x)=>{let O=x+1;if(e[O]?.kind!=="IDENTIFIER")return-1;if(O++,O=Ht(e,O),O<0)return-1;if(e[O]?.kind!=="=")return-1;if(O++,e[O]?.kind==="INDENT"){let V=ns(e,O);return an(e,O+1,V,i,{methods:!0}),V}let G=ts(e,O,{alias:!0},i);if(G.parts.length===0)i("a type alias needs a type after '='",e[O-1].end);an(e,O,O+G.consumed,i);let K=e[O+G.consumed];if(K&&K.kind!=="TERMINATOR"&&K.kind!=="OUTDENT")i(`a type alias must fill its line — unexpected '${K.value}' after the type`,K.start);return O+G.consumed-1},A=(x)=>{let O=x+1;if(e[O]?.kind!=="IDENTIFIER")return-1;if(O++,O=Ht(e,O),O===-1)return-1;if(e[O]?.kind==="EXTENDS"){if(e[O+1]?.kind!=="IDENTIFIER")return-1;if(O+=2,O=Ht(e,O),O===-1)return-1}if(e[O]?.kind!=="INDENT")return-1;let G=ns(e,O);return an(e,O+1,G,i,{methods:!0}),G};for(let x=0;x=0){let Z=K?.kind==="EXPORT"?n.pop():O,W=e[V].end;n.push(p("TYPE_DECL",r.slice(Z.start,W).replace(/\r\n/g,` -`),Z.start,W,O)),x=V;continue}}if(G==="IDENTIFIER"&&O.value==="as"&&K&&K.kind!=="."&&K.kind!=="?."&&is.has(K.kind)&&e[x+1]&&(al.has(e[x+1].kind)||e[x+1].kind==="+"&&e[x+2]?.kind==="NUMBER")){let V=k("CAST",O,x+1,{cast:!0});if(V<0)i("'as' begins a cast and takes a type — `x as T`",O.start,O.end);if(V>=0){x=V;let Z=e[x+1],W=n[n.length-1];if(Z&&Z.newLine&&Z.kind!=="TERMINATOR"&&Z.kind!=="INDENT"&&Z.kind!=="OUTDENT"&&!(Z.kind==="IDENTIFIER"&&Z.value==="as")){let j=r.slice(W.end,Z.start),q=j.indexOf(` -`);if(q>=0){let t1=j[q-1]==="\r",M=W.end+q-(t1?1:0),N=t1?2:1;n.push({id:t(),kind:"TERMINATOR",value:r.slice(M,M+N),start:M,end:M+N,spaced:!1,newLine:!1,generated:!0,origin:null})}}continue}}if(G==="COMPARE"&&O.value==="<"&&!O.spaced&&K&&(K.kind==="IDENTIFIER"||J1(n,n.length-1))){let V=n[n.length-2]??null,Z=Ht(e,x);if(Z>x){let W=Z-1,j=e[W+1]?.kind,q=V?.kind==="DEF"||J1(n,n.length-1),t1=j==="="&&e[W+2]?.kind==="COMPONENT";if(q||t1){if(q&&j==="("){let M=0;for(let N=W+1;N=0){x=C;continue}}if(K.kind==="CALL_END"&&a.has(K)){let C=k("TYPE",O,x+1,{});if(C>=0){x=C;continue}}if(J1(n,n.length-1)){let C=k("TYPE",O,x+1,{});if(C>=0){if(K.kind==="PROPERTY"&&Z?.kind==="DEF")u(K),K.kind="IDENTIFIER";x=C;continue}}if(K.kind==="TYPE_PARAMS"&&J1(n,n.length-2)){let C=k("TYPE",O,x+1,{});if(C>=0){x=C;continue}}if(K.kind==="VOID_MARKER"&&J1(n,n.length-2)){let C=k("TYPE",O,x+1,{});if(C>=0){x=C;continue}}if(V&&(V.kind==="param"||V.kind==="defparam")&&!V.sawEq&&!V.sawType&&V.bodyDepth===0&&!V.inlineBody){let C=K.kind==="PROPERTY"||K.kind==="IDENTIFIER",w=K.kind==="}"||K.kind==="]",D=K.kind==="?"&&(Z?.kind==="PROPERTY"||Z?.kind==="IDENTIFIER");if(C||w||D){let B=k("TYPE",O,x+1,{});if(B>=0){if(D){if(K.kind="OPT_MARKER",Z.kind==="PROPERTY")Z.kind="IDENTIFIER"}else if(K.kind==="PROPERTY"&&e[x-2]?.kind!=="@")u(K),K.kind="IDENTIFIER";V.sawType=!0,x=B;continue}}}let W=K.kind==="OPT_MARKER"?1:0,j=W?n[n.length-2]??null:K,q=(n[n.length-2-W]??null)?.kind==="@",t1=n.length-(q?3:2)-W,M=j!==null&&(j.kind==="PROPERTY"||j.kind==="IDENTIFIER")&&Z1(n,t1),N=j!==null&&j.kind==="STRING"&&Z1(n,t1);if(s.length===0&&M&&!q)d=!0;if(s.length===0&&K.kind==="PROPERTY"&&n[n.length-2]?.kind==="."&&n[n.length-3]?.kind==="PROPERTY"&&n[n.length-3].value==="prototype"&&n[n.length-4]?.kind==="?."&&n[n.length-5]?.kind==="IDENTIFIER"&&Z1(n,n.length-6)&&Gt(e,x)>=0)i("an annotated prototype member requires the unconditional chain (`X::m: T = v`) — "+"the soak form cannot carry the annotation",O.start,O.end);if(s.length===0&&K.kind==="PROPERTY"&&n[n.length-2]?.kind==="."&&n[n.length-3]?.kind==="PROPERTY"&&n[n.length-3].value==="prototype"&&n[n.length-4]?.kind==="."&&n[n.length-5]?.kind==="IDENTIFIER"&&Z1(n,n.length-6)&&Gt(e,x)>=0){let C=k("TYPE",O,x+1,{});if(C>=0){x=C;continue}}if(s.length===0&&(M||N)&&Gt(e,x)>=0){let C=k("TYPE",O,x+1,{});if(C>=0){if(j.kind==="PROPERTY"&&!q){if(h()!=="class")u(j);j.kind="IDENTIFIER"}d=!1,x=C;continue}}if(s.length===0&&f()&&M&&!Rl(e,x+1)){let C=-1,w=0;for(let D=x+1;Dx+1&&on(e,x+1,C)){let D=k("TYPE",O,x+1,{});if(D>=0){if(j.kind==="PROPERTY"&&!q){if(h()==="component")u(j);j.kind="IDENTIFIER"}x=D;continue}}}if(s.length===0&&!f()&&M&&!q&&!W){let C=_?.get(x);if(C!==void 0?C:!g&&y(x)){let D=k("TYPE",O,x+1,{});if(D>=0){if(K.kind==="PROPERTY")u(K),K.kind="IDENTIFIER";d=!1,x=D;continue}}}}if(ae.has(G))S++;else if(oe.has(G)){if(S--,m>=0&&S=0&&S===m){if(G==="COMPARE"&&O.value==="<")i("class generics are not supported — the class head's '<' parses as a comparison "+"and the statement miscompiles silently (`class Box` compiles to "+"`(class Box {} < T) && …`); remove the generic list",O.start);if(Al.has(G))m=-1}if(G==="CLASS"||G==="COMPONENT")l=G==="CLASS"?"class":"component";else if(G==="THEN")l=!1;else if(G==="INDENT")c.push(l),l=!1;else if(G==="OUTDENT")c.pop();else if(G==="TERMINATOR")l=!1;if(s.length===0){if(G==="TERMINATOR")g=d,d=!1;else if(G==="INDENT"||G==="OUTDENT")g=!1,d=!1}if(ae.has(G)){let V="other";if(G==="PARAM_START")V="param";else if(G==="CALL_START"&&J1(n,n.length-1))V="defparam";else if(G==="CALL_START"&&K?.kind==="TYPE_PARAMS"&&J1(n,n.length-2))V="defparam";else if(G==="CALL_START"&&K?.kind==="VOID_MARKER"&&J1(n,n.length-2))V="defparam";s.push({kind:V,sawEq:!1,sawType:!1,bodyDepth:0,pendingImmediate:!1,pendingCond:!1,inlineBody:!1})}else if(oe.has(G)){if(s.pop()?.kind==="defparam"&&G==="CALL_END")a.add(O)}else{let V=o();if(V&&(V.kind==="param"||V.kind==="defparam")){let Z=()=>{V.sawEq=!1,V.sawType=!1,V.pendingImmediate=!1,V.pendingCond=!1,V.inlineBody=!1};if(V.bodyDepth>0){if(G==="INDENT")V.bodyDepth++;else if(G==="OUTDENT")V.bodyDepth--}else if(G==="INDENT")if(V.pendingImmediate||V.pendingCond)V.bodyDepth=1,V.pendingImmediate=!1,V.pendingCond=!1,V.inlineBody=!1;else Z();else if(G===","||G==="OUTDENT")Z();else if(G==="TERMINATOR")if(V.inlineBody&&O.value===";")V.pendingImmediate=!1,V.pendingCond=!1;else Z();else{if(V.pendingImmediate=wl.has(G),_l.has(G)&&K?.kind==="=")V.pendingCond=!0;else if(G==="THEN")V.pendingCond=!1;if(Nl.has(G))V.inlineBody=!0;if(G==="=")V.sawEq=!0}}}n.push(O)}e.length=n.length;for(let x=0;x"&&r!=="=>")continue;let i=t-1,n=e[i];if(!n)continue;if(n.kind==="DO"){n.kind="DO_IIFE";continue}if(n.kind!==")"){let a=0,o=-1;for(let l=t-1;l>=0;l--){if(Y.on)Y.n++;let c=e[l],f=c.kind;if(f===")"||f==="]"||f==="}"||f==="PICK_END"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&c.value===">")a++;else if(f==="("||f==="["||f==="{"||f==="PICK_START"||f==="OPTPICK_START"||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&c.value==="<")a--;else if(f==="SHIFT"&&c.value===">>")a+=2;else if(f==="SHIFT"&&c.value===">>>")a+=3;else if(a===0){if(f===":"){if(e[l-1]?.kind===")")o=l-1;break}if(f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="="||f==="->"||f==="=>")break}}if(o<0)continue;i=o,n=e[i]}else{let a=0,o=-1;for(let l=t-1;l>=0;l--){if(Y.on)Y.n++;let c=e[l].kind;if(c===")"||c==="CALL_END"||c==="PARAM_END")a++;else if(c==="("||c==="CALL_START"||c==="PARAM_START"){if(--a===0){o=l;break}}}if(o>1&&e[o-1].kind===":"&&e[o-2]?.kind===")")i=o-2,n=e[i]}let s=0;for(let a=i-1;a>=0;a--){if(Y.on)Y.n++;let o=e[a];if(o.kind===")"||o.kind==="CALL_END"||o.kind==="INDEX_END"||o.kind==="]")s++;else if(o.kind==="("||o.kind==="CALL_START"||o.kind==="INDEX_START"||o.kind==="["){if(s>0){s--;continue}if(o.kind==="("){if(o.kind="PARAM_START",n.kind="PARAM_END",e[a-1]?.kind==="DO")e[a-1].kind="DO_IIFE"}break}}}return e}function Il(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),i=[0];for(let n=0;n0)i[a]--}else if(s==="INDEX_START"&&i[i.length-1]===0){let a=1,o=n;while(++o0){if(Y.on)Y.n++;if(t.has(e[o].kind))a++;else if(r.has(e[o].kind))a--}if(a===0&&e[o]?.kind===":")e[n].kind="[",e[o-1].kind="]"}if(t.has(e[n].kind))i.push(0);else if(r.has(e[n].kind))i.pop()}return e}var $l=new Set(["STRING","STRING_END","REGEX","HEREGEX_END","NUMBER","BOOL","NULL","UNDEFINED","]","}","SYMBOL"]);function Dl(e){let t=0;for(let r=0;r0&&(i==="->"||i==="=>")&&r>0&&($l.has(e[r-1].kind)||e[r-1].kind==="IDENTIFIER"&&(e[r-1].value==="Infinity"||e[r-1].value==="NaN")))e.splice(r,0,{kind:",",value:",",start:e[r].start,end:e[r].start}),r++}return e}function xl(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),i=(s)=>s!==void 0&&(s.kind==="IDENTIFIER"||s.kind==="PROPERTY"),n=[0];for(let s=0;s0)n[o]--}else if(i(e[s])&&n[n.length-1]===0&&e[s-1]?.kind!=="."&&e[s-1]?.kind!=="?."&&e[s-1]?.kind!=="@"){let o=s;for(;;){if(Y.on)Y.n++;let l=e[o+1],c=e[o+2];if(l===void 0||!i(c))break;if(l.kind==="."){o+=2;continue}if(l.kind==="-"&&l.start===e[o].end&&c.start===l.end){o+=2;continue}break}if(o>s&&e[o+1]?.kind===":"){let l="";for(let f=s;f<=o;f++)l+=e[f].value;let c={...e[s],kind:"STRING",value:JSON.stringify(l),end:e[o].end};e.splice(s,o-s+1,c)}}if(t.has(e[s].kind))n.push(0);else if(r.has(e[s].kind))n.pop()}return e}function Cl(e){for(let t=0;t>>=":"COMPOUND_ASSIGN"},cs={"**=":"COMPOUND_ASSIGN","&&=":"COMPOUND_ASSIGN","||=":"COMPOUND_ASSIGN","??=":"COMPOUND_ASSIGN","<<=":"COMPOUND_ASSIGN",">>=":"COMPOUND_ASSIGN","//=":"COMPOUND_ASSIGN","%%=":"COMPOUND_ASSIGN",">>>":"SHIFT","...":"...","<=>":"BIND"},fs={"==":"COMPARE","!=":"COMPARE","<=":"COMPARE",">=":"COMPARE","**":"**","&&":"&&","||":"||","??":"??","..":"..","+=":"COMPOUND_ASSIGN","-=":"COMPOUND_ASSIGN","*=":"COMPOUND_ASSIGN","/=":"COMPOUND_ASSIGN","%=":"COMPOUND_ASSIGN","&=":"COMPOUND_ASSIGN","^=":"COMPOUND_ASSIGN","|=":"COMPOUND_ASSIGN",":=":"REACTIVE_ASSIGN","~=":"COMPUTED_ASSIGN","<~":"GATE","=!":"READONLY_ASSIGN","<<":"SHIFT",">>":"SHIFT","//":"MATH","%%":"MATH","~>":"EFFECT","!>":"!>","=~":"MATCH","->":"->","=>":"=>","++":"++","--":"--","?.":"?.",".=":"METHOD_ASSIGN","*{":"MAP_START"},Ml=new Set([".","?.","UNARY","NEW","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","??","TERNARY","EXTENDS"]),Xt=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","NUMBER","STRING","]","INDEX_END","SUPER","DAMMIT","PRESENCE","DYNAMIC_IMPORT"]),tt=new Set([...Xt,"BOOL","NULL","UNDEFINED","}","PICK_END","STRING_END","REGEX","HEREGEX_END","THIS","@"]);function jl(e,t){let r=t;while(r=e.length||Fl.test(e[r+1])))r++;return r}var Fl=/[\s,)\]};:]/,fn=/[0-9]/,Bl=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,Ul=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,Vl=/^\w*/,hs=/^(?!.*(.).*\1)[gimsuy]*$/,Wl=new Set([...tt,"++","--"]);function Hl(e,t="",{tolerant:r=!1}={}){mi();let i=new de(e,t),n=[],s=[],a=[],o=[""],l=[],c=0,f=0,h=!0,u=-1,m=!1,S=!1,g=null,d=!1,R=!1,b=!1,_=0,y=0,p=[],k=(v,P,H=P)=>{let{line:s1,col:L}=i.lineColAt(P),U=Error(`${t}:${s1+1}:${L+1}: ${v}`);throw U.reason=v,U.start=P,U.end=H,U},I=(v,P,H=P)=>{try{k(v,P,H)}catch(s1){throw s1.openAtEnd=!0,s1}},A=(v,P,H,s1,L={})=>{if((v==="STRING"||v==="STRING_START")&&(d||R)){let e1=n[n.length-1];if(e1?.kind==="IDENTIFIER"&&e1.value==="from")e1.kind="FROM"}if(v==="IDENTIFIER"&&P==="from"&&n[n.length-1]?.kind==="YIELD")v="FROM";if(v==="RELATION"){let e1=n[n.length-1];if(e1?.kind==="UNARY"&&e1.value==="!")n.pop(),P="!"+P,H=e1.start}let U={id:y++,kind:v,value:P,start:H,end:s1,spaced:m,newLine:S,generated:!1,origin:null,...L};if(n.push(U),!U.generated&&p.length>0){for(let e1 of p)e1.origin=U.id;p.length=0}m=!1,S=!1},x=(v,P)=>{let H={id:y++,kind:v,value:v,start:P,end:P,spaced:!1,newLine:!1,generated:!0,origin:null};p.push(H),n.push(H)},O=()=>n[n.length-1]??null,G=()=>{let v=n.length-1;while(v>=2&&n[v].kind==="."&&n[v-1].kind==="PROPERTY"&&n[v-2].kind===".")v-=2;let P=n[v-1];if(!P||P.kind==="INDENT"||P.kind==="TERMINATOR"||P.kind==="OUTDENT"||P.kind==="RENDER")return!0;return P.kind==="IDENTIFIER"&&Ae.has(String(P.value).split("#")[0])},K=()=>{let v=0,P=0;for(let H=n.length-1;H>=0;H--){let s1=n[H].kind;if(s1==="OUTDENT")v++;else if(s1==="INDENT"){if(v--,v=0;L--){let U=n[L].kind;if(U==="TERMINATOR"||U==="INDENT"||U==="OUTDENT")break;if(U==="COMPONENT")return!0}}}}return!1},V=()=>{if(!l[l.length-1]?.pickKeys)return!1;let P=O()?.kind;return P==="PICK_START"||P==="OPTPICK_START"||P===","||P===":"||P==="TERMINATOR"||P==="INDENT"||P==="OUTDENT"},Z=(v,P)=>{let H=c;while(c=e.length)I("unterminated string",P);let s1=e.slice(H,c);return c+=v.length,s1},W=(v)=>v.replace(/\\[\s\S]|`|\$\{/g,(P)=>P[0]==="\\"?P:`\\${P}`),j=(v)=>{let P=null,H=/\n+([^\S\n]*)(?=\S)/g,s1;while(s1=H.exec(v))if(P===null||s1[1].length>0&&s1[1].length{if(P===null)return v??"";if(v===null)return P;return P.length<=v.length?P:v},t1=(v,P)=>{if(P.length===1)return v;if(v=v.replace(/\r\n?/g,` +var t2=Object.defineProperty;var r2=(e)=>e;function n2(e,t){this[e]=r2.bind(null,t)}var xe=(e,t)=>{for(var r in t)t2(e,r,{get:t[r],enumerable:!0,configurable:!0,set:n2.bind(t,r)})};class me{constructor(e,t=""){this.path=t,this.text=e;let r=[0];for(let i=0;ithis.text.length)e=this.text.length;let t=this.lineStarts,r=0,i=t.length-1;while(r<=i){let n=r+i>>1;if(t[n]<=e)r=n+1;else i=n-1}return{line:i,col:e-t[i]}}offsetAt(e,t){if(e<0)return 0;if(e>=this.lineStarts.length)return this.text.length;let r=this.lineStarts[e],i=e+1r&&this.text.charCodeAt(i-1)===13)i--;let n=r+Math.max(0,t);return n>i?i:n}slice(e,t){return this.text.slice(e,t)}}var Y={on:!1,n:0},di=()=>{if(Y.on=typeof process<"u"&&!!process.env.RIP_COUNT_OPS,Y.on)Y.n=0;return Y.on};class Kr extends Error{constructor(e){super(e);this.name="TypeTextError"}}var Ct=(e)=>String(e??"").trim(),Ce=(e)=>String(e??""),mi=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},pi=()=>{throw Error("rip: type-text rendering is unavailable in the browser")},gi=()=>()=>!1,bi=()=>new Set;function ne(e){return String(e).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function Yr(e){return String(e).replace(/_([a-z])/g,(t,r)=>r.toUpperCase())}function zr(e){return ne(e)+"_id"}function Je(e){if(typeof e!=="string"||!/^[a-z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function qr(e){if(typeof e!=="string"||!/^[A-Z][a-zA-Z0-9]*$/.test(e))return!1;if(/[A-Z]{2,}/.test(e))return!1;return!0}function i2(e){return typeof e==="string"&&/^[a-z_][a-z0-9_]*$/.test(e)}function s2(e){return typeof e==="string"&&e.length>0&&!/[\u0000-\u001f\u007f".]/.test(e)}var Xr={__proto__:null,mixin:"target",times:"none",softDelete:"none",belongsTo:"target",hasOne:"target",hasMany:"target",index:"columns",unique:"columns",idStart:"int",table:"name",tableWas:"name",primary:"field"},yi=["idStart","table","tableWas","primary","times","softDelete"],Si=["belongsTo","hasOne","hasMany"],Jr={__proto__:null,column:"literal",was:"column"},Ri={__proto__:null,as:"property",foreignKey:"column",through:"model",targetKey:"column"};function Zr(e,t,r){if(typeof r!=="string"||!r.length)return"'"+t+"' requires a non-empty string";if(e==="property"&&!Je(r))return"'"+t+"' is a property name — canonical camelCase, e.g. {"+t+": author}";if(e==="model"&&!qr(r))return"'"+t+"' is a model name — canonical PascalCase, e.g. {"+t+": Membership}";if(e==="column"&&!i2(r))return"'"+t+"' is a column name Rip generates — lowercase, digits and underscores "+"only, e.g. {"+t+': "author_id"}';if(e==="literal"&&!s2(r))return"'"+t+"' is a database column name — any spelling the database uses, but with "+"no dots, double quotes, or control characters";return null}var a2=new Set(["input","shape","mixin","enum","union","model"]);var o2=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy","afterCommit","afterRollback"]),Ei=new Set(["integer","number","boolean","date","datetime"]),l2={__proto__:null,id:"integer",int:"integer",whole:"integer",float:"number",money:"integer",money_even:"integer",cents:"integer",decimal:"string",bool:"boolean",truthy:"boolean",falsy:"boolean",json:"json",hash:"json",array:"json",ids:{type:"integer",array:!0},string:"string",text:"string",name:"string",address:"string",date:"string",time:"string",time12:"string",email:"email",state:"string",zip:"zip",zipplus4:"string",ssn:"string",sex:"string",phone:"string",username:"string",ip:"string",mac:"string",url:"url",color:"string",uuid:"uuid",semver:"string",slug:"string"},c2=new Set(["string","email","url","phone","zip"]),f2=new Set(["TERMINATOR","INDENT","OUTDENT","=","COMPOUND_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","LEADING_WHEN","THEN","IF","UNLESS","UNARY","UNARY_MATH"]),ki=new Set(["defaultMaxString"]),P1=(e)=>e&&(e.kind==="IDENTIFIER"||e.kind==="PROPERTY"),Ze=(e)=>e&&typeof e.value==="string"&&/^[a-z]+$/.test(e.value)&&(e.kind===e.value.toUpperCase()||e.kind==="LEADING_WHEN"||e.kind==="RELATION"||e.kind==="STATEMENT"),h2=(e)=>`__${e}__behavior`,V1=(e,t,r=!1)=>{if(e[t]?.kind!==":")return null;let i=e[t+1];if(!i||i.spaced)return null;if(P1(i)||r&&/^[a-z]+$/.test(i.value)&&i.kind===i.value.toUpperCase())return i;return null};function u2(e,t){if(typeof e?.start!=="number")throw e;t(e)}function Ai(e,t,r,i,n=null){if(r.indexOf("schema")===-1)return;let s=[],a={defaultMaxString:null,tolerate:n},o=0,l=0;while(l0){l+=f;continue}if(p2(e,l,i)){l=g2(e,l,s,a,t,i,r);continue}s.push(c),l++}e.length=0;for(let c of s)e.push(c)}function d2(e,t,r,i,n){let s=e[t];if(!s||s.kind!=="IDENTIFIER"||s.value!=="schema")return 0;if(e[t+1]?.kind!==".")return 0;let a=e[t+2];if(!a||a.kind!=="PROPERTY")return 0;if(e[t+3]?.kind!=="=")return 0;let o=e[t-1];if(o&&o.kind!=="TERMINATOR"&&o.kind!=="INDENT"&&o.kind!=="OUTDENT")return 0;let l=a.value;if(!ki.has(l))n(`unknown schema pragma 'schema.${l}' — known pragmas: ${[...ki].join(", ")}`,a.start);if(i>0)n(`schema pragma 'schema.${l}' must be declared at file top level — inside a nested block it would leak into later top-level schemas`,a.start);let c=e[t+4];if(!c||c.kind!=="NUMBER")n(`pragma 'schema.${l}' requires a number literal — example: schema.${l} = 100`,(c??a).start);let f=Number(c.value);if(!Number.isFinite(f)||f<0||!Number.isInteger(f))n(`pragma 'schema.${l}' expects a non-negative integer (got ${c.value}); use 0 to disable`,c.start);r[l]=f===0?null:f;let h=t+5;if(e[h]?.kind==="TERMINATOR")h++;return h-t}var vi=(e,t)=>{if(e[t]?.kind==="SYMBOL")return e[t];return e[t]?.kind===":"&&e[t].spaced?V1(e,t,!0):null},Oi=(e,t)=>e[t]?.kind==="SYMBOL"?1:2,m2=(e,t)=>{if(e[t]?.kind!==","||!P1(e[t+1])||e[t+1].value!=="on")return t;let r=t+2;if(e[r]?.kind===":")r++;while(r")s("inline schema bodies do not support '->' (methods/hooks/scopes/transforms) — use the indented form",y.start);else if(_===0&&(m==="EFFECT"||m==="!>"))s(`inline schema bodies do not support '${y.value}' (${m==="EFFECT"?"computed getters":"eager-derived fields"}) — use the indented form`,y.start);b++}while(b>R&&e[b-1].kind==="TERMINATOR")b--;if(d=e.slice(R,b),S=b,!d.length)s("inline schema body is empty — add '; field; …' entries or switch to the indented form",o.start);g=d[d.length-1].end}else{if(e[f]?.kind==="TERMINATOR")f++;if(e[f]?.kind!=="INDENT")s(`expected an indented schema body after 'schema${c?" :"+l:""}'`,o.start);let R=f,b=0,_=-1;for(let y=R;yR.kind==="SYMBOL"?[{...R,kind:":",value:":",end:R.start+1},{...R,kind:"IDENTIFIER",start:R.start+1,spaced:!1}]:[R]);let p=b2(l,c,d,{schemaStart:o.start,defaultMaxString:i.defaultMaxString,tolerate:i.tolerate??null},s);if(u)p.adapterTokens=u;return p.start=(c??d[0]).start,p.end=g,p.primitiveSpans=[c,...d].filter((R)=>R&&typeof R.value==="string"&&/^[A-Za-z_$][\w$]*$/.test(R.value)).map((R)=>({value:R.value,sourceStart:R===c&&R.end-R.start===R.value.length+1?R.start+1:R.start,sourceEnd:R.end})),r.push({id:n(),kind:"SCHEMA",value:"schema",start:o.start,end:o.end,spaced:o.spaced}),r.push({id:n(),kind:"SCHEMA_BODY",value:p,start:p.start,end:p.end,spaced:!0}),S}function b2(e,t,r,i,n){let s=[],a=y2(r);if(e==="input"&&!t&&a.length>0&&V1(a[0],0))e="enum";if(e==="enum")for(let o of a)$2(o,s,n);else if(e==="union"){for(let c of a)I2(c,s,n);let o=s.filter((c)=>c.tag==="directive"&&c.name==="on").length,l=s.filter((c)=>c.tag==="union-member");if(o!==1)n(o===0?":union requires an '@on :field' discriminator — untagged unions are not supported":`:union takes exactly one '@on :field' discriminator (got ${o})`,i.schemaStart);if(l.length<2)n(`:union needs at least two constituent schemas (got ${l.length})`,i.schemaStart)}else{for(let o of a)S2(e,o,s,i,n);if(e==="model")T2(s,n);else for(let o of s){if(o.tag==="scope"||o.tag==="defaultScope")n(`:${e} schemas don't accept query scopes — '@${o.tag==="scope"?"scope":"defaultScope"}' is :model-only`,o.start);if(e==="mixin"&&(o.tag==="method"||o.tag==="computed"||o.tag==="derived"))n(`:mixin schemas are fields-only — '${o.name}' is a ${o.tag}; move it to a :shape or :model`,o.start);if(e==="mixin"&&o.tag==="ensure")n(":mixin schemas don't accept @ensure refinements — move the invariant to a :shape or :model that composes this mixin",o.start);if(e==="input"&&(o.tag==="method"||o.tag==="computed"))n(`:input schemas are fields-only — '${o.name}' is a ${o.tag}; use :shape or :model if you need behavior`,o.start);if(o.tag==="directive"&&o.name!=="mixin")n(`:${e} schemas only accept '@mixin Name'${e==="input"?" and '@ensure'":""} — '@${o.name}' is ${["times","softDelete","belongsTo","hasMany","hasOne","unique","index","idStart","table","tableWas","primary"].includes(o.name)?":model-only":"not a schema directive"}`,o.start)}}return{kind:e,entries:s,toJSON(){return this.kind}}}function y2(e){let t=[],r=[],i=0;for(let n of e){if(n.kind==="INDENT")i++;if(n.kind==="OUTDENT")i--;if(n.kind==="TERMINATOR"&&i===0){if(r.length)t.push(r),r=[];continue}r.push(n)}if(r.length)t.push(r);return t}function S2(e,t,r,i,n){let s=t[0];if(!s)return;if(s.kind==="@"){let C=t[1];if(!P1(C))n("expected a directive name after '@'",s.start);let w=C.value;if(w==="ensure"){let a1=2,h1=!1;if(t[2]?.kind==="DAMMIT"&&!t[2].spaced)h1=!0,a1=3;let f1=_2(t.slice(a1),s,n);for(let z of f1)r.push({tag:"ensure",name:"ensure",message:z.message,field:z.field,fieldStart:z.fieldStart,async:h1,paramTokens:z.paramTokens,bodyTokens:z.bodyTokens,start:s.start});return}if(w==="scope"){let a1=k2(t.slice(2),s,n);r.push({tag:"scope",name:a1.name,paramTokens:a1.paramTokens,bodyTokens:a1.bodyTokens,start:s.start});return}if(w==="defaultScope"){let a1=Ii(t.slice(2),s,"@defaultScope",n);if(a1.paramTokens.length)n("@defaultScope takes no parameters — write '@defaultScope -> @where(...)'",s.start);r.push({tag:"defaultScope",name:"defaultScope",paramTokens:[],bodyTokens:a1.bodyTokens,start:s.start});return}let D=null,B=t.slice(2);if(w==="mixin"){let a1=B[0];if(!P1(a1))n("@mixin requires a target name — '@mixin Timestamps'",s.start);if(B.length>1)n("@mixin takes exactly one schema name",B[1].start);D=[{target:a1.value}]}r.push({tag:"directive",name:w,args:D,argTokens:B,start:s.start,nameStart:C.start});return}if(s.kind==="PROPERTY"){if(i.tolerate){try{Ti(e,s,t,r,n)}catch(C){u2(C,i.tolerate)}return}Ti(e,s,t,r,n);return}if(s.kind!=="IDENTIFIER"&&!Ze(s))n(`unexpected ${s.kind} at schema top level — allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), computed getters ('name: ~> body')`,s.start);let a=s.value;if(t[1]?.kind===":")n(`schema fields use 'name type' (space, no colon) — got '${a}:'`,t[1].start);let o=[],l=1;while(l{if(t[C]?.kind==="STRING"&&t[C].value.startsWith('"'))return{value:JSON.parse(t[C].value),bracketed:!1,start:t[C].start,end:t[C].end,next:C+1};if((t[C]?.kind==="["||t[C]?.kind==="INDEX_START")&&t[C+1]?.kind==="STRING"&&t[C+1].value.startsWith('"')&&(t[C+2]?.kind==="]"||t[C+2]?.kind==="INDEX_END"))return{value:JSON.parse(t[C+1].value),bracketed:!0,start:t[C].start,end:t[C+2].end,next:C+3};return null},b=void 0,_=null,y=R(l);if(g?.kind==="UNARY_MATH"&&g.value==="~"){let C=V1(t,l+1),w=t[l+1];if(C){h=!0,u=C.value;let D=l2[u];if(D&&typeof D==="object")c=D.type,d=!0;else c=D||"any";l+=3}else if(w?.kind==="IDENTIFIER"&&!w.spaced){if(!Ei.has(w.value))n(`'~${w.value}' is not coercible — built-in coercion exists for: ${[...Ei].join(", ")}; named coercers use a symbol ('~:${w.value}'); otherwise write a transform ('${a}, -> …')`,w.start);h=!0,c=w.value,l+=2}else n("'~' in the type slot marks coercion and needs a type name ('~integer', '~date', …) or a registered coercer symbol ('~:ssn', …)",g.start);S=!0}else if(g?.kind==="IDENTIFIER")c=g.value,S=!0,l++;else if(y&&(!y.bracketed||t[y.next]?.kind==="|")){f=[];let C=(w)=>{if(f.push(w.value),w.bracketed){if(_)n(`field '${a}' brackets more than one union member as its default — a field has one default`,w.start);b=w.value,_={start:w.start,end:w.end}}};C(y),l=y.next,S=!0;while(t[l]?.kind==="|"){let w=R(l+1);if(!w)n(`literal unions contain string literals only — '${t[l+1]?.kind??""}' is not allowed as a union member; use the '?' modifier for nullability`,t[l].start);C(w),l=w.next}c="literal-union"}let m=!1,k=(C)=>(t[C]?.kind==="["||t[C]?.kind==="INDEX_START")&&(t[C+1]?.kind==="]"||t[C+1]?.kind==="INDEX_END");if(k(l)){if(m=!0,l+=2,k(l))n(`field '${a}' — nested array types ('${c}[][]') are not supported: one '[]' validates element-wise; use 'json' or a '-> transform' for deeper nesting`,t[l].start)}if(h&&m)n(`coercion ('~${c}') does not apply to array types — coerce per-element with a transform instead`,g.start);if(d)m=!0;if(m&&f)n("array-of-literal-union is not supported — use 'string[]' for an array of strings",g.start);let O=g?.kind==="UNARY_MATH"&&g.value==="~"?t[p+1]:g,A=S?[O.start,t[l-1].end]:null,x=t.slice(l);if(S&&x[0]?.kind==="->")n(`field '${a}' has a transform after the type; a comma is required before '->' — write '${a} ${c}, -> …'`,x[0].start);let I=null,H=void 0,G=!1;if(_)H=b,G=!0;let K={};if(_)K.start=_.start,K.end=_.end;let Z=null,V=null,j=null,q=!1,t1=!1;if(x.length>0){if(x[0]?.kind===",")x=x.slice(1);if(x.length>=2&&x[0].kind==="INDENT"){let w=0,D=-1;for(let B=0;B"){let a1=L2(D),h1=D[0].kind==="@"&&a1===2;if(a1>0&&!h1)n(`field '${a}' has a transform after other content; a comma is required before '->'`,D[a1].start);if(!h1){while(D.length&&(D[D.length-1].kind==="OUTDENT"||D[D.length-1].kind==="TERMINATOR"))D=D.slice(0,-1);if(!D.length)continue}}let B=D[0];if(B.kind==="["||B.kind==="INDEX_START"){if(G)n(`field '${a}' has more than one '[…]' default bracket`,B.start);H=C2(D,a,n,K),G=!0}else if(B.kind==="{"){if(e!=="model"&&e!=="mixin")n(`field attrs ('{…}') are persistence metadata — :model/:mixin-only ('{was: "old_column"}' annotates a column rename)`,B.start);if(j)n(`field '${a}' has more than one '{…}' attrs bracket`,B.start);j=R2(D,a,n)}else if(D2(D)){if(I)n(`field '${a}' has more than one range constraint — one 'min..max' per field`,B.start);I=x2(D,a,n)}else if(B.kind==="REGEX"&&D.length===1){if(Z)n(`field '${a}' has more than one regex constraint`,B.start);Z=P2(B,n)}else if(B.kind==="->"){if(w!==C.length-1)n(`transform '-> …' must be the last element on the field line for '${a}'`,B.start);V=D.slice(1)}else if(B.kind==="@"){let a1=P1(D[1])?D[1].value:null;if(e!=="model"&&e!=="mixin")n(`inline '@${a1??""}' on field '${a}' is persistence metadata — :model/:mixin-only ('@unique' marks single-column uniqueness)`,B.start);if(D.length>2&&D[2].kind==="->"){if(w!==C.length-1)n(`transform '-> …' must be the last element on the field line for '${a}'`,D[2].start);V=D.slice(3),D=D.slice(0,2)}if(D.length===2&&a1==="unique"){if(q)n(`field '${a}' has more than one '@unique'`,B.start);q=!0}else if(D.length===2&&a1==="primary"){if(e!=="model")n(`inline '@primary' on field '${a}' is :model-only — a mixin cannot declare the primary key`,B.start);if(t1)n(`field '${a}' has more than one '@primary'`,B.start);t1=!0}else n(`unknown inline attribute '@${a1??""}' on field '${a}' — the inline attributes are '@unique' and '@primary'`,B.start)}else n(`unexpected trailer for field '${a}' — expected '[…]' default, '/regex/', 'min..max' range, or '-> transform'`,B.start)}}if(h&&V)n(`field '${a}' has both '~${c}' coercion and a '->' transform — a transform replaces coercion; coerce inside it instead`,s.start);let M={};if(I){if(I.min!==void 0)M.min=I.min;if(I.max!==void 0)M.max=I.max;if(I.min===void 0&&M.min===void 0&&o.includes("!"))M.min=1}if(Z)M.regex=Z;if(G)M.default=H;if(f&&M.default!==void 0&&!f.includes(M.default))n(`field '${a}' defaults to ${JSON.stringify(M.default)}, which is not a member of its literal union (${f.map((C)=>JSON.stringify(C)).join(" | ")})`,s.start);if(i.defaultMaxString!=null&&!Z&&!f&&c2.has(c)&&M.max===void 0)M.max=i.defaultMaxString;if(M.min!==void 0&&M.max!==void 0&&M.min>M.max)n(`field '${a}' would have impossible constraints min=${M.min} > max=${M.max} after sugar is applied — write an explicit range or drop the conflicting pragma`,s.start);let N=M.min!==void 0||M.max!==void 0||M.default!==void 0||M.regex!==void 0?M:null;r.push({tag:"field",name:a,modifiers:o,typeName:c,array:m,literals:f,coerce:h,coercer:u,constraints:N,transformTokens:V,unique:q,primary:t1,attrs:j,start:s.start,typeSpan:A,defaultSpan:K.start===void 0?null:[K.start,K.end]})}function Qr(e,t,r,i){if(e[e.length-1]?.kind!=="}")i(`${r} — the '{…}' options bracket never closes`,e[0].start);let n=e.slice(1,-1).filter((a)=>a.kind!=="TERMINATOR"&&a.kind!=="INDENT"&&a.kind!=="OUTDENT"),s={};for(let a of Ne(n)){if(!a.length)continue;let o=a[0];if(!P1(o))i(`${r} options must be '{key: value}' pairs — got ${o.kind}`,o.start);let l=o.value,c=t[l];if(c===void 0)i(`unknown ${r} option '${l}' — known options: ${Object.keys(t).join(", ")}`,o.start);if(l in s)i(`${r} repeats option '${l}'`,o.start);let f=1;if(a[f]?.kind===":")f++;let h=a.slice(f);if(h.length!==1)i(`${r} option '${l}' takes a single value`,(h[0]??o).start);let u=h[0],d=c==="property"||c==="model",S;if(d){if(!P1(u)&&!Ze(u)){let p=u.kind==="STRING"&&u.value.startsWith('"')?JSON.parse(u.value):null,R=p&&!Zr(c,l,p)?p:c==="model"?"Membership":"author";i(`${r} option '${l}' names ${c==="model"?"a model":"a property"}, `+`so it is written BARE — '{${l}: ${R}}', not ${u.kind==="STRING"?u.value:`a ${u.kind}`}. Quoting would name a database identifier, which is a different thing`,u.start)}S=u.value}else{if(u.kind!=="STRING"||!u.value.startsWith('"'))i(`${r} option '${l}' names a database column, so it is QUOTED — `+`'{${l}: "${P1(u)?ne(u.value):"author_id"}"}'. A bare name would be a Rip name, which is a different thing`,u.start);S=JSON.parse(u.value)}let g=Zr(c,l,S);if(g)i(`${r} option ${g}; got '${S}'`,o.start);s[l]=S}if(!Object.keys(s).length)i(`${r} has an empty '{…}' options bracket`,e[0].start);return s}function R2(e,t,r){return Qr(e,Jr,`field '${t}'`,r)}function E2(e,t,r){let i=Qr(e,Ri,`@${t}`,r);if(i.through&&t==="belongsTo")r("@belongsTo option 'through' is for @hasMany/@hasOne — a @belongsTo holds its key in its own row, so it has nothing to read through",e[0].start);if(i.targetKey&&!i.through)r(`@${t} option 'targetKey' names a column on the join model, so it requires 'through' — '{through: Membership, targetKey: "team_id"}'`,e[0].start);return i}function k2(e,t,r){if(!e.length)r("@scope requires ':name, -> body' (or ':name, (args) -> body')",t.start);let i=V1(e,0);if(!i)r("@scope name must be a :symbol — '@scope :active, -> @where(active: true)'",e[0].start);let n=i.value,s=e[2],a=s&&!s.spaced&&s.start===i.end&&(s.value==="!"||s.value==="?");if(a||!/^[a-z][a-zA-Z0-9]*$/.test(n))r(`@scope name ':${n}${a?s.value:""}' must be a lowercase-first alphanumeric identifier — scopes chain as query-builder methods`,i.start);let o=e.slice(2);if(o[0]?.kind===",")o=o.slice(1);if(!o.length)r(`@scope :${n} is missing its body — '@scope :${n}, -> @where(...)'`,i.start);let l=Ii(o,i,`@scope :${n}`,r);return{name:n,paramTokens:l.paramTokens,bodyTokens:l.bodyTokens}}function Ii(e,t,r,i){if(!e.length)i(`${r}: expected '-> body' or '(args) -> body'`,t.start);let n=[],s=0,a=e[0];if(a.kind==="("||a.kind==="PARAM_START"||a.kind==="CALL_START"){let c=1;s=1;while(s0){let f=e[s].kind;if(f==="("||f==="PARAM_START"||f==="CALL_START")c++;if(f===")"||f==="PARAM_END"||f==="CALL_END"){if(c--,c===0){s++;break}}n.push(e[s]),s++}if(c!==0)i(`${r}: unclosed '(' in parameters`,a.start)}let o=e[s];if(o?.kind!=="->")i(`${r}: expected '->' ${n.length?"after parameters":"to start the body"}`,(o??t).start);let l=e.slice(s+1);if(!l.length)i(`${r}: function body is empty`,o.start);return{paramTokens:n,bodyTokens:l}}function T2(e,t){let r=new Set;for(let g of e){if(g.tag!=="directive")continue;let p=Xr[g.name];if(p===void 0)t(`unknown directive '@${g.name}' on :model — legal: ${Object.keys(Xr).map((R)=>"@"+R).join(", ")}, @ensure, @scope, @defaultScope`,g.nameStart??g.start);if(yi.includes(g.name)){if(r.has(g.name))t(p==="none"?`duplicate '@${g.name}' — declared twice; a :model declares it once`:`duplicate '@${g.name}' — a :model declares it at most once (the second would silently override the first)`,g.nameStart??g.start);r.add(g.name)}if(g.name!=="mixin")g.args=w2(g,p,t)}if(e.some((g)=>g.tag==="directive"&&g.name==="mixin"))return;let n=new Set,s=new Map,a=new Map,o=new Map,l=(g,p,R,b)=>{if(n.has(p))t(`${s.get(p)} and ${R} both own column '${p}' — every table column has exactly one owner`,b);if(a.has(g))t(`${o.get(g)} and ${R} both own property '${g}' (columns '${a.get(g)}' and '${p}') — every property reads exactly one column`,b);n.add(p),s.set(p,R),a.set(g,p),o.set(g,R)},c=e.find((g)=>g.tag==="directive"&&g.name==="primary"),f=e.filter((g)=>g.tag==="field"&&g.primary);if(f.length>1)t(`both '${f[0].name}' and '${f[1].name}' declare '@primary' — a row has one identity`,f[1].start);if(f.length===1){if(c)t(`'@primary ${c.args[0].name}' and inline '@primary' on field '${f[0].name}' are two answers to one question — state it once`,c.start);c={tag:"directive",name:"primary",args:[{name:f[0].name}],start:f[0].start}}let h=c?c.args[0].column??ne(c.args[0].name):"id",u=c?c.args[0].name:"id",d=e.find((g)=>g.tag==="field"&&g.name===u)??null,S=!!(c&&d);if(!c&&d)t(`field '${u}' collides with the runtime-managed primary key — a :model's ${u} is sequence-assigned. Drop the declaration, or write '@primary ${u}' to make it a caller-supplied natural key instead`,d.start);if(S){if(!d.modifiers?.includes("!"))t(`the primary key '${u}' is declared optional — a row's identity is never absent; declare it required ('${u}! string')`,d.start);if(d.array)t(`the primary key '${u}' is declared as an array — a primary key is one value`,d.start);let g=e.find((p)=>p.tag==="directive"&&p.name==="idStart");if(g)t(`@idStart seeds the sequence behind a runtime-managed primary key, but '${u}' is declared as a field, which makes it caller-supplied — there is no sequence to seed. Drop @idStart, or drop the field declaration`,g.start);if(c.args[0].column!==void 0&&c.args[0].column!==(d.attrs?.column??ne(u)))t(`@primary names column '${c.args[0].column}' but field '${u}' reads a different one — state the column once, on the field`,c.start)}else l(u,h,"the primary key",c?.start??e[0]?.start??0);for(let g of e){if(g.tag!=="field")continue;l(g.name,g.attrs?.column??ne(g.name),`field '${g.name}'`,g.start)}for(let g of e){if(g.tag!=="directive")continue;if(g.name==="times")l("createdAt","created_at","@times",g.start),l("updatedAt","updated_at","@times",g.start);else if(g.name==="softDelete")l("deletedAt","deleted_at","@softDelete",g.start);else if(g.name==="belongsTo"){let p=g.args[0],R=p.foreignKey??zr(p.as??p.target);l(Yr(R),R,`the @belongsTo ${p.target}${p.as?` (as ${p.as})`:""} relation`,g.start)}}for(let g of e){if(g.tag!=="directive"||g.name!=="index"&&g.name!=="unique")continue;let p=g.args[0].fields.map((R)=>a.get(R)??(n.has(R)?R:ne(R)));p.forEach((R,b)=>{if(p.indexOf(R)!==b)t(`@${g.name} columns must be distinct after canonicalization: ${p.join(", ")}`,g.colTokens?.[b]?.start??g.start)}),p.forEach((R,b)=>{if(!n.has(R))t(`@${g.name}: unknown column '${g.args[0].fields[b]}' — the table has: ${[...n].sort().join(", ")}`,g.colTokens?.[b]?.start??g.start)})}}function w2(e,t,r){let i=e.argTokens??[],n=(s,a)=>r(`@${e.name}: ${a}`,s.start);switch(t){case"none":{if(i.length)n(i[0],"takes no arguments");return null}case"target":{let s=i[0];if(!P1(s))r(`@${e.name} requires a target name — '@${e.name} User'`,(s??{start:e.start}).start);let a=!1,o=1;if(i[o]?.kind==="?"&&!i[o].spaced)a=!0,o++;let l=null;if(i[o]?.kind===","&&i[o+1]?.kind==="{")l=E2(i.slice(o+1),e.name,r),o=i.length;if(oP1(c)||Ze(c),l=0;if(V1(i,0)){let c=V1(i,0);s.push(c.value),a.push(c),l=2}else if(o(i[0]))s.push(i[0].value),a.push(i[0]),l=1;else if(i[0]?.kind==="["||i[0]?.kind==="INDEX_START"){let c=1;l=1;let f=[];while(l0){let h=i[l];if(h.kind==="["||h.kind==="INDEX_START")c++;if(h.kind==="]"||h.kind==="INDEX_END"){if(c--,c===0){l++;break}}if(c>=1)f.push(h);l++}if(c!==0)n(i[0],"unclosed '[' in the column list");for(let h of Ne(f)){let u=V1(h,0),d=u??(o(h[0])?h[0]:null);if(!d||h.length>(u?2:1))n(h[u?2:1]??h[0]??i[0],`column names are bare identifiers or :symbols — '@${e.name} [:a, :b]'`);s.push(d.value),a.push(d)}}if(!s.length)r(`@${e.name} requires a field name or list — '@${e.name} :email' or '@${e.name} [:a, :b]'`,(i[0]??{start:e.start}).start);if(l1)n(i[1],`takes one table name — unexpected ${i[1].kind}`);if(o);else{if(/[A-Z]{2,}/.test(a))r(`@${e.name} ${a}: a bare name is a LOGICAL name that Rip snake_cases, and consecutive capitals convert surprisingly ('${a}' → '${ne(a)}'). Spell it 'MdmUser'-style, or name the table exactly by quoting it: '@${e.name} "${a}"'`,s.start);a=ne(a)}return[{name:a}]}case"field":{let s=i[0];if(!P1(s)&&!Ze(s))r(`@${e.name} requires a property name — '@${e.name} patientId'`,(s??{start:e.start}).start);let a=1,o=null;if(i[a]?.kind===","&&i[a+1]?.kind==="{")o=Qr(i.slice(a+1),Jr,`@${e.name}`,r),a=i.length;if(a0){let d=r[a].kind;if(d==="("||d==="PARAM_START"||d==="CALL_START")u++;if(d===")"||d==="PARAM_END"||d==="CALL_END"){if(u--,u===0){a++;break}}o.push(r[a]),a++}if(u!==0)n(`'${s}': unclosed '(' in parameters`,r[2].start)}let l=r[a],c=null,f=-1;if(l?.kind==="->"||l?.kind==="EFFECT"||l?.kind==="!>")c=l.kind==="EFFECT"?"~>":l.kind,f=a+1;else if(P1(l)||l?.kind==="STRING"||l?.kind==="NUMBER")n(`schema fields use 'name type' (space, no colon) — got '${s}:'; for methods/computed use 'name: -> body' or 'name: ~> body'`,r[1].start);else n(`schema top-level '${s}:' must be followed by '->' (method), '~>' (computed getter), or '!>' (eager derived)`,r[1].start);let h=c==="~>"?"computed":c==="!>"?"derived":e==="model"&&o2.has(s)?"hook":"method";if(o.length&&h!=="method")n(`'${s}': ${h==="computed"?"computed getters (~>)":h==="derived"?"eager-derived fields (!>)":"lifecycle hooks"} take no parameters — only methods do`,r[1].start);i.push({tag:h,name:s,paramTokens:o,bodyTokens:r.slice(f),start:t.start})}function _2(e,t,r){let i=e;if(!i.length)r("@ensure requires 'message, (x) -> body' or a '[…]' array of pairs",t.start);let n=i[0];if(n.kind==="["||n.kind==="INDEX_START"){let a=N2(i,n,r),o=A2(a);if(o.length===0)r("@ensure […] must contain at least one 'message, fn' pair",n.start);return wi(o,n,r)}let s=Ne(i);if(s.length<2)r("@ensure inline form must be 'message, (x) -> body' — did you forget the comma?",n.start);if(s.length>3||s.length===3&&!$i(s[1]))r(`@ensure inline form takes 'message[, :field], fn' (got ${s.length} comma-separated parts) — use '@ensure […]' for multiple refinements`,n.start);return wi(s,n,r)}var $i=(e)=>e&&e.length===2&&V1(e,0)!==null;function wi(e,t,r){let i=[],n=0;while(n=e.length)r(`@ensure: missing function after message${a?" and :field":""}`,(s[0]??t).start);i.push(v2(s,a,e[n++],t,r))}return i}function N2(e,t,r){let i=0,n=[];for(let s=0;s=2&&n[0].kind==="INDENT"&&n[n.length-1].kind==="OUTDENT"){let o=0,l=!1;for(let c=0;c=1)n.push(a)}r("@ensure: unclosed '['",t.start)}function A2(e){let t=[],r=[],i=0;for(let n of e){let s=n.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")i++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")i--;if(i===0&&(s===","||s==="TERMINATOR")){if(r.length)t.push(r),r=[];continue}r.push(n)}if(r.length)t.push(r);return t}function v2(e,t,r,i,n){if(!e?.length)n("@ensure: missing message (expected a string literal)",i.start);if(e.length!==1||e[0].kind!=="STRING"||!e[0].value.startsWith('"'))n("@ensure: each refinement's first element must be a string literal message",(e[0]??i).start);let s=e[0],a=JSON.parse(s.value),o=t?V1(t,0):null,l=t?o.value:null,c=o?.start??null;if(!r?.length)n("@ensure: missing function after message",s.start);let f=r[0];if(f.kind!=="("&&f.kind!=="PARAM_START")n("@ensure: expected '(args) -> body' after the message — predicates declare their parameter explicitly ('(u) -> …')",f.start);let h=1,u=1,d=[];while(u0){let p=r[u].kind;if(p==="("||p==="PARAM_START")h++;if(p===")"||p==="PARAM_END"){if(h--,h===0){u++;break}}d.push(r[u]),u++}if(h!==0)n("@ensure: unclosed '(' in predicate parameters",f.start);let S=r[u];if(S?.kind!=="->")n("@ensure: expected '->' after predicate parameters",(S??s).start);let g=r.slice(u+1);if(!g.length)n("@ensure: predicate function body is empty",S.start);return{message:a,field:l,fieldStart:c,paramTokens:d,bodyTokens:g}}function Di(e,t,r,i=null){if(!e.length)return[];let n=O2(e,t,r,i);for(let s=n.length-1;s>=0&&n[s].type===null;s--)n[s].optional=!0;return n}function O2(e,t,r,i){let n=(s)=>s.kind!=="TERMINATOR"&&s.kind!=="INDENT"&&s.kind!=="OUTDENT";return Ne(e).map((s)=>{let a=s.filter((f)=>n(f)&&f.kind!=="TYPE"),o=a.length>=3&&(a[0].kind==="IDENTIFIER"||a[0].kind==="PROPERTY")&&a[1].kind===":";if(!o&&(a.length!==1||a[0].kind!=="IDENTIFIER"))r(`${t}: parameters must be plain identifiers, optionally typed ('name' or 'name: Type')`,(a[0]??s[0]).start);let l=o?[...s].filter(n).pop():null,c=o&&i!==null?Ct(i.slice(a[1].end,l.end)).trim():null;return{name:a[0].value,type:c,optional:!1}})}function I2(e,t,r){let i=e[0];if(!i)return;if(i.kind==="@"){let n=e[1];if(!n||n.value!=="on")r(`:union bodies accept only '@on :field' and constituent schema names — '@${n?.value??""}' is not allowed`,(n??i).start);let s=V1(e,2);if(!s)r("@on requires the discriminator field as a symbol — '@on :kind'",(e[2]??n).start);if(e.length>4)r("@on takes exactly one :field symbol",e[4].start);t.push({tag:"directive",name:"on",args:[{field:s.value}],start:i.start});return}if(i.kind==="IDENTIFIER"&&e.length===1){t.push({tag:"union-member",name:i.value,start:i.start});return}r(`:union bodies accept only '@on :field' and bare constituent schema names (one per line) — got ${i.kind}${e.length>1?" followed by "+e[1].kind:""}`,i.start)}function $2(e,t,r){let i=e[0];if(!i)return;if(i.kind==="@")r(`:enum schemas don't accept '@${e[1]?.value??"directive"}' — enums hold only :symbol members`,i.start);let n=V1(e,0);if(!n)r(`enum member must be a :symbol — use ':${i.value??"name"}' for a bare member or ':${i.value??"name"} value' for a valued one`,i.start);let s=n.value,a=e[2];if(!a){t.push({tag:"enum-member",name:s,value:void 0,start:i.start});return}if(a.kind===":")r(`enum member ':${s}' — drop the ':' before the value; use ':${s} value'`,a.start);if(e.length>3&&!(e.length===4&&a.kind==="-"&&e[3].kind==="NUMBER"))r(`extra tokens after enum member ':${s}' value`,e[3].start);let o=a.kind==="-"&&e[3]?.kind==="NUMBER"?-Number(e[3].value):xi(a,`enum member ':${s}' value`,r);t.push({tag:"enum-member",name:s,value:o,start:i.start})}function D2(e){return e.some((t)=>t.kind==="..")&&e.every((t)=>t.kind===".."||t.kind==="NUMBER"||t.kind==="-")}function x2(e,t,r){let i=0,n=()=>{let l=1;if(e[i]?.kind==="-")l=-1,i++;let c=e[i++];if(c?.kind!=="NUMBER")r("range endpoints must be numeric literals",(c??e[0]).start);return l*Number(c.value)},s;if(e[i]?.kind!=="..")s=n();i++;let a;if(ia)r(`range '${s}..${a}' is reversed — write the smaller endpoint first`,e[0].start);let o={};if(s!==void 0)o.min=s;if(a!==void 0)o.max=a;return o}function C2(e,t,r,i={}){let n=e.slice(1,-1);if(n.length)i.start=n[0].start,i.end=n[n.length-1].end;let s=Ne(n);if(s.length!==1)r(s.length===2?"size/value ranges use 'min..max' syntax, not brackets — replace the bracket pair with a range":`the constraint bracket takes a single default value (got ${s.length} elements)`,e[0].start);let a=s[0];if(a.length===1&&a[0].kind==="REGEX")r(`regex constraints are written bare, not in brackets — replace '[${a[0].value}]' with '${a[0].value}'`,e[0].start);if(a.length===2&&a[0].kind==="-"&&a[1].kind==="NUMBER")return-Number(a[1].value);let o=V1(a,0);if(o&&a.length===2)return o.value;if(a.length!==1)r(`default values must be literals (number, string, boolean, null, :symbol) — field '${t}'`,a[0].start);return xi(a[0],`field '${t}' default`,r)}function P2(e,t){let r=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(e.value);if(!r)t(`invalid regex literal ${JSON.stringify(e.value)}`,e.start);try{return new RegExp(r[1],r[2])}catch(i){t(`invalid regex '${e.value}': ${i.message}`,e.start)}}function xi(e,t,r){switch(e.kind){case"NUMBER":return Number(e.value);case"STRING":if(!e.value.startsWith('"'))r(`${t} must be a plain string literal (heredocs have no literal key form)`,e.start);return JSON.parse(e.value);case"BOOL":return e.value==="true";case"NULL":return null;case"UNDEFINED":return;default:r(`${t} must be a literal (number, string, boolean, null) — got ${e.kind}`,e.start)}}function Ne(e){let t=[],r=[],i=0;for(let n of e){let s=n.kind;if(s==="("||s==="["||s==="{"||s==="CALL_START"||s==="INDEX_START"||s==="PARAM_START"||s==="INDENT")i++;if(s===")"||s==="]"||s==="}"||s==="CALL_END"||s==="INDEX_END"||s==="PARAM_END"||s==="OUTDENT")i--;if(s===","&&i===0){if(r.length)t.push(r);r=[];continue}r.push(n)}if(r.length)t.push(r);return t}function L2(e){let t=0;for(let r=0;r")return r}return-1}function Ci(e,t,r,i=null,n=null,s=!1,a=null,o=null){let l=[],c=(u)=>{if(l.length&&typeof l[l.length-1]==="string")l[l.length-1]+=u;else l.push(u)},f=(u,d=null)=>l.push({ts:u,span:d}),h=(u)=>l.push({body:u});if(c(`{kind: ${JSON.stringify(e.kind)}`),t)c(`, name: ${JSON.stringify(t)}`);if(c(", entries: ["),e.entries.forEach((u,d)=>{if(d>0)c(", ");j2(u,r.get(d),n?.get(d)??null,c,f,s,a?.get(d)??null,o?.get(d)??null,h)}),c("]"),i)c(", adapter: "),h(i);return c("}"),l}var Pe=(e)=>typeof e==="string"?e:e.code;function Pi(e,t,r,i){let n=[];return e.entries.forEach((s,a)=>{if(s.tag!=="derived"&&s.tag!=="computed"&&s.tag!=="method")return;let o=r.get(a);if(o===void 0)return;let l=i?.get(a)??null,c=Pe(o);for(let[f,h]of Li(o,l).reverse())c=c.slice(0,f)+h+c.slice(f);n.push(`${s.name}: ${c}`)}),n.length?`const ${h2(t)} = {${n.join(", ")}};`:null}function Li(e,t,r=!0){if(typeof e==="string")return[];let i=r?(e.annots??[]).map(([n,s])=>[n,s]):[];if(t!==null){let{code:n,thisAt:s}=e;i.push([s,`this: ${t}${n[s]===")"?"":", "}`])}return i.sort((n,s)=>n[0]-s[0])}function M2(e,t,r,i,n=!1){let s=Li(e,t,n);if(s.length===0){r(Pe(e));return}let{code:a}=e,o=0;for(let[l,c]of s)r(a.slice(o,l)),i(c),o=l;r(a.slice(o))}function j2(e,t,r,i,n,s=!1,a=null,o=null,l=i){switch(e.tag){case"computed":case"method":case"derived":case"hook":case"scope":case"defaultScope":i(`{tag: ${JSON.stringify(e.tag)}, name: ${JSON.stringify(e.name)}, fn: `),M2(t,r,l,n,s),i("}");return;default:let c={},f=F2(e,t,c),h=[];if(s&&a!==null&&c.defaultEnd!==void 0)h.push({at:c.defaultEnd,ts:` satisfies ${a}`,span:e.defaultSpan??null});if(s&&e.tag==="field"&&t!==void 0&&typeof t!=="string"&&Pe(t).startsWith("it",t.thisAt)){let d=Pe(t);h.push({at:f.length-1-d.length+t.thisAt+2,ts:": any"})}if(s&&e.tag==="ensure"&&o!==null&&c.fnAt!==void 0&&typeof t!=="string"&&t!==void 0){let d=/^[A-Za-z_$][\w$]*/.exec(Pe(t).slice(t.thisAt))?.[0];if(d)h.push({at:c.fnAt+t.thisAt+d.length,ts:`: ${o}`})}let u=0;for(let d of h)i(f.slice(u,d.at)),n(d.ts,d.span??null),u=d.at;i(f.slice(u))}}function F2(e,t,r={}){if(t!==void 0)t=Pe(t);switch(e.tag){case"field":{let i=['tag: "field"',`name: ${JSON.stringify(e.name)}`,`modifiers: ${JSON.stringify(e.modifiers)}`,`typeName: ${JSON.stringify(e.typeName)}`,`array: ${e.array?"true":"false"}`];if(e.unique)i.push("unique: true");if(e.primary)i.push("primary: true");if(e.literals)i.push(`literals: ${JSON.stringify(e.literals)}`);if(e.coerce){if(i.push("coerce: true"),e.coercer)i.push(`coercer: ${JSON.stringify(e.coercer)}`)}if(e.constraints){let n=[];if(e.constraints.min!==void 0)n.push(`min: ${Pt(e.constraints.min)}`);if(e.constraints.max!==void 0)n.push(`max: ${Pt(e.constraints.max)}`);let s=-1;if(e.constraints.default!==void 0)s=n.length,n.push(`default: ${Pt(e.constraints.default)}`);if(e.constraints.regex!==void 0)n.push(`regex: ${e.constraints.regex.toString()}`);if(n.length){if(s>=0){let a=`{${i.join(", ")}, constraints: {`;r.defaultEnd=a.length+n.slice(0,s+1).join(", ").length}i.push(`constraints: {${n.join(", ")}}`)}}if(e.attrs)i.push(`attrs: {${Object.keys(e.attrs).sort().map((n)=>`${n}: ${Pt(e.attrs[n])}`).join(", ")}}`);if(t)i.push(`transform: ${t}`);return`{${i.join(", ")}}`}case"directive":{let i=['tag: "directive"',`name: ${JSON.stringify(e.name)}`];if(e.args){if(e.name==="mixin"||Si.includes(e.name)){let n=e.args[0];i.push(`args: [{target: ${JSON.stringify(n.target)}${n.optional?", optional: true":""}${n.as?`, as: ${JSON.stringify(n.as)}`:""}${n.foreignKey?`, foreignKey: ${JSON.stringify(n.foreignKey)}`:""}${n.through?`, through: ${JSON.stringify(n.through)}`:""}${n.targetKey?`, targetKey: ${JSON.stringify(n.targetKey)}`:""}}]`)}else if(e.name==="primary")i.push(`args: [{name: ${JSON.stringify(e.args[0].name)}${e.args[0].column?`, column: ${JSON.stringify(e.args[0].column)}`:""}}]`);else if(e.name==="on")i.push(`args: [{field: ${JSON.stringify(e.args[0].field)}}]`);else if(e.name==="unique"||e.name==="index")i.push(`args: [{fields: ${JSON.stringify(e.args[0].fields)}}]`);else if(e.name==="idStart")i.push(`args: [{value: ${e.args[0].value}}]`);else if(e.name==="table"||e.name==="tableWas")i.push(`args: [{name: ${JSON.stringify(e.args[0].name)}}]`)}return`{${i.join(", ")}}`}case"ensure":{let i=['tag: "ensure"',`message: ${JSON.stringify(e.message)}`];r.fnAt=`{${i.join(", ")}, fn: `.length;let n=[...i,`fn: ${t}`];if(e.field)n.push(`field: ${JSON.stringify(e.field)}`);if(e.async)n.push("async: true");return`{${n.join(", ")}}`}case"enum-member":{let i=['tag: "enum-member"',`name: ${JSON.stringify(e.name)}`];if(e.value!==void 0)i.push(`value: ${JSON.stringify(e.value)}`);return`{${i.join(", ")}}`}case"union-member":return`{tag: "union-member", name: ${JSON.stringify(e.name)}}`;default:throw Error(`schema: unknown entry tag '${e.tag}'`)}}function Pt(e){if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e==="string")return JSON.stringify(e);return String(e)}var B2=new Set(["pick","omit","partial","required","extend"]);function U1(e){return e&&e.valueOf?e.valueOf():e}function Mi(e){return e.entries.some((t)=>t.tag==="directive"&&t.name==="mixin")}function U2(e){return Yr(e.foreignKey??zr(e.as??e.target))}function V2(e){if(Mi(e))return null;let t=new Map;for(let a of e.entries)if(a.tag==="field")t.set(a.name,a);if(e.kind!=="model")return t;let r=(a,o,l)=>{if(!t.has(a))t.set(a,{tag:"field",name:a,modifiers:l?["!"]:["?"],typeName:o,array:!1})},i=!1,n=!1,s=[];for(let a of e.entries){if(a.tag!=="directive")continue;if(a.name==="times")i=!0;else if(a.name==="softDelete")n=!0;else if(a.name==="belongsTo"){let o=a.args&&a.args[0];if(o&&o.target)s.push({fk:U2(o),required:o.optional!==!0})}}if(r("id","integer",!0),i)r("createdAt","datetime",!0),r("updatedAt","datetime",!0);if(n)r("deletedAt","datetime",!1);for(let{fk:a,required:o}of s)r(a,"integer",o);return t}function W2(e){if(Mi(e))return null;let t=new Map;for(let r of e.entries)if(r.tag==="field")t.set(r.name,r);return t}function _i(e,t){let r=e.modifiers.filter((n)=>n!==(t==="partial"?"!":"?")),i=t==="partial"?"?":"!";if(!r.includes(i))r=[...r,i];return{...e,modifiers:r}}function H2(e,t,r){switch(t.method){case"pick":{let i=new Map;for(let n of t.keys){if(!e.has(n))return null;i.set(n,e.get(n))}return i}case"omit":{let i=new Set(t.keys),n=new Map;for(let[s,a]of e)if(!i.has(s))n.set(s,a);return n}case"partial":{let i=new Map;for(let[n,s]of e)i.set(n,_i(s,"partial"));return i}case"required":{let i=new Set(t.keys),n=new Map;for(let[s,a]of e)n.set(s,i.has(s)?_i(a,"required"):a);return n}case"extend":{let i=t.otherDescriptor||r.get(t.otherName);if(!i)return null;let n=W2(i);if(!n)return null;let s=new Map(e);for(let[a,o]of n){if(s.has(a))return null;s.set(a,o)}return s}default:return null}}function G2(e,t,r){let i=V2(e);if(!i)return null;for(let n of t)if(i=H2(i,n,r),!i)return null;return{kind:"shape",entries:[...i.values()]}}function K2(e){let t=[],r=e;while(!0){if(!Array.isArray(r))return null;let i=r[0];if(!Array.isArray(i))return null;if(U1(i[0])!==".")return null;let n=U1(i[2]);if(!B2.has(n))return null;let s=r.slice(1),a;if(n==="partial"){if(s.length)return null;a={method:n}}else if(n==="extend"){if(s.length!==1)return null;let c=s[0];if(Array.isArray(c)){let f=U1(c[0])==="schema"&&c.length===2&&c[1]&&typeof c[1]==="object"&&Array.isArray(c[1].entries)?c[1]:null;if(!f||f.kind!=="shape"&&f.kind!=="input")return null;a={method:n,otherDescriptor:f}}else{let f=U1(c);if(typeof f!=="string"||!/^[A-Za-z_$][\w$]*$/.test(f))return null;a={method:n,otherName:f}}}else{let c=Y2(s);if(!c||!c.length)return null;a={method:n,keys:c}}t.unshift(a);let o=i[1];if(Array.isArray(o)){r=o;continue}let l=U1(o);if(typeof l!=="string")return null;return{base:l,ops:t}}}function Y2(e){let t=[];for(let r of e)if(Array.isArray(r)){if(U1(r[0])!=="array")return null;for(let i=1;i{r[2]=["schema",t]})}var Lt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]),Le=new Set(["a","animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tspan","use","view"]),Ae=new Set([...Lt,...Le]),en=new Set([...Le].filter((e)=>!Lt.has(e))),Mt=new Set(["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","command","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"]),Fi=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert","ismap","nomodule","playsinline","default","itemscope","alpha","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"]),ve=new Set(["accesskey","autocapitalize","autocorrect","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","popover","role","slot","spellcheck","style","tabindex","title","translate","writingsuggestions"]),Qe={__proto__:null,a:["href","target","download","ping","rel","hreflang","type","referrerpolicy"],area:["alt","coords","shape","href","target","download","ping","rel","referrerpolicy"],audio:["src","crossorigin","preload","autoplay","loop","muted","controls"],base:["href","target"],blockquote:["cite"],button:["command","commandfor","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","popovertarget","popovertargetaction","type","value"],canvas:["width","height"],col:["span"],colgroup:["span"],data:["value"],del:["cite","datetime"],details:["name","open"],dialog:["open","closedby"],embed:["src","type","width","height"],fieldset:["disabled","form","name"],form:["accept-charset","action","autocomplete","enctype","method","name","novalidate","rel","target"],iframe:["src","srcdoc","name","sandbox","allow","allowfullscreen","width","height","referrerpolicy","loading"],img:["alt","src","srcset","sizes","crossorigin","usemap","ismap","width","height","referrerpolicy","decoding","loading","fetchpriority"],input:["accept","alpha","alt","autocomplete","checked","colorspace","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","popovertarget","popovertargetaction","readonly","required","size","src","step","type","value","width"],ins:["cite","datetime"],label:["for"],li:["value"],link:["href","crossorigin","rel","media","integrity","hreflang","type","referrerpolicy","sizes","imagesrcset","imagesizes","as","blocking","disabled","fetchpriority"],map:["name"],meta:["name","http-equiv","content","charset","media"],meter:["value","min","max","low","high","optimum"],object:["data","type","name","form","width","height"],ol:["reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],progress:["value","max"],q:["cite"],script:["src","type","nomodule","async","defer","crossorigin","integrity","referrerpolicy","blocking","fetchpriority"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["type","media","src","srcset","sizes","width","height"],style:["media","blocking"],table:["align","bgcolor","border","cellpadding","cellspacing","width"],tbody:["align","valign"],td:["colspan","rowspan","headers","align","bgcolor","height","nowrap","valign","width"],template:["shadowrootmode","shadowrootdelegatesfocus","shadowrootclonable","shadowrootserializable"],tfoot:["align","valign"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],th:["colspan","rowspan","headers","scope","abbr","align","bgcolor","height","nowrap","valign","width"],thead:["align","valign"],time:["datetime"],tr:["align","bgcolor","valign"],track:["default","kind","label","src","srclang"],video:["src","crossorigin","poster","preload","autoplay","playsinline","loop","muted","controls","width","height"]};for(let e in Qe)Qe[e]=new Set(Qe[e]);var et=new Set(["id","class","style","lang","tabindex","href","pathLength","crossorigin","transform","viewBox","preserveAspectRatio","xmlns","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","d","points","dx","dy","rotate","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","clip-path","clip-rule","mask","filter","color","display","visibility","pointer-events","vector-effect","dominant-baseline","text-anchor","font-family","font-size","font-weight","font-style","letter-spacing","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","patternUnits","patternContentUnits","patternTransform","markerWidth","markerHeight","refX","refY","orient","markerUnits","maskUnits","maskContentUnits","clipPathUnits","filterUnits","primitiveUnits","in","in2","result","stdDeviation","values","type","mode","operator","radius","scale","baseFrequency","numOctaves","seed","dur","repeatCount","begin","end","from","to","attributeName","keyTimes","keySplines","calcMode","restart","min","max"]);function tn(e){let t=String(e).toLowerCase(),r=new Set(ve),i=Qe[t];if(i)for(let n of i)r.add(n);if(Le.has(String(e)))for(let n of et)r.add(n);return[...r]}function q2(e,t){if(Math.abs(e.length-t.length)>2)return 3;let r=Array.from({length:t.length+1},(i,n)=>n);for(let i=1;i<=e.length;i++){let n=[i];for(let s=1;s<=t.length;s++)n[s]=Math.min(r[s]+1,n[s-1]+1,r[s-1]+(e[i-1]===t[s-1]?0:1));r=n}return r[t.length]}function Bi(e,t){let r=tn(e),i=String(t).toLowerCase(),n=r.find((l)=>l.toLowerCase()===i);if(n!==void 0&&n!==t)return n;if(String(t).length<3)return null;let s=null,a=3,o=!1;for(let l of r){if(l===String(t))continue;let c=q2(String(t),l);if(cAe.has(String(e).split("#")[0]),Hi=(e)=>typeof e==="string"&&X2.test(e),jt=(e)=>J2(e)||Hi(e);function Gi(e,t,r){let i=!1;for(let y of e)if(y.kind==="RENDER"){i=!0;break}if(!i)return e;let n=[],s=(y,m,k,O={})=>{let{at:A,...x}=O,I=A??k.end;return{id:t(),kind:y,value:m,start:I,end:I,spaced:!1,newLine:!1,generated:!0,origin:k.id,...x}},a=!1,o=0,l=0,c=[],f=[],h=[],u=(y,m,k)=>m{let x=1,I=m;while(I>=0&&x>0){if(Y.on)Y.n++;let H=u(y,I,A)?.kind;if(H===k)x++;else if(H===O)x--;if(x>0)I--}return I},S=(y)=>{let m=n.length;while(m>0&&u(n,m,y)?.kind==="OUTDENT")m=d(n,m-1,"OUTDENT","INDENT",y);while(m>0){if(Y.on)Y.n++;let O=n[m-1].kind;if(O==="TERMINATOR"||O==="RENDER")break;if(O==="OUTDENT"){m=d(n,m-2,"OUTDENT","INDENT",y);continue}if(O==="INDENT"){let A=u(n,m,y)?.kind;if(A==="CALL_END"||A===")"){m=d(n,m-1,A,A==="CALL_END"?"CALL_START":"(",y);continue}break}if(O==="CALL_END"||O===")"){m=d(n,m-2,O,O==="CALL_END"?"CALL_START":"(",y);continue}if(O==="INTERPOLATION_END"){m=d(n,m-2,"INTERPOLATION_END","INTERPOLATION_START",y);continue}if(O==="STRING_END"){m=d(n,m-2,"STRING_END","STRING_START",y);continue}m--}let k=u(n,m,y);return k?.kind==="IDENTIFIER"&&(jt(k.value)||(m===0||["INDENT","TERMINATOR","RENDER"].includes(n[m-1]?.kind)))},g=()=>{let y=0;for(let m=n.length-1;m>=0;m--){if(Y.on)Y.n++;let k=n[m].kind;if(Vi.has(k))y++;else if(Ui.has(k)){if(y===0)return 1;y--}else if(k==="TERMINATOR"||k==="RENDER"||k==="INDENT"||k==="OUTDENT")break}return 0},p=(y)=>{let m=n[n.length-1];if(!m)return!1;if(g()!==0)return!1;let k=m.kind;if((k===","||k==="IDENTIFIER"||k==="PROPERTY")&&S(y))return!0;if((k==="INDENT"||k==="TERMINATOR")&&f.includes(l))return!0;return!1},R=(y)=>{let m=1;for(let k=y+1;k0;k++){if(Y.on)Y.n++;let O=e[k].kind;if(O==="("||O==="CALL_START")m++;else if(O===")"){if(m--,m===0)e[k].kind="CALL_END"}else if(O==="CALL_END")m--}},b=(y)=>{let m=1;for(let k=n.length-1;k>=0&&m>0;k--){if(Y.on)Y.n++;if(n[k].kind==="CALL_END")m++;else if(n[k].kind==="CALL_START"){if(m--,m===0&&k>0&&n[k-1].kind==="PROPERTY"&&n[k-1].value==="__clsx")return!0}}return!1},_=(y)=>{while(h.length>0){let m=h[h.length-1];if(y.kind==="INDENT"||Ui.has(y.kind)){m.depth++;return}if(y.kind==="OUTDENT"||Vi.has(y.kind)){if(m.depth===0){n.push(s("CALL_END",")",n[n.length-1]??y)),h.pop();continue}m.depth--;return}if(y.kind==="TERMINATOR"&&m.depth===0){n.push(s("CALL_END",")",n[n.length-1]??y)),h.pop();continue}return}};for(let y=0;y0)_(m);if(m.kind==="RENDER"){a=!0,o=l+1,n.push(m);continue}if(m.kind==="INDENT"){l++,n.push(m);continue}if(m.kind==="OUTDENT"){l--;while(f.length>0&&f[f.length-1]>l)f.pop();n.push(m);while(c.length>0&&c[c.length-1]>l)n.push(s("CALL_END",")",m)),c.pop();if(a&&l0){let O=n[n.length-1].kind;if(O==="TERMINATOR"||O==="INDENT"||O==="RENDER"){n.push(s("IDENTIFIER","__text__",m,{at:m.start,spaced:m.spaced,newLine:m.newLine})),n.push(s("CALL_START","(",m,{at:m.start})),h.push({depth:0});continue}}if(m.kind==="UNARY_MATH"&&m.value==="~"&&k?.kind==="IDENTIFIER"){n.push(s("PROPERTY","__transition__",m,{spaced:m.spaced,newLine:m.newLine})),n.push(s(":",":",m)),k.kind="STRING",k.value=`"${k.value}"`,k.transitionValue=!0;continue}if(m.transitionValue&&k!==null&&Wi.has(k.kind)){n.push(m),n.push(s(",",",",m,{at:k.start}));continue}if(m.kind==="BIND"){let O=n[n.length-1];if(O!==void 0&&(O.kind==="IDENTIFIER"||O.kind==="PROPERTY")&&k!==null&&(k.kind==="IDENTIFIER"||k.kind==="@")){O.value=`__bind_${O.value}__`,n.push(s(":",":",m));continue}}if(m.kind==="PROPERTY"&&m.value[0]==="$"&&m.value.length>1&&![".","?.","@"].includes(n[n.length-1]?.kind)){n.push({...m,kind:"STRING",value:`"data-${m.value.slice(1)}"`});continue}if(m.kind==="IDENTIFIER"&&k?.kind==="-"&&!k.spaced){let O=[m.value],A=y+1,x=m.end;while(A+11&&e[A-1].kind==="PROPERTY"){let I=O.join("-");if(I[0]==="$")I=`data-${I.slice(1)}`;n.push({...m,kind:"STRING",value:`"${I}"`,end:x}),y=A-1;continue}}if(m.kind==="."){let O=n[n.length-1]?.kind;if(O==="INDENT"||O==="TERMINATOR"||O==="RENDER"){if(k?.kind==="PROPERTY"){let A=e[y+2];if(!A||A.kind!==":"){n.push(s("IDENTIFIER","div",m,{spaced:m.spaced,newLine:m.newLine})),n.push(m);continue}m={...m,kind:"IDENTIFIER",value:"div"}}else if(!k||k.kind!=="(")m={...m,kind:"IDENTIFIER",value:"div"}}}if(m.kind==="."&&k?.kind==="("){let O=n[n.length-1]?.kind,A=O==="INDENT"||O==="TERMINATOR"||O==="RENDER";if(k.kind="CALL_START",R(y+1),A)n.push(s("IDENTIFIER","div",m,{spaced:m.spaced,newLine:m.newLine})),n.push(m),n.push(s("PROPERTY","__clsx",m));else if(O===":")n.push(s("IDENTIFIER","__clsx",m,{spaced:m.spaced,newLine:m.newLine}));else n.push(m),n.push(s("PROPERTY","__clsx",m));continue}if(m.kind==="@"&&k?.kind==="PROPERTY"&&!k.spaced){let O=e[y+2],A=O?.kind===".",x=O?.kind===":";if(!A&&!x&&p(m)){let I=String(k.value),H=`on${I[0].toUpperCase()}${I.slice(1)}`;if(O?.kind==="=")r(`a \`=\` cannot follow a bare event directive on one line — \`@${I} = expr\` would assign to the minted handler and invoke the assignment as the listener; bind explicitly (\`@${I}: handler\`), or keep the bare \`@${I}\` and put the text on its own \`= expr\` line`,O.start);if(n.push(m),n.push(k),n.push(s(":",":",k)),n.push(s("@","@",k)),n.push(s("PROPERTY",H,k)),y++,e[y+1]?.kind==="INDENT")n.push(s(",",",",k,{at:e[y+1].start})),n.push(s("->","->",k,{at:e[y+1].start,newLine:!0})),f.push(l+1);else if(e[y+1]!==void 0&&Wi.has(e[y+1].kind))n.push(s(",",",",k,{at:e[y+1].start}));continue}}if(k?.kind==="INDENT"&&m.kind!=="->"&&m.kind!=="=>"&&m.kind!=="CALL_START"&&m.kind!=="("){let O=n[n.length-1]?.kind,A=["IF","UNLESS","WHILE","UNTIL","WHEN","FORIN","FOROF","FORAS","FORASAWAIT","BY"].includes(O),x=m.kind==="IDENTIFIER"&&(O==="INDENT"||O==="TERMINATOR"||O==="RENDER"),I=!1,H=!1;if(m.kind==="CALL_END")H=b(m);if(H)I=!0;else if(m.kind==="IDENTIFIER"&&jt(m.value)&&!A)I=!0;else if(m.kind==="IDENTIFIER"&&!A)I=x||S(m);else if(["PROPERTY","STRING","STRING_END","NUMBER","BOOL","CALL_END",")","]","INDEX_END","}","PRESENCE"].includes(m.kind))I=S(m);if(I){let G=!1;if(m.kind==="PROPERTY"&&n[n.length-1]?.kind==="."){let Z=n.length;while(Z>=2&&n[Z-1].kind==="."&&n[Z-2].kind==="PROPERTY")Z-=2;if(Z>=2&&n[Z-1].kind==="."&&n[Z-2].kind==="IDENTIFIER"&&jt(n[Z-2].value)){let V=n[Z-3]?.kind??null;if(V===null||["INDENT","OUTDENT","TERMINATOR","RENDER"].includes(V))G=!0}}let K=H||m.kind==="IDENTIFIER"&&(jt(m.value)||x)||G;if(n.push(m),K)n.push(s("CALL_START","(",m,{at:k.start})),n.push(s("->","->",m,{at:k.start,newLine:!0})),c.push(l+1);else n.push(s(",",",",m,{at:k.start})),n.push(s("->","->",m,{at:k.start,newLine:!0}));f.push(l+1);continue}}if(m.kind==="IDENTIFIER"&&Hi(m.value)&&(k?.kind==="OUTDENT"||k?.kind==="TERMINATOR")){n.push(m),n.push(s("CALL_START","(",m)),n.push(s("CALL_END",")",m));continue}n.push(m)}e.length=n.length;for(let y=0;y=e.length)return null;if(!F1.test(e[t]))return null;let r=t+1;while(r=0;a--){if(Y.on)Y.n++;if(s>=0&&(n<0||i[s].at>n))e[a]=i[s--].token;else e[a]=e[n--]}return e}var Z2=new Set(["IF","UNLESS","WHILE","UNTIL","WHEN","LEADING_WHEN","CATCH","FOR","LOOP","CLASS"]),Q2=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),el=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]);function tl(e,t){let r=0;for(let i=t-1;i>=0;i--){if(Y.on)Y.n++;let n=e[i].kind;if(el.has(n)||n==="OUTDENT"){r++;continue}if(Q2.has(n)||n==="INDENT"){if(r===0)return!1;r--;continue}if(r>0)continue;if(Z2.has(n))return!0;if(n==="TERMINATOR")return!1}return!1}function rl(e,t){let r=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START"]),i=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END"]),n=[],s=[],a=(S,g)=>{let p=0;for(let R=g-1;R>=S;R--){if(Y.on)Y.n++;let b=e[R].kind;if(i.has(b)||b==="OUTDENT"){p++;continue}if(r.has(b)||b==="INDENT"){if(b==="INDENT")return!1;if(p--,p<0)return!1;continue}if(p>0)continue;if(Bt(e,R))return!0}return!1},o=(S,g)=>{let p=0;for(let R=g-1;R>=S;R--){if(Y.on)Y.n++;let b=e[R].kind;if(i.has(b)||b==="OUTDENT"){p++;continue}if(r.has(b)||b==="INDENT"){if(p--,p<0)return!1;continue}if(p>0)continue;if(b===":"&&e[R-1]?.kind==="PROPERTY")return Ji(e,g+1);if(b==="TERMINATOR")return!1}return!1},l=new Set(["IF","UNLESS","TRY","CATCH","FINALLY","SWITCH","FOR","CLASS"]),c=(S)=>{let g=0,p=0,R=0;for(let b=S;b({id:t(),kind:S,value:S,start:g,end:g,spaced:!1,newLine:!1,generated:!0,origin:p}),h=(S)=>{let g=c(S),p=null;for(let y=S;y=S;y--){if(Y.on)Y.n++;if(!e[y].generated){R=e[y];break}}let b=null;for(let y=g;y{while(s.length&&s[s.length-1].end===S){let g=s.pop();n.push({at:S,token:f("OUTDENT",g.closeAt,g.afterId)}),u=S}};for(let S=0;S"||g.kind==="=>")&&e[S+1]&&e[S+1].kind!=="INDENT"){let p=h(S+1);n.push({at:S+1,token:f("INDENT",p.openAt,p.firstReal?p.firstReal.id:null)}),s.push(p)}else if(g.kind==="THEN"&&tl(e,S)){let p=h(S+1);g.kind="INDENT",g.value="INDENT",g.generated=!0,g.start=g.end=p.firstReal?p.firstReal.start:g.end,g.origin=p.firstReal?p.firstReal.id:null,s.push(p)}else if(g.kind==="ELSE"&&e[S+1]&&e[S+1].kind!=="INDENT"&&e[S+1].kind!=="IF"&&(u===S||e[S-1]?.kind==="OUTDENT")){let p=h(S+1);n.push({at:S+1,token:f("INDENT",p.openAt,p.firstReal?p.firstReal.id:null)}),s.push(p)}}return d(e.length),n}var Ft=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS","DAMMIT","?","PRESENCE"]),Yi=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_START","REGEX","HEREGEX_START","SYMBOL","MAP_START","PARAM_START","IF","TRY","SWITCH","CLASS","THIS","SUPER","UNDEFINED","NULL","BOOL","UNARY","NEW","DO","DO_IIFE","UNARY_MATH","AWAIT","YIELD","THROW","@","->","=>","[","(","{","--","++"]),zi=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","??","THEN","ELSE"]),qi=new Set(["IF","TRY","FINALLY","CATCH","SWITCH","FOR","CLASS"]),Xi=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END",")","CALL_END","]","INDEX_END","}","PICK_END","BOOL","NULL","UNDEFINED","THIS","@"]),se=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),ie=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),Bt=(e,t)=>{let r=e[t],i=e[t+1];if(!r||!i||!i.spaced||!Ft.has(r.kind))return!1;if((r.kind==="]"||r.kind==="}")&&(i.kind==="->"||i.kind==="=>"))return!1;if(r.kind==="IDENTIFIER"&&(r.value==="Infinity"||r.value==="NaN")&&(i.kind==="->"||i.kind==="=>"))return!1;if(Yi.has(i.kind))return!0;return i.kind==="..."&&e[t+2]!=null&&Yi.has(e[t+2].kind)},Ji=(e,t)=>{if(!e[t])return!1;let r=(i)=>(e[i]?.kind==="DAMMIT"||e[i]?.kind==="VOID_MARKER")&&e[i+1]?.kind===":";if(e[t].kind==="@"&&(e[t+2]?.kind===":"||r(t+2)))return!0;if(e[t+1]?.kind===":"||r(t+1))return!0;if(se.has(e[t].kind)){let i=1,n=t;while(++n0){if(Y.on)Y.n++;if(se.has(e[n].kind))i++;else if(ie.has(e[n].kind))i--}if(i===0&&e[n]?.kind===":")return!0}return!1},Zi=new Set(["->","=>","[","(",",","{","ELSE","="]),nn=new Set(["INDENT","OUTDENT","TERMINATOR"]),nl=new Set(["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL","DEF"]),Qi=(e,t)=>{let r=0;for(;t>=0;t--){if(Y.on)Y.n++;let i=e[t].kind;if(r===0&&nl.has(i))return!0;if(ie.has(i)){r++;continue}if(se.has(i)){if(r>0){r--;continue}if(!e[t].generated||nn.has(i))return!1;continue}if(r===0&&nn.has(i))return!1}return!1};function il(e,t){let r=[],i=[],n=[0],s=null,a=-1,o=()=>r[r.length-1],l=(p,R,b,_={})=>({id:t(),kind:p,value:p,start:R,end:R,spaced:_.spaced??!1,newLine:_.newLine??!1,generated:!0,origin:b}),c=(p)=>{r.pop(),i.push({at:p,token:l("}",s?s.end:0,s?s.id:null)})},f=(p)=>Ji(e,p),h=()=>{for(let p=r.length-1;p>=0;p--){if(Y.on)Y.n++;let R=r[p];if(R.kind==="object")return R;if(!(R.kind==="INDENT"&&R.listContinuation))return null}return null},u=(p,R)=>{if(e[R]?.kind!=="...")return!1;let b=r[r.indexOf(p)-1];if(!b||!(b.kind==="["||b.kind==="CALL_START"))return!0;return S(b.at,p.at)},d=(p)=>{let R=e[p-1];return Boolean(R&&Ft.has(R.kind)&&f(p+1)&&!Qi(e,p-1))},S=(p,R)=>{let b=0;for(let _=R-1;_>p;_--){if(Y.on)Y.n++;let y=e[_].kind;if(ie.has(y)){b++;continue}if(se.has(y)){if(y==="INDENT"&&b===0)return d(_);if(b--,b<0)return!1;continue}if(b>0)continue;if(y==="TERMINATOR")return!1;if(Bt(e,_))return!0}return!1},g=(p)=>{for(let R=0;p1)n.pop();if(b==="OUTDENT")for(let y=r.length-1;y>=0;y--){let m=r[y];if(m.kind!=="object"&&m.kind!=="CONTROL")break;if(m.kind==="object")m.sameLine=!1}continue}if(b==="TERNARY")n[n.length-1]++;if(b===":"){let y=n.length-1;if(n[y]>0){n[y]--;continue}if(_?.kind==="DAMMIT")_.kind="VOID_MARKER";let m=_?.kind==="VOID_MARKER"?1:0,k=ie.has(_?.kind)?o()?.at??p-1:p-1-m;if(e[p-2-m]?.kind==="@")k=p-2-m;let O=e[k-1],x=!Bt(e,k-1)&&(k<=0||nn.has(O?.kind)||Boolean(O?.newLine)),I=o(),H=r[r.length-2],G=(q)=>q&&(q.kind==="{"||q.kind==="PICK_START"||q.kind==="OPTPICK_START"||q.kind==="object"),K=(q)=>q==="{"||q==="PICK_START"||q==="OPTPICK_START",Z=I?.kind==="INDENT"&&I.listContinuation?h():null,V=Boolean(Z),j=Z?Z.at:I?.kind==="INDENT"&&H?H.at:I?.at;if(I&&(G(I)||I.kind==="INDENT"&&(K(H?.kind)||V))&&!(j!=null&&S(j,k))&&(x||O?.kind===","||K(O?.kind)||e[k]?.kind==="{"))continue;r.push({kind:"object",at:k,sameLine:!0,startsLine:x}),i.push({at:k,token:l("{",e[k].start,e[k].id,{spaced:e[k].spaced,newLine:e[k].newLine})});continue}if(zi.has(b)||(b==="."||b==="?.")&&R.newLine){if(b==="||"||b==="&&"||b==="??"||b==="ELSE")continue;if(b==="TERMINATOR"){n[n.length-1]=0;for(let y=r.length-1;y>=0;y--){let m=r[y];if(m.kind!=="object"&&m.kind!=="CONTROL")break;if(m.kind==="object")m.sameLine=!1}}while(o()?.kind==="object"||b==="TERMINATOR"&&o()?.kind==="CONTROL"&&o()?.trigger==="CLASS"){let y=o();if(y.kind==="CONTROL"){r.pop();continue}if(b==="TERMINATOR")if(_?.kind!==","&&!(y.startsLine&&(f(p+1)||u(y,p+1))))c(p);else break;else if(y.sameLine&&_?.kind!==":"&&!((b==="POST_IF"||b==="POST_UNLESS")&&y.startsLine&&g(p+1)))c(p);else break}continue}if(b===","){let y=h(),m=(k)=>f(k)||u(y,k);if(y&&!S(y.at,p)&&!m(p+1)&&(e[p+1]?.kind!=="TERMINATOR"||!m(p+2))){if(e[p+1]?.kind==="INDENT"&&m(p+2))a=p;else if(o()?.kind==="object"){let k=e[p+1]?.kind==="OUTDENT"?1:0;while(o()?.kind==="object")c(p+k)}}}}if(e.length&&!e[e.length-1].generated)s=e[e.length-1];while(o()?.kind==="object"||o()?.kind==="CONTROL")if(o().kind==="object")c(e.length);else r.pop();return i}function sl(e,t){let r=[],i=[],n=-1,s=(l,c,f)=>({id:t(),kind:l,value:l==="CALL_START"?"(":")",start:c,end:c,spaced:!1,newLine:!1,generated:!0,origin:f}),a=null,o=(l)=>{r.pop(),i.push({at:l,token:s("CALL_END",a?a.end:0,a?a.id:null)})};for(let l=0;l0&&!e[l-1].generated)a=e[l-1];if(r[r.length-1]==="call"&&qi.has(h)&&!(h==="FOR"&&!c.newLine&&e[l-1]&&Xi.has(e[l-1].kind))){r.push(h==="CLASS"?"CONTROL_CLASS":"CONTROL");continue}if(h==="INDENT"){if(l===n){r.push("INDENT");continue}let u=e[l-1];if(!u||!Zi.has(u.kind))while(r[r.length-1]==="call")o(l);if(r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")r.pop();r.push("INDENT");continue}if(se.has(h))r.push(h);else if(ie.has(h)){while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();r.pop()}if(zi.has(h)||(h==="."||h==="?.")&&c.newLine){if(h==="||"||h==="&&"||h==="??")continue;if(h==="ELSE"&&e[l-1]?.kind==="OUTDENT")continue;if(e[l-1]?.kind!==",")while(r[r.length-1]==="call"||h==="TERMINATOR"&&r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(l);else r.pop();continue}if(Bt(e,l)||Ft.has(h)&&f&&f.spaced&&(f.kind==="+"||f.kind==="-")&&e[l+2]&&!e[l+2].spaced&&!e[l+2].newLine)i.push({at:l+1,token:s("CALL_START",f.start,f.generated?f.origin:f.id)}),r.push("call");else if(Ft.has(h)&&f?.kind==="INDENT"&&e[l+2]?.kind==="{"&&e[l+2].generated&&!Qi(e,l))i.push({at:l+1,token:s("CALL_START",e[l+2].start,e[l+2].origin)}),r.push("call"),n=l+1}if(e.length&&!e[e.length-1].generated)a=e[e.length-1];while(r[r.length-1]==="call"||r[r.length-1]==="CONTROL"||r[r.length-1]==="CONTROL_CLASS")if(r[r.length-1]==="call")o(e.length);else r.pop();return i}var Ut=(e,t)=>sn(e,rl,t),Vt=(e,t)=>sn(e,il,t),Wt=(e,t)=>sn(e,sl,t);var is=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","HEREGEX_END","BOOL","NULL","UNDEFINED",")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END","THIS","@","SUPER","?","PRESENCE","DAMMIT","CAST","IMPORT_META"]),al=new Set(["IDENTIFIER","PROPERTY","(","CALL_START","PARAM_START","{","[","INDEX_START","STRING","NUMBER","BOOL","NULL","UNDEFINED","-","UNARY","NEW","RESERVED"]),ae=new Set(["(","CALL_START","PARAM_START","[","INDEX_START","{","PICK_START","OPTPICK_START"]),oe=new Set([")","CALL_END","PARAM_END","]","INDEX_END","}","PICK_END"]),ol=new Set(["TERMINATOR","INDENT","OUTDENT",",","=","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN","GATE","EFFECT","->"]),ll=new Set(["+","-","MATH","**","SHIFT","COMPARE","MATCH","&&","||","??","^","RELATION","TERNARY","?","PRESENCE",":","?.","DAMMIT","EXTENDS","..","...","IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW","CATCH","FINALLY"]),cl=new Set(["IF","UNLESS","ELSE","THEN","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW"]),fl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",".",",",":","?","TERNARY","...","|","&","=>","EXTENDS","(",")","PARAM_START","PARAM_END","[","]","INDEX_START","INDEX_END","{","}","INDENT","OUTDENT","TERMINATOR"]),hl=new Set(["IDENTIFIER","PROPERTY","RESERVED","NUMBER","STRING","TYPE_TEMPLATE","BOOL","NULL","UNDEFINED","THIS",")","PARAM_END","]","INDEX_END","}"]),ul=new Set(["TERMINATOR","INDENT","OUTDENT","{",","]),Kt=(e,t,r)=>{if(t-1{let s=0,a=[],o=(u=0)=>a[a.length-1-u],l=null,c=!1,f=[],h=(u,d)=>{s-=d;for(let S=0;S"){h(d,1),c=!0;continue}if(S==="SHIFT"&&d.value===">>"){h(d,2),c=!0;continue}if(S==="SHIFT"&&d.value===">>>"){h(d,3),c=!0;continue}if(S==="UNARY"&&d.value==="typeof"){c=!1;continue}if(d.word==="is"&&c&&u-2>=t&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY"||e[u-1].kind==="THIS")&&(e[u-2].kind==="=>"||e[u-2].value==="asserts"||e[u-2].kind===":"&&e[u-3]?.kind==="CALL_END")){c=!1;continue}if(S==="RELATION"&&d.value==="in"&&o()==="["&&o(1)==="{"&&u-2>=t&&(e[u-2].kind==="["||e[u-2].kind==="INDEX_START")&&(e[u-1].kind==="IDENTIFIER"||e[u-1].kind==="PROPERTY")&&Kt(e,u-2,t)){c=!1;continue}if(d.value==="?"&&c&&e[u+1]?.kind===":"){c=!1;continue}if(S==="-"&&e[u+1]?.kind==="NUMBER"&&!c){u++,c=!0;continue}if((S==="-"||S==="+")&&e[u+1]?.value==="readonly"&&(e[u+2]?.kind==="["||e[u+2]?.kind==="INDEX_START")&&o()==="{"&&Kt(e,u,t)){c=!1;continue}if((S==="-"||S==="+")&&e[u+1]?.value==="?"&&e[u+2]?.kind===":"&&o()==="{"&&(e[u-1]?.kind==="]"||e[u-1]?.kind==="INDEX_END")){c=!0;continue}if(S==="="&&s>0){c=!1;continue}if((o()==="{"||n.methods&&o()===void 0)&&S==="CALL_START"){let g=e[u-1],p=Kt(e,u-1,t);if(g&&(g.kind==="IDENTIFIER"||g.kind==="PROPERTY")&&p){let R=1,b=u+1;while(b0){if(e[b].kind==="CALL_START")R++;else if(e[b].kind==="CALL_END")R--;b++}if(R===0&&e[b]?.kind===":"){f.push(b-1),a.push("("),c=!1;continue}if(R===0)i(`an interface method shorthand needs a return type — \`${g.value}(…): T\``,g.start)}}if(S==="CALL_END"&&u===f[f.length-1]){f.pop(),a.pop(),c=!0;continue}if(fl.has(S)){if(es.has(S))a.push(es.get(S));else if(dl.has(S))a.pop();c=hl.has(S);continue}i(`code expression ('${d.word??d.value}') in a type body — types erase and cannot execute`,d.start)}if(s>0)i("unclosed '<' in a type body — the generic never closes",l.start)},ml=new Set(["=",":","COMPOUND_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","READONLY_ASSIGN",",","[","(","{","CALL_START","INDEX_START","PARAM_START","PICK_START","OPTPICK_START","RETURN","THROW","AWAIT","YIELD"]),Z1=(e,t)=>{let r=e[t];if(!r)return!0;if(r.kind==="TERMINATOR"||r.kind==="EXPORT")return!0;if(r.kind!=="INDENT"&&r.kind!=="OUTDENT")return!1;let i=0;for(let n=t;n>=0;n--){if(Y.on)Y.n++;let s=e[n].kind;if(s==="OUTDENT")i++;else if(s==="INDENT"){if(i===0){let a=e[n-1];return!(a&&ml.has(a.kind))}i--}}return!0},on=(e,t,r)=>{if(r<=t)return!1;let i=new Set(["|","&",",",":","?","TERNARY",".","..."]),n=0,s=0,a=0,o=0,l=!1,c=[],f=null;for(let h=t;h"){let S=h>t?e[h-1].kind:null;if((S===")"||S==="PARAM_END")&&f&&(f.colon||f.empty)){l=!1;continue}return!1}if(u==="("||u==="PARAM_START"){c.push({colon:!1,open:h}),n++,l=!1;continue}if(u===")"||u==="PARAM_END"){if(--n<0)return!1;let S=c.pop();f=S?{colon:S.colon,empty:h===S.open+1}:null,l=!0;continue}if(u==="["||u==="INDEX_START"){s++,l=!1;continue}if(u==="]"||u==="INDEX_END"){if(--s<0)return!1;l=!0;continue}if(u==="{"){a++,l=!1;continue}if(u==="}"){if(--a<0)return!1;l=!0;continue}if(u==="COMPARE"){if(d==="<"){o++,l=!1;continue}if(d===">"){if(o<=0)return!1;o--,l=!0;continue}return!1}if(u==="SHIFT"){if(d===">>"){if(o<2)return!1;o-=2,l=!0;continue}if(d===">>>"){if(o<3)return!1;o-=3,l=!0;continue}return!1}if(u==="="){if(o>0){l=!1;continue}return!1}if(i.has(u)){if(u===":"&&c.length)c[c.length-1].colon=!0;l=!1;continue}if(u==="IDENTIFIER"||u==="PROPERTY"||u==="NUMBER"||u==="RESERVED"||u==="STRING"||u==="NULL"||u==="UNDEFINED"||u==="BOOL"){if(l)return!1;l=!0;continue}return!1}return n===0&&s===0&&a===0&&o===0&&l},ts=(e,t,r,i)=>{let n=[],s=[],a=[],o=0,l=t,c=e[t-1]?.end??0,f=(u)=>i("unclosed '<' in a type — the generic argument list never closes"+(r.cast?"; if the '<' was meant as a comparison, parenthesize the cast: '(x as T) < y'":""),u.start),h=(u,d)=>{for(let S=0;Sl&&u.newLine)break;if(d==="SHIFT"&&(u.value===">>"||u.value===">>>")&&a.length>0){h(u,u.value===">>"?2:3),n.push(u.value),c=u.end,t++;continue}if(d==="COMPARE"&&u.value===">"){if(o===0)break;h(u,1),n.push(u.value),c=u.end,t++;continue}if(ae.has(d)||d==="COMPARE"&&u.value==="<"){o++;let g=d==="{"?"{":d==="["||d==="INDEX_START"?"[":d==="COMPARE"?"<":"(";if(s.push(g),g==="<")a.push(u);n.push(u.value),c=u.end,t++;continue}if(oe.has(d)){if(o===0)break;if(s[s.length-1]==="<")f(a[a.length-1]);o--,s.pop(),n.push(u.value),c=u.end,t++;continue}if(d==="INTERPOLATION_END"||d==="STRING_END"||d==="HEREGEX_END")break;if(o===0){if(ol.has(d))break;if(r.stopAtFatArrow&&d==="=>")break;if(r.cast&&ll.has(d))if(t===l&&(d==="-"||d==="+")&&e[t+1]?.kind==="NUMBER"){if(d==="+")i("a numeric literal type spells its sign with '-' (TypeScript has no '+1' type)",u.start,e[t+1].end)}else break;if(r.alias&&cl.has(d))break}else{if(d==="INDENT"||d==="OUTDENT"){t++;continue}if(d==="TERMINATOR"){n.push(";"),c=u.end,t++;continue}if(d==="PROPERTY"&&s[s.length-1]==="{"){let g=n[n.length-1];if(g&&g!=="{"&&g!==","&&g!==";")n.push(";")}}if(d==="?"&&!u.spaced&&e[t+1]?.kind===":"&&n.length){n[n.length-1]+="?",c=u.end,t++;continue}n.push(u.word==="is"?u.word:u.value),c=u.end,t++}if(a.length)f(a[0]);return{parts:n,consumed:t-l,end:c}},pl=(e)=>e.join(" ").replace(/\s+/g," ").trim().replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ : /g,": "),gl=(e,t,r)=>{let i=(l)=>l==="("||l==="PARAM_START"||l==="CALL_START",n=(l)=>l===")"||l==="PARAM_END"||l==="CALL_END";if(r-t<2||!i(e[t].kind))return!1;let s=0;for(let l=t;l{if(!(e[t]?.kind==="COMPARE"&&e[t].value==="<"&&!e[t].spaced))return t;let r=0;while(t")r--;else if(i.kind==="SHIFT"&&i.value===">>")r-=2;else if(i.kind==="SHIFT"&&i.value===">>>")r-=3;else if(i.kind==="TERMINATOR"||i.kind==="INDENT"||i.kind==="OUTDENT")return-1;if(t++,r===0)break}return r===0?t:-1},Yt=(e,t)=>{if(t<0||!e[t]||ln(e[t])>=0)return t;let r=0;while(t>=0){if(Y.on)Y.n++;let i=e[t];if(i.kind==="TERMINATOR"||i.kind==="INDENT"||i.kind==="OUTDENT")return-1;if(r+=ln(i),t--,r===0)break}return r===0?t:-1},zt=(e,t)=>{let r=Yt(e,t-1);if(r<0||e[r]?.kind!=="IDENTIFIER")return!1;let i=e[r-1];if(!(i?.kind==="IDENTIFIER"&&i.value==="type"))return!1;return Z1(e,r-2)},ln=(e)=>e.kind==="COMPARE"&&e.value==="<"?1:e.kind==="COMPARE"&&e.value===">"?-1:e.kind==="SHIFT"&&e.value===">>"?-2:e.kind==="SHIFT"&&e.value===">>>"?-3:0,J1=(e,t)=>{let r=e[t];if(!r||r.kind!=="IDENTIFIER"&&r.kind!=="PROPERTY")return!1;if(e[t-1]?.kind==="DEF")return!0;return r.kind==="PROPERTY"&&e[t-1]?.kind==="@"&&e[t-2]?.kind==="DEF"},bl=(e,t)=>{let r=e[t-1];if(!r)return!1;if(r.kind===")"||r.kind==="CALL_END"||r.kind==="PARAM_END")return!0;if(r.kind==="IDENTIFIER"||r.kind==="PROPERTY"){if(J1(e,t-1))return!0;let i=e[t-2]?.kind==="@"?t-3:t-2;if(Z1(e,i))return!0}if(r.kind==="VOID_MARKER"&&J1(e,t-2))return!0;return null},rs=(e)=>e.kind==="TERMINATOR"||e.kind==="INDENT"||e.kind==="OUTDENT",yl=(e,t)=>{if(t.upTo>e.length||t.upTo>0&&e[t.upTo-1]!==t.ref){t.answers.clear(),t.level=0;let r=e.length-1;while(r>=0&&!rs(e[r])){if(Y.on)Y.n++;r--}t.upTo=r+1}for(let r=t.upTo;r{let i=e[e.length-1];if(!i)return!1;if(!(i.kind==="COMPARE"&&i.value===">"||i.kind==="SHIFT"&&(i.value===">>"||i.value===">>>")))return!1;if(t)return!0;return yl(e,r),r.answers.get(r.level)??!1},Gt=(e,t)=>{let r=0,i=!1;for(let n=t+1;n")return-1;if(s==="=>")i=!0;else if(s==="="||s==="REACTIVE_ASSIGN"||s==="COMPUTED_ASSIGN"||s==="READONLY_ASSIGN"||s==="GATE"||s==="EFFECT"){if(!i||on(e,t+1,n))return n}}}return-1},Sl=(e)=>{let t=[new Map],r=Array(e.length),i=[{id:0,up:null}],n=0;for(let s=0;s"||l==="=>";i.push({id:o,up:c?null:i[i.length-1]})}else if(a==="OUTDENT"){if(i.length>1)i.pop()}else if(ae.has(a))n++;else if(oe.has(a))n--;else if(n===0&&(a==="IDENTIFIER"||a==="PROPERTY")&&e[s+1]?.kind==="=")for(let o=i[i.length-1];o;o=o.up){if(Y.on)Y.n++;t[o.id].set(e[s].value,s)}}return{blockMaps:t,blockIdAt:r}},Rl=(e,t)=>{let r=0;for(;t"||i==="=>")return!0;if(i==="TERMINATOR"||i==="INDENT"||i==="OUTDENT")return!1}}return!1},El=(e,t)=>{let r=0;for(let i=t+1;i{let i=0;for(let n=t;n{let r=0;for(let i=t;i","=>","DO","DO_IIFE","TRY","LOOP"]),_l=new Set(["IF","UNLESS","SWITCH","WHILE","UNTIL","FOR","CLASS"]),Nl=new Set(["->","=>","THEN","ELSE"]),Al=new Set(["TERMINATOR","INDENT","OUTDENT","THEN","ELSE","IF","UNLESS","POST_IF","POST_UNLESS","WHILE","UNTIL","LOOP","FOR","WHEN","BY","SWITCH","RETURN","THROW",",","=","COMPOUND_ASSIGN","&&","||","??","TERNARY","?",":","RELATION","+","-","MATH","**","SHIFT","&","|","^","STRING_START","STRING_END","INTERPOLATION_START","INTERPOLATION_END"]),vl=new Map([["yes","true"],["no","false"],["on","true"],["off","false"],["true","true"],["false","false"],["null","null"],["undefined","undefined"],["this","this"]]);function qt(e,t,r,i){let n=[],s=[],a=new WeakSet,o=()=>s[s.length-1]??null,l=!1,c=[],f=()=>c.length>0&&!!c[c.length-1],h=()=>c[c.length-1]??!1,u=(x)=>{let I=vl.get(x.value);if(I===void 0)return;i(`'${x.value}' cannot name a binding — every read of '${x.value}' lowers to \`${I}\`, so the binding would be unreachable`,x.start,x.end)},d=-1,S=0,g=!1,p=!1,R=null,b=(x,I)=>(R??=Sl(e),(R.blockMaps[R.blockIdAt[x]].get(I)??-1)>=x),_=null,y=(x)=>{let I=[],H=x,G=!0,K=-1;for(;;){if(Y.on)Y.n++;let q=El(e,H);if(q<0){if(Gt(e,H)>=0)break;I.push({colon:H,shaped:!1,assigned:!1}),G=!1,K=-1;break}if(Tl(e,H+1,q)){I.push({colon:H,shaped:!1,assigned:!1}),G=!1,K=-1;break}I.push({colon:H,shaped:q>H+1&&on(e,H+1,q),assigned:b(q+1,e[H-1].value)}),K=q;let t1=e[q+1];if(t1&&(t1.kind==="IDENTIFIER"||t1.kind==="PROPERTY")&&e[q+2]?.kind===":"){H=q+2;continue}break}let Z=K>=0?e[K+1]:null,V=G&&Z!=null&&Z.kind!=="OUTDENT",j=V&&I.every((q)=>q.shaped&&q.assigned);if(!j&&V&&I.some((q)=>q.shaped)&&I.some((q)=>q.assigned)){let q=I.find((N)=>!(N.shaped&&N.assigned)),t1=e[q.colon-1],M=q.shaped?`'${t1.value}' is never assigned in this block`:`the value after '${t1.value}:' is not a type`;i("these adjacent 'name:' lines are ambiguous — with every line a type and every "+`name assigned later they would all claim as typed forward declarations, but ${M}; for typed forwards, assign every name in this block or add an initializer ('${t1.value}: T = value'); for an implicit object, parenthesize the literal or assign it to a target`,t1.start)}_??=new Map;for(let q of I)_.set(q.colon,j);return j},m=(x,I,H,G,K)=>({id:t(),kind:x,value:I,start:H,end:G,spaced:K.spaced,newLine:K.newLine,generated:!1,origin:null}),k=(x,I,H,G)=>{if(e[H]?.kind===":")i("type annotations use a single ':' (e.g. `x: number`), not '::'",I.start,e[H].end);let K=ts(e,H,G,i);if(K.parts.length===0)return-1;for(let Z=H;Z R) => body`, not `(x): (a: T) => R => body`",e[H].start);return n.push(m(x,pl(K.parts),I.start,K.end,I)),H+K.consumed-1},O=(x)=>{let I=x+1;if(e[I]?.kind!=="IDENTIFIER")return-1;if(I++,I=Ht(e,I),I<0)return-1;if(e[I]?.kind!=="=")return-1;if(I++,e[I]?.kind==="INDENT"){let K=ns(e,I);return an(e,I+1,K,i,{methods:!0}),K}let H=ts(e,I,{alias:!0},i);if(H.parts.length===0)i("a type alias needs a type after '='",e[I-1].end);an(e,I,I+H.consumed,i);let G=e[I+H.consumed];if(G&&G.kind!=="TERMINATOR"&&G.kind!=="OUTDENT")i(`a type alias must fill its line — unexpected '${G.value}' after the type`,G.start);return I+H.consumed-1},A=(x)=>{let I=x+1;if(e[I]?.kind!=="IDENTIFIER")return-1;if(I++,I=Ht(e,I),I===-1)return-1;if(e[I]?.kind==="EXTENDS"){if(e[I+1]?.kind!=="IDENTIFIER")return-1;if(I+=2,I=Ht(e,I),I===-1)return-1}if(e[I]?.kind!=="INDENT")return-1;let H=ns(e,I);return an(e,I+1,H,i,{methods:!0}),H};for(let x=0;x=0){let Z=G?.kind==="EXPORT"?n.pop():I,V=e[K].end;n.push(m("TYPE_DECL",r.slice(Z.start,V).replace(/\r\n/g,` +`),Z.start,V,I)),x=K;continue}}if(H==="IDENTIFIER"&&I.value==="as"&&G&&G.kind!=="."&&G.kind!=="?."&&is.has(G.kind)&&e[x+1]&&(al.has(e[x+1].kind)||e[x+1].kind==="+"&&e[x+2]?.kind==="NUMBER")){let K=k("CAST",I,x+1,{cast:!0});if(K<0)i("'as' begins a cast and takes a type — `x as T`",I.start,I.end);if(K>=0){x=K;let Z=e[x+1],V=n[n.length-1];if(Z&&Z.newLine&&Z.kind!=="TERMINATOR"&&Z.kind!=="INDENT"&&Z.kind!=="OUTDENT"&&!(Z.kind==="IDENTIFIER"&&Z.value==="as")){let j=r.slice(V.end,Z.start),q=j.indexOf(` +`);if(q>=0){let t1=j[q-1]==="\r",M=V.end+q-(t1?1:0),N=t1?2:1;n.push({id:t(),kind:"TERMINATOR",value:r.slice(M,M+N),start:M,end:M+N,spaced:!1,newLine:!1,generated:!0,origin:null})}}continue}}if(H==="COMPARE"&&I.value==="<"&&!I.spaced&&G&&(G.kind==="IDENTIFIER"||J1(n,n.length-1))){let K=n[n.length-2]??null,Z=Ht(e,x);if(Z>x){let V=Z-1,j=e[V+1]?.kind,q=K?.kind==="DEF"||J1(n,n.length-1),t1=j==="="&&e[V+2]?.kind==="COMPONENT";if(q||t1){if(q&&j==="("){let M=0;for(let N=V+1;N=0){x=C;continue}}if(G.kind==="CALL_END"&&a.has(G)){let C=k("TYPE",I,x+1,{});if(C>=0){x=C;continue}}if(J1(n,n.length-1)){let C=k("TYPE",I,x+1,{});if(C>=0){if(G.kind==="PROPERTY"&&Z?.kind==="DEF")u(G),G.kind="IDENTIFIER";x=C;continue}}if(G.kind==="TYPE_PARAMS"&&J1(n,n.length-2)){let C=k("TYPE",I,x+1,{});if(C>=0){x=C;continue}}if(G.kind==="VOID_MARKER"&&J1(n,n.length-2)){let C=k("TYPE",I,x+1,{});if(C>=0){x=C;continue}}if(K&&(K.kind==="param"||K.kind==="defparam")&&!K.sawEq&&!K.sawType&&K.bodyDepth===0&&!K.inlineBody){let C=G.kind==="PROPERTY"||G.kind==="IDENTIFIER",w=G.kind==="}"||G.kind==="]",D=G.kind==="?"&&(Z?.kind==="PROPERTY"||Z?.kind==="IDENTIFIER");if(C||w||D){let B=k("TYPE",I,x+1,{});if(B>=0){if(D){if(G.kind="OPT_MARKER",Z.kind==="PROPERTY")Z.kind="IDENTIFIER"}else if(G.kind==="PROPERTY"&&e[x-2]?.kind!=="@")u(G),G.kind="IDENTIFIER";K.sawType=!0,x=B;continue}}}let V=G.kind==="OPT_MARKER"?1:0,j=V?n[n.length-2]??null:G,q=(n[n.length-2-V]??null)?.kind==="@",t1=n.length-(q?3:2)-V,M=j!==null&&(j.kind==="PROPERTY"||j.kind==="IDENTIFIER")&&Z1(n,t1),N=j!==null&&j.kind==="STRING"&&Z1(n,t1);if(s.length===0&&M&&!q)p=!0;if(s.length===0&&G.kind==="PROPERTY"&&n[n.length-2]?.kind==="."&&n[n.length-3]?.kind==="PROPERTY"&&n[n.length-3].value==="prototype"&&n[n.length-4]?.kind==="?."&&n[n.length-5]?.kind==="IDENTIFIER"&&Z1(n,n.length-6)&&Gt(e,x)>=0)i("an annotated prototype member requires the unconditional chain (`X::m: T = v`) — "+"the soak form cannot carry the annotation",I.start,I.end);if(s.length===0&&G.kind==="PROPERTY"&&n[n.length-2]?.kind==="."&&n[n.length-3]?.kind==="PROPERTY"&&n[n.length-3].value==="prototype"&&n[n.length-4]?.kind==="."&&n[n.length-5]?.kind==="IDENTIFIER"&&Z1(n,n.length-6)&&Gt(e,x)>=0){let C=k("TYPE",I,x+1,{});if(C>=0){x=C;continue}}if(s.length===0&&(M||N)&&Gt(e,x)>=0){let C=k("TYPE",I,x+1,{});if(C>=0){if(j.kind==="PROPERTY"&&!q){if(h()!=="class")u(j);j.kind="IDENTIFIER"}p=!1,x=C;continue}}if(s.length===0&&f()&&M&&!Rl(e,x+1)){let C=-1,w=0;for(let D=x+1;Dx+1&&on(e,x+1,C)){let D=k("TYPE",I,x+1,{});if(D>=0){if(j.kind==="PROPERTY"&&!q){if(h()==="component")u(j);j.kind="IDENTIFIER"}x=D;continue}}}if(s.length===0&&!f()&&M&&!q&&!V){let C=_?.get(x);if(C!==void 0?C:!g&&y(x)){let D=k("TYPE",I,x+1,{});if(D>=0){if(G.kind==="PROPERTY")u(G),G.kind="IDENTIFIER";p=!1,x=D;continue}}}}if(ae.has(H))S++;else if(oe.has(H)){if(S--,d>=0&&S=0&&S===d){if(H==="COMPARE"&&I.value==="<")i("class generics are not supported — the class head's '<' parses as a comparison "+"and the statement miscompiles silently (`class Box` compiles to "+"`(class Box {} < T) && …`); remove the generic list",I.start);if(Al.has(H))d=-1}if(H==="CLASS"||H==="COMPONENT")l=H==="CLASS"?"class":"component";else if(H==="THEN")l=!1;else if(H==="INDENT")c.push(l),l=!1;else if(H==="OUTDENT")c.pop();else if(H==="TERMINATOR")l=!1;if(s.length===0){if(H==="TERMINATOR")g=p,p=!1;else if(H==="INDENT"||H==="OUTDENT")g=!1,p=!1}if(ae.has(H)){let K="other";if(H==="PARAM_START")K="param";else if(H==="CALL_START"&&J1(n,n.length-1))K="defparam";else if(H==="CALL_START"&&G?.kind==="TYPE_PARAMS"&&J1(n,n.length-2))K="defparam";else if(H==="CALL_START"&&G?.kind==="VOID_MARKER"&&J1(n,n.length-2))K="defparam";s.push({kind:K,sawEq:!1,sawType:!1,bodyDepth:0,pendingImmediate:!1,pendingCond:!1,inlineBody:!1})}else if(oe.has(H)){if(s.pop()?.kind==="defparam"&&H==="CALL_END")a.add(I)}else{let K=o();if(K&&(K.kind==="param"||K.kind==="defparam")){let Z=()=>{K.sawEq=!1,K.sawType=!1,K.pendingImmediate=!1,K.pendingCond=!1,K.inlineBody=!1};if(K.bodyDepth>0){if(H==="INDENT")K.bodyDepth++;else if(H==="OUTDENT")K.bodyDepth--}else if(H==="INDENT")if(K.pendingImmediate||K.pendingCond)K.bodyDepth=1,K.pendingImmediate=!1,K.pendingCond=!1,K.inlineBody=!1;else Z();else if(H===","||H==="OUTDENT")Z();else if(H==="TERMINATOR")if(K.inlineBody&&I.value===";")K.pendingImmediate=!1,K.pendingCond=!1;else Z();else{if(K.pendingImmediate=wl.has(H),_l.has(H)&&G?.kind==="=")K.pendingCond=!0;else if(H==="THEN")K.pendingCond=!1;if(Nl.has(H))K.inlineBody=!0;if(H==="=")K.sawEq=!0}}}n.push(I)}e.length=n.length;for(let x=0;x"&&r!=="=>")continue;let i=t-1,n=e[i];if(!n)continue;if(n.kind==="DO"){n.kind="DO_IIFE";continue}if(n.kind!==")"){let a=0,o=-1;for(let l=t-1;l>=0;l--){if(Y.on)Y.n++;let c=e[l],f=c.kind;if(f===")"||f==="]"||f==="}"||f==="PICK_END"||f==="CALL_END"||f==="PARAM_END"||f==="INDEX_END"||f==="COMPARE"&&c.value===">")a++;else if(f==="("||f==="["||f==="{"||f==="PICK_START"||f==="OPTPICK_START"||f==="CALL_START"||f==="PARAM_START"||f==="INDEX_START"||f==="COMPARE"&&c.value==="<")a--;else if(f==="SHIFT"&&c.value===">>")a+=2;else if(f==="SHIFT"&&c.value===">>>")a+=3;else if(a===0){if(f===":"){if(e[l-1]?.kind===")")o=l-1;break}if(f==="TERMINATOR"||f==="INDENT"||f==="OUTDENT"||f==="="||f==="->"||f==="=>")break}}if(o<0)continue;i=o,n=e[i]}else{let a=0,o=-1;for(let l=t-1;l>=0;l--){if(Y.on)Y.n++;let c=e[l].kind;if(c===")"||c==="CALL_END"||c==="PARAM_END")a++;else if(c==="("||c==="CALL_START"||c==="PARAM_START"){if(--a===0){o=l;break}}}if(o>1&&e[o-1].kind===":"&&e[o-2]?.kind===")")i=o-2,n=e[i]}let s=0;for(let a=i-1;a>=0;a--){if(Y.on)Y.n++;let o=e[a];if(o.kind===")"||o.kind==="CALL_END"||o.kind==="INDEX_END"||o.kind==="]")s++;else if(o.kind==="("||o.kind==="CALL_START"||o.kind==="INDEX_START"||o.kind==="["){if(s>0){s--;continue}if(o.kind==="("){if(o.kind="PARAM_START",n.kind="PARAM_END",e[a-1]?.kind==="DO")e[a-1].kind="DO_IIFE"}break}}}return e}function Il(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),i=[0];for(let n=0;n0)i[a]--}else if(s==="INDEX_START"&&i[i.length-1]===0){let a=1,o=n;while(++o0){if(Y.on)Y.n++;if(t.has(e[o].kind))a++;else if(r.has(e[o].kind))a--}if(a===0&&e[o]?.kind===":")e[n].kind="[",e[o-1].kind="]"}if(t.has(e[n].kind))i.push(0);else if(r.has(e[n].kind))i.pop()}return e}var $l=new Set(["STRING","STRING_END","REGEX","HEREGEX_END","NUMBER","BOOL","NULL","UNDEFINED","]","}","SYMBOL"]);function Dl(e){let t=0;for(let r=0;r0&&(i==="->"||i==="=>")&&r>0&&($l.has(e[r-1].kind)||e[r-1].kind==="IDENTIFIER"&&(e[r-1].value==="Infinity"||e[r-1].value==="NaN")))e.splice(r,0,{kind:",",value:",",start:e[r].start,end:e[r].start}),r++}return e}function xl(e){let t=new Set(["(","[","{","PICK_START","OPTPICK_START","CALL_START","INDEX_START","PARAM_START","STRING_START","INTERPOLATION_START","HEREGEX_START","INDENT"]),r=new Set([")","]","}","PICK_END","CALL_END","INDEX_END","PARAM_END","STRING_END","INTERPOLATION_END","HEREGEX_END","OUTDENT"]),i=(s)=>s!==void 0&&(s.kind==="IDENTIFIER"||s.kind==="PROPERTY"),n=[0];for(let s=0;s0)n[o]--}else if(i(e[s])&&n[n.length-1]===0&&e[s-1]?.kind!=="."&&e[s-1]?.kind!=="?."&&e[s-1]?.kind!=="@"){let o=s;for(;;){if(Y.on)Y.n++;let l=e[o+1],c=e[o+2];if(l===void 0||!i(c))break;if(l.kind==="."){o+=2;continue}if(l.kind==="-"&&l.start===e[o].end&&c.start===l.end){o+=2;continue}break}if(o>s&&e[o+1]?.kind===":"){let l="";for(let f=s;f<=o;f++)l+=e[f].value;let c={...e[s],kind:"STRING",value:JSON.stringify(l),end:e[o].end};e.splice(s,o-s+1,c)}}if(t.has(e[s].kind))n.push(0);else if(r.has(e[s].kind))n.pop()}return e}function Cl(e){for(let t=0;t>>=":"COMPOUND_ASSIGN"},cs={"**=":"COMPOUND_ASSIGN","&&=":"COMPOUND_ASSIGN","||=":"COMPOUND_ASSIGN","??=":"COMPOUND_ASSIGN","<<=":"COMPOUND_ASSIGN",">>=":"COMPOUND_ASSIGN","//=":"COMPOUND_ASSIGN","%%=":"COMPOUND_ASSIGN",">>>":"SHIFT","...":"...","<=>":"BIND"},fs={"==":"COMPARE","!=":"COMPARE","<=":"COMPARE",">=":"COMPARE","**":"**","&&":"&&","||":"||","??":"??","..":"..","+=":"COMPOUND_ASSIGN","-=":"COMPOUND_ASSIGN","*=":"COMPOUND_ASSIGN","/=":"COMPOUND_ASSIGN","%=":"COMPOUND_ASSIGN","&=":"COMPOUND_ASSIGN","^=":"COMPOUND_ASSIGN","|=":"COMPOUND_ASSIGN",":=":"REACTIVE_ASSIGN","~=":"COMPUTED_ASSIGN","<~":"GATE","=!":"READONLY_ASSIGN","<<":"SHIFT",">>":"SHIFT","//":"MATH","%%":"MATH","~>":"EFFECT","!>":"!>","=~":"MATCH","->":"->","=>":"=>","++":"++","--":"--","?.":"?.",".=":"METHOD_ASSIGN","*{":"MAP_START"},Ml=new Set([".","?.","UNARY","NEW","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","??","TERNARY","EXTENDS"]),Xt=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","NUMBER","STRING","]","INDEX_END","SUPER","DAMMIT","PRESENCE","DYNAMIC_IMPORT"]),tt=new Set([...Xt,"BOOL","NULL","UNDEFINED","}","PICK_END","STRING_END","REGEX","HEREGEX_END","THIS","@"]);function jl(e,t){let r=t;while(r=e.length||Fl.test(e[r+1])))r++;return r}var Fl=/[\s,)\]};:]/,fn=/[0-9]/,Bl=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,Ul=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,Vl=/^\w*/,hs=/^(?!.*(.).*\1)[gimsuy]*$/,Wl=new Set([...tt,"++","--"]);function Hl(e,t="",{tolerant:r=!1}={}){di();let i=new me(e,t),n=[],s=[],a=[],o=[""],l=[],c=0,f=0,h=!0,u=-1,d=!1,S=!1,g=null,p=!1,R=!1,b=!1,_=0,y=0,m=[],k=(v,P,W=P)=>{let{line:s1,col:L}=i.lineColAt(P),U=Error(`${t}:${s1+1}:${L+1}: ${v}`);throw U.reason=v,U.start=P,U.end=W,U},O=(v,P,W=P)=>{try{k(v,P,W)}catch(s1){throw s1.openAtEnd=!0,s1}},A=(v,P,W,s1,L={})=>{if((v==="STRING"||v==="STRING_START")&&(p||R)){let e1=n[n.length-1];if(e1?.kind==="IDENTIFIER"&&e1.value==="from")e1.kind="FROM"}if(v==="IDENTIFIER"&&P==="from"&&n[n.length-1]?.kind==="YIELD")v="FROM";if(v==="RELATION"){let e1=n[n.length-1];if(e1?.kind==="UNARY"&&e1.value==="!")n.pop(),P="!"+P,W=e1.start}let U={id:y++,kind:v,value:P,start:W,end:s1,spaced:d,newLine:S,generated:!1,origin:null,...L};if(n.push(U),!U.generated&&m.length>0){for(let e1 of m)e1.origin=U.id;m.length=0}d=!1,S=!1},x=(v,P)=>{let W={id:y++,kind:v,value:v,start:P,end:P,spaced:!1,newLine:!1,generated:!0,origin:null};m.push(W),n.push(W)},I=()=>n[n.length-1]??null,H=()=>{let v=n.length-1;while(v>=2&&n[v].kind==="."&&n[v-1].kind==="PROPERTY"&&n[v-2].kind===".")v-=2;let P=n[v-1];if(!P||P.kind==="INDENT"||P.kind==="TERMINATOR"||P.kind==="OUTDENT"||P.kind==="RENDER")return!0;return P.kind==="IDENTIFIER"&&Ae.has(String(P.value).split("#")[0])},G=()=>{let v=0,P=0;for(let W=n.length-1;W>=0;W--){let s1=n[W].kind;if(s1==="OUTDENT")v++;else if(s1==="INDENT"){if(v--,v=0;L--){let U=n[L].kind;if(U==="TERMINATOR"||U==="INDENT"||U==="OUTDENT")break;if(U==="COMPONENT")return!0}}}}return!1},K=()=>{if(!l[l.length-1]?.pickKeys)return!1;let P=I()?.kind;return P==="PICK_START"||P==="OPTPICK_START"||P===","||P===":"||P==="TERMINATOR"||P==="INDENT"||P==="OUTDENT"},Z=(v,P)=>{let W=c;while(c=e.length)O("unterminated string",P);let s1=e.slice(W,c);return c+=v.length,s1},V=(v)=>v.replace(/\\[\s\S]|`|\$\{/g,(P)=>P[0]==="\\"?P:`\\${P}`),j=(v)=>{let P=null,W=/\n+([^\S\n]*)(?=\S)/g,s1;while(s1=W.exec(v))if(P===null||s1[1].length>0&&s1[1].length{if(P===null)return v??"";if(v===null)return P;return P.length<=v.length?P:v},t1=(v,P)=>{if(P.length===1)return v;if(v=v.replace(/\r\n?/g,` `),!v.includes(` -`))return v;let H=v.slice(v.lastIndexOf(` -`)+1),s1=/^[^\S\n]*$/.test(H)?H:null,L=q(j(v),s1),U=L?v.split(` +`))return v;let W=v.slice(v.lastIndexOf(` +`)+1),s1=/^[^\S\n]*$/.test(W)?W:null,L=q(j(v),s1),U=L?v.split(` ${L}`).join(` -`):v;return U=U.replace(/^\n/,""),U.replace(/\n[^\S\n]*$/,"")},M=(v)=>{let P=c,H=-1;while(c=e.length)I("unterminated string",v.opener);let s1=e.slice(P,H===-1?c:H);if(H===-1&&!v.started){let L=c+v.delim.length,U=t1(s1,v.delim),e1=v.delim.length===3?`\`${W(U)}\``:`"${U}"`;A("STRING",e1,v.opener,L),c=L;return}if(!v.started)v.started=!0,A("STRING_START","(",v.opener,v.opener+v.delim.length);if(H===-1){v.chunkIdx.push(n.length),A("STRING",`"${s1}"`,P,c);let L=c+v.delim.length;if(A("STRING_END",")",c,L),c=L,v.delim.length===3)N(v);return}v.chunkIdx.push(n.length),A("STRING",`"${s1}"`,P,H),A("INTERPOLATION_START","(",H,H+2),B("interp",H,{ctx:v}),c=H+2},N=(v)=>{let P=n[n.length-1],H=P.start-1,s1=H<0?-1:Math.max(e.lastIndexOf(` -`,H),e.lastIndexOf("\r",H)),L=e.slice(s1+1,P.start),U=/^[^\S\n]*$/.test(L)?L:null,e1=v.chunkIdx.map((b1)=>n[b1].value.slice(1,-1).replace(/\r\n?/g,` -`)),d1=q(j(e1.join("")),U);v.chunkIdx.forEach((b1,m1)=>{let R1=e1[m1];if(d1)R1=R1.split(` -${d1}`).join(` -`);if(m1===0)R1=R1.replace(/^\n/,"");if(m1===v.chunkIdx.length-1)R1=R1.replace(/\n[^\S\n]*$/,"");n[b1].value=`"${R1}"`})},C=(v)=>{let P=c,H="",s1=-1;while(c=e.length)break;H+=e.slice(c,c+2),c+=2;continue}if(L==="#"&&e[c+1]==="{"){s1=c;break}if(v.inClass){if(L===` -`||L==="\r")k("newline inside a heregex character class (a regex literal cannot contain one)",c);if(L==="]")v.inClass=!1;H+=L,c++;continue}if(L==="["){v.inClass=!0,H+=L,c++;continue}if(/\s/.test(L)){while(c{let{out:P,chunkStart:H,interpAt:s1}=C(v);if(s1>=0){if(!v.started)v.started=!0,A("HEREGEX_START","///",v.opener,v.opener+3);A("STRING",`"${P}"`,H,s1),A("INTERPOLATION_START","(",s1,s1+2),B("interp",s1,{ctx:v,heregex:!0}),c=s1+2;return}if(!e.startsWith("///",c))I("missing /// (unclosed heregex)",v.opener);let L=c;c+=3;let U=/^\w*/.exec(e.slice(c))[0];if(!hs.test(U))k(`invalid regular expression flags ${U}`,c);let e1=c+U.length;if(!v.started)A("REGEX",`/${P===""?"(?:)":P}/${U}`,v.opener,e1);else A("STRING",`"${P}"`,H,L),A("HEREGEX_END",U,L,e1);c=e1},D=()=>{for(let v=n.length-1;v>=0;v--)if(!n[v].generated)return n[v].end;return 0},B=(v,P,H={})=>{l.push({kind:v,at:P,depth:o.length,...H})},a1=null,h1={upTo:0,ref:null,level:0,answers:new Map},f1=()=>a1!==null&&o.length>=a1,z=()=>{for(let v=n.length-1;v>=0;v--){let P=n[v].kind;if(P==="TERMINATOR"||P==="INDENT"||P==="OUTDENT")return!1;if(P==="=")return zt(n,v)}return!1},i1=()=>{if(a1!==null&&o.length{let v=n.length;if(n[v-1]?.kind==="=")return zt(n,v-1);let P=(s1)=>n[s1]?.kind==="RESERVED"&&n[s1].value==="interface",H=Yt(n,v-1);if(H<0||n[H]?.kind!=="IDENTIFIER")return!1;if(P(H-1))return Z1(n,H-2);if(n[H-1]?.kind==="EXTENDS"){let s1=Yt(n,H-2);if(s1>=0&&n[s1]?.kind==="IDENTIFIER"&&P(s1-1))return Z1(n,s1-2)}return!1},r1=(v)=>e[v]===` -`||e[v]==="\r",Q=(v)=>{let P=v+1;while(P{let P=v,H=1;while(P{let P=e[v],H=v+1;while(H{let v=l.pop();if(!v)return null;while(n.length&&n[n.length-1].kind==="TERMINATOR")n.pop();let P=D();while(o.length>v.depth)o.pop(),x("OUTDENT",P);return i1(),v},J=(v,P,H="")=>{let s1=D(),L=l.length>0?l[l.length-1].depth:1;while(o.length>1&&o[o.length-1].length>v.length){if(o.length<=L)k(`dedent to ${JSON.stringify(v)} crosses the enclosing bracket's indentation floor ${JSON.stringify(o[o.length-1])}`,P);o.pop(),x("OUTDENT",s1)}if(i1(),o[o.length-1]!==v)k(`inconsistent indentation: ${JSON.stringify(v)} neither extends the enclosing block's ${JSON.stringify(o[o.length-1])} nor matches any open block${H}`,P)};while(c=e.length)break;let e1=e[c]===` +`):v;return U=U.replace(/^\n/,""),U.replace(/\n[^\S\n]*$/,"")},M=(v)=>{let P=c,W=-1;while(c=e.length)O("unterminated string",v.opener);let s1=e.slice(P,W===-1?c:W);if(W===-1&&!v.started){let L=c+v.delim.length,U=t1(s1,v.delim),e1=v.delim.length===3?`\`${V(U)}\``:`"${U}"`;A("STRING",e1,v.opener,L),c=L;return}if(!v.started)v.started=!0,A("STRING_START","(",v.opener,v.opener+v.delim.length);if(W===-1){v.chunkIdx.push(n.length),A("STRING",`"${s1}"`,P,c);let L=c+v.delim.length;if(A("STRING_END",")",c,L),c=L,v.delim.length===3)N(v);return}v.chunkIdx.push(n.length),A("STRING",`"${s1}"`,P,W),A("INTERPOLATION_START","(",W,W+2),B("interp",W,{ctx:v}),c=W+2},N=(v)=>{let P=n[n.length-1],W=P.start-1,s1=W<0?-1:Math.max(e.lastIndexOf(` +`,W),e.lastIndexOf("\r",W)),L=e.slice(s1+1,P.start),U=/^[^\S\n]*$/.test(L)?L:null,e1=v.chunkIdx.map((b1)=>n[b1].value.slice(1,-1).replace(/\r\n?/g,` +`)),m1=q(j(e1.join("")),U);v.chunkIdx.forEach((b1,d1)=>{let R1=e1[d1];if(m1)R1=R1.split(` +${m1}`).join(` +`);if(d1===0)R1=R1.replace(/^\n/,"");if(d1===v.chunkIdx.length-1)R1=R1.replace(/\n[^\S\n]*$/,"");n[b1].value=`"${R1}"`})},C=(v)=>{let P=c,W="",s1=-1;while(c=e.length)break;W+=e.slice(c,c+2),c+=2;continue}if(L==="#"&&e[c+1]==="{"){s1=c;break}if(v.inClass){if(L===` +`||L==="\r")k("newline inside a heregex character class (a regex literal cannot contain one)",c);if(L==="]")v.inClass=!1;W+=L,c++;continue}if(L==="["){v.inClass=!0,W+=L,c++;continue}if(/\s/.test(L)){while(c{let{out:P,chunkStart:W,interpAt:s1}=C(v);if(s1>=0){if(!v.started)v.started=!0,A("HEREGEX_START","///",v.opener,v.opener+3);A("STRING",`"${P}"`,W,s1),A("INTERPOLATION_START","(",s1,s1+2),B("interp",s1,{ctx:v,heregex:!0}),c=s1+2;return}if(!e.startsWith("///",c))O("missing /// (unclosed heregex)",v.opener);let L=c;c+=3;let U=/^\w*/.exec(e.slice(c))[0];if(!hs.test(U))k(`invalid regular expression flags ${U}`,c);let e1=c+U.length;if(!v.started)A("REGEX",`/${P===""?"(?:)":P}/${U}`,v.opener,e1);else A("STRING",`"${P}"`,W,L),A("HEREGEX_END",U,L,e1);c=e1},D=()=>{for(let v=n.length-1;v>=0;v--)if(!n[v].generated)return n[v].end;return 0},B=(v,P,W={})=>{l.push({kind:v,at:P,depth:o.length,...W})},a1=null,h1={upTo:0,ref:null,level:0,answers:new Map},f1=()=>a1!==null&&o.length>=a1,z=()=>{for(let v=n.length-1;v>=0;v--){let P=n[v].kind;if(P==="TERMINATOR"||P==="INDENT"||P==="OUTDENT")return!1;if(P==="=")return zt(n,v)}return!1},i1=()=>{if(a1!==null&&o.length{let v=n.length;if(n[v-1]?.kind==="=")return zt(n,v-1);let P=(s1)=>n[s1]?.kind==="RESERVED"&&n[s1].value==="interface",W=Yt(n,v-1);if(W<0||n[W]?.kind!=="IDENTIFIER")return!1;if(P(W-1))return Z1(n,W-2);if(n[W-1]?.kind==="EXTENDS"){let s1=Yt(n,W-2);if(s1>=0&&n[s1]?.kind==="IDENTIFIER"&&P(s1-1))return Z1(n,s1-2)}return!1},r1=(v)=>e[v]===` +`||e[v]==="\r",Q=(v)=>{let P=v+1;while(P{let P=v,W=1;while(P{let P=e[v],W=v+1;while(W{let v=l.pop();if(!v)return null;while(n.length&&n[n.length-1].kind==="TERMINATOR")n.pop();let P=D();while(o.length>v.depth)o.pop(),x("OUTDENT",P);return i1(),v},J=(v,P,W="")=>{let s1=D(),L=l.length>0?l[l.length-1].depth:1;while(o.length>1&&o[o.length-1].length>v.length){if(o.length<=L)k(`dedent to ${JSON.stringify(v)} crosses the enclosing bracket's indentation floor ${JSON.stringify(o[o.length-1])}`,P);o.pop(),x("OUTDENT",s1)}if(i1(),o[o.length-1]!==v)k(`inconsistent indentation: ${JSON.stringify(v)} neither extends the enclosing block's ${JSON.stringify(o[o.length-1])} nor matches any open block${W}`,P)};while(c=e.length)break;let e1=e[c]===` `?1:e[c]==="\r"&&e[c+1]===` -`?2:0;if(e1){s.push({kind:"blank",start:L,end:c+e1,text:e.slice(L,c+e1)}),c+=e1;continue}let d1=b&&/^#[A-Za-z_]/.test(e.slice(c,c+2))&&U.length>(o[_-1]??"").length;if(e[c]==="#"&&!d1){let p1=c;if(e.startsWith("###",c)&&e[c+3]!=="#"){let y1=e.indexOf("###",c+3);if(y1<0)I("unclosed `###` block comment — close it with `###`",c,c+3);p1=y1+3;let S1=p1;while(e[S1]===" "||e[S1]==="\t")S1++;if(S1(o[_-1]??"").length;if(e[c]==="#"&&!m1){let p1=c;if(e.startsWith("###",c)&&e[c+3]!=="#"){let y1=e.indexOf("###",c+3);if(y1<0)O("unclosed `###` block comment — close it with `###`",c,c+3);p1=y1+3;let S1=p1;while(e[S1]===" "||e[S1]==="\t")S1++;if(S1{if(m1==null||m1.kind!=="."&&m1.kind!=="?.")return!1;if(l.length>0)return!1;if(b)return!1;if(U.length>b1.length)return!1;if(!F1.test(e[c]??""))return!1;let p1=c;while(p1=0&&e[k1+1]!=="."&&!fn.test(e[k1+1]??"")&&!b;if(A1&&!E1&&U.lengthe.startsWith(x1,c)&&!K1.test(e[c+x1.length]??""));if(n.length>0&&u>=0&&!p1&&O()?.kind!=="TERMINATOR"){let x1=e[u]==="\r"?2:1;A("TERMINATOR",e.slice(u,u+x1),u,u+x1,{generated:!0})}}if(b&&o.length<=_)b=!1;if(h=!1,S=!0,g!==null&&l.length<=g)g=null;if(l.length===0)d=!1,R=!1;continue}let v=e[c];if(v===" "||v==="\t"){m=!0,c++;continue}if(v==="\r"&&e[c+1]!==` +`))p1++;let x1=p1{if(d1==null||d1.kind!=="."&&d1.kind!=="?.")return!1;if(l.length>0)return!1;if(b)return!1;if(U.length>b1.length)return!1;if(!F1.test(e[c]??""))return!1;let p1=c;while(p1=0&&e[k1+1]!=="."&&!fn.test(e[k1+1]??"")&&!b;if(A1&&!E1&&U.lengthe.startsWith(x1,c)&&!K1.test(e[c+x1.length]??""));if(n.length>0&&u>=0&&!p1&&I()?.kind!=="TERMINATOR"){let x1=e[u]==="\r"?2:1;A("TERMINATOR",e.slice(u,u+x1),u,u+x1,{generated:!0})}}if(b&&o.length<=_)b=!1;if(h=!1,S=!0,g!==null&&l.length<=g)g=null;if(l.length===0)p=!1,R=!1;continue}let v=e[c];if(v===" "||v==="\t"){d=!0,c++;continue}if(v==="\r"&&e[c+1]!==` `)k("bare carriage return (not followed by a newline) is not supported",c);if(v===` -`||v==="\r"){u=c,h=!0,c+=v==="\r"?2:1;continue}if(v==="#"){if(b&&/[A-Za-z_]/.test(e[c+1]??"")){let U=/^#([A-Za-z_][\w-]*)/.exec(e.slice(c)),e1=O();if(e1&&(e1.kind==="IDENTIFIER"||e1.kind==="PROPERTY")&&!m&&!e1.generated){e1.value+=U[0],e1.end=c+U[0].length,c+=U[0].length;continue}if(e1&&(e1.kind==="TERMINATOR"||e1.kind==="INDENT"||e1.kind==="OUTDENT"||e1.kind==="RENDER")){A("IDENTIFIER",`div${U[0]}`,c,c+U[0].length),c+=U[0].length;continue}}let L=c;while(L{let A1=c;while(e[A1]===" "||e[A1]==="\t")A1++;let k1=e[A1]??"";if(k1==="{"||k1==="*")return!0;if(!F1.test(k1))return!1;let w1=A1+1;while(w1"}[L]??L,d1=e1!==L,b1=1,m1=c+3;while(m10){let w1=e[m1];if(w1==="\\"){m1+=2;continue}if(d1&&w1===L)b1++;if(w1===e1)b1--;if(b1>0)m1++}if(b1!==0)I(`unclosed %w${L} — never closed by '${e1}'`,c,c+3);A("[","[",c,c+3);let R1=/(?:\\\s|\S)+/g;R1.lastIndex=c+3;let E1,A1=!0,k1=c+3;while((E1=R1.exec(e))!==null&&E1.index=m1)break;R1.lastIndex=w1}A("]","]",m1,m1+1),c=m1+1;continue}}let P=e.slice(c,c+4);if(ls[P]){A(ls[P],P,c,c+4),c+=4;continue}let H=e.slice(c,c+3);if(H==="==="||H==="!=="){A("COMPARE",H.slice(0,2),c,c+3),c+=3;continue}if(cs[H]){A(cs[H],H,c,c+3),c+=3;continue}let s1=e.slice(c,c+2);if(s1==="?="&&e[c+2]!=="="){A("COMPOUND_ASSIGN","??=",c,c+2),c+=2;continue}if(s1==="*{"){A("MAP_START","*",c,c+1),c+=1;continue}if(fs[s1]){if(s1==="!="&&!m&&(O()?.kind==="IDENTIFIER"||O()?.kind==="PROPERTY"))k(`cannot use the '!' sigil in an assignment to '${O().value}' (write 'a != b' with a space for comparison)`,c);A(fs[s1],s1,c,c+2),c+=2;continue}if(v==="<"||v===">"){A("COMPARE",v,c,c+1),c++;continue}if(v==="*"||v==="/"||v==="%"){if(v==="*"&&d&&(O()?.kind==="IMPORT"||O()?.kind==="IMPORT_TYPE"||O()?.kind===","))A("IMPORT_ALL",v,c,c+1);else if(v==="*"&&O()?.kind==="EXPORT")A("EXPORT_ALL",v,c,c+1);else A("MATH",v,c,c+1);c++;continue}if(v==="!"||v==="~"){if(v==="!"&&!m&&(O()?.kind==="IDENTIFIER"||O()?.kind==="PROPERTY"||O()?.kind==="DYNAMIC_IMPORT")){A("DAMMIT","!",c,c+1),c++;continue}A("UNARY_MATH",v,c,c+1),c++;continue}if(v==="&"||v==="|"||v==="^"){A(v,v,c,c+1),c++;continue}if(v==="?"){if(!m){if(e[c+1]==="("||e[c+1]==="["){A("?.","?",c,c+1),c++;continue}let L=O();if(e[c+1]==="!"&&L&&!L.generated&&tt.has(L.kind)){A("PRESENCE","?!",c,c+2),c+=2;continue}if(L&&!L.generated&&tt.has(L.kind)){let e1=n[n.length-2]??null,d1=e1===null||e1.kind==="@"||e1.kind==="TERMINATOR"||e1.kind==="INDENT"||e1.kind==="OUTDENT";if((L.kind==="PROPERTY"||L.kind==="IDENTIFIER")&&d1&&/^[^\S\n]*(:=|~=|=!|=(?![=>!])|:(?![:=]))/.test(e.slice(c+1))){A("OPT_MARKER","?",c,c+1),c++;continue}A("?","?",c,c+1),c++;continue}let U=n[n.length-2]??null;if(L&&(L.kind==="-"||L.kind==="+")&&!L.spaced&&(U?.kind==="]"||U?.kind==="INDEX_END")&&e[c+1]===":"){A("?","?",c,c+1),c++;continue}k("unspaced '?' needs a value before it (postfix existence) — write ' ? ' for a ternary",c)}f++,A("TERNARY","?",c,c+1),c++;continue}if(v==="@"){A("@","@",c,c+1),c++;continue}if(v==="("){let L=O();if(L&&!m&&L.kind==="?."){L.kind="ES6_OPTIONAL_CALL",B("call",c),A("CALL_START","(",c,c+1),c++;continue}let U=L&&!m&&!L.generated&&Xt.has(L.kind);B(U?"call":"group",c),A(U?"CALL_START":"(","(",c,c+1),c++;continue}if(v===")"){let L=F();if(L?.kind!=="call"&&L?.kind!=="group")k("unmatched ')'",c);A(L.kind==="call"?"CALL_END":")",")",c,c+1),c++;continue}if(v==="["){let L=O();if(L&&!m&&L.kind==="?."){L.kind="ES6_OPTIONAL_INDEX",B("index",c),A("INDEX_START","[",c,c+1),c++;continue}let U=L&&!m&&!L.generated&&tt.has(L.kind);B(U?"index":"array",c),A(U?"INDEX_START":"[","[",c,c+1),c++;continue}if(v==="]"){let L=F();if(L?.kind!=="index"&&L?.kind!=="array")k("unmatched ']'",c);A(L.kind==="index"?"INDEX_END":"]","]",c,c+1),c++;continue}if(v==="{"){let L=O();if(L!=null&&(L.kind==="."||L.kind==="?.")&&!m&&!L.newLine&&n.length>=2&&tt.has(n[n.length-2].kind)&&n[n.length-2].kind!=="PICK_END")n.pop(),B("object",c,{pick:!0,pickKeys:e[c+1]!==" "&&e[c+1]!=="\t"}),A(L.kind==="?."?"OPTPICK_START":"PICK_START","{",c,c+1);else B("object",c),A("{","{",c,c+1);c++;continue}if(v==="}"){let L=F();if(L?.kind==="interp"){if(A("INTERPOLATION_END",")",c,c+1),c++,L.heregex)w(L.ctx);else M(L.ctx);continue}if(L?.kind!=="object")k("unmatched '}'",c);A(L.pick?"PICK_END":"}","}",c,c+1),c++;continue}if(v===":"&&e[c+1]===":"){if(!f1()&&!z()&&F1.test(e[c+2]??"")){let L=n[n.length-1];if(L?.kind==="?"&&L.end===c)L.kind="?.",L.value="?.",L.end=c+2,A("PROPERTY","prototype",c,c+2),A(".",".",c,c+2);else A(".",".",c,c+2),A("PROPERTY","prototype",c,c+2),A(".",".",c,c+2);c+=2;continue}k("type annotations use a single ':' (e.g. `x: number`), not '::'",c,c+2)}if(v===":"&&F1.test(e[c+1]??"")&&!f1()&&!z()){let L=n[n.length-1];if(!(L!==void 0&&(L.kind==="PROPERTY"||L.kind===")"||L.kind==="]"||L.kind==="}"||L.kind==="CALL_END"||L.kind==="INDEX_END"||L.kind==="PARAM_END"||L.kind==="PICK_END"||L.kind==="STRING"||L.kind==="STRING_END"||L.kind==="NUMBER"||L.kind==="REGEX"||L.kind==="HEREGEX_END"||L.kind==="BOOL"||L.kind==="NULL"||L.kind==="UNDEFINED"||L.kind==="DAMMIT"||L.kind==="?"||L.kind==="PRESENCE"||L.kind==="OPT_MARKER"||L.kind==="THIS"||L.kind==="@"||L.kind==="SYMBOL"||f>0&&L.kind==="IDENTIFIER"))){let e1=jl(e,c+1);A("SYMBOL",e.slice(c+1,e1),c,e1),c=e1;continue}}if(v==="="||v==="+"||v==="-"||v==="."||v===","||v===";"||v===":"){if(v===":"&&f>0)f--;A(v===";"?"TERMINATOR":v,v,c,c+1),c++;continue}if(v==="`"&&(f1()||z())){let L=Q(c);A("TYPE_TEMPLATE",e.slice(c,L),c,L),c=L;continue}k(`cannot tokenize '${v}'`,c)}if(l.length>0){if(!(r&&l.every((H)=>H.kind!=="interp"))){let H=l[0],s1={call:"(",group:"(",index:"[",array:"[",object:"{",interp:"#{"}[H.kind]??H.kind;I(`unclosed '${s1}' — never closed by end of input`,H.at,H.at+s1.length)}let P=e.length;while(P>0&&(e[P-1]===` -`||e[P-1]==="\r"))P--;while(l.length>0){let H=l[l.length-1],s1={call:"(",group:"(",index:"[",array:"[",object:"{"}[H.kind]??H.kind;a.push({message:`unclosed '${s1}' — never closed by end of input`,start:H.at,end:H.at+s1.length,expected:[],got:"end of input"});let L=H.kind==="call"?"CALL_END":H.kind==="group"?")":H.kind==="index"?"INDEX_END":H.kind==="array"?"]":H.pick?"PICK_END":"}";F();let U=n.length;while(U>0&&(n[U-1].kind==="OUTDENT"||n[U-1].kind==="INDENT"||n[U-1].kind==="TERMINATOR"))U--;let e1=n[U-1]?.kind,d1=H.kind==="call"&&e1==="CALL_START"||H.kind==="index"&&e1==="INDEX_START";if(e1===","||d1){let b1={id:y++,kind:"IDENTIFIER",value:"",start:P,end:P,spaced:!1,newLine:!1,generated:!0,origin:null};p.push(b1),n.splice(U,0,b1)}x(L,P)}}let o1=D();while(o.length>1)o.pop(),x("OUTDENT",o1);let n1=()=>y++;Ol(n),Il(n),Cl(n),Ai(n,n1,e,k,r?(v)=>a.push({message:v.reason??String(v.message),start:v.start??0,end:v.end??v.start??0,expected:[],got:""}):null),qt(n,n1,e,k);for(let v of n)if(v.kind==="RESERVED")k(`'${v.value}' is reserved and not supported yet`,v.start);return Gi(n,n1,k),xl(n),Ut(n,n1),hn(n),Vt(n,n1),Wt(n,n1),Dl(n),{tokens:n,trivia:s,source:i,lexDiagnostics:a}}function hn(e){for(let t=0;t"&&o!=="=>"&&o!=="ELSE"&&o!=="TRY"&&o!=="FINALLY"){i=!1;break}}}if(se.has(a))n++;else if(ie.has(a)){if(n--,n<0)break}}if(i)e[t].kind=r==="IF"?"POST_IF":"POST_UNLESS"}return e}function us(e="",{tolerant:t=!1}={}){return{setInput(r){let i=Hl(r,e,{tolerant:t});this.tokens=i.tokens,this.trivia=i.trivia,this.source=i.source,this.lexDiagnostics=i.lexDiagnostics??[],this.index=0,this.text="",this.loc=null,this.token=null},lex(){let r=this.tokens[this.index];if(!r)return null;return this.index++,this.text=r.value,this.loc={start:r.start,end:r.end},this.token=r,r.kind}}}var Gl={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,STATEMENT:10,Import:11,Export:12,TypeDecl:13,Enum:14,TYPE_DECL:15,Assignable:16,TYPE:17,OPT_MARKER:18,DEF:19,Identifier:20,OptParams:21,IMPORT:22,String:23,ImportDefaultSpecifier:24,FROM:25,ImportNamespaceSpecifier:26,"{":27,"}":28,ImportSpecifierList:29,OptComma:30,",":31,WITH:32,Object:33,IMPORT_TYPE:34,ImportSpecifier:35,INDENT:36,OUTDENT:37,AS:38,DEFAULT:39,IMPORT_ALL:40,EXPORT:41,ExportSpecifierList:42,Class:43,Def:44,ExportAssign:45,ReactiveAssign:46,ComputedAssign:47,Readonly:48,Effect:49,EXPORT_ALL:50,"=":51,TYPE_PARAMS:52,VOID_MARKER:53,REACTIVE_ASSIGN:54,COMPUTED_ASSIGN:55,Block:56,READONLY_ASSIGN:57,EFFECT:58,ExportSpecifier:59,Value:60,Code:61,Operation:62,Assign:63,Gate:64,If:65,Try:66,For:67,Switch:68,While:69,Throw:70,Schema:71,Component:72,Render:73,Literal:74,Parenthetical:75,Range:76,Invocation:77,DoIife:78,This:79,Super:80,DAMMIT:81,NewValue:82,TEMPLATE_TAG:83,Atom:84,Regex:85,UNDEFINED:86,NULL:87,BOOL:88,NUMBER:89,SYMBOL:90,STRING:91,STRING_START:92,Interpolations:93,STRING_END:94,InterpolationChunk:95,INTERPOLATION_START:96,INTERPOLATION_END:97,REGEX:98,HEREGEX_START:99,HEREGEX_END:100,IDENTIFIER:101,Property:102,PROPERTY:103,SimpleAssignable:104,COMPOUND_ASSIGN:105,METHOD_ASSIGN:106,Array:107,Rhs:108,BlockRhs:109,GATE:110,CALL_START:111,CALL_END:112,ArgList:113,ThisProperty:114,Subjectable:115,".":116,"?.":117,INDEX_START:118,INDEX_END:119,Slice:120,ES6_OPTIONAL_INDEX:121,PICK_START:122,PickList:123,PICK_END:124,OPTPICK_START:125,IMPORT_META:126,NEW_TARGET:127,NEW:128,NewSpine:129,NewCall:130,Arguments:131,PARAM_START:132,ParamList:133,PARAM_END:134,ArrowKind:135,"->":136,"=>":137,DO_IIFE:138,THIS:139,"@":140,"[":141,"]":142,Elisions:143,ArgElisionList:144,OptElisions:145,ArgElision:146,Arg:147,Elision:148,AssignList:149,MAP_START:150,AssignObj:151,ObjAssignable:152,ObjRestValue:153,":":154,SimpleObjAssignable:155,"...":156,ObjSpreadExpr:157,SUPER:158,DYNAMIC_IMPORT:159,PickItem:160,PickKey:161,RangeDots:162,"..":163,Param:164,TypedParamVar:165,ParamVar:166,Splat:167,ClassName:168,CLASS:169,EXTENDS:170,ENUM:171,SCHEMA:172,SCHEMA_BODY:173,COMPONENT:174,ComponentBlock:175,ComponentBody:176,ComponentLine:177,OFFER:178,ACCEPT:179,RENDER:180,ES6_OPTIONAL_CALL:181,"?":182,PRESENCE:183,"(":184,")":185,RETURN:186,WHILE:187,UNTIL:188,WHEN:189,Loop:190,IfBlock:191,IF:192,IfElseTail:193,ELSE:194,UnlessBlock:195,UNLESS:196,POST_IF:197,POST_UNLESS:198,TRY:199,Catch:200,Finalizer:201,FINALLY:202,CATCH:203,THROW:204,SWITCH:205,Cases:206,When:207,LEADING_WHEN:208,SimpleArgs:209,FOR:210,ForVariables:211,FORIN:212,BY:213,FOROF:214,OWN:215,FORAS:216,AWAIT:217,FORASAWAIT:218,ForValue:219,LOOP:220,"--":221,"++":222,CAST:223,TERNARY:224,UNARY:225,DO:226,UNARY_MATH:227,YIELD:228,"-":229,"+":230,"**":231,MATH:232,SHIFT:233,"&":234,"^":235,"|":236,COMPARE:237,MATCH:238,RELATION:239,"&&":240,"||":241,"??":242,THEN:243},tokenNames:{2:"error",6:"newline",10:"break/continue/debugger",15:"type/interface",17:"a type annotation",18:"?",19:"def",22:"import",25:"from",27:"{",28:"}",31:",",32:"with",34:"type",36:"indent",37:"dedent",38:"as",39:"default",40:"*",41:"export",50:"*",51:"=",52:"<…>",53:"!",54:":=",55:"~=",57:"=!",58:"~>",81:"!",83:"$",86:"undefined",87:"null",88:"true/false",89:"a number",90:"a :symbol",91:"a string",92:"a string",94:"the closing quote",96:"#{",97:"}",98:"a regex",99:"///",100:"///",101:"a name",103:"a property name",105:"a compound assignment",106:".=",110:"<~",111:"(",112:")",116:".",117:"?.",118:"[",119:"]",121:"?.[",122:".{",124:"}",125:"?.{",126:"import.meta",127:"new.target",128:"new",132:"(",134:")",136:"->",137:"=>",138:"do",139:"this",140:"@",141:"[",142:"]",150:"*{",154:":",156:"...",158:"super",159:"import(",163:"..",169:"class",170:"extends",171:"enum",172:"schema",173:"a schema body",174:"component",178:"offer",179:"accept",180:"render",181:"?.(",182:"?",183:"?!",184:"(",185:")",186:"return",187:"while",188:"until",189:"when",192:"if",194:"else",196:"unless",197:"if",198:"unless",199:"try",202:"finally",203:"catch",204:"throw",205:"switch",208:"when",210:"for",212:"in",213:"by",214:"of",215:"own",216:"as",217:"await",218:"as!",220:"loop",221:"--",222:"++",223:"as",224:"?",225:"not/typeof/delete",226:"do",227:"!/~",228:"yield",229:"-",230:"+",231:"**",232:"a math operator",233:"a shift operator",234:"&",235:"^",236:"|",237:"a comparison",238:"=~",239:"in/of/instanceof",240:"&&",241:"||",242:"??",243:"then"},semantics:{"1":{kind:"program",roles:[]},"2":{kind:"program",roles:[{name:"body",grammarRef:1,childSlot:1,spread:!0}]},"14":{kind:"typedecl",roles:[{name:"declaration",grammarRef:1,childSlot:1,spread:!1}]},"15":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"16":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"17":{kind:"defsig",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:3,spread:!1}]},"18":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:1,spread:!1}]},"19":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"20":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"21":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"22":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"23":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:3,spread:!1}]},"24":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:3,spread:!1}]},"25":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:2,spread:!1}],nested:[{role:"attributes",path:[1],kind:"withattrs",roles:[{name:"keyword",grammarRef:3,childSlot:0,spread:!1},{name:"value",grammarRef:4,childSlot:1,spread:!1}],nested:[]}]},"26":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"27":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"28":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:8,childSlot:0,spread:!1},{name:"value",grammarRef:9,childSlot:1,spread:!1}],nested:[]}]},"29":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:7,childSlot:0,spread:!1},{name:"value",grammarRef:8,childSlot:1,spread:!1}],nested:[]}]},"30":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:10,childSlot:0,spread:!1},{name:"value",grammarRef:11,childSlot:1,spread:!1}],nested:[]}]},"31":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"32":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"33":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:6,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"34":{kind:"import",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"41":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"43":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"45":{kind:"as",roles:[{name:"name",grammarRef:null,childSlot:0,literal:"*"},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"46":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"}]},"47":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"48":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"49":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"50":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"51":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"52":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"53":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"54":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"55":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"56":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"57":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1}]},"58":{kind:"export",roles:[{name:"source",grammarRef:4,childSlot:1,spread:!1}]},"59":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"60":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"61":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"62":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"63":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"64":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"65":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"66":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"67":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"68":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"69":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"70":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"71":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"72":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"73":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"74":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"75":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"76":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"77":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"78":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"79":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"80":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"81":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"82":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"83":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"84":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"91":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"92":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"94":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"123":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"125":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"133":{kind:"symbol",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1}]},"135":{kind:"str",roles:[{name:"parts",grammarRef:2,childSlot:1,spread:!0}]},"143":{kind:"heregex",roles:[{name:"flags",grammarRef:3,childSlot:1,spread:!1},{name:"parts",grammarRef:2,childSlot:2,spread:!0}]},"146":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"147":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"148":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"149":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"150":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"151":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"152":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"153":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"154":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"155":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"156":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"157":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"158":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"159":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"160":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"161":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"162":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"163":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"164":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:".="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"165":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"166":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"167":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"177":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"178":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"179":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"180":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"181":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"182":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"183":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"184":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"185":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"186":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"187":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"188":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"189":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"key",grammarRef:5,childSlot:3,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"190":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"key",grammarRef:6,childSlot:3,spread:!0},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"191":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"192":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"193":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"194":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"195":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"196":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"197":{kind:"effect",roles:[{name:"target",grammarRef:null,childSlot:1,literal:null},{name:"value",grammarRef:2,childSlot:2,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"200":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"201":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"202":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"203":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"204":{kind:"regexindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1},{name:"capture",grammarRef:5,childSlot:3,spread:!1}]},"205":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"206":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"207":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"208":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:5,childSlot:2,spread:!1}]},"209":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"210":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"211":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"212":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"213":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"214":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"215":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"216":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"217":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"218":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"219":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"}],nested:[{role:"operand",path:[1],kind:"call",roles:[{name:"callee",grammarRef:2,childSlot:0,spread:!1},{name:"args",grammarRef:4,childSlot:1,spread:!0}],nested:[]}]}]},"220":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"226":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"227":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"228":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"229":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"232":{kind:"func",roles:[{name:"kind",grammarRef:4,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:5,childSlot:2,spread:!1}]},"233":{kind:"func",roles:[{name:"kind",grammarRef:5,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:6,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"234":{kind:"func",roles:[{name:"kind",grammarRef:1,childSlot:0,spread:!1},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"237":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"240":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"241":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"242":{kind:"array",roles:[]},"243":{kind:"array",roles:[{name:"elisions",grammarRef:2,childSlot:1,spread:!0}]},"244":{kind:"array",roles:[{name:"items",grammarRef:2,childSlot:1,spread:!0},{name:"elisions",grammarRef:3,childSlot:null,spread:!0}]},"258":{kind:"object",roles:[{name:"pairs",grammarRef:2,childSlot:1,spread:!0}]},"259":{kind:"map",roles:[{name:"pairs",grammarRef:3,childSlot:1,spread:!0}]},"265":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:1,childSlot:2,spread:!1}]},"267":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"268":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"269":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"270":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"271":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"272":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"273":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"274":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"275":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"281":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"282":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"283":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"284":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"285":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"286":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"287":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"288":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"289":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"290":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"291":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"292":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"293":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"298":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1}]},"299":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1}]},"300":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"default",grammarRef:3,childSlot:2,spread:!1}]},"301":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1},{name:"default",grammarRef:5,childSlot:2,spread:!1}]},"309":{kind:"dynamicKey",roles:[{name:"key",grammarRef:2,childSlot:1,spread:!1}]},"310":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"this"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"313":{kind:"range",roles:[{name:"operator",grammarRef:3,childSlot:0,spread:!1},{name:"from",grammarRef:2,childSlot:1,spread:!1},{name:"to",grammarRef:4,childSlot:2,spread:!1}]},"314":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:3,childSlot:2,spread:!1}]},"315":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"316":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:2,childSlot:2,spread:!1}]},"317":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"318":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"319":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"320":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"321":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"322":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"323":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"324":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"325":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"326":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"327":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"328":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"329":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"338":{kind:"default",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"339":{kind:"rest",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"340":{kind:"expansion",roles:[]},"342":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"343":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"344":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:null,childSlot:2,literal:""},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"349":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"351":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"352":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:2,childSlot:3,spread:!1}]},"353":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1}]},"354":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"355":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"356":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"357":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1}]},"358":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"359":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"360":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"361":{kind:"enum",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"362":{kind:"schema",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"363":{kind:"component",roles:[{name:"parent",grammarRef:null,childSlot:1,literal:null},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"364":{kind:"component",roles:[{name:"parent",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:4,childSlot:2,spread:!1}]},"365":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"371":{kind:"offer",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"372":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"373":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"374":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"375":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"376":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"377":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"378":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"379":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"380":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"381":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"382":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"383":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"384":{kind:"await",roles:[{name:"operator",grammarRef:2,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"dynimport",roles:[{name:"keyword",grammarRef:null,childSlot:0,literal:"import"},{name:"args",grammarRef:3,childSlot:1,spread:!0}],nested:[]}]},"396":{kind:"block",roles:[]},"397":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"400":{kind:"return",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"401":{kind:"return",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"402":{kind:"return",roles:[]},"403":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"404":{kind:"while",roles:[{name:"body",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"405":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"406":{kind:"while",roles:[{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"407":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"408":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"409":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"410":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"411":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"412":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"413":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"414":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"416":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1}]},"417":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:4,childSlot:3,spread:!1}]},"418":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1}]},"419":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"421":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"422":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"425":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"426":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"427":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"428":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"429":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:6,childSlot:3,spread:!1}]},"430":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"431":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"432":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"433":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"434":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"435":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"436":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"437":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"438":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"439":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"440":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"441":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"442":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"444":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!1}]},"445":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"446":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"447":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"448":{kind:"catch",roles:[{name:"binding",grammarRef:null,childSlot:0,literal:null},{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"449":{kind:"throw",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"450":{kind:"throw",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"451":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"452":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:6,childSlot:3,spread:!1}]},"453":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"454":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:5,childSlot:3,spread:!1}]},"457":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"458":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"461":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"462":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"463":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"464":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:8,childSlot:3,spread:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"465":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:8,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"466":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"467":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"468":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"469":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"470":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"471":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"472":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"473":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"474":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"475":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"476":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:3,childSlot:5,spread:!1}]},"477":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:4,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"478":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"479":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"480":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"481":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:9,childSlot:3,spread:!1}],nested:[]}]},"482":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:9,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"483":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"484":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"485":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"486":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"487":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"488":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"489":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"490":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"491":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"492":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"496":{kind:"loop",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"497":{kind:"loop",roles:[{name:"count",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"498":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"499":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"500":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"501":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"502":{kind:"existence",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?"},{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"503":{kind:"presence",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"504":{kind:"cast",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"505":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:1,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"506":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"507":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"508":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"509":{kind:"await",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"510":{kind:"await",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"511":{kind:"yield",roles:[]},"512":{kind:"yield",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"513":{kind:"yield",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"514":{kind:"yieldfrom",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"515":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"516":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"517":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"**"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"518":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"519":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"520":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"521":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"522":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"523":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"^"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"524":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"|"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"525":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"526":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"=~"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"527":{kind:"relation",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"528":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"529":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"530":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"531":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"532":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"533":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"534":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"535":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"536":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"537":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"538":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"539":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"540":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"541":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"542":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]}},primitiveRefs:{"1":[],"2":[1],"3":[1],"4":[1,3],"5":[1],"6":[1],"7":[1],"8":[1],"9":[1],"10":[1],"11":[1],"12":[1],"13":[1],"14":[1],"15":[1,2],"16":[1,3],"17":[2,3,4],"18":[2],"19":[2,4],"20":[2,4],"21":[5],"22":[3,7],"23":[2,4,6],"24":[2,5,9],"25":[3,4,2],"26":[2,5,6,4],"27":[2,5,6,4],"28":[3,8,9,7],"29":[2,4,7,8,6],"30":[2,5,10,11,9],"31":[3,5],"32":[3,5],"33":[6],"34":[4,8],"35":[1],"36":[1,3],"37":[1,4],"38":[2],"39":[1,4],"40":[1],"41":[1,3],"42":[1],"43":[1,3],"44":[1],"45":[3],"46":[],"47":[3],"48":[2],"49":[2],"50":[2],"51":[2],"52":[2],"53":[2],"54":[2],"55":[2],"56":[3],"57":[4],"58":[4],"59":[6,4],"60":[6,4],"61":[5],"62":[3,7],"63":[1,3],"64":[1,4],"65":[1,4],"66":[1,4],"67":[1,5],"68":[1,5],"69":[1,4],"70":[1,4],"71":[1,5],"72":[1,5],"73":[1,4],"74":[1,5],"75":[1,5],"76":[1,4],"77":[1,5],"78":[1,4],"79":[1,4],"80":[1,5],"81":[1,5],"82":[1,4],"83":[1,5],"84":[1,4],"85":[1],"86":[1,3],"87":[1,4],"88":[2],"89":[1,4],"90":[1],"91":[1,3],"92":[1,3],"93":[1],"94":[1,3],"95":[1],"96":[1],"97":[1],"98":[1],"99":[1],"100":[1],"101":[1],"102":[1],"103":[1],"104":[1],"105":[1],"106":[1],"107":[1],"108":[1],"109":[1],"110":[1],"111":[1],"112":[1],"113":[1],"114":[1],"115":[1],"116":[1],"117":[1],"118":[1],"119":[1],"120":[1],"121":[1],"122":[1],"123":[1],"124":[1],"125":[1,3],"126":[1],"127":[1],"128":[],"129":[],"130":[1],"131":[1],"132":[1],"133":[1],"134":[1],"135":[2],"136":[1],"137":[1,2],"138":[2],"139":[3],"140":[],"141":[1],"142":[1],"143":[3,2],"144":[1],"145":[1],"146":[1,3],"147":[1,4],"148":[1,4],"149":[1,4],"150":[1,5],"151":[1,5],"152":[1,4],"153":[1,5],"154":[1,5],"155":[1,5],"156":[1,6],"157":[1,6],"158":[1,3],"159":[1,4],"160":[1,4],"161":[2,1,3],"162":[2,1,4],"163":[2,1,4],"164":[1,3],"165":[1,4],"166":[1,5],"167":[1,5],"168":[1],"169":[1],"170":[1],"171":[1],"172":[2],"173":[2],"174":[1],"175":[2],"176":[1],"177":[1,3],"178":[1,4],"179":[1,4],"180":[1,5],"181":[1,3],"182":[1,4],"183":[1,4],"184":[1,5],"185":[1,3],"186":[1,4],"187":[1,3],"188":[1,4],"189":[1,3,5],"190":[1,4,6],"191":[1,3],"192":[1,4],"193":[1,4],"194":[1,5],"195":[1,3],"196":[1,4],"197":[2],"198":[1],"199":[1],"200":[1,3],"201":[1,3],"202":[1,3],"203":[1,4],"204":[1,3,5],"205":[1,3],"206":[1,4],"207":[1,4],"208":[1,5],"209":[1,3],"210":[1,3],"211":[1,4],"212":[1,4],"213":[1,3],"214":[1,3],"215":[1,2],"216":[1,2],"217":[1,2],"218":[2],"219":[2,4],"220":[1,2],"221":[1],"222":[1],"223":[1],"224":[1],"225":[1],"226":[1,3],"227":[1,3],"228":[1,3],"229":[1,3],"230":[1],"231":[1],"232":[4,2,5],"233":[5,2,6],"234":[1,2],"235":[1],"236":[1],"237":[2],"238":[],"239":[],"240":[2],"241":[2],"242":[],"243":[2],"244":[2,3],"245":[1],"246":[1,3],"247":[1,4],"248":[2,3],"249":[1,2,4,5],"250":[1],"251":[1,2],"252":[],"253":[2],"254":[1],"255":[1,2],"256":[],"257":[1],"258":[2],"259":[3],"260":[],"261":[1],"262":[1,3],"263":[1,4],"264":[1,4],"265":[1,1],"266":[1],"267":[1,3],"268":[1,4],"269":[1,3],"270":[1,3],"271":[1,4],"272":[1,4],"273":[1,5],"274":[2],"275":[2],"276":[1],"277":[1],"278":[1],"279":[1],"280":[1],"281":[2],"282":[1,2],"283":[1,2],"284":[1,2],"285":[1,3],"286":[1,3],"287":[1,3],"288":[1,4],"289":[1],"290":[1,3],"291":[1,3],"292":[1,4],"293":[1,4],"294":[1],"295":[1,3],"296":[1,4],"297":[1,4],"298":[1,1],"299":[1,3],"300":[1,1,3],"301":[1,3,5],"302":[1],"303":[1],"304":[1],"305":[1],"306":[1],"307":[1],"308":[1],"309":[2],"310":[3],"311":[],"312":[],"313":[3,2,4],"314":[2,1,3],"315":[2,1],"316":[1,2],"317":[1],"318":[2,3,4],"319":[2,3,5],"320":[2,4,5],"321":[2,4,6],"322":[2,4,5],"323":[2,4,6],"324":[2,3,4],"325":[2,3,5],"326":[2,4,5],"327":[2,4,6],"328":[2,4,5],"329":[2,4,6],"330":[],"331":[2],"332":[],"333":[1],"334":[1,3],"335":[1,4],"336":[1,4],"337":[1],"338":[1,3],"339":[2],"340":[],"341":[1],"342":[1,2],"343":[1,3],"344":[1],"345":[1],"346":[1],"347":[1],"348":[1],"349":[2],"350":[1],"351":[],"352":[2],"353":[3],"354":[3,4],"355":[2],"356":[2,3],"357":[2,4],"358":[2,4,5],"359":[2,3],"360":[2,4,5],"361":[2,3],"362":[2],"363":[2],"364":[3,4],"365":[2],"366":[1],"367":[1,3],"368":[1],"369":[1],"370":[1],"371":[2],"372":[2],"373":[2],"374":[2],"375":[3],"376":[3],"377":[4],"378":[1,2],"379":[2],"380":[1,3],"381":[1,3],"382":[1,3],"383":[1,2],"384":[3],"385":[],"386":[2],"387":[1],"388":[1,3],"389":[1,4],"390":[2],"391":[1,4],"392":[1],"393":[1],"394":[1],"395":[1],"396":[],"397":[2],"398":[2],"399":[3],"400":[2],"401":[3],"402":[],"403":[2,3],"404":[2,3],"405":[2,4,5],"406":[2,4,5],"407":[3,1],"408":[3,1],"409":[3,1],"410":[3,1],"411":[3,5,1],"412":[3,5,1],"413":[3,5,1],"414":[3,5,1],"415":[1],"416":[2,3],"417":[2,3,4],"418":[3,4],"419":[3,4,5],"420":[2],"421":[2,3],"422":[2,3,5],"423":[1],"424":[1],"425":[3,1],"426":[3,1],"427":[3,1],"428":[3,1],"429":[3,1,6],"430":[3,1,5],"431":[2],"432":[2],"433":[2,3],"434":[2],"435":[2,3],"436":[2,3],"437":[2,3],"438":[2,3,4],"439":[2,3],"440":[2,3,4],"441":[2,3],"442":[2,3,4],"443":[2],"444":[2],"445":[2,3],"446":[2,3],"447":[2,3],"448":[2],"449":[2],"450":[3],"451":[2,4],"452":[2,4,6],"453":[3],"454":[3,5],"455":[1],"456":[1,2],"457":[2,3],"458":[2,3],"459":[1],"460":[1,3],"461":[2,4,5],"462":[2,4,6,7],"463":[2,4,6,7],"464":[2,4,8,6,9],"465":[2,4,6,8,9],"466":[2,4,5],"467":[2,4,6,7],"468":[3,5,6],"469":[3,5,7,8],"470":[2,4,5],"471":[2,4,6,7],"472":[3,5,6],"473":[3,5,7,8],"474":[2,4,5],"475":[2,4,6,7],"476":[2,3],"477":[2,4,5],"478":[1,3,5],"479":[1,3,5,7],"480":[1,3,5,7],"481":[1,3,5,9,7],"482":[1,3,5,7,9],"483":[1,3,5],"484":[1,3,5,7],"485":[1,4,6],"486":[1,4,6,8],"487":[1,3,5],"488":[1,3,5,7],"489":[1,4,6],"490":[1,4,6,8],"491":[1,3,5],"492":[1,3,5,7],"493":[1],"494":[1],"495":[1,3],"496":[2],"497":[2,3],"498":[2],"499":[2],"500":[1],"501":[1],"502":[1],"503":[1],"504":[1,2],"505":[1,3,5],"506":[1,2],"507":[2],"508":[1,2],"509":[2],"510":[3],"511":[],"512":[2],"513":[3],"514":[3],"515":[2],"516":[2],"517":[1,3],"518":[1,3],"519":[1,3],"520":[2,1,3],"521":[2,1,3],"522":[1,3],"523":[1,3],"524":[1,3],"525":[2,1,3],"526":[1,3],"527":[2,1,3],"528":[1,3],"529":[1,3],"530":[1,3],"531":[1,3],"532":[1,3],"533":[1,3],"534":[1,3],"535":[1,3],"536":[1,3],"537":[1,3],"538":[1,3],"539":[1,3],"540":[1,3],"541":[1,3],"542":[1,3]},accumulators:{"4":!0,"36":!0,"37":!0,"39":!0,"86":!0,"87":!0,"89":!0,"137":!0,"246":!0,"247":!0,"249":!0,"255":!0,"262":!0,"263":!0,"264":!0,"295":!0,"296":!0,"297":!0,"334":!0,"335":!0,"336":!0,"367":!0,"388":!0,"389":!0,"391":!0,"456":!0},parseTable:(()=>{let e=[108,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-1,1,2,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,1,0,2,1,5,-2,108,5,1,5,31,60,88,-3,-3,-3,-3,-3,28,1,5,31,60,88,2,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,9,1,5,31,60,88,2,1,9,1,-7,-7,-7,-7,-7,134,135,132,133,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,136,137,-95,142,-95,-230,-230,-230,-95,-230,-230,-95,-230,140,-95,-95,-95,-95,-95,141,138,139,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,49,1,5,22,3,5,1,60,15,4,1,1,1,2,1,2,1,9,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-231,-231,-231,-96,-231,-231,-96,-231,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,64,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,144,145,-115,-115,-115,-115,143,146,147,148,150,151,-115,-115,-115,149,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,18,6,14,7,4,2,3,65,6,7,19,1,6,1,9,6,8,1,1,-332,157,100,-332,159,-332,96,158,160,152,-332,162,161,101,155,153,154,156,2,36,20,164,163,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,167,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,165,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,167,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,171,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,174,175,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,172,173,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,176,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,178,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,179,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,180,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,181,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,143,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,2,1,3,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,4,6,2,1,2,6,4,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-511,-511,182,177,26,27,28,29,30,31,73,32,65,54,71,103,184,100,-511,-511,76,183,-511,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-511,105,106,96,45,75,-511,92,93,-511,-511,94,95,89,41,-511,42,90,91,86,87,88,83,-511,101,-511,-511,84,85,-511,66,74,67,68,69,82,-511,70,-511,-511,-511,63,56,97,-511,57,98,-511,-511,58,-511,-511,64,60,-511,-511,49,99,43,44,-511,-511,46,47,48,50,51,52,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,185,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,186,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,1,5,11,11,3,5,1,14,30,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,188,-134,-134,-134,-134,187,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,69,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,189,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,190,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,195,196,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,15,20,7,6,43,25,6,7,26,1,9,16,45,4,2,2,157,100,159,200,96,158,160,162,83,101,202,197,198,199,201,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,203,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,204,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,205,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,206,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,207,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,208,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,20,81,13,26,209,96,210,162,50,1,5,14,8,3,5,1,19,41,4,11,2,5,5,10,6,2,12,2,7,5,2,15,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,215,-351,-351,164,-351,211,-351,96,-351,214,-351,-351,-351,162,-351,-351,-351,-351,213,212,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,1,173,216,3,36,134,5,219,218,217,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,221,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,220,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,142,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,1,3,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,4,6,2,1,2,6,4,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,222,177,26,27,28,29,30,31,73,32,65,54,71,103,100,-402,-402,76,223,-402,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-402,105,106,96,45,75,-402,92,93,-402,-402,94,95,89,41,-402,42,90,91,86,87,88,83,-402,101,-402,-402,84,85,-402,66,74,67,68,69,82,-402,70,-402,-402,-402,63,56,97,-402,57,98,-402,-402,58,-402,-402,64,60,-402,-402,49,99,43,44,-402,-402,46,47,48,50,51,52,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,10,20,3,1,2,1,7,6,51,1,9,229,224,225,226,227,228,230,170,107,96,60,14,2,3,1,3,4,6,6,4,1,1,1,1,1,1,1,8,2,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,13,234,244,242,243,103,231,76,240,232,233,235,236,237,238,239,241,55,167,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,245,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,82,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,2,20,81,246,96,64,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,64,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,247,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,248,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,249,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,250,251,252,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,111,5,2,13,142,261,262,260,3,81,30,20,264,142,263,5,61,71,3,1,1,265,41,42,90,91,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,58,1,5,22,3,5,1,44,2,8,6,5,1,8,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,267,-239,266,268,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,14,20,55,4,1,2,19,13,14,1,1,9,1,18,26,272,275,274,276,270,96,273,89,269,271,87,88,277,82,1,36,-235,1,36,-236,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,6,116,1,1,3,1,3,278,279,280,281,282,283,1,116,284,1,116,285,76,1,5,11,1,7,3,3,5,1,1,13,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,286,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,287,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,289,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,288,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,14,3,5,3,5,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,300,103,-260,-260,-260,296,294,102,104,170,107,105,106,96,301,268,302,298,297,290,291,292,293,295,299,1,27,303,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,6,23,68,1,1,2,1,307,170,107,304,305,306,6,23,68,1,1,2,1,307,170,107,308,305,306,110,1,4,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,1,1,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-5,309,-5,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-5,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-5,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,-5,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,310,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,311,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,312,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,313,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,314,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,315,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,316,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,317,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,318,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,319,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,320,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,321,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,322,177,323,324,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,325,177,326,327,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,328,177,329,330,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,331,177,332,333,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,334,177,335,336,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,337,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,338,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,20,7,6,68,6,7,26,1,9,16,45,4,2,2,157,100,159,96,158,160,162,161,101,202,339,340,341,201,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,342,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,343,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,344,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,345,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,346,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,347,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,3,23,68,1,348,170,107,45,1,5,22,3,5,1,60,14,1,7,5,7,3,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-502,-502,-502,-502,-502,-502,-502,142,-502,-502,-502,349,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,45,1,5,22,3,5,1,60,14,1,7,5,7,3,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-503,-503,-503,-503,-503,-503,-503,142,-503,-503,-503,350,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,2,111,20,142,351,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,352,353,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,358,357,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,359,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,49,1,5,22,3,5,1,14,3,1,2,1,39,13,2,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,360,361,362,364,365,-15,363,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,5,17,34,3,1,2,367,366,368,369,370,1,51,371,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,372,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,376,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,377,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,245,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,378,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,379,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,98,-394,382,381,-394,380,6,6,25,5,1,75,22,-333,-333,-333,-333,-333,-333,7,6,25,5,1,14,61,22,-337,-337,-337,-337,383,-337,-337,17,6,14,7,4,2,3,1,64,6,5,2,20,6,1,9,15,1,-340,157,100,-340,159,-340,-340,96,158,-340,160,-340,162,161,101,384,156,9,6,11,1,13,5,1,14,61,22,-341,385,386,-341,-341,-341,-341,-341,-341,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,250,251,252,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,91,11,1,267,266,268,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,388,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,387,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-498,-498,-498,-498,-498,-498,-168,-168,-498,-168,-498,-168,-168,-168,-498,-168,-168,-498,-168,-498,-498,-498,-498,-498,-168,-168,-168,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,13,81,2,28,5,1,1,3,1,3,6,50,1,1,136,137,142,-230,-230,-230,-230,-230,-230,140,141,389,390,6,116,1,1,3,1,3,-231,-231,-231,-231,-231,-231,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,61,1,5,22,3,1,4,1,44,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-499,-499,-499,-499,-499,-499,-168,-168,-499,-168,-499,-168,-168,-168,-499,-168,-168,-499,-168,-499,-499,-499,-499,-499,-168,-168,-168,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,393,391,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,392,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,394,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,4,187,1,9,1,134,135,132,133,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,111,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,3,27,6,117,100,395,101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-512,3,27,6,117,100,396,101,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,397,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,111,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,111,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,398,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,51,399,1,51,400,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,130,131,-174,126,127,128,-174,-174,129,-174,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,401,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,45,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,2,1,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,402,403,405,404,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,45,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,2,1,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,130,131,-432,126,127,128,406,407,405,404,129,-432,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,45,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,2,1,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,134,135,-434,-434,132,133,408,409,405,404,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,4,212,2,2,2,410,411,412,413,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,414,201,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,415,201,3,36,20,157,164,416,417,5,31,181,2,2,2,418,-494,-494,-494,-494,5,31,181,2,2,2,-493,-493,-493,-493,-493,24,36,151,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,419,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,206,1,1,420,421,422,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,423,130,131,424,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,425,130,131,426,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-449,3,27,6,117,100,427,101,6,17,4,15,16,1,58,-330,428,-330,429,430,431,6,17,4,15,16,1,58,-330,432,-330,433,434,431,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,435,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,45,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,7,15,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,164,-355,436,-355,-355,-355,-355,-355,-355,-355,-355,-355,437,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,3,36,20,114,164,438,439,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,7,15,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,440,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,2,1,1,1,1,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,443,444,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,441,442,445,446,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,130,131,-374,126,-374,-374,-374,-374,129,-374,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-374,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-400,3,27,6,117,100,447,101,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,448,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,2,25,6,449,450,1,25,451,7,20,8,1,6,1,3,62,456,452,453,454,455,457,96,6,20,4,2,1,13,61,229,458,459,460,230,96,2,25,6,-44,-44,1,38,461,29,6,14,3,5,3,5,3,3,17,25,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,466,103,462,-260,465,467,463,464,296,294,102,104,170,107,105,106,96,301,268,302,298,297,290,291,292,293,295,299,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,468,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,469,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,25,13,470,471,4,20,81,13,26,472,96,210,162,21,17,1,33,1,1,1,1,2,1,23,2,28,5,1,1,3,1,3,56,1,1,474,-198,473,475,476,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,18,17,1,36,1,2,1,23,2,28,5,1,1,3,1,3,56,1,1,477,478,147,148,150,151,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,61,1,5,11,1,10,3,5,1,17,1,2,1,23,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,2,36,20,164,479,2,6,179,108,480,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,481,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,106,14,6,1,24,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,484,482,483,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,485,487,486,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,24,1,5,106,3,-394,490,489,-394,-394,488,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,491,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,5,6,25,5,1,105,-245,-245,-245,-245,-245,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,493,492,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,5,6,25,5,1,105,-250,-250,-250,-250,-250,6,6,25,5,1,75,30,-393,-393,-393,-393,-393,-393,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,494,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,2,102,1,495,268,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,496,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,497,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,2,111,20,142,498,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,74,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,74,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,74,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,499,503,-215,142,-215,500,501,502,-215,-215,-215,-215,-215,504,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,2,116,2,261,262,2,102,1,505,268,2,102,1,506,268,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,3,1,6,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,507,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,508,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,509,94,95,89,41,42,90,91,86,87,88,83,101,484,84,85,510,483,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,118,511,8,20,16,65,1,1,20,37,1,516,513,96,517,268,512,514,515,8,20,16,65,1,1,20,37,1,516,519,96,517,268,518,514,515,2,102,1,520,268,2,102,1,521,268,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,522,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,523,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,524,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,5,6,22,2,1,5,-394,-394,525,526,-394,5,6,22,3,5,1,-261,-261,-261,-261,-261,6,6,22,3,5,1,117,-265,-265,-265,-265,-265,527,5,6,22,3,5,1,-266,-266,-266,-266,-266,1,154,528,8,6,22,3,5,1,14,2,101,-307,-307,-307,-307,-307,529,530,-307,6,6,22,3,5,1,117,-308,-308,-308,-308,-308,-308,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,531,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,91,11,1,38,267,266,268,532,18,20,7,6,42,4,1,21,1,1,11,25,1,10,5,2,1,1,25,300,100,535,536,538,537,96,301,268,302,87,88,101,533,534,539,540,82,15,6,22,3,5,1,14,2,28,30,5,1,1,4,3,29,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,15,6,22,3,5,1,14,2,28,30,5,1,1,4,3,29,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,15,6,22,3,5,1,14,2,28,30,5,1,1,4,3,29,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,26,6,14,3,5,3,5,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,300,103,-260,-260,-260,296,294,102,104,170,107,105,106,96,301,268,302,298,297,541,291,292,293,295,299,6,23,68,1,3,1,4,307,170,107,543,306,542,5,91,1,2,2,4,-136,-136,-136,-136,-136,108,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,544,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,545,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,546,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,91,1,2,2,4,-141,-141,-141,-141,-141,6,23,68,1,2,1,1,307,170,107,547,543,306,5,1,5,31,60,88,-4,-4,-4,-4,-4,24,154,33,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,548,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,111,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,111,114,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,111,114,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,111,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,113,112,111,114,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,109,-522,113,112,111,114,115,-522,-522,-522,119,120,121,-522,-522,-522,-522,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,109,-523,113,112,111,114,115,116,-523,-523,119,120,121,-523,-523,-523,-523,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,109,-524,113,112,111,114,115,116,117,-524,119,120,121,-524,-524,-524,-524,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,109,-525,113,112,111,114,115,-525,-525,-525,-525,-525,121,-525,-525,-525,-525,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,109,-526,113,112,111,114,115,-526,-526,-526,-526,-526,121,-526,-526,-526,-526,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,109,-527,113,112,111,114,115,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,109,-528,113,112,111,114,115,116,117,118,119,120,121,-528,-528,-528,-528,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,109,-529,113,112,111,114,115,116,117,118,119,120,121,122,-529,-529,-529,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,109,-530,113,112,111,114,115,116,117,118,119,120,121,122,-530,-530,-530,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,130,131,-537,126,-537,-537,-537,-537,129,-537,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-537,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,130,131,-538,126,-538,-538,-538,-538,129,-538,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-538,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,130,131,-426,549,-426,-426,-426,-426,129,-426,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,130,131,-428,126,-428,-428,-428,-428,129,-428,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,4,212,2,2,2,550,551,552,553,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,554,201,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,555,201,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,130,131,556,126,-407,-407,-407,-407,129,-407,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-407,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,130,131,557,126,-409,-409,-409,-409,129,-409,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-409,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,130,131,-425,126,-425,-425,-425,-425,129,-425,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,130,131,-427,126,-427,-427,-427,-427,129,-427,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,130,131,558,126,-408,-408,-408,-408,129,-408,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-408,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,130,131,559,126,-410,-410,-410,-410,129,-410,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-410,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,5,6,24,1,5,76,-394,560,561,-394,-394,5,6,25,5,1,75,-387,-387,-387,-387,-387,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,562,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,25,5,1,75,30,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-146,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,563,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,564,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,566,565,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,567,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,568,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,569,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,570,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,245,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,571,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,572,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,574,573,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,575,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,47,1,5,22,3,5,1,14,3,1,2,40,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,576,577,578,579,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,580,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,581,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,582,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,583,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,130,131,-171,126,127,128,-171,-171,129,-171,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,584,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,585,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,136,137,-185,586,-185,-230,-230,-230,-185,-230,-230,-185,-230,140,-185,-185,-185,-185,-185,141,389,390,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,4,17,118,1,1,588,587,90,91,16,6,14,7,6,3,1,64,6,7,26,1,9,6,8,1,1,-395,157,100,159,-395,-395,96,158,160,162,161,101,155,589,154,156,2,6,30,590,591,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,592,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,25,5,1,75,22,-339,-339,-339,-339,-339,-339,7,6,25,5,1,14,61,22,-342,-342,-342,-342,-342,-342,-342,8,6,11,14,5,1,14,61,22,-344,593,-344,-344,-344,-344,-344,-344,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,5,2,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,2,6,31,108,594,2,111,20,142,349,2,111,20,142,350,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-161,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,595,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,596,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-164,1,37,597,1,37,598,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-514,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-158,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,599,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,601,600,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,602,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,130,131,-175,126,127,128,-175,-175,129,-175,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,3,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,603,405,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,9,20,7,6,3,20,45,6,34,9,604,100,605,164,607,96,606,161,101,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,609,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,608,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,3,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,610,405,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,3,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,611,405,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,612,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,613,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,614,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,615,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,214,616,1,216,617,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,618,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,11,20,7,6,68,6,7,26,1,9,16,53,157,100,159,96,158,160,162,161,101,202,619,3,206,1,1,620,421,422,4,37,157,13,1,621,622,623,422,3,37,157,14,-455,-455,-455,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,4,1,7,3,1,1,3,1,1,1,1,1,625,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,624,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,626,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,627,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,628,3,17,19,20,630,164,629,4,17,4,15,75,-330,631,-330,431,4,17,4,15,75,-330,632,-330,431,18,6,14,7,4,2,3,65,6,5,2,19,7,1,9,6,8,1,1,-332,157,100,-332,159,-332,96,158,-332,160,633,162,161,101,155,153,154,156,3,17,19,20,635,164,634,4,17,4,15,75,-330,636,-330,431,4,17,4,15,75,-330,637,-330,431,44,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,164,-353,638,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-353,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,639,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,640,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,25,36,139,12,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,219,641,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,2,6,31,643,642,2,6,31,-366,-366,25,6,31,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,6,6,31,150,1,9,1,-370,-370,134,135,132,133,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,644,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,101,645,1,37,646,3,27,6,117,100,647,101,3,23,68,1,648,170,107,3,26,1,13,649,650,230,3,23,68,1,651,170,107,1,25,652,5,6,22,2,1,5,-394,-394,653,654,-394,5,6,22,3,5,1,-35,-35,-35,-35,-35,6,20,9,6,1,3,62,456,655,454,455,457,96,6,6,22,3,5,1,1,-40,-40,-40,-40,-40,656,6,6,22,3,5,1,1,-42,-42,-42,-42,-42,657,1,25,658,1,25,659,7,20,8,1,6,1,3,62,456,660,661,454,455,457,96,2,20,81,662,96,44,1,5,19,3,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,663,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,5,6,22,2,1,5,-394,-394,664,665,-394,5,6,22,3,5,1,-85,-85,-85,-85,-85,6,20,16,3,3,17,42,667,465,467,666,464,96,8,6,22,3,5,2,13,2,101,-90,-90,-90,-90,668,-304,-304,-304,6,6,22,3,5,1,1,-93,-93,-93,-93,-93,669,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,130,131,-56,126,127,128,-56,-56,129,-56,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,27,6,117,100,670,101,3,23,68,1,671,170,107,3,20,19,62,672,673,96,6,17,4,15,16,1,58,-330,674,-330,429,430,431,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,676,675,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,677,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,51,3,1,2,1,678,679,680,681,682,1,51,683,1,51,684,4,54,1,2,1,361,362,364,365,4,17,37,1,2,685,368,369,370,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,2,6,31,108,686,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,687,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,10,5,4,3,5,10,4,17,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,57,10,5,4,3,5,10,4,17,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,491,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,5,6,25,5,1,105,-251,-251,-251,-251,-251,2,36,106,689,688,115,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,3,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-395,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,-395,-395,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-395,691,690,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,6,30,1,105,692,-252,-252,-252,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,6,6,24,1,5,1,108,-394,490,489,-394,-394,693,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,487,486,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,25,5,1,75,30,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,694,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,695,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,142,-218,-218,-218,-218,-218,-218,-218,-218,-218,696,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,2,102,1,697,268,2,102,1,698,268,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,699,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,23,68,1,700,170,107,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,28,31,88,37,6,1,24,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,702,701,484,703,483,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,3,1,6,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,704,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,705,94,95,89,41,42,90,91,86,87,88,83,101,484,84,85,510,483,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,119,706,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,707,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-317,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-317,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,708,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,709,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,88,-394,710,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,712,514,515,5,6,25,5,1,87,-294,-294,-294,-294,-294,7,6,25,5,1,14,73,30,-298,-298,-298,-298,714,-298,713,7,6,25,5,1,14,73,30,-302,-302,-302,-302,-302,-302,-302,7,6,25,5,1,14,73,30,-303,-303,-303,-303,-303,-303,-303,5,6,24,1,5,88,-394,715,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,716,514,515,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,4,1,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,717,718,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,719,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,3,6,22,8,721,720,722,25,6,14,3,5,8,1,47,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,-395,300,103,-395,-395,-395,296,294,102,104,170,107,105,106,96,301,268,302,298,297,723,292,293,295,299,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,724,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,725,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,726,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,727,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,728,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,154,729,24,142,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,730,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,731,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,44,30,5,1,1,4,3,6,-274,-274,-274,-274,-274,-276,142,-276,-276,-276,-276,-276,732,13,6,22,3,5,1,44,30,5,1,1,4,3,6,-275,-275,-275,-275,-275,737,142,734,735,736,738,739,733,12,6,22,3,5,1,44,30,5,1,1,4,3,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,12,6,22,3,5,1,44,30,5,1,1,4,3,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,12,6,22,3,5,1,44,30,5,1,1,4,3,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,12,6,22,3,5,1,44,30,5,1,1,4,3,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,4,111,5,2,13,142,261,262,740,2,111,20,142,741,5,6,22,2,1,5,-394,-394,742,526,-394,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,5,91,1,2,2,4,-137,-137,-137,-137,-137,2,6,91,108,743,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,744,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,91,1,2,2,4,-140,-140,-140,-140,-140,61,1,5,22,3,1,4,1,44,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,745,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,747,177,335,336,28,29,30,31,73,32,65,54,71,103,100,76,746,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,748,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,749,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,750,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,751,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,214,752,1,216,753,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,754,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,755,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,756,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,757,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,76,759,760,758,111,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,2,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-395,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-395,-395,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,-395,92,93,94,95,89,41,42,90,91,86,87,88,83,761,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,1,-394,762,561,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-147,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,763,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-149,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,764,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,765,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,136,137,-186,766,-186,-230,-230,-230,-186,-230,-230,-186,-230,140,-186,-186,-186,-186,-186,141,389,390,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-152,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,767,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,768,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,770,769,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,771,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,772,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,773,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,774,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-160,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,130,131,-172,126,127,128,-172,-172,129,-172,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,775,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,776,777,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,20,164,778,3,135,1,1,779,90,91,6,6,25,5,1,75,22,-334,-334,-334,-334,-334,-334,13,20,7,6,68,6,7,26,1,9,6,8,1,1,157,100,159,96,158,160,162,161,101,155,780,154,156,18,6,14,7,4,2,3,1,64,6,7,19,7,1,9,6,8,1,1,-332,157,100,-332,159,-332,-332,96,158,160,781,162,161,101,155,153,154,156,29,6,25,5,1,75,22,53,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,7,6,25,5,1,14,61,22,-343,-343,-343,-343,-343,-343,-343,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,5,2,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,782,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-163,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-159,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-165,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,783,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,784,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,2,36,20,164,785,2,36,20,164,786,2,36,20,164,787,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,130,131,-444,126,127,128,-444,-444,129,-444,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,27,36,20,131,1,1,5,3,1,12,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,788,130,131,790,126,127,128,129,789,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,791,130,131,792,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,793,130,131,794,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,795,130,131,796,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,797,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,798,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,799,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,4,212,2,2,2,-495,-495,-495,-495,4,37,157,13,1,800,801,623,422,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,2,36,20,164,802,3,37,157,14,-456,-456,-456,3,31,5,20,804,164,803,25,31,5,151,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,805,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,806,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,44,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,164,-17,807,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,3,17,19,20,809,164,808,3,17,19,20,811,164,810,5,6,24,1,5,76,-394,382,381,-394,812,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,2,36,20,164,813,3,17,19,20,815,164,814,3,17,19,20,817,164,816,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,44,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,164,-357,818,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-357,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,819,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,109,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,3,1,1,1,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-368,443,444,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-368,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,820,445,446,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,25,6,31,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,2,6,31,-372,-372,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,821,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,1,25,822,6,20,9,6,1,3,62,456,823,454,455,457,96,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,824,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,3,23,68,1,825,170,107,3,6,22,8,827,826,828,8,6,14,8,7,1,1,2,62,-395,456,-395,829,-395,-395,457,96,5,6,24,1,5,1,-394,830,654,-394,-394,2,20,81,831,96,2,20,81,832,96,3,23,68,1,833,170,107,3,23,68,1,834,170,107,1,25,835,5,6,22,2,1,5,-394,-394,836,654,-394,1,25,-45,3,23,68,1,837,170,107,3,6,22,8,839,838,840,8,6,14,8,8,1,2,20,42,-395,667,-395,-395,-395,467,841,96,5,6,24,1,5,1,-394,842,665,-394,-394,6,6,22,3,5,1,1,-90,-90,-90,-90,-90,668,3,20,19,62,843,844,96,2,20,81,845,96,1,37,846,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,1,25,847,1,25,848,3,17,19,20,849,164,629,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,130,131,-63,126,127,128,-63,-63,129,-63,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,850,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,851,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,853,852,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,854,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,856,855,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,857,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,859,858,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,860,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,862,861,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,863,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,865,864,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,866,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,867,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,869,868,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,870,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,54,1,2,577,578,579,1,185,871,24,142,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,872,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,493,873,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,105,-246,-246,-246,-246,-246,112,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,-253,-253,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-253,487,486,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,111,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,3,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,493,874,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,1,689,875,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,876,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,877,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,878,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,879,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-315,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-315,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,27,37,119,6,1,24,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,880,484,703,483,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,1,37,881,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,25,37,82,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,882,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,883,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,88,885,886,884,10,6,14,16,1,64,1,1,21,36,1,-395,516,-395,-395,96,517,268,-395,887,515,5,6,24,1,5,1,-394,888,711,-394,-394,5,20,81,1,1,58,516,96,517,268,889,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,890,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,88,885,886,891,5,6,24,1,5,1,-394,892,711,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,3,36,20,136,164,894,893,2,36,20,164,895,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,21,20,3,61,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,300,103,296,294,102,104,170,107,105,106,96,301,268,302,298,297,896,292,293,295,299,26,6,14,3,8,5,1,47,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,300,103,-260,-260,-260,296,294,102,104,170,107,105,106,96,301,268,302,298,297,897,291,292,293,295,299,5,6,22,3,5,1,-262,-262,-262,-262,-262,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,898,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,899,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,900,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,901,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,117,-309,-309,-309,-309,-309,-309,24,142,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,902,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,12,6,22,3,5,1,44,30,5,1,1,4,3,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,12,6,22,3,5,1,44,30,5,1,1,4,3,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,2,102,1,903,268,2,102,1,904,268,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,905,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,906,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,12,6,22,3,5,1,44,30,5,1,1,4,3,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,8,20,16,65,1,1,20,37,1,516,908,96,517,268,907,514,515,8,20,16,65,1,1,20,37,1,516,910,96,517,268,909,514,515,12,6,22,3,5,1,44,30,5,1,1,4,3,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,12,6,22,3,5,1,44,30,5,1,1,4,3,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,3,6,22,8,721,911,722,5,91,1,2,2,4,-138,-138,-138,-138,-138,2,6,31,108,912,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-505,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,913,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,130,131,-430,126,-430,-430,-430,-430,129,-430,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-430,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,914,-478,-478,-478,-478,-478,-478,915,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-478,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,916,-483,-483,-483,-483,-483,-483,-483,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-483,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,917,-487,-487,-487,-487,-487,-487,-487,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-487,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,918,-491,-491,-491,-491,-491,-491,-491,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-491,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,919,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,920,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-411,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-413,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-412,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-414,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,107,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,921,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,922,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,75,-388,-388,-388,-388,-388,3,6,30,1,759,760,923,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-150,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,924,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,925,926,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-153,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,927,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-155,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,928,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,929,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-385,-385,-187,-385,-187,-385,-385,-385,-187,-385,-385,-187,-385,-187,-187,-187,-187,-187,-385,-385,-385,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,5,6,24,1,5,76,-394,930,561,-394,-394,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,36,20,164,931,6,6,25,5,1,75,22,-335,-335,-335,-335,-335,-335,5,6,24,1,5,1,-394,932,381,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-166,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,933,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,934,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,935,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,936,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,937,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,938,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,939,130,131,940,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,941,130,131,942,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,2,36,20,164,943,1,37,944,4,6,31,157,14,945,-457,-457,-457,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,946,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,2,36,20,164,947,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,2,36,20,164,948,2,17,19,-331,-331,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,2,36,20,164,949,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,2,36,20,164,950,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,2,6,31,-367,-367,3,27,6,117,100,951,101,3,23,68,1,952,170,107,5,6,22,2,1,5,-394,-394,953,654,-394,3,27,6,117,100,954,101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,1,25,955,4,20,15,4,62,456,956,457,96,6,20,9,6,1,3,62,456,957,454,455,457,96,5,6,22,3,5,1,-36,-36,-36,-36,-36,3,6,30,1,827,828,958,5,6,22,3,5,1,-41,-41,-41,-41,-41,5,6,22,3,5,1,-43,-43,-43,-43,-43,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,3,23,68,1,959,170,107,3,6,22,8,827,960,828,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,44,1,5,19,3,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,961,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,4,20,19,20,42,667,467,962,96,6,20,16,3,3,17,42,667,465,467,963,464,96,5,6,22,3,5,1,-86,-86,-86,-86,-86,3,6,30,1,839,840,964,5,6,22,3,5,1,-91,-91,-91,-91,-91,5,6,22,3,5,1,-92,-92,-92,-92,-92,5,6,22,3,5,1,-94,-94,-94,-94,-94,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,3,23,68,1,965,170,107,3,23,68,1,966,170,107,2,36,20,164,807,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,130,131,-64,126,127,128,-64,-64,129,-64,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,967,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,130,131,-66,126,127,128,-66,-66,129,-66,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,968,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,969,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,130,131,-73,126,127,128,-73,-73,129,-73,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,970,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,971,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,130,131,-76,126,127,128,-76,-76,129,-76,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,972,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,130,131,-79,126,127,128,-79,-79,129,-79,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,973,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,974,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,130,131,-82,126,127,128,-82,-82,129,-82,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,975,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,130,131,-69,126,127,128,-69,-69,129,-69,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,130,131,-70,126,127,128,-70,-70,129,-70,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,976,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,977,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,6,6,24,1,5,1,108,-394,490,489,-394,-394,978,5,6,25,5,1,105,-247,-247,-247,-247,-247,5,6,25,5,1,105,-248,-248,-248,-248,-248,1,119,979,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,980,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,37,82,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,1,119,981,1,119,982,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,983,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,6,20,81,1,1,57,1,516,96,517,268,984,515,7,20,81,1,1,20,37,1,516,96,517,268,985,514,515,5,6,25,5,1,87,-295,-295,-295,-295,-295,3,6,30,1,885,886,986,6,6,25,5,1,14,73,-299,-299,-299,-299,987,-299,28,6,25,5,1,87,63,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,3,6,30,1,885,886,988,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,989,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,5,6,22,3,5,1,-263,-263,-263,-263,-263,5,6,24,1,5,1,-394,990,526,-394,-394,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,991,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,992,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,993,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,117,-310,-310,-310,-310,-310,-310,12,6,22,3,5,1,44,30,5,1,1,4,3,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,12,6,22,3,5,1,44,30,5,1,1,4,3,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,994,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,995,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,88,-394,996,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,997,514,515,5,6,24,1,5,88,-394,998,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,999,514,515,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,1,97,1000,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1001,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1002,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1003,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1004,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1005,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1006,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,1007,-485,-485,-485,-485,-485,-485,-485,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-485,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,1008,-489,-489,-489,-489,-489,-489,-489,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-489,5,6,25,5,1,75,-389,-389,-389,-389,-389,5,6,24,1,5,1,-394,1009,561,-394,-394,5,6,25,5,1,75,-390,-390,-390,-390,-390,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-385,-385,-188,-385,-188,-385,-385,-385,-188,-385,-385,-188,-385,-188,-188,-188,-188,-188,-385,-385,-385,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,5,6,24,1,5,76,-394,1010,561,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-156,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1011,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,6,30,76,759,760,1012,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,3,6,30,1,590,591,1013,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1014,130,131,1015,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,6,3,1,12,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1016,130,131,126,127,128,129,1017,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1018,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1019,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1020,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1021,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1022,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,1023,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,3,37,157,14,-458,-458,-458,25,31,5,151,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,1024,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,3,6,22,8,827,1025,828,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,3,23,68,1,1026,170,107,5,6,22,3,5,1,-37,-37,-37,-37,-37,5,6,24,1,5,1,-394,1027,654,-394,-394,5,6,22,3,5,1,-38,-38,-38,-38,-38,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,1,25,1028,3,23,68,1,1029,170,107,5,6,22,3,5,1,-87,-87,-87,-87,-87,5,6,24,1,5,1,-394,1030,665,-394,-394,5,6,22,3,5,1,-88,-88,-88,-88,-88,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,130,131,-67,126,127,128,-67,-67,129,-67,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1031,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,130,131,-74,126,127,128,-74,-74,129,-74,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1032,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,130,131,-77,126,127,128,-77,-77,129,-77,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,130,131,-80,126,127,128,-80,-80,129,-80,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1033,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,130,131,-83,126,127,128,-83,-83,129,-83,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,130,131,-71,126,127,128,-71,-71,129,-71,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1034,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,2,36,1,689,1035,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,119,1036,5,6,25,5,1,87,-296,-296,-296,-296,-296,5,6,24,1,5,1,-394,1037,711,-394,-394,1,124,1038,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1039,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,124,1040,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1041,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,6,30,1,721,722,1042,5,6,22,3,5,1,-268,-268,-268,-268,-268,5,6,22,3,5,1,-271,-271,-271,-271,-271,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1043,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,12,6,22,3,5,1,44,30,5,1,1,4,3,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1044,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,6,30,88,885,886,1045,5,6,24,1,5,1,-394,1046,711,-394,-394,3,6,30,88,885,886,1047,5,6,24,1,5,1,-394,1048,711,-394,-394,5,91,1,2,2,4,-139,-139,-139,-139,-139,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,1049,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-479,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,1050,-480,-480,-480,-480,-480,-480,-480,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-480,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-484,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-488,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-492,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1051,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1052,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,1,759,760,1053,3,6,30,76,759,760,1054,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-386,-386,-189,-386,-189,-386,-386,-386,-189,-386,-386,-189,-386,-189,-189,-189,-189,-189,-386,-386,-386,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,6,6,25,5,1,75,22,-336,-336,-336,-336,-336,-336,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1055,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1056,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1057,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1058,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,3,27,6,117,100,1059,101,1,25,1060,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,1061,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,3,6,30,1,827,828,1062,3,23,68,1,1063,170,107,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,3,6,30,1,839,840,1064,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,5,6,25,5,1,105,-249,-249,-249,-249,-249,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,3,6,30,1,885,886,1065,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,28,6,25,5,1,87,63,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,4,1,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,1066,718,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,5,6,22,3,5,1,-264,-264,-264,-264,-264,5,6,22,3,5,1,-273,-273,-273,-273,-273,1,119,1067,12,6,22,3,5,1,44,30,5,1,1,4,3,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,3,6,30,1,885,886,1068,12,6,22,3,5,1,44,30,5,1,1,4,3,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,3,6,30,1,885,886,1069,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1070,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1071,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-486,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-490,5,6,25,5,1,75,-391,-391,-391,-391,-391,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-386,-386,-190,-386,-190,-386,-386,-386,-190,-386,-386,-190,-386,-190,-190,-190,-190,-190,-386,-386,-386,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1072,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1073,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,3,23,68,1,1074,170,107,3,27,6,117,100,1075,101,5,6,22,3,5,1,-39,-39,-39,-39,-39,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,5,6,22,3,5,1,-89,-89,-89,-89,-89,5,6,25,5,1,87,-297,-297,-297,-297,-297,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,12,6,22,3,5,1,44,30,5,1,1,4,3,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,1,124,1076,1,124,1077,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-481,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-482,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,1078,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,12,6,22,3,5,1,44,30,5,1,1,4,3,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,12,6,22,3,5,1,44,30,5,1,1,4,3,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,3,27,6,117,100,1079,101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30],t=[],r=0,i,n,s,a;while(r","ArrowKind → =>","DoIife → DO_IIFE Code","This → THIS","This → @","ThisProperty → @ Property","ThisProperty → @ STRING","Array → [ ]","Array → [ Elisions ]","Array → [ ArgElisionList OptElisions ]","ArgElisionList → ArgElision","ArgElisionList → ArgElisionList , ArgElision","ArgElisionList → ArgElisionList OptComma TERMINATOR ArgElision","ArgElisionList → INDENT ArgElisionList OptElisions OUTDENT","ArgElisionList → ArgElisionList OptElisions INDENT ArgElisionList OptElisions OUTDENT","ArgElision → Arg","ArgElision → Elisions Arg","OptElisions → OptComma","OptElisions → , Elisions","Elisions → Elision","Elisions → Elisions Elision","Elision → ,","Elision → Elision TERMINATOR","Object → { AssignList OptComma }","Object → MAP_START { AssignList OptComma }","AssignList → ε","AssignList → AssignObj","AssignList → AssignList , AssignObj","AssignList → AssignList OptComma TERMINATOR AssignObj","AssignList → AssignList OptComma INDENT AssignList OptComma OUTDENT","AssignObj → ObjAssignable","AssignObj → ObjRestValue","AssignObj → ObjAssignable : Expression","AssignObj → ObjAssignable : INDENT Expression OUTDENT","AssignObj → Regex : Expression","AssignObj → SimpleObjAssignable = Expression","AssignObj → SimpleObjAssignable = INDENT Expression OUTDENT","AssignObj → SimpleObjAssignable VOID_MARKER : Expression","AssignObj → SimpleObjAssignable VOID_MARKER : INDENT Expression OUTDENT","ObjRestValue → ... SimpleObjAssignable","ObjRestValue → ... ObjSpreadExpr","ObjSpreadExpr → SimpleObjAssignable","ObjSpreadExpr → Object","ObjSpreadExpr → Parenthetical","ObjSpreadExpr → Super","ObjSpreadExpr → This","ObjSpreadExpr → SUPER Arguments","ObjSpreadExpr → DYNAMIC_IMPORT Arguments","ObjSpreadExpr → SimpleObjAssignable Arguments","ObjSpreadExpr → ObjSpreadExpr Arguments","ObjSpreadExpr → ObjSpreadExpr . Property","ObjSpreadExpr → ObjSpreadExpr ?. Property","ObjSpreadExpr → ObjSpreadExpr INDEX_START Expression INDEX_END","ObjSpreadExpr → ObjSpreadExpr INDEX_START INDENT Expression OUTDENT INDEX_END","ObjSpreadExpr → ObjSpreadExpr DAMMIT","ObjSpreadExpr → ObjSpreadExpr PICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr PICK_START INDENT PickList OptComma OUTDENT PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START INDENT PickList OptComma OUTDENT PICK_END","PickList → PickItem","PickList → PickList , PickItem","PickList → PickList OptComma TERMINATOR PickItem","PickList → PickList OptComma INDENT PickList OptComma OUTDENT","PickItem → PickKey","PickItem → PickKey : PickKey","PickItem → PickKey = Expression","PickItem → PickKey : PickKey = Expression","PickKey → Identifier","PickKey → Property","SimpleObjAssignable → Identifier","SimpleObjAssignable → Property","SimpleObjAssignable → ThisProperty","ObjAssignable → SimpleObjAssignable","ObjAssignable → Atom","ObjAssignable → [ Expression ]","ObjAssignable → @ [ Expression ]","RangeDots → ..","RangeDots → ...","Range → [ Expression RangeDots Expression ]","Slice → Expression RangeDots Expression","Slice → Expression RangeDots","Slice → RangeDots Expression","Slice → RangeDots","Def → DEF Identifier OptParams Block","Def → DEF Identifier OptParams TYPE Block","Def → DEF Identifier TYPE_PARAMS OptParams Block","Def → DEF Identifier TYPE_PARAMS OptParams TYPE Block","Def → DEF Identifier VOID_MARKER OptParams Block","Def → DEF Identifier VOID_MARKER OptParams TYPE Block","Def → DEF ThisProperty OptParams Block","Def → DEF ThisProperty OptParams TYPE Block","Def → DEF ThisProperty TYPE_PARAMS OptParams Block","Def → DEF ThisProperty TYPE_PARAMS OptParams TYPE Block","Def → DEF ThisProperty VOID_MARKER OptParams Block","Def → DEF ThisProperty VOID_MARKER OptParams TYPE Block","OptParams → ε","OptParams → CALL_START ParamList CALL_END","ParamList → ε","ParamList → Param","ParamList → ParamList , Param","ParamList → ParamList OptComma TERMINATOR Param","ParamList → ParamList OptComma INDENT ParamList OptComma OUTDENT","Param → TypedParamVar","Param → TypedParamVar = Expression","Param → ... TypedParamVar","Param → ...","TypedParamVar → ParamVar","TypedParamVar → ParamVar TYPE","TypedParamVar → ParamVar OPT_MARKER TYPE","TypedParamVar → ParamVar OPT_MARKER","ParamVar → Identifier","ParamVar → Array","ParamVar → Object","ParamVar → ThisProperty","Splat → ... Expression","ClassName → Identifier","Class → CLASS","Class → CLASS Block","Class → CLASS EXTENDS Expression","Class → CLASS EXTENDS Expression Block","Class → CLASS ClassName","Class → CLASS ClassName Block","Class → CLASS ClassName EXTENDS Expression","Class → CLASS ClassName EXTENDS Expression Block","Class → CLASS ThisProperty Block","Class → CLASS ThisProperty EXTENDS Expression Block","Enum → ENUM Identifier Block","Schema → SCHEMA SCHEMA_BODY","Component → COMPONENT ComponentBlock","Component → COMPONENT EXTENDS Expression ComponentBlock","ComponentBlock → INDENT ComponentBody OUTDENT","ComponentBody → ComponentLine","ComponentBody → ComponentBody TERMINATOR ComponentLine","ComponentBody → ComponentBody TERMINATOR","ComponentLine → Expression","ComponentLine → Statement","ComponentLine → OFFER Expression","ComponentLine → ACCEPT IDENTIFIER","Render → RENDER Block","Render → RENDER Expression","Super → SUPER . Property","Super → SUPER INDEX_START Expression INDEX_END","Super → SUPER INDEX_START INDENT Expression OUTDENT INDEX_END","Invocation → Value Arguments","Invocation → SUPER Arguments","Invocation → Value ES6_OPTIONAL_CALL Arguments","Invocation → Value ? Arguments","Invocation → Value PRESENCE Arguments","Invocation → DYNAMIC_IMPORT Arguments","Invocation → DYNAMIC_IMPORT DAMMIT Arguments","Arguments → CALL_START CALL_END","Arguments → CALL_START ArgList OptComma CALL_END","ArgList → Arg","ArgList → ArgList , Arg","ArgList → ArgList OptComma TERMINATOR Arg","ArgList → INDENT ArgList OptComma OUTDENT","ArgList → ArgList OptComma INDENT ArgList OptComma OUTDENT","Arg → Expression","Arg → Splat","OptComma → ε","OptComma → ,","Block → INDENT OUTDENT","Block → INDENT Body OUTDENT","Parenthetical → ( Body )","Parenthetical → ( INDENT Body OUTDENT )","Return → RETURN Expression","Return → RETURN INDENT Object OUTDENT","Return → RETURN","While → WHILE Expression Block","While → UNTIL Expression Block","While → WHILE Expression WHEN Expression Block","While → UNTIL Expression WHEN Expression Block","While → Expression WHILE Expression","While → Statement WHILE Expression","While → Expression UNTIL Expression","While → Statement UNTIL Expression","While → Expression WHILE Expression WHEN Expression","While → Statement WHILE Expression WHEN Expression","While → Expression UNTIL Expression WHEN Expression","While → Statement UNTIL Expression WHEN Expression","While → Loop","IfBlock → IF Expression Block","IfBlock → IF Expression Block IfElseTail","IfElseTail → ELSE IF Expression Block","IfElseTail → ELSE IF Expression Block IfElseTail","IfElseTail → ELSE Block","UnlessBlock → UNLESS Expression Block","UnlessBlock → UNLESS Expression Block ELSE Block","If → IfBlock","If → UnlessBlock","If → Statement POST_IF Expression","If → Expression POST_IF Expression","If → Statement POST_UNLESS Expression","If → Expression POST_UNLESS Expression","If → Expression POST_IF Expression ELSE INDENT Expression OUTDENT","If → Expression POST_IF Expression ELSE Expression","Try → TRY Block","Try → TRY Expression","Try → TRY Expression Catch","Try → TRY Statement","Try → TRY Statement Catch","Try → TRY Block Catch","Try → TRY Block Finalizer","Try → TRY Block Catch Finalizer","Try → TRY Expression Finalizer","Try → TRY Expression Catch Finalizer","Try → TRY Statement Finalizer","Try → TRY Statement Catch Finalizer","Finalizer → FINALLY Block","Finalizer → FINALLY Expression","Catch → CATCH Identifier Block","Catch → CATCH Object Block","Catch → CATCH Array Block","Catch → CATCH Block","Throw → THROW Expression","Throw → THROW INDENT Object OUTDENT","Switch → SWITCH Expression INDENT Cases OUTDENT","Switch → SWITCH Expression INDENT Cases ELSE Block OUTDENT","Switch → SWITCH INDENT Cases OUTDENT","Switch → SWITCH INDENT Cases ELSE Block OUTDENT","Cases → When","Cases → Cases When","When → LEADING_WHEN SimpleArgs Block","When → LEADING_WHEN SimpleArgs Block TERMINATOR","SimpleArgs → Expression","SimpleArgs → SimpleArgs , Expression","For → FOR ForVariables FORIN Expression Block","For → FOR ForVariables FORIN Expression BY Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression BY Expression Block","For → FOR ForVariables FORIN Expression BY Expression WHEN Expression Block","For → FOR ForVariables FOROF Expression Block","For → FOR ForVariables FOROF Expression WHEN Expression Block","For → FOR OWN ForVariables FOROF Expression Block","For → FOR OWN ForVariables FOROF Expression WHEN Expression Block","For → FOR ForVariables FORAS Expression Block","For → FOR ForVariables FORAS Expression WHEN Expression Block","For → FOR AWAIT ForVariables FORAS Expression Block","For → FOR AWAIT ForVariables FORAS Expression WHEN Expression Block","For → FOR ForVariables FORASAWAIT Expression Block","For → FOR ForVariables FORASAWAIT Expression WHEN Expression Block","For → FOR Range Block","For → FOR Range BY Expression Block","For → Expression FOR ForVariables FORIN Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression","For → Expression FOR ForVariables FORIN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression BY Expression WHEN Expression","For → Expression FOR ForVariables FOROF Expression","For → Expression FOR ForVariables FOROF Expression WHEN Expression","For → Expression FOR OWN ForVariables FOROF Expression","For → Expression FOR OWN ForVariables FOROF Expression WHEN Expression","For → Expression FOR ForVariables FORAS Expression","For → Expression FOR ForVariables FORAS Expression WHEN Expression","For → Expression FOR AWAIT ForVariables FORAS Expression","For → Expression FOR AWAIT ForVariables FORAS Expression WHEN Expression","For → Expression FOR ForVariables FORASAWAIT Expression","For → Expression FOR ForVariables FORASAWAIT Expression WHEN Expression","ForValue → ParamVar","ForVariables → ForValue","ForVariables → ForValue , ForValue","Loop → LOOP Block","Loop → LOOP Expression Block","Operation → -- SimpleAssignable","Operation → ++ SimpleAssignable","Operation → SimpleAssignable --","Operation → SimpleAssignable ++","Operation → Value ?","Operation → Value PRESENCE","Operation → Expression CAST","Operation → Expression TERNARY Expression : Expression","Operation → UNARY Expression","Operation → DO Expression","Operation → UNARY_MATH Expression","Operation → AWAIT Expression","Operation → AWAIT INDENT Object OUTDENT","Operation → YIELD","Operation → YIELD Expression","Operation → YIELD INDENT Object OUTDENT","Operation → YIELD FROM Expression","Operation → - Expression","Operation → + Expression","Operation → Expression ** Expression","Operation → Expression + Expression","Operation → Expression - Expression","Operation → Expression MATH Expression","Operation → Expression SHIFT Expression","Operation → Expression & Expression","Operation → Expression ^ Expression","Operation → Expression | Expression","Operation → Expression COMPARE Expression","Operation → Expression MATCH Expression","Operation → Expression RELATION Expression","Operation → Expression && Expression","Operation → Expression || Expression","Operation → Expression ?? Expression","Operation → Expression && Return","Operation → Expression || Return","Operation → Expression ?? Return","Operation → Expression && STATEMENT","Operation → Expression || STATEMENT","Operation → Expression ?? STATEMENT","Operation → Expression THEN Expression","Operation → Expression ELSE Expression","Operation → Expression THEN Return","Operation → Expression ELSE Return","Operation → Expression THEN STATEMENT","Operation → Expression ELSE STATEMENT"],ruleActions:(e,t,r,i)=>{let n=t,s=t.length-1;switch(e){case 1:return["program"];case 2:return["program",...n[s]];case 3:case 35:case 85:case 136:case 250:case 254:case 261:case 294:case 333:case 366:case 387:case 455:case 459:case 494:return[n[s]];case 4:case 36:case 86:case 262:case 295:case 334:case 367:case 388:{let a=n[s-2];return a.push(n[s]),a}break;case 5:case 138:case 173:case 257:case 331:case 368:return n[s-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 40:case 42:case 44:case 90:case 93:case 95:case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 124:case 126:case 127:case 130:case 131:case 132:case 134:case 141:case 142:case 144:case 145:case 168:case 169:case 170:case 171:case 172:case 174:case 175:case 176:case 198:case 199:case 221:case 222:case 223:case 224:case 225:case 230:case 231:case 235:case 236:case 245:case 266:case 276:case 277:case 278:case 279:case 280:case 302:case 303:case 304:case 305:case 306:case 307:case 308:case 337:case 341:case 345:case 346:case 347:case 348:case 350:case 369:case 370:case 392:case 393:case 394:case 395:case 415:case 420:case 423:case 424:case 443:case 493:return n[s];case 14:return["type-decl",n[s]];case 15:case 342:return["typed-var",n[s-1],n[s]];case 16:case 343:return["typed-var",n[s-2],n[s]];case 17:return["def-sig",n[s-2],n[s-1],n[s]];case 18:return["import",n[s]];case 19:case 20:case 31:case 32:return["import",n[s-2],n[s]];case 21:case 33:return["import","{}",n[s]];case 22:case 34:return["import",n[s-4],n[s]];case 23:return["import",n[s-4],n[s-2],n[s]];case 24:return["import",n[s-7],n[s-4],n[s]];case 25:return["import",[n[s-1],n[s]],n[s-2]];case 26:case 27:return["import",n[s-4],[n[s-1],n[s]],n[s-2]];case 28:return["import",n[s-6],[n[s-1],n[s]],n[s-2]];case 29:return["import",n[s-6],n[s-4],[n[s-1],n[s]],n[s-2]];case 30:return["import",n[s-9],n[s-6],[n[s-1],n[s]],n[s-2]];case 37:case 87:case 263:case 296:case 335:case 389:{let a=n[s-3];return a.push(n[s]),a}break;case 38:case 88:case 139:case 386:case 390:return n[s-2];case 39:case 89:case 264:case 297:case 336:case 391:{let a=n[s-5];return a.push(...n[s-2]),a}break;case 41:case 43:case 91:case 92:case 94:case 495:return[n[s-2],n[s]];case 45:return["*",n[s]];case 46:return["export","{}"];case 47:return["export",n[s-2]];case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return["export",n[s]];case 56:return["export-default",n[s]];case 57:return["export-default",n[s-1]];case 58:return["export-all",n[s]];case 59:case 60:return["export-all",n[s],n[s-2]];case 61:return["export-from","{}",n[s]];case 62:return["export-from",n[s-4],n[s]];case 63:case 146:case 158:case 270:return["=",n[s-2],n[s]];case 64:case 66:case 69:case 147:case 149:case 152:case 159:case 160:return["=",n[s-3],n[s]];case 65:case 148:case 271:return["=",n[s-4],n[s-1]];case 67:case 150:case 153:case 155:return["=",n[s-4],n[s]];case 68:case 151:case 154:return["=",n[s-5],n[s-1]];case 70:case 165:return["void-assign",n[s-3],n[s]];case 71:case 166:return["void-assign",n[s-4],n[s]];case 72:case 167:return["void-assign",n[s-5],n[s-1]];case 73:case 178:case 179:return["state",n[s-3],n[s]];case 74:case 180:return["state",n[s-4],n[s]];case 75:return["state",n[s-5],n[s-1]];case 76:case 78:case 182:case 183:return["computed",n[s-3],n[s]];case 77:case 184:return["computed",n[s-4],n[s]];case 79:case 192:case 193:return["readonly",n[s-3],n[s]];case 80:case 194:return["readonly",n[s-4],n[s]];case 81:return["readonly",n[s-5],n[s-1]];case 82:case 84:case 196:return["effect",n[s-3],n[s]];case 83:return["effect",n[s-4],n[s]];case 123:case 289:return["dammit!",n[s-1]];case 125:case 229:return["tagged-template",n[s-2],n[s]];case 128:return"undefined";case 129:return"null";case 133:return["symbol",n[s]];case 135:return["str",...n[s-1]];case 137:case 255:case 456:{let a=n[s-1];return a.push(n[s]),a}break;case 140:return"";case 143:return["here-regex",n[s],...n[s-1]];case 156:return["=",n[s-5],n[s]];case 157:return["=",n[s-6],n[s-1]];case 161:case 314:case 520:case 521:case 525:case 527:return[n[s-1],n[s-2],n[s]];case 162:return[n[s-3],n[s-4],n[s-1]];case 163:return[n[s-2],n[s-3],n[s]];case 164:return[".=",n[s-2],n[s]];case 177:return["state",n[s-2],n[s]];case 181:return["computed",n[s-2],n[s]];case 185:return["gate",n[s-2],n[s]];case 186:return["gate",n[s-3],n[s]];case 187:return["gate",n[s-4],n[s-2]];case 188:return["gate",n[s-5],n[s-2]];case 189:return["gate",n[s-6],n[s-4],...n[s-2]];case 190:return["gate",n[s-7],n[s-4],...n[s-2]];case 191:return["readonly",n[s-2],n[s]];case 195:return["effect",n[s-2],n[s]];case 197:return["effect",null,n[s]];case 200:case 213:case 214:case 226:case 285:return[".",n[s-2],n[s]];case 201:case 227:case 286:return["?.",n[s-2],n[s]];case 202:case 205:case 228:case 287:return["[]",n[s-3],n[s-1]];case 203:case 206:case 288:return["[]",n[s-5],n[s-2]];case 204:return["regex-index",n[s-5],n[s-3],n[s-1]];case 207:return["optindex",n[s-4],n[s-1]];case 208:return["optindex",n[s-6],n[s-2]];case 209:case 290:return[".{}",n[s-4],...n[s-2]];case 210:case 291:return["?.{}",n[s-4],...n[s-2]];case 211:case 292:return[".{}",n[s-6],...n[s-3]];case 212:case 293:return["?.{}",n[s-6],...n[s-3]];case 215:case 216:case 217:case 445:case 446:case 447:case 506:case 508:return[n[s-1],n[s]];case 218:return["await",["new",n[s-1]]];case 219:return["await",["new",[n[s-2],...n[s]]]];case 220:case 282:case 283:case 284:case 378:case 383:return[n[s-1],...n[s]];case 232:return[n[s-1],n[s-3],n[s]];case 233:return[n[s-1],n[s-4],n[s]];case 234:return[n[s-1],[],n[s]];case 237:case 507:return["do-iife",n[s]];case 238:case 239:return"this";case 240:case 241:return[".","this",n[s]];case 242:return["array"];case 243:return["array",...n[s-1]];case 244:return["array",...n[s-2],...n[s-1]];case 246:{let a=n[s-2];return a.push(...n[s]),a}break;case 247:{let a=n[s-3];return a.push(...n[s]),a}break;case 248:return[...n[s-2],...n[s-1]];case 249:{let a=n[s-5];return a.push(...n[s-4],...n[s-2],...n[s-1]),a}break;case 251:return[...n[s-1],n[s]];case 252:case 260:case 330:case 332:case 385:return[];case 253:return[...n[s]];case 256:return null;case 258:return["object",...n[s-2]];case 259:return["map",...n[s-2]];case 265:return[null,n[s],n[s]];case 267:case 269:return[":",n[s-2],n[s]];case 268:return[":",n[s-4],n[s-1]];case 272:return["void-pair",n[s-3],n[s]];case 273:return["void-pair",n[s-5],n[s-1]];case 274:case 275:case 349:return["...",n[s]];case 281:case 379:return["super",...n[s]];case 298:return[n[s],n[s],null];case 299:return[n[s-2],n[s],null];case 300:return[n[s-2],n[s-2],n[s]];case 301:return[n[s-4],n[s-2],n[s]];case 309:return["dynamicKey",n[s-1]];case 310:return["[]","this",n[s-1]];case 311:return"..";case 312:return"...";case 313:return[n[s-2],n[s-3],n[s-1]];case 315:return[n[s],n[s-1],null];case 316:return[n[s-1],null,n[s]];case 317:return[n[s],null,null];case 318:case 324:return["def",n[s-2],n[s-1],n[s]];case 319:case 325:return["def",n[s-3],n[s-2],n[s]];case 320:case 326:return["def",n[s-3],n[s-1],n[s]];case 321:case 327:return["def",n[s-4],n[s-2],n[s]];case 322:case 328:return["void-def",n[s-3],n[s-1],n[s]];case 323:case 329:return["void-def",n[s-4],n[s-2],n[s]];case 338:return["default",n[s-2],n[s]];case 339:return["rest",n[s]];case 340:return["expansion"];case 344:return["typed-var",n[s-1],""];case 351:return["class",null,null];case 352:return["class",null,null,n[s]];case 353:return["class",null,n[s]];case 354:return["class",null,n[s-1],n[s]];case 355:return["class",n[s],null];case 356:case 359:return["class",n[s-1],null,n[s]];case 357:return["class",n[s-2],n[s]];case 358:case 360:return["class",n[s-3],n[s-1],n[s]];case 361:return["enum",n[s-1],n[s]];case 362:return["schema",n[s]];case 363:return["component",null,n[s]];case 364:return["component",n[s-1],n[s]];case 365:case 397:return["block",...n[s-1]];case 371:return["offer",n[s]];case 372:return["accept",n[s]];case 373:case 374:return["render",n[s]];case 375:return[".","super",n[s]];case 376:return["[]","super",n[s-1]];case 377:return["[]","super",n[s-2]];case 380:case 381:return["optcall",n[s-2],...n[s]];case 382:return["dammit?",n[s-2],...n[s]];case 384:return["await",["import",...n[s]]];case 396:return["block"];case 398:return n[s-1].length===1?(Array.isArray(n[s-1][0])&&(n[s-1][0].parenthesized=!0),n[s-1][0]):["block",...n[s-1]];case 399:return n[s-2].length===1?(Array.isArray(n[s-2][0])&&(n[s-2][0].parenthesized=!0),n[s-2][0]):["block",...n[s-2]];case 400:return["return",n[s]];case 401:return["return",n[s-1]];case 402:return["return"];case 403:return["while",n[s-1],n[s]];case 404:return["while",["!",n[s-1]],n[s]];case 405:return["while",n[s-3],n[s-1],n[s]];case 406:return["while",["!",n[s-3]],n[s-1],n[s]];case 407:case 408:return["while",n[s],[n[s-2]]];case 409:case 410:return["while",["!",n[s]],[n[s-2]]];case 411:case 412:return["while",n[s-2],n[s],[n[s-4]]];case 413:case 414:return["while",["!",n[s-2]],n[s],[n[s-4]]];case 416:case 418:return["if",n[s-1],n[s]];case 417:case 419:return["if",n[s-2],n[s-1],n[s]];case 421:return["if",["!",n[s-1]],n[s]];case 422:return["if",["!",n[s-3]],n[s-2],n[s]];case 425:case 426:return["if",n[s],[n[s-2]]];case 427:case 428:return["if",["!",n[s]],[n[s-2]]];case 429:return["?:",n[s-4],n[s-6],n[s-1]];case 430:return["?:",n[s-2],n[s-4],n[s]];case 431:case 432:case 434:return["try",n[s]];case 433:case 435:case 436:case 437:case 439:case 441:return["try",n[s-1],n[s]];case 438:case 440:case 442:return["try",n[s-2],n[s-1],n[s]];case 444:return["block",n[s]];case 448:return[null,n[s]];case 449:return["throw",n[s]];case 450:return["throw",n[s-1]];case 451:return["switch",n[s-3],n[s-1],null];case 452:return["switch",n[s-5],n[s-3],n[s-1]];case 453:return["switch",null,n[s-1],null];case 454:return["switch",null,n[s-3],n[s-1]];case 457:return["when",n[s-1],n[s]];case 458:return["when",n[s-2],n[s-1]];case 460:return[...n[s-2],n[s]];case 461:return["for-in",n[s-3],n[s-1],null,null,n[s]];case 462:return["for-in",n[s-5],n[s-3],n[s-1],null,n[s]];case 463:return["for-in",n[s-5],n[s-3],null,n[s-1],n[s]];case 464:return["for-in",n[s-7],n[s-5],n[s-1],n[s-3],n[s]];case 465:return["for-in",n[s-7],n[s-5],n[s-3],n[s-1],n[s]];case 466:return["for-of",n[s-3],n[s-1],!1,null,n[s]];case 467:return["for-of",n[s-5],n[s-3],!1,n[s-1],n[s]];case 468:return["for-of",n[s-3],n[s-1],!0,null,n[s]];case 469:return["for-of",n[s-5],n[s-3],!0,n[s-1],n[s]];case 470:return["for-as",n[s-3],n[s-1],!1,null,n[s]];case 471:return["for-as",n[s-5],n[s-3],!1,n[s-1],n[s]];case 472:case 474:return["for-as",n[s-3],n[s-1],!0,null,n[s]];case 473:case 475:return["for-as",n[s-5],n[s-3],!0,n[s-1],n[s]];case 476:return["for-in",[],n[s-1],null,null,n[s]];case 477:return["for-in",[],n[s-3],n[s-1],null,n[s]];case 478:return["comprehension",n[s-4],[["for-in",n[s-2],n[s],null]],[]];case 479:return["comprehension",n[s-6],[["for-in",n[s-4],n[s-2],null]],[n[s]]];case 480:return["comprehension",n[s-6],[["for-in",n[s-4],n[s-2],n[s]]],[]];case 481:return["comprehension",n[s-8],[["for-in",n[s-6],n[s-4],n[s]]],[n[s-2]]];case 482:return["comprehension",n[s-8],[["for-in",n[s-6],n[s-4],n[s-2]]],[n[s]]];case 483:return["comprehension",n[s-4],[["for-of",n[s-2],n[s],!1]],[]];case 484:return["comprehension",n[s-6],[["for-of",n[s-4],n[s-2],!1]],[n[s]]];case 485:return["comprehension",n[s-5],[["for-of",n[s-2],n[s],!0]],[]];case 486:return["comprehension",n[s-7],[["for-of",n[s-4],n[s-2],!0]],[n[s]]];case 487:return["comprehension",n[s-4],[["for-as",n[s-2],n[s],!1,null]],[]];case 488:return["comprehension",n[s-6],[["for-as",n[s-4],n[s-2],!1,null]],[n[s]]];case 489:return["comprehension",n[s-5],[["for-as",n[s-2],n[s],!0,null]],[]];case 490:return["comprehension",n[s-7],[["for-as",n[s-4],n[s-2],!0,null]],[n[s]]];case 491:return["comprehension",n[s-4],[["for-as",n[s-2],n[s],!0,null]],[]];case 492:return["comprehension",n[s-6],[["for-as",n[s-4],n[s-2],!0,null]],[n[s]]];case 496:return["loop",n[s]];case 497:return["loop-n",n[s-1],n[s]];case 498:return["--",n[s],!1];case 499:return["++",n[s],!1];case 500:return["--",n[s-1],!0];case 501:return["++",n[s-1],!0];case 502:return["?",n[s-1]];case 503:return["presence",n[s-1]];case 504:return["cast",n[s-1],n[s]];case 505:return["?:",n[s-4],n[s-2],n[s]];case 509:return["await",n[s]];case 510:return["await",n[s-1]];case 511:return["yield"];case 512:return["yield",n[s]];case 513:return["yield",n[s-1]];case 514:return["yield-from",n[s]];case 515:return["-",n[s]];case 516:return["+",n[s]];case 517:return["**",n[s-2],n[s]];case 518:return["+",n[s-2],n[s]];case 519:return["-",n[s-2],n[s]];case 522:return["&",n[s-2],n[s]];case 523:return["^",n[s-2],n[s]];case 524:return["|",n[s-2],n[s]];case 526:return["=~",n[s-2],n[s]];case 528:case 531:case 534:case 537:case 539:case 541:return["&&",n[s-2],n[s]];case 529:case 532:case 535:case 538:case 540:case 542:return["||",n[s-2],n[s]];case 530:case 533:case 536:return["??",n[s-2],n[s]]}},parse(e,{primitives:t=!1,tolerant:r=!1}={}){let i,n,s,a,o,l,c,f,h,u,m,S,g,d,R,b,_,y,p,k,I,A,x,O,G,K,[V,Z,W,j]=[[0],[null],[null],[[]]],q=this.parseTable,t1=1,M=[],N=[],C=24,w=e.length;if(r)while(w>0&&(e[w-1]===` -`||e[w-1]==="\r"))w--;let D=new Set,B=!1,a1=[],h1=[],f1=[],z=new WeakMap,i1=1,X=Object.create(this.lexer),r1={ctx:{}},Q=this.ctx;for(let P in Q){if(!Object.hasOwn(Q,P))continue;let H=Q[P];r1.ctx[P]=H}if(X.setInput(e,r1.ctx),r&&Array.isArray(X.lexDiagnostics))M.push(...X.lexDiagnostics);[r1.ctx.lexer,r1.ctx.parser]=[X,this];let l1=()=>{let P=X.lex()||t1;if(typeof P!=="number")P=this.symbolIds[P]||P;return P},c1=null,F=null,J={},o1=()=>{f=[];let P=q[K];for(let H in P){if(!Object.hasOwn(P,H))continue;if(this.tokenNames[H]&&+H>2){if(!f.includes(this.tokenNames[H]))f.push(this.tokenNames[H])}}return f},n1=[this.symbolIds.INDENT,this.symbolIds.OUTDENT,this.symbolIds.TERMINATOR],v=()=>{if(c1===t1)return"end of input";let P=this.tokenNames[c1]||c1,H=X.text,s1=typeof H==="string"&&H.trim().length>0&&H.length<=24&&!n1.includes(c1)&&!/^["'`]/.test(H);if(s1&&X.token?.generated)return`implicit '${H}'`;return s1?`'${H}'`:`'${P}'`};while(!0){if(K=V[V.length-1],c1==null)if(N.length>0)y=N.shift(),c1=y.symbol,F=y.loc,X.text=y.text,X.loc=y.loc,X.token=y.token;else c1=l1(),F=c1===t1?{start:e.length,end:e.length}:X.loc??null;if(i=q[K]?.[c1],i==null&&r&&C>0){a=c1===t1?w:F?.start??w,k=(P=null)=>{if(B)return;if(B=!0,u=v(),f=P!=null?[this.tokenNames[P]||P]:o1(),R=`Unexpected ${u}`,f.length)R+=` — expected ${f.join(", ")}`;return M.push({message:R,start:a,end:F?.end??a,expected:f,got:u})},n=c1===t1||X.token?.generated,m=function(P){return`${V.length}:${K}:${P}`},S=null;for(let P of this.repairTable[K]??[]){if(D.has(m(P)))continue;if(n||P===this.symbolIds.TERMINATOR){S=P;break}}if(S!=null)k(S),C--,D.add(m(S)),N.unshift({symbol:c1,loc:F,text:X.text,token:X.token}),c1=S,F={start:a,end:a},X.text="",X.loc=F,X.token={generated:!0,hole:!0},i=q[K]?.[c1];else if(c1!==t1){if(k(),C--,!X.token?.hole)D.clear();c1=null;continue}}if(i==null){if(f=o1(),u=v(),G=F?.start??0,c=F?.end??G,R=`Unexpected ${u}`,f.length)R+=` — expected ${f.join(", ")}`;return M.push({message:R,start:G,end:c,expected:f,got:u}),{sexpr:null,stores:null,diagnostics:M,trivia:X.trivia??null,tokens:X.tokens??null}}if(i>0){if(r&&!X.token?.hole)D.clear();if(V.push(c1,i),Z.push(X.text),W.push(X.loc??null),t)j.push(Array.isArray(X.text?.primitiveSpans)?X.text.primitiveSpans:X.loc!=null?[{value:X.text,sourceStart:X.loc.start,sourceEnd:X.loc.end}]:[]);c1=null}else if(i<0){if(this.ctx?.onReduce)this.ctx.onReduce(-i);if(d=this.ruleTable[-i*2+1],O=(()=>{if(d)return h=W[W.length-d],g=W[W.length-1],{start:h?.start??0,end:g?.end??(h?.end??0)};else return s=F?.start??(W[W.length-1]?.end??0),{start:s,end:s}})(),J.$=Z[Z.length-(d||1)],J._$=O,p=this.ruleActions.call(J,-i,Z,W,r1.ctx),p!=null)J.$=p;if(o=Z.length-d,l=[],t)for(let P of this.primitiveRefs[-i])l.push(...j[o+P-1]??[]);if(b=J.$,Array.isArray(b)&&z.has(b)&&this.accumulators[-i])A=a1[z.get(b)-1],A.sourceStart=O.start,A.sourceEnd=O.end;if(Array.isArray(b)&&!z.has(b))x=this.semantics[-i],o=Z.length-d,I=(P,H,s1,L,U)=>{let e1,d1,b1,m1,R1,E1,A1=[],k1=1/0,w1=-1/0;for(let y1 of L){e1=P;for(let S1 of y1.path)e1=e1[S1];if(!(Array.isArray(e1)&&!z.has(e1)))throw Error(`parse: nested annotation '${y1.role}' of rule ${-i} does not address a fresh array`);d1=I(e1,y1.kind,y1.roles,y1.nested,null),A1.push(d1),k1=Math.min(k1,a1[d1-1].sourceStart),w1=Math.max(w1,a1[d1-1].sourceEnd)}for(let y1 of s1)if(y1.grammarRef!=null){if(R1=W[o+y1.grammarRef-1],R1==null)throw Error(`parse: missing loc for grammarRef ${y1.grammarRef} of rule ${-i} — lexer protocol violation`);k1=Math.min(k1,R1.start),w1=Math.max(w1,R1.end)}let p1=U??(k1===1/0?O:{start:k1,end:w1}),x1=i1++;z.set(P,x1),a1.push({nodeId:x1,fileId:0,semanticKind:H,ruleId:-i,sourceStart:p1.start,sourceEnd:p1.end});for(let y1 of s1)if(y1.grammarRef!=null){if(m1=o+y1.grammarRef-1,R1=W[m1],E1={nodeId:x1,role:y1.name,grammarRef:y1.grammarRef,childSlot:y1.childSlot,sourceStart:R1.start,sourceEnd:R1.end,childNodeId:null,fileId:0},y1.spread)E1.spread=!0;else E1.childNodeId=z.get(Z[m1])??null;h1.push(E1)}else h1.push({nodeId:x1,role:y1.name,grammarRef:null,childSlot:y1.childSlot,literal:y1.literal,fileId:0});for(let y1=0;y1{let t=Object.create(Gl);return Object.defineProperty(t,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),t},ms=ds();var Jt=ds,u4=ms.parse.bind(ms);var ps=()=>{throw Error("rip: filesystem access is unavailable in the browser")};class Qt{constructor({nodes:e,roles:t,primitives:r=[],nodeIds:i=null}){this.nodes=e,this.roles=t,this.primitives=r,this.nodeIds=i,this.byId=new Map(e.map((n)=>[n.nodeId,n])),this.rolesByNode=new Map,this.primitivesByValue=new Map;for(let n of t){let s=this.rolesByNode.get(n.nodeId);if(!s)s={list:[],byName:new Map},this.rolesByNode.set(n.nodeId,s);s.list.push(n),s.byName.set(n.role,n)}for(let n of r){let s=this.primitivesByValue.get(n.value);if(!s)this.primitivesByValue.set(n.value,s=[]);s.push(n)}for(let n of this.primitivesByValue.values())n.sort((s,a)=>s.sourceStart-a.sourceStart)}idOf(e){return this.nodeIds?.get(e)??null}alias(e,t){let r=this.nodeIds?.get(t);if(r!=null)this.nodeIds.set(e,r);return e}node(e){return this.byId.get(e)??null}nodesByKind(e){return this.nodes.filter((t)=>t.semanticKind===e)}rolesOf(e){return this.rolesByNode.get(e)?.list??[]}role(e,t){return this.rolesByNode.get(e)?.byName.get(t)??null}primitiveSpans(e,t,r){return(this.primitivesByValue.get(e)??[]).filter((i)=>t<=i.sourceStart&&i.sourceEnd<=r)}selfSpan(e){let t=this.byId.get(e);return t?[t.sourceStart,t.sourceEnd]:null}}var Zt=(e)=>{if(e.length===0)return null;let t=e[e.length>>1].start,r=[],i=[],n=[];for(let s of e){if(Y.on)Y.n++;if(s.end<=t)i.push(s);else if(s.start>t)n.push(s);else r.push(s)}return{center:t,byStart:r,byEnd:[...r].sort((s,a)=>a.end-s.end),left:Zt(i),right:Zt(n)}},Kl=(e,t,r)=>{let i=e;while(i!==null){if(Y.on)Y.n++;if(tt)break;r.push(n)}i=i.left}else if(t>i.center){for(let n of i.byEnd){if(Y.on)Y.n++;if(n.end<=t)break;r.push(n)}i=i.right}else{for(let n of i.byStart){if(Y.on)Y.n++;r.push(n)}break}}return r},un=new Set(["tsDirective","shorthandProp","identifier","literal"]);class pe{constructor(e){this.rows=e,this._genTree=null,this._srcTree=null,this._genCount=-1,this._srcCount=-1}_tree(e){let t=e==="generated";if((t?this._genCount:this._srcCount)!==this.rows.length){let r=[];if(this.rows.forEach((i,n)=>{if(Y.on)Y.n++;let s=t?i.generatedStart:i.sourceStart,a=t?i.generatedEnd:i.sourceEnd;if(s!=null&&si.start-n.start||i.i-n.i),t)this._genTree=Zt(r),this._genCount=this.rows.length;else this._srcTree=Zt(r),this._srcCount=this.rows.length}return t?this._genTree:this._srcTree}_stab(e,t){let r=Kl(this._tree(e),t,[]);return r.sort((i,n)=>i.width-n.width||i.i-n.i),r.map((i)=>this.rows[i.i])}of(e,t){return this.rows.filter((r)=>r.nodeId===e&&r.role===t).sort((r,i)=>r.generatedStart-i.generatedStart)}atGenerated(e){return this._stab("generated",e)}atSource(e){return this._stab("source",e)}static isDirect(e){return e.mappingKind==="exact"||e.mappingKind==="synthetic"}directAtGenerated(e){return this.atGenerated(e).find(pe.isDirect)??null}directAtSource(e){let t=this.atSource(e).filter(pe.isDirect);if(t.length===0)return null;let r=(n)=>n.sourceEnd-n.sourceStart;return t.filter((n)=>r(n)===r(t[0])).find((n)=>!un.has(n.role))??t[0]}zeroWidthExactAtSource(e){if(this._zeroSrcCount!==this.rows.length){this._zeroSrc=new Map;for(let t of this.rows){if(t.mappingKind!=="exact"||t.sourceStart!==t.sourceEnd)continue;let r=this._zeroSrc.get(t.sourceStart);if(r===void 0||t.generatedStarts.mappingKind==="exact"||s.mappingKind==="cover"&&s.role==="$self"&&s.generatedStart!==s.generatedEnd,t=(s)=>s.mappingKind==="exact"?0:1,r=(s)=>s.generatedEnd-s.generatedStart,i=(s)=>s.sourceEnd-s.sourceStart,n=new Map;for(let s of this.rows){if(!e(s))continue;let a=n.get(s.generatedStart);if(!a||t(s)s.generatedStart-a.generatedStart)}}class ge{constructor(e,{source:t=null,primitives:r=!1}={}){this.stores=e,this.source=t,this.trackPrimitives=r,this.chunks=[],this.length=0,this.openMarks=0,this.rows=[],this.exactSourceSpans=new Set,this.markStack=[],this.exactRanges=new Map,this.tsRegions=[],this.tsDepth=0,this.echoSpans=[]}tsOnly(e){let t=this.length;if(this.tsDepth++,e(),this.tsDepth--,this.tsDepth===0&&this.length>t)this.tsRegions.push([t,this.length])}echo(e){let t=this.length;if(e(),this.length>t)this.echoSpans.push([t,this.length])}get currentMark(){return this.markStack[this.markStack.length-1]??null}get offset(){return this.length}get code(){if(this.openMarks>0)return this.chunks.join("");if(this.chunks.length!==1)this.chunks=[this.chunks.join("")],this.exactRanges.clear();return this.chunks[0]}emit(e){return this.chunks.push(e),this.length+=e.length,this}beginMark(e,t){let r,i,n=null;if(t==="$self"){let s=this.stores.node(e);r=s.sourceStart,i=s.sourceEnd}else{let s=this.stores.role(e,t);if("literal"in s)n="synthetic",r=i=this.stores.node(e).sourceStart;else r=s.sourceStart,i=s.sourceEnd}this.openMarks++,this.markStack.push({nodeId:e,role:t,sourceStart:r,sourceEnd:i,mappingKind:n,generatedStart:this.length,chunkStart:this.chunks.length})}endMark(){let e=this.markStack.pop();this.openMarks--;let{mappingKind:t}=e;if(t===null){if(t=this.matchesSource(e)?"exact":"cover",t==="cover"&&ge.NORMALIZED_ROLES.has(e.role))this.layoutTwinSegments(e)}if(this.rows.push({nodeId:e.nodeId,role:e.role,mappingKind:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd,generatedStart:e.generatedStart,generatedEnd:this.length,fileId:0}),this.trackPrimitives&&t==="exact")this.exactSourceSpans.add(`${e.sourceStart}:${e.sourceEnd}`)}static NORMALIZED_ROLES=new Set(["annotation","returnType"]);layoutTwinSegments(e){if(this.source===null)return;let t=e.sourceEnd-e.sourceStart,r=this.length-e.generatedStart;if(t===0||r===0||t>256||r>256)return;let i=this.source.slice(e.sourceStart,e.sourceEnd),n=this.chunks.slice(e.chunkStart).join("");if(i.replace(/\s+/g," ")!==n.replace(/\s+/g," "))return;let s=0,a=0;while(s0)i=i.filter((h)=>!t.some(([u,m])=>h.sourceStart>=u&&h.sourceEnd<=m));if(i.length===0)return null;let n=r.primitiveClaims??(r.primitiveClaims=new Map),s=n.get(e);if(s===void 0)n.set(e,s=new Set);let a=i.filter((h)=>!s.has(h.sourceStart)),o=a.filter((h)=>!this.exactSourceSpans.has(`${h.sourceStart}:${h.sourceEnd}`)),l=o.length>0?o:a,c=l.filter((h)=>h.nodeId===r.nodeId),f=(c.length>0?c:l)[0];if(f===void 0){let h=[...s].pop();if(f=h===void 0?void 0:i.find((u)=>u.sourceStart===h),f===void 0){let u=i.filter((m)=>this.exactSourceSpans.has(`${m.sourceStart}:${m.sourceEnd}`));f=u[u.length-1]}if(f===void 0)return null}if(s.add(f.sourceStart),this.source!==null){let h=this.source.slice(f.sourceStart,f.sourceEnd);if(h!==e&&h.endsWith(e)&&!/[\w$]/.test(h[h.length-e.length-1]??""))return[f.sourceEnd-e.length,f.sourceEnd]}return[f.sourceStart,f.sourceEnd]}matchesSource(e){if(this.source===null)return!1;if(e.sourceStart<0||e.sourceEnd>this.source.length)throw Error(`builder: mark (nodeId ${e.nodeId}, role '${e.role}') has source span [${e.sourceStart}, ${e.sourceEnd}) outside the source text [0, ${this.source.length}) — store-protocol violation`);let t=this.length;if(t-e.generatedStart!==e.sourceEnd-e.sourceStart)return!1;let r=e.sourceStart-e.generatedStart,i=this.exactRanges.get(r),n=i!==void 0&&i.genEnd<=t,s=this.chunks.length,a=e.generatedStart,o=e.chunkStart;while(o=i.genStart&&a{throw Error("rip: schema type story is unavailable in the browser")},bs=()=>!1;var Yl={__proto__:null,maxlength:"maxLength",minlength:"minLength",readonly:"readOnly",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",formaction:"formAction",formenctype:"formEnctype",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",novalidate:"noValidate",crossorigin:"crossOrigin",usemap:"useMap",srclang:"srcLang",inputmode:"inputMode",cellpadding:"cellPadding",cellspacing:"cellSpacing",bgcolor:"bgColor",valign:"vAlign",nowrap:"noWrap",for:"htmlFor",datetime:"dateTime",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",dirname:"dirName",accesskey:"accessKey",enterkeyhint:"enterKeyHint",referrerpolicy:"referrerPolicy",fetchpriority:"fetchPriority",imagesrcset:"imageSrcset",imagesizes:"imageSizes",popovertargetaction:"popoverTargetAction",allowfullscreen:"allowFullscreen"},zl="type __RipClassValue = string | boolean | null | undefined | Record | __RipClassValue[];",ql="/** What a component projects through `slot`: the DOM its parent built for it — an element, a fragment, or a text node — or a value rendered as text. */\n"+"type __RipChildren = Node | string | number | boolean | null;",ys="(...args: (__RipClassValue | __RipClassValue[])[]) => string",Xl=`type __RipAV = E extends Record ? V | string : F; +`))L++;s.push({kind:"comment",start:c,end:L,text:e.slice(c,L)}),c=L;continue}if(v==="$"&&(e[c+1]==='"'||e[c+1]==="'")){let L=n[n.length-1];if(L&&os.has(L.kind)){A("TEMPLATE_TAG","$",c,c+1),c+=1;continue}}if(F1.test(v)){let L=c;while(c{let A1=c;while(e[A1]===" "||e[A1]==="\t")A1++;let k1=e[A1]??"";if(k1==="{"||k1==="*")return!0;if(!F1.test(k1))return!1;let w1=A1+1;while(w1"}[L]??L,m1=e1!==L,b1=1,d1=c+3;while(d10){let w1=e[d1];if(w1==="\\"){d1+=2;continue}if(m1&&w1===L)b1++;if(w1===e1)b1--;if(b1>0)d1++}if(b1!==0)O(`unclosed %w${L} — never closed by '${e1}'`,c,c+3);A("[","[",c,c+3);let R1=/(?:\\\s|\S)+/g;R1.lastIndex=c+3;let E1,A1=!0,k1=c+3;while((E1=R1.exec(e))!==null&&E1.index=d1)break;R1.lastIndex=w1}A("]","]",d1,d1+1),c=d1+1;continue}}let P=e.slice(c,c+4);if(ls[P]){A(ls[P],P,c,c+4),c+=4;continue}let W=e.slice(c,c+3);if(W==="==="||W==="!=="){A("COMPARE",W.slice(0,2),c,c+3),c+=3;continue}if(cs[W]){A(cs[W],W,c,c+3),c+=3;continue}let s1=e.slice(c,c+2);if(s1==="?="&&e[c+2]!=="="){A("COMPOUND_ASSIGN","??=",c,c+2),c+=2;continue}if(s1==="*{"){A("MAP_START","*",c,c+1),c+=1;continue}if(fs[s1]){if(s1==="!="&&!d&&(I()?.kind==="IDENTIFIER"||I()?.kind==="PROPERTY"))k(`cannot use the '!' sigil in an assignment to '${I().value}' (write 'a != b' with a space for comparison)`,c);A(fs[s1],s1,c,c+2),c+=2;continue}if(v==="<"||v===">"){A("COMPARE",v,c,c+1),c++;continue}if(v==="*"||v==="/"||v==="%"){if(v==="*"&&p&&(I()?.kind==="IMPORT"||I()?.kind==="IMPORT_TYPE"||I()?.kind===","))A("IMPORT_ALL",v,c,c+1);else if(v==="*"&&I()?.kind==="EXPORT")A("EXPORT_ALL",v,c,c+1);else A("MATH",v,c,c+1);c++;continue}if(v==="!"||v==="~"){if(v==="!"&&!d&&(I()?.kind==="IDENTIFIER"||I()?.kind==="PROPERTY"||I()?.kind==="DYNAMIC_IMPORT")){A("DAMMIT","!",c,c+1),c++;continue}A("UNARY_MATH",v,c,c+1),c++;continue}if(v==="&"||v==="|"||v==="^"){A(v,v,c,c+1),c++;continue}if(v==="?"){if(!d){if(e[c+1]==="("||e[c+1]==="["){A("?.","?",c,c+1),c++;continue}let L=I();if(e[c+1]==="!"&&L&&!L.generated&&tt.has(L.kind)){A("PRESENCE","?!",c,c+2),c+=2;continue}if(L&&!L.generated&&tt.has(L.kind)){let e1=n[n.length-2]??null,m1=e1===null||e1.kind==="@"||e1.kind==="TERMINATOR"||e1.kind==="INDENT"||e1.kind==="OUTDENT";if((L.kind==="PROPERTY"||L.kind==="IDENTIFIER")&&m1&&/^[^\S\n]*(:=|~=|=!|=(?![=>!])|:(?![:=]))/.test(e.slice(c+1))){A("OPT_MARKER","?",c,c+1),c++;continue}A("?","?",c,c+1),c++;continue}let U=n[n.length-2]??null;if(L&&(L.kind==="-"||L.kind==="+")&&!L.spaced&&(U?.kind==="]"||U?.kind==="INDEX_END")&&e[c+1]===":"){A("?","?",c,c+1),c++;continue}k("unspaced '?' needs a value before it (postfix existence) — write ' ? ' for a ternary",c)}f++,A("TERNARY","?",c,c+1),c++;continue}if(v==="@"){A("@","@",c,c+1),c++;continue}if(v==="("){let L=I();if(L&&!d&&L.kind==="?."){L.kind="ES6_OPTIONAL_CALL",B("call",c),A("CALL_START","(",c,c+1),c++;continue}let U=L&&!d&&!L.generated&&Xt.has(L.kind);B(U?"call":"group",c),A(U?"CALL_START":"(","(",c,c+1),c++;continue}if(v===")"){let L=F();if(L?.kind!=="call"&&L?.kind!=="group")k("unmatched ')'",c);A(L.kind==="call"?"CALL_END":")",")",c,c+1),c++;continue}if(v==="["){let L=I();if(L&&!d&&L.kind==="?."){L.kind="ES6_OPTIONAL_INDEX",B("index",c),A("INDEX_START","[",c,c+1),c++;continue}let U=L&&!d&&!L.generated&&tt.has(L.kind);B(U?"index":"array",c),A(U?"INDEX_START":"[","[",c,c+1),c++;continue}if(v==="]"){let L=F();if(L?.kind!=="index"&&L?.kind!=="array")k("unmatched ']'",c);A(L.kind==="index"?"INDEX_END":"]","]",c,c+1),c++;continue}if(v==="{"){let L=I();if(L!=null&&(L.kind==="."||L.kind==="?.")&&!d&&!L.newLine&&n.length>=2&&tt.has(n[n.length-2].kind)&&n[n.length-2].kind!=="PICK_END")n.pop(),B("object",c,{pick:!0,pickKeys:e[c+1]!==" "&&e[c+1]!=="\t"}),A(L.kind==="?."?"OPTPICK_START":"PICK_START","{",c,c+1);else B("object",c),A("{","{",c,c+1);c++;continue}if(v==="}"){let L=F();if(L?.kind==="interp"){if(A("INTERPOLATION_END",")",c,c+1),c++,L.heregex)w(L.ctx);else M(L.ctx);continue}if(L?.kind!=="object")k("unmatched '}'",c);A(L.pick?"PICK_END":"}","}",c,c+1),c++;continue}if(v===":"&&e[c+1]===":"){if(!f1()&&!z()&&F1.test(e[c+2]??"")){let L=n[n.length-1];if(L?.kind==="?"&&L.end===c)L.kind="?.",L.value="?.",L.end=c+2,A("PROPERTY","prototype",c,c+2),A(".",".",c,c+2);else A(".",".",c,c+2),A("PROPERTY","prototype",c,c+2),A(".",".",c,c+2);c+=2;continue}k("type annotations use a single ':' (e.g. `x: number`), not '::'",c,c+2)}if(v===":"&&F1.test(e[c+1]??"")&&!f1()&&!z()){let L=n[n.length-1];if(!(L!==void 0&&(L.kind==="PROPERTY"||L.kind===")"||L.kind==="]"||L.kind==="}"||L.kind==="CALL_END"||L.kind==="INDEX_END"||L.kind==="PARAM_END"||L.kind==="PICK_END"||L.kind==="STRING"||L.kind==="STRING_END"||L.kind==="NUMBER"||L.kind==="REGEX"||L.kind==="HEREGEX_END"||L.kind==="BOOL"||L.kind==="NULL"||L.kind==="UNDEFINED"||L.kind==="DAMMIT"||L.kind==="?"||L.kind==="PRESENCE"||L.kind==="OPT_MARKER"||L.kind==="THIS"||L.kind==="@"||L.kind==="SYMBOL"||f>0&&L.kind==="IDENTIFIER"))){let e1=jl(e,c+1);A("SYMBOL",e.slice(c+1,e1),c,e1),c=e1;continue}}if(v==="="||v==="+"||v==="-"||v==="."||v===","||v===";"||v===":"){if(v===":"&&f>0)f--;A(v===";"?"TERMINATOR":v,v,c,c+1),c++;continue}if(v==="`"&&(f1()||z())){let L=Q(c);A("TYPE_TEMPLATE",e.slice(c,L),c,L),c=L;continue}k(`cannot tokenize '${v}'`,c)}if(l.length>0){if(!(r&&l.every((W)=>W.kind!=="interp"))){let W=l[0],s1={call:"(",group:"(",index:"[",array:"[",object:"{",interp:"#{"}[W.kind]??W.kind;O(`unclosed '${s1}' — never closed by end of input`,W.at,W.at+s1.length)}let P=e.length;while(P>0&&(e[P-1]===` +`||e[P-1]==="\r"))P--;while(l.length>0){let W=l[l.length-1],s1={call:"(",group:"(",index:"[",array:"[",object:"{"}[W.kind]??W.kind;a.push({message:`unclosed '${s1}' — never closed by end of input`,start:W.at,end:W.at+s1.length,expected:[],got:"end of input"});let L=W.kind==="call"?"CALL_END":W.kind==="group"?")":W.kind==="index"?"INDEX_END":W.kind==="array"?"]":W.pick?"PICK_END":"}";F();let U=n.length;while(U>0&&(n[U-1].kind==="OUTDENT"||n[U-1].kind==="INDENT"||n[U-1].kind==="TERMINATOR"))U--;let e1=n[U-1]?.kind,m1=W.kind==="call"&&e1==="CALL_START"||W.kind==="index"&&e1==="INDEX_START";if(e1===","||m1){let b1={id:y++,kind:"IDENTIFIER",value:"",start:P,end:P,spaced:!1,newLine:!1,generated:!0,origin:null};m.push(b1),n.splice(U,0,b1)}x(L,P)}}let o1=D();while(o.length>1)o.pop(),x("OUTDENT",o1);let n1=()=>y++;Ol(n),Il(n),Cl(n),Ai(n,n1,e,k,r?(v)=>a.push({message:v.reason??String(v.message),start:v.start??0,end:v.end??v.start??0,expected:[],got:""}):null),qt(n,n1,e,k);for(let v of n)if(v.kind==="RESERVED")k(`'${v.value}' is reserved and not supported yet`,v.start);return Gi(n,n1,k),xl(n),Ut(n,n1),hn(n),Vt(n,n1),Wt(n,n1),Dl(n),{tokens:n,trivia:s,source:i,lexDiagnostics:a}}function hn(e){for(let t=0;t"&&o!=="=>"&&o!=="ELSE"&&o!=="TRY"&&o!=="FINALLY"){i=!1;break}}}if(se.has(a))n++;else if(ie.has(a)){if(n--,n<0)break}}if(i)e[t].kind=r==="IF"?"POST_IF":"POST_UNLESS"}return e}function us(e="",{tolerant:t=!1}={}){return{setInput(r){let i=Hl(r,e,{tolerant:t});this.tokens=i.tokens,this.trivia=i.trivia,this.source=i.source,this.lexDiagnostics=i.lexDiagnostics??[],this.index=0,this.text="",this.loc=null,this.token=null},lex(){let r=this.tokens[this.index];if(!r)return null;return this.index++,this.text=r.value,this.loc={start:r.start,end:r.end},this.token=r,r.kind}}}var Gl={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,STATEMENT:10,Import:11,Export:12,TypeDecl:13,Enum:14,TYPE_DECL:15,Assignable:16,TYPE:17,OPT_MARKER:18,DEF:19,Identifier:20,OptParams:21,IMPORT:22,String:23,ImportDefaultSpecifier:24,FROM:25,ImportNamespaceSpecifier:26,"{":27,"}":28,ImportSpecifierList:29,OptComma:30,",":31,WITH:32,Object:33,IMPORT_TYPE:34,ImportSpecifier:35,INDENT:36,OUTDENT:37,AS:38,DEFAULT:39,IMPORT_ALL:40,EXPORT:41,ExportSpecifierList:42,Class:43,Def:44,ExportAssign:45,ReactiveAssign:46,ComputedAssign:47,Readonly:48,Effect:49,EXPORT_ALL:50,"=":51,TYPE_PARAMS:52,VOID_MARKER:53,REACTIVE_ASSIGN:54,COMPUTED_ASSIGN:55,Block:56,READONLY_ASSIGN:57,EFFECT:58,ExportSpecifier:59,Value:60,Code:61,Operation:62,Assign:63,Gate:64,If:65,Try:66,For:67,Switch:68,While:69,Throw:70,Schema:71,Component:72,Render:73,Literal:74,Parenthetical:75,Range:76,Invocation:77,DoIife:78,This:79,Super:80,DAMMIT:81,NewValue:82,TEMPLATE_TAG:83,Atom:84,Regex:85,UNDEFINED:86,NULL:87,BOOL:88,NUMBER:89,SYMBOL:90,STRING:91,STRING_START:92,Interpolations:93,STRING_END:94,InterpolationChunk:95,INTERPOLATION_START:96,INTERPOLATION_END:97,REGEX:98,HEREGEX_START:99,HEREGEX_END:100,IDENTIFIER:101,Property:102,PROPERTY:103,SimpleAssignable:104,COMPOUND_ASSIGN:105,METHOD_ASSIGN:106,Array:107,Rhs:108,BlockRhs:109,GATE:110,CALL_START:111,CALL_END:112,ArgList:113,ThisProperty:114,Subjectable:115,".":116,"?.":117,INDEX_START:118,INDEX_END:119,Slice:120,ES6_OPTIONAL_INDEX:121,PICK_START:122,PickList:123,PICK_END:124,OPTPICK_START:125,IMPORT_META:126,NEW_TARGET:127,NEW:128,NewSpine:129,NewCall:130,Arguments:131,PARAM_START:132,ParamList:133,PARAM_END:134,ArrowKind:135,"->":136,"=>":137,DO_IIFE:138,THIS:139,"@":140,"[":141,"]":142,Elisions:143,ArgElisionList:144,OptElisions:145,ArgElision:146,Arg:147,Elision:148,AssignList:149,MAP_START:150,AssignObj:151,ObjAssignable:152,ObjRestValue:153,":":154,SimpleObjAssignable:155,"...":156,ObjSpreadExpr:157,SUPER:158,DYNAMIC_IMPORT:159,PickItem:160,PickKey:161,RangeDots:162,"..":163,Param:164,TypedParamVar:165,ParamVar:166,Splat:167,ClassName:168,CLASS:169,EXTENDS:170,ENUM:171,SCHEMA:172,SCHEMA_BODY:173,COMPONENT:174,ComponentBlock:175,ComponentBody:176,ComponentLine:177,OFFER:178,ACCEPT:179,RENDER:180,ES6_OPTIONAL_CALL:181,"?":182,PRESENCE:183,"(":184,")":185,RETURN:186,WHILE:187,UNTIL:188,WHEN:189,Loop:190,IfBlock:191,IF:192,IfElseTail:193,ELSE:194,UnlessBlock:195,UNLESS:196,POST_IF:197,POST_UNLESS:198,TRY:199,Catch:200,Finalizer:201,FINALLY:202,CATCH:203,THROW:204,SWITCH:205,Cases:206,When:207,LEADING_WHEN:208,SimpleArgs:209,FOR:210,ForVariables:211,FORIN:212,BY:213,FOROF:214,OWN:215,FORAS:216,AWAIT:217,FORASAWAIT:218,ForValue:219,LOOP:220,"--":221,"++":222,CAST:223,TERNARY:224,UNARY:225,DO:226,UNARY_MATH:227,YIELD:228,"-":229,"+":230,"**":231,MATH:232,SHIFT:233,"&":234,"^":235,"|":236,COMPARE:237,MATCH:238,RELATION:239,"&&":240,"||":241,"??":242,THEN:243},tokenNames:{2:"error",6:"newline",10:"break/continue/debugger",15:"type/interface",17:"a type annotation",18:"?",19:"def",22:"import",25:"from",27:"{",28:"}",31:",",32:"with",34:"type",36:"indent",37:"dedent",38:"as",39:"default",40:"*",41:"export",50:"*",51:"=",52:"<…>",53:"!",54:":=",55:"~=",57:"=!",58:"~>",81:"!",83:"$",86:"undefined",87:"null",88:"true/false",89:"a number",90:"a :symbol",91:"a string",92:"a string",94:"the closing quote",96:"#{",97:"}",98:"a regex",99:"///",100:"///",101:"a name",103:"a property name",105:"a compound assignment",106:".=",110:"<~",111:"(",112:")",116:".",117:"?.",118:"[",119:"]",121:"?.[",122:".{",124:"}",125:"?.{",126:"import.meta",127:"new.target",128:"new",132:"(",134:")",136:"->",137:"=>",138:"do",139:"this",140:"@",141:"[",142:"]",150:"*{",154:":",156:"...",158:"super",159:"import(",163:"..",169:"class",170:"extends",171:"enum",172:"schema",173:"a schema body",174:"component",178:"offer",179:"accept",180:"render",181:"?.(",182:"?",183:"?!",184:"(",185:")",186:"return",187:"while",188:"until",189:"when",192:"if",194:"else",196:"unless",197:"if",198:"unless",199:"try",202:"finally",203:"catch",204:"throw",205:"switch",208:"when",210:"for",212:"in",213:"by",214:"of",215:"own",216:"as",217:"await",218:"as!",220:"loop",221:"--",222:"++",223:"as",224:"?",225:"not/typeof/delete",226:"do",227:"!/~",228:"yield",229:"-",230:"+",231:"**",232:"a math operator",233:"a shift operator",234:"&",235:"^",236:"|",237:"a comparison",238:"=~",239:"in/of/instanceof",240:"&&",241:"||",242:"??",243:"then"},semantics:{"1":{kind:"program",roles:[]},"2":{kind:"program",roles:[{name:"body",grammarRef:1,childSlot:1,spread:!0}]},"14":{kind:"typedecl",roles:[{name:"declaration",grammarRef:1,childSlot:1,spread:!1}]},"15":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"16":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"17":{kind:"defsig",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:3,spread:!1}]},"18":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:1,spread:!1}]},"19":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"20":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:2,spread:!1}]},"21":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"22":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"23":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:3,spread:!1}]},"24":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:3,spread:!1}]},"25":{kind:"import",roles:[{name:"source",grammarRef:2,childSlot:2,spread:!1}],nested:[{role:"attributes",path:[1],kind:"withattrs",roles:[{name:"keyword",grammarRef:3,childSlot:0,spread:!1},{name:"value",grammarRef:4,childSlot:1,spread:!1}],nested:[]}]},"26":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"27":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"source",grammarRef:4,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:5,childSlot:0,spread:!1},{name:"value",grammarRef:6,childSlot:1,spread:!1}],nested:[]}]},"28":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:3,spread:!1}],nested:[{role:"attributes",path:[2],kind:"withattrs",roles:[{name:"keyword",grammarRef:8,childSlot:0,spread:!1},{name:"value",grammarRef:9,childSlot:1,spread:!1}],nested:[]}]},"29":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:4,childSlot:2,spread:!1},{name:"source",grammarRef:6,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:7,childSlot:0,spread:!1},{name:"value",grammarRef:8,childSlot:1,spread:!1}],nested:[]}]},"30":{kind:"import",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1},{name:"extra",grammarRef:5,childSlot:2,spread:!1},{name:"source",grammarRef:9,childSlot:4,spread:!1}],nested:[{role:"attributes",path:[3],kind:"withattrs",roles:[{name:"keyword",grammarRef:10,childSlot:0,spread:!1},{name:"value",grammarRef:11,childSlot:1,spread:!1}],nested:[]}]},"31":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"32":{kind:"import",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:5,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"33":{kind:"import",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:6,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"34":{kind:"import",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1},{name:"source",grammarRef:8,childSlot:2,spread:!1},{name:"typeOnly",grammarRef:2,childSlot:null,spread:!1}]},"41":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"43":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"45":{kind:"as",roles:[{name:"name",grammarRef:null,childSlot:0,literal:"*"},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"46":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"}]},"47":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"48":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"49":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"50":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"51":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"52":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"53":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"54":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"55":{kind:"export",roles:[{name:"spec",grammarRef:2,childSlot:1,spread:!1}]},"56":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1}]},"57":{kind:"export",roles:[{name:"spec",grammarRef:4,childSlot:1,spread:!1}]},"58":{kind:"export",roles:[{name:"source",grammarRef:4,childSlot:1,spread:!1}]},"59":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"60":{kind:"export",roles:[{name:"source",grammarRef:6,childSlot:1,spread:!1},{name:"alias",grammarRef:4,childSlot:2,spread:!1}]},"61":{kind:"export",roles:[{name:"spec",grammarRef:null,childSlot:1,literal:"{}"},{name:"source",grammarRef:5,childSlot:2,spread:!1}]},"62":{kind:"export",roles:[{name:"spec",grammarRef:3,childSlot:1,spread:!1},{name:"source",grammarRef:7,childSlot:2,spread:!1}]},"63":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"64":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"65":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"66":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"67":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"68":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"69":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"70":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"71":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"72":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"73":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"74":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"75":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"76":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"77":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"78":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"79":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"80":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"81":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"82":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"83":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"84":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"91":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"92":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"94":{kind:"as",roles:[{name:"name",grammarRef:1,childSlot:0,spread:!1},{name:"alias",grammarRef:3,childSlot:1,spread:!1}]},"123":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"125":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"133":{kind:"symbol",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1}]},"135":{kind:"str",roles:[{name:"parts",grammarRef:2,childSlot:1,spread:!0}]},"143":{kind:"heregex",roles:[{name:"flags",grammarRef:3,childSlot:1,spread:!1},{name:"parts",grammarRef:2,childSlot:2,spread:!0}]},"146":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"147":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"148":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"149":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"150":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"151":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"152":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"153":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"154":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"155":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"156":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"157":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:6,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1}]},"158":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"159":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1}]},"160":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"typeParams",grammarRef:2,childSlot:null,spread:!1}]},"161":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"162":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"163":{kind:"assign",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"164":{kind:"assign",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:".="},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"165":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"166":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"167":{kind:"assign",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"177":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"178":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"179":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"180":{kind:"state",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"181":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"182":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"183":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"184":{kind:"computed",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"185":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"186":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"187":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"188":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"189":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:3,childSlot:2,spread:!1},{name:"key",grammarRef:5,childSlot:3,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"190":{kind:"gate",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"rhs",grammarRef:4,childSlot:2,spread:!1},{name:"key",grammarRef:6,childSlot:3,spread:!0},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"191":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"192":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"193":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"194":{kind:"readonly",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1},{name:"annotation",grammarRef:3,childSlot:null,spread:!1},{name:"operator",grammarRef:4,childSlot:null,spread:!1}]},"195":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"196":{kind:"effect",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"annotation",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"197":{kind:"effect",roles:[{name:"target",grammarRef:null,childSlot:1,literal:null},{name:"value",grammarRef:2,childSlot:2,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"200":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"201":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"202":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"203":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"204":{kind:"regexindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1},{name:"capture",grammarRef:5,childSlot:3,spread:!1}]},"205":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"206":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"207":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"208":{kind:"optindex",roles:[{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:5,childSlot:2,spread:!1}]},"209":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"210":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"211":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"212":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"213":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"214":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"215":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"216":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"217":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"218":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"219":{kind:"await",roles:[{name:"operator",grammarRef:3,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"new"}],nested:[{role:"operand",path:[1],kind:"call",roles:[{name:"callee",grammarRef:2,childSlot:0,spread:!1},{name:"args",grammarRef:4,childSlot:1,spread:!0}],nested:[]}]}]},"220":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"226":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"227":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"228":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"229":{kind:"tagged",roles:[{name:"tag",grammarRef:1,childSlot:1,spread:!1},{name:"str",grammarRef:3,childSlot:2,spread:!1}]},"232":{kind:"func",roles:[{name:"kind",grammarRef:4,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:5,childSlot:2,spread:!1}]},"233":{kind:"func",roles:[{name:"kind",grammarRef:5,childSlot:0,spread:!1},{name:"params",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:6,childSlot:2,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"234":{kind:"func",roles:[{name:"kind",grammarRef:1,childSlot:0,spread:!1},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"237":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"240":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"241":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"property",grammarRef:2,childSlot:2,spread:!1}]},"242":{kind:"array",roles:[]},"243":{kind:"array",roles:[{name:"elisions",grammarRef:2,childSlot:1,spread:!0}]},"244":{kind:"array",roles:[{name:"items",grammarRef:2,childSlot:1,spread:!0},{name:"elisions",grammarRef:3,childSlot:null,spread:!0}]},"258":{kind:"object",roles:[{name:"pairs",grammarRef:2,childSlot:1,spread:!0}]},"259":{kind:"map",roles:[{name:"pairs",grammarRef:3,childSlot:1,spread:!0}]},"265":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:1,childSlot:2,spread:!1}]},"267":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"268":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"269":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:":"},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"270":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"271":{kind:"pair",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"="},{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1}]},"272":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:4,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"273":{kind:"pair",roles:[{name:"key",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:5,childSlot:2,spread:!1},{name:"voidMarker",grammarRef:2,childSlot:null,spread:!1},{name:"operator",grammarRef:3,childSlot:null,spread:!1}]},"274":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"275":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"281":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"282":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"283":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"284":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"285":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"286":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?."},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"287":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"288":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:1,childSlot:1,spread:!1},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"289":{kind:"dammit",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"290":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"291":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:3,childSlot:2,spread:!0}]},"292":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"293":{kind:"pick",roles:[{name:"source",grammarRef:1,childSlot:1,spread:!1},{name:"items",grammarRef:4,childSlot:2,spread:!0}]},"298":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1}]},"299":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1}]},"300":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"default",grammarRef:3,childSlot:2,spread:!1}]},"301":{kind:"pickitem",roles:[{name:"key",grammarRef:1,childSlot:0,spread:!1},{name:"target",grammarRef:3,childSlot:1,spread:!1},{name:"default",grammarRef:5,childSlot:2,spread:!1}]},"309":{kind:"dynamicKey",roles:[{name:"key",grammarRef:2,childSlot:1,spread:!1}]},"310":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"this"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"313":{kind:"range",roles:[{name:"operator",grammarRef:3,childSlot:0,spread:!1},{name:"from",grammarRef:2,childSlot:1,spread:!1},{name:"to",grammarRef:4,childSlot:2,spread:!1}]},"314":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:3,childSlot:2,spread:!1}]},"315":{kind:"range",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"from",grammarRef:1,childSlot:1,spread:!1},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"316":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:2,childSlot:2,spread:!1}]},"317":{kind:"range",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"from",grammarRef:null,childSlot:1,literal:null},{name:"to",grammarRef:null,childSlot:2,literal:null}]},"318":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"319":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"320":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"321":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"322":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"323":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"324":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"325":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"returnType",grammarRef:4,childSlot:null,spread:!1}]},"326":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1}]},"327":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"typeParams",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"328":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1}]},"329":{kind:"def",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"params",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:6,childSlot:3,spread:!1},{name:"voidMarker",grammarRef:3,childSlot:null,spread:!1},{name:"returnType",grammarRef:5,childSlot:null,spread:!1}]},"338":{kind:"default",roles:[{name:"name",grammarRef:1,childSlot:1,spread:!1},{name:"value",grammarRef:3,childSlot:2,spread:!1}]},"339":{kind:"rest",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"340":{kind:"expansion",roles:[]},"342":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"343":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:3,childSlot:2,spread:!1},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"344":{kind:"typedvar",roles:[{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:null,childSlot:2,literal:""},{name:"optionalMarker",grammarRef:2,childSlot:null,spread:!1}]},"349":{kind:"splat",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"351":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"352":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:2,childSlot:3,spread:!1}]},"353":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1}]},"354":{kind:"class",roles:[{name:"name",grammarRef:null,childSlot:1,literal:null},{name:"parent",grammarRef:3,childSlot:2,spread:!1},{name:"body",grammarRef:4,childSlot:3,spread:!1}]},"355":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null}]},"356":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"357":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1}]},"358":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"359":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:null,childSlot:2,literal:null},{name:"body",grammarRef:3,childSlot:3,spread:!1}]},"360":{kind:"class",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"parent",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"361":{kind:"enum",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"362":{kind:"schema",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"363":{kind:"component",roles:[{name:"parent",grammarRef:null,childSlot:1,literal:null},{name:"body",grammarRef:2,childSlot:2,spread:!1}]},"364":{kind:"component",roles:[{name:"parent",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:4,childSlot:2,spread:!1}]},"365":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"371":{kind:"offer",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"372":{kind:"accept",roles:[{name:"name",grammarRef:2,childSlot:1,spread:!1}]},"373":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"374":{kind:"render",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"375":{kind:"member",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"."},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"property",grammarRef:3,childSlot:2,spread:!1}]},"376":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:3,childSlot:2,spread:!1}]},"377":{kind:"index",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"[]"},{name:"object",grammarRef:null,childSlot:1,literal:"super"},{name:"key",grammarRef:4,childSlot:2,spread:!1}]},"378":{kind:"call",roles:[{name:"callee",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"379":{kind:"super",roles:[{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"380":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"381":{kind:"optcall",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0}]},"382":{kind:"maybe-dammit",roles:[{name:"callee",grammarRef:1,childSlot:1,spread:!1},{name:"args",grammarRef:3,childSlot:2,spread:!0},{name:"operator",grammarRef:2,childSlot:null,spread:!1}]},"383":{kind:"dynimport",roles:[{name:"keyword",grammarRef:1,childSlot:0,spread:!1},{name:"args",grammarRef:2,childSlot:1,spread:!0}]},"384":{kind:"await",roles:[{name:"operator",grammarRef:2,childSlot:null,spread:!1}],nested:[{role:"value",path:[1],kind:"dynimport",roles:[{name:"keyword",grammarRef:null,childSlot:0,literal:"import"},{name:"args",grammarRef:3,childSlot:1,spread:!0}],nested:[]}]},"396":{kind:"block",roles:[]},"397":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!0}]},"400":{kind:"return",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"401":{kind:"return",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"402":{kind:"return",roles:[]},"403":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"404":{kind:"while",roles:[{name:"body",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"405":{kind:"while",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}]},"406":{kind:"while",roles:[{name:"guard",grammarRef:4,childSlot:2,spread:!1},{name:"body",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"407":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"408":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"409":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"410":{kind:"while",roles:[{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"411":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"412":{kind:"while",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}]},"413":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"414":{kind:"while",roles:[{name:"guard",grammarRef:5,childSlot:2,spread:!1},{name:"body",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"416":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1}]},"417":{kind:"if",roles:[{name:"condition",grammarRef:2,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:4,childSlot:3,spread:!1}]},"418":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1}]},"419":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:4,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"421":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"422":{kind:"if",roles:[{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}],nested:[]}]},"425":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"426":{kind:"if",roles:[{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:null,spread:!1}]},"427":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"428":{kind:"if",roles:[{name:"then",grammarRef:1,childSlot:null,spread:!1}],nested:[{role:"condition",path:[1],kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"!"},{name:"operand",grammarRef:3,childSlot:1,spread:!1}],nested:[]}]},"429":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:6,childSlot:3,spread:!1}]},"430":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:3,childSlot:1,spread:!1},{name:"then",grammarRef:1,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"431":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"432":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"433":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"434":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"435":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"436":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1}]},"437":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"438":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"439":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"440":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"441":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"finalizer",grammarRef:3,childSlot:2,spread:!1}]},"442":{kind:"try",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1},{name:"handler",grammarRef:3,childSlot:2,spread:!1},{name:"finalizer",grammarRef:4,childSlot:3,spread:!1}]},"444":{kind:"block",roles:[{name:"statements",grammarRef:2,childSlot:1,spread:!1}]},"445":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"446":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"447":{kind:"catch",roles:[{name:"binding",grammarRef:2,childSlot:0,spread:!1},{name:"body",grammarRef:3,childSlot:1,spread:!1}]},"448":{kind:"catch",roles:[{name:"binding",grammarRef:null,childSlot:0,literal:null},{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"449":{kind:"throw",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"450":{kind:"throw",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"451":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"452":{kind:"switch",roles:[{name:"subject",grammarRef:2,childSlot:1,spread:!1},{name:"cases",grammarRef:4,childSlot:2,spread:!1},{name:"default",grammarRef:6,childSlot:3,spread:!1}]},"453":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:null,childSlot:3,literal:null}]},"454":{kind:"switch",roles:[{name:"subject",grammarRef:null,childSlot:1,literal:null},{name:"cases",grammarRef:3,childSlot:2,spread:!1},{name:"default",grammarRef:5,childSlot:3,spread:!1}]},"457":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"458":{kind:"when",roles:[{name:"conditions",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"461":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"462":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"463":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"464":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:8,childSlot:3,spread:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"465":{kind:"forin",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"step",grammarRef:6,childSlot:3,spread:!1},{name:"guard",grammarRef:8,childSlot:4,spread:!1},{name:"body",grammarRef:9,childSlot:5,spread:!1}]},"466":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"467":{kind:"forof",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"object",grammarRef:4,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"468":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"469":{kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"470":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"471":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"472":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:6,childSlot:5,spread:!1}]},"473":{kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:7,childSlot:4,spread:!1},{name:"body",grammarRef:8,childSlot:5,spread:!1}]},"474":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"475":{kind:"foras",roles:[{name:"vars",grammarRef:2,childSlot:1,spread:!1},{name:"iterable",grammarRef:4,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0},{name:"guard",grammarRef:6,childSlot:4,spread:!1},{name:"body",grammarRef:7,childSlot:5,spread:!1}]},"476":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:3,childSlot:5,spread:!1}]},"477":{kind:"forin",roles:[{name:"iterable",grammarRef:2,childSlot:2,spread:!1},{name:"step",grammarRef:4,childSlot:3,spread:!1},{name:"guard",grammarRef:null,childSlot:4,literal:null},{name:"body",grammarRef:5,childSlot:5,spread:!1}]},"478":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"479":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:null,childSlot:3,literal:null}],nested:[]}]},"480":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"481":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:9,childSlot:3,spread:!1}],nested:[]}]},"482":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:9,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forin",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"step",grammarRef:7,childSlot:3,spread:!1}],nested:[]}]},"483":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"484":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"object",grammarRef:5,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"485":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"486":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"forof",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"object",grammarRef:6,childSlot:2,spread:!1},{name:"own",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"487":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"488":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!1}],nested:[]}]},"489":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"490":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:8,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:4,childSlot:1,spread:!1},{name:"iterable",grammarRef:6,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"491":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"492":{kind:"comprehension",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"guard",grammarRef:7,childSlot:null,spread:!1}],nested:[{role:"loop",path:[2,0],kind:"foras",roles:[{name:"vars",grammarRef:3,childSlot:1,spread:!1},{name:"iterable",grammarRef:5,childSlot:2,spread:!1},{name:"await",grammarRef:null,childSlot:3,literal:!0}],nested:[]}]},"496":{kind:"loop",roles:[{name:"body",grammarRef:2,childSlot:1,spread:!1}]},"497":{kind:"loop",roles:[{name:"count",grammarRef:2,childSlot:1,spread:!1},{name:"body",grammarRef:3,childSlot:2,spread:!1}]},"498":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"499":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:2,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!1}]},"500":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"--"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"501":{kind:"update",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"++"},{name:"target",grammarRef:1,childSlot:1,spread:!1},{name:"prefix",grammarRef:null,childSlot:2,literal:!0}]},"502":{kind:"existence",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?"},{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"503":{kind:"presence",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1}]},"504":{kind:"cast",roles:[{name:"value",grammarRef:1,childSlot:1,spread:!1},{name:"annotation",grammarRef:2,childSlot:2,spread:!1}]},"505":{kind:"ternary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"?:"},{name:"condition",grammarRef:1,childSlot:1,spread:!1},{name:"then",grammarRef:3,childSlot:2,spread:!1},{name:"else",grammarRef:5,childSlot:3,spread:!1}]},"506":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"507":{kind:"doiife",roles:[{name:"func",grammarRef:2,childSlot:1,spread:!1}]},"508":{kind:"unary",roles:[{name:"operator",grammarRef:1,childSlot:0,spread:!1},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"509":{kind:"await",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"510":{kind:"await",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1},{name:"operator",grammarRef:1,childSlot:null,spread:!1}]},"511":{kind:"yield",roles:[]},"512":{kind:"yield",roles:[{name:"value",grammarRef:2,childSlot:1,spread:!1}]},"513":{kind:"yield",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"514":{kind:"yieldfrom",roles:[{name:"value",grammarRef:3,childSlot:1,spread:!1}]},"515":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"516":{kind:"unary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"operand",grammarRef:2,childSlot:1,spread:!1}]},"517":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"**"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"518":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"+"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"519":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"-"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"520":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"521":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"522":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"523":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"^"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"524":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"|"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"525":{kind:"binary",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"526":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"=~"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"527":{kind:"relation",roles:[{name:"operator",grammarRef:2,childSlot:0,spread:!1},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"528":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"529":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"530":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"531":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"532":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"533":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"534":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"535":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"536":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"??"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"537":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"538":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"539":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"540":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"541":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"&&"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]},"542":{kind:"binary",roles:[{name:"operator",grammarRef:null,childSlot:0,literal:"||"},{name:"left",grammarRef:1,childSlot:1,spread:!1},{name:"right",grammarRef:3,childSlot:2,spread:!1}]}},primitiveRefs:{"1":[],"2":[1],"3":[1],"4":[1,3],"5":[1],"6":[1],"7":[1],"8":[1],"9":[1],"10":[1],"11":[1],"12":[1],"13":[1],"14":[1],"15":[1,2],"16":[1,3],"17":[2,3,4],"18":[2],"19":[2,4],"20":[2,4],"21":[5],"22":[3,7],"23":[2,4,6],"24":[2,5,9],"25":[3,4,2],"26":[2,5,6,4],"27":[2,5,6,4],"28":[3,8,9,7],"29":[2,4,7,8,6],"30":[2,5,10,11,9],"31":[3,5],"32":[3,5],"33":[6],"34":[4,8],"35":[1],"36":[1,3],"37":[1,4],"38":[2],"39":[1,4],"40":[1],"41":[1,3],"42":[1],"43":[1,3],"44":[1],"45":[3],"46":[],"47":[3],"48":[2],"49":[2],"50":[2],"51":[2],"52":[2],"53":[2],"54":[2],"55":[2],"56":[3],"57":[4],"58":[4],"59":[6,4],"60":[6,4],"61":[5],"62":[3,7],"63":[1,3],"64":[1,4],"65":[1,4],"66":[1,4],"67":[1,5],"68":[1,5],"69":[1,4],"70":[1,4],"71":[1,5],"72":[1,5],"73":[1,4],"74":[1,5],"75":[1,5],"76":[1,4],"77":[1,5],"78":[1,4],"79":[1,4],"80":[1,5],"81":[1,5],"82":[1,4],"83":[1,5],"84":[1,4],"85":[1],"86":[1,3],"87":[1,4],"88":[2],"89":[1,4],"90":[1],"91":[1,3],"92":[1,3],"93":[1],"94":[1,3],"95":[1],"96":[1],"97":[1],"98":[1],"99":[1],"100":[1],"101":[1],"102":[1],"103":[1],"104":[1],"105":[1],"106":[1],"107":[1],"108":[1],"109":[1],"110":[1],"111":[1],"112":[1],"113":[1],"114":[1],"115":[1],"116":[1],"117":[1],"118":[1],"119":[1],"120":[1],"121":[1],"122":[1],"123":[1],"124":[1],"125":[1,3],"126":[1],"127":[1],"128":[],"129":[],"130":[1],"131":[1],"132":[1],"133":[1],"134":[1],"135":[2],"136":[1],"137":[1,2],"138":[2],"139":[3],"140":[],"141":[1],"142":[1],"143":[3,2],"144":[1],"145":[1],"146":[1,3],"147":[1,4],"148":[1,4],"149":[1,4],"150":[1,5],"151":[1,5],"152":[1,4],"153":[1,5],"154":[1,5],"155":[1,5],"156":[1,6],"157":[1,6],"158":[1,3],"159":[1,4],"160":[1,4],"161":[2,1,3],"162":[2,1,4],"163":[2,1,4],"164":[1,3],"165":[1,4],"166":[1,5],"167":[1,5],"168":[1],"169":[1],"170":[1],"171":[1],"172":[2],"173":[2],"174":[1],"175":[2],"176":[1],"177":[1,3],"178":[1,4],"179":[1,4],"180":[1,5],"181":[1,3],"182":[1,4],"183":[1,4],"184":[1,5],"185":[1,3],"186":[1,4],"187":[1,3],"188":[1,4],"189":[1,3,5],"190":[1,4,6],"191":[1,3],"192":[1,4],"193":[1,4],"194":[1,5],"195":[1,3],"196":[1,4],"197":[2],"198":[1],"199":[1],"200":[1,3],"201":[1,3],"202":[1,3],"203":[1,4],"204":[1,3,5],"205":[1,3],"206":[1,4],"207":[1,4],"208":[1,5],"209":[1,3],"210":[1,3],"211":[1,4],"212":[1,4],"213":[1,3],"214":[1,3],"215":[1,2],"216":[1,2],"217":[1,2],"218":[2],"219":[2,4],"220":[1,2],"221":[1],"222":[1],"223":[1],"224":[1],"225":[1],"226":[1,3],"227":[1,3],"228":[1,3],"229":[1,3],"230":[1],"231":[1],"232":[4,2,5],"233":[5,2,6],"234":[1,2],"235":[1],"236":[1],"237":[2],"238":[],"239":[],"240":[2],"241":[2],"242":[],"243":[2],"244":[2,3],"245":[1],"246":[1,3],"247":[1,4],"248":[2,3],"249":[1,2,4,5],"250":[1],"251":[1,2],"252":[],"253":[2],"254":[1],"255":[1,2],"256":[],"257":[1],"258":[2],"259":[3],"260":[],"261":[1],"262":[1,3],"263":[1,4],"264":[1,4],"265":[1,1],"266":[1],"267":[1,3],"268":[1,4],"269":[1,3],"270":[1,3],"271":[1,4],"272":[1,4],"273":[1,5],"274":[2],"275":[2],"276":[1],"277":[1],"278":[1],"279":[1],"280":[1],"281":[2],"282":[1,2],"283":[1,2],"284":[1,2],"285":[1,3],"286":[1,3],"287":[1,3],"288":[1,4],"289":[1],"290":[1,3],"291":[1,3],"292":[1,4],"293":[1,4],"294":[1],"295":[1,3],"296":[1,4],"297":[1,4],"298":[1,1],"299":[1,3],"300":[1,1,3],"301":[1,3,5],"302":[1],"303":[1],"304":[1],"305":[1],"306":[1],"307":[1],"308":[1],"309":[2],"310":[3],"311":[],"312":[],"313":[3,2,4],"314":[2,1,3],"315":[2,1],"316":[1,2],"317":[1],"318":[2,3,4],"319":[2,3,5],"320":[2,4,5],"321":[2,4,6],"322":[2,4,5],"323":[2,4,6],"324":[2,3,4],"325":[2,3,5],"326":[2,4,5],"327":[2,4,6],"328":[2,4,5],"329":[2,4,6],"330":[],"331":[2],"332":[],"333":[1],"334":[1,3],"335":[1,4],"336":[1,4],"337":[1],"338":[1,3],"339":[2],"340":[],"341":[1],"342":[1,2],"343":[1,3],"344":[1],"345":[1],"346":[1],"347":[1],"348":[1],"349":[2],"350":[1],"351":[],"352":[2],"353":[3],"354":[3,4],"355":[2],"356":[2,3],"357":[2,4],"358":[2,4,5],"359":[2,3],"360":[2,4,5],"361":[2,3],"362":[2],"363":[2],"364":[3,4],"365":[2],"366":[1],"367":[1,3],"368":[1],"369":[1],"370":[1],"371":[2],"372":[2],"373":[2],"374":[2],"375":[3],"376":[3],"377":[4],"378":[1,2],"379":[2],"380":[1,3],"381":[1,3],"382":[1,3],"383":[1,2],"384":[3],"385":[],"386":[2],"387":[1],"388":[1,3],"389":[1,4],"390":[2],"391":[1,4],"392":[1],"393":[1],"394":[1],"395":[1],"396":[],"397":[2],"398":[2],"399":[3],"400":[2],"401":[3],"402":[],"403":[2,3],"404":[2,3],"405":[2,4,5],"406":[2,4,5],"407":[3,1],"408":[3,1],"409":[3,1],"410":[3,1],"411":[3,5,1],"412":[3,5,1],"413":[3,5,1],"414":[3,5,1],"415":[1],"416":[2,3],"417":[2,3,4],"418":[3,4],"419":[3,4,5],"420":[2],"421":[2,3],"422":[2,3,5],"423":[1],"424":[1],"425":[3,1],"426":[3,1],"427":[3,1],"428":[3,1],"429":[3,1,6],"430":[3,1,5],"431":[2],"432":[2],"433":[2,3],"434":[2],"435":[2,3],"436":[2,3],"437":[2,3],"438":[2,3,4],"439":[2,3],"440":[2,3,4],"441":[2,3],"442":[2,3,4],"443":[2],"444":[2],"445":[2,3],"446":[2,3],"447":[2,3],"448":[2],"449":[2],"450":[3],"451":[2,4],"452":[2,4,6],"453":[3],"454":[3,5],"455":[1],"456":[1,2],"457":[2,3],"458":[2,3],"459":[1],"460":[1,3],"461":[2,4,5],"462":[2,4,6,7],"463":[2,4,6,7],"464":[2,4,8,6,9],"465":[2,4,6,8,9],"466":[2,4,5],"467":[2,4,6,7],"468":[3,5,6],"469":[3,5,7,8],"470":[2,4,5],"471":[2,4,6,7],"472":[3,5,6],"473":[3,5,7,8],"474":[2,4,5],"475":[2,4,6,7],"476":[2,3],"477":[2,4,5],"478":[1,3,5],"479":[1,3,5,7],"480":[1,3,5,7],"481":[1,3,5,9,7],"482":[1,3,5,7,9],"483":[1,3,5],"484":[1,3,5,7],"485":[1,4,6],"486":[1,4,6,8],"487":[1,3,5],"488":[1,3,5,7],"489":[1,4,6],"490":[1,4,6,8],"491":[1,3,5],"492":[1,3,5,7],"493":[1],"494":[1],"495":[1,3],"496":[2],"497":[2,3],"498":[2],"499":[2],"500":[1],"501":[1],"502":[1],"503":[1],"504":[1,2],"505":[1,3,5],"506":[1,2],"507":[2],"508":[1,2],"509":[2],"510":[3],"511":[],"512":[2],"513":[3],"514":[3],"515":[2],"516":[2],"517":[1,3],"518":[1,3],"519":[1,3],"520":[2,1,3],"521":[2,1,3],"522":[1,3],"523":[1,3],"524":[1,3],"525":[2,1,3],"526":[1,3],"527":[2,1,3],"528":[1,3],"529":[1,3],"530":[1,3],"531":[1,3],"532":[1,3],"533":[1,3],"534":[1,3],"535":[1,3],"536":[1,3],"537":[1,3],"538":[1,3],"539":[1,3],"540":[1,3],"541":[1,3],"542":[1,3]},accumulators:{"4":!0,"36":!0,"37":!0,"39":!0,"86":!0,"87":!0,"89":!0,"137":!0,"246":!0,"247":!0,"249":!0,"255":!0,"262":!0,"263":!0,"264":!0,"295":!0,"296":!0,"297":!0,"334":!0,"335":!0,"336":!0,"367":!0,"388":!0,"389":!0,"391":!0,"456":!0},parseTable:(()=>{let e=[108,1,2,1,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-1,1,2,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,1,0,2,1,5,-2,108,5,1,5,31,60,88,-3,-3,-3,-3,-3,28,1,5,31,60,88,2,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,9,1,5,31,60,88,2,1,9,1,-7,-7,-7,-7,-7,134,135,132,133,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,136,137,-95,142,-95,-230,-230,-230,-95,-230,-230,-95,-230,140,-95,-95,-95,-95,-95,141,138,139,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,49,1,5,22,3,5,1,60,15,4,1,1,1,2,1,2,1,9,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-231,-231,-231,-96,-231,-231,-96,-231,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,64,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,144,145,-115,-115,-115,-115,143,146,147,148,150,151,-115,-115,-115,149,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,18,6,14,7,4,2,3,65,6,7,19,1,6,1,9,6,8,1,1,-332,157,100,-332,159,-332,96,158,160,152,-332,162,161,101,155,153,154,156,2,36,20,164,163,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,167,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,165,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,167,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,171,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,174,175,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,172,173,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,176,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,178,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,179,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,180,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,181,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,143,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,2,1,3,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,4,6,2,1,2,6,4,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-511,-511,182,177,26,27,28,29,30,31,73,32,65,54,71,103,184,100,-511,-511,76,183,-511,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-511,105,106,96,45,75,-511,92,93,-511,-511,94,95,89,41,-511,42,90,91,86,87,88,83,-511,101,-511,-511,84,85,-511,66,74,67,68,69,82,-511,70,-511,-511,-511,63,56,97,-511,57,98,-511,-511,58,-511,-511,64,60,-511,-511,49,99,43,44,-511,-511,46,47,48,50,51,52,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,-511,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,185,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,186,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,1,5,11,11,3,5,1,14,30,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,188,-134,-134,-134,-134,187,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,69,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,189,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,190,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,195,196,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,194,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,15,20,7,6,43,25,6,7,26,1,9,16,45,4,2,2,157,100,159,200,96,158,160,162,83,101,202,197,198,199,201,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,203,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,204,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,205,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,206,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,-415,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,207,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,208,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,20,81,13,26,209,96,210,162,50,1,5,14,8,3,5,1,19,41,4,11,2,5,5,10,6,2,12,2,7,5,2,15,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,215,-351,-351,164,-351,211,-351,96,-351,214,-351,-351,-351,162,-351,-351,-351,-351,213,212,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,1,173,216,3,36,134,5,219,218,217,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,221,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,220,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,142,1,5,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,1,3,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,5,2,1,4,5,2,1,1,4,2,1,1,1,1,1,1,1,1,8,4,2,2,1,4,6,2,1,2,6,4,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,5,3,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,222,177,26,27,28,29,30,31,73,32,65,54,71,103,100,-402,-402,76,223,-402,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-402,105,106,96,45,75,-402,92,93,-402,-402,94,95,89,41,-402,42,90,91,86,87,88,83,-402,101,-402,-402,84,85,-402,66,74,67,68,69,82,-402,70,-402,-402,-402,63,56,97,-402,57,98,-402,-402,58,-402,-402,64,60,-402,-402,49,99,43,44,-402,-402,46,47,48,50,51,52,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,10,20,3,1,2,1,7,6,51,1,9,229,224,225,226,227,228,230,170,107,96,60,14,2,3,1,3,4,6,6,4,1,1,1,1,1,1,1,8,2,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,13,234,244,242,243,103,231,76,240,232,233,235,236,237,238,239,241,55,167,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,245,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,82,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,2,20,81,246,96,64,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,64,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,247,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,248,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,249,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,250,251,252,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,111,5,2,13,142,261,262,260,3,81,30,20,264,142,263,5,61,71,3,1,1,265,41,42,90,91,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,58,1,5,22,3,5,1,44,2,8,6,5,1,8,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,267,-239,266,268,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,14,20,55,4,1,2,19,13,14,1,1,9,1,18,26,272,275,274,276,270,96,273,89,269,271,87,88,277,82,1,36,-235,1,36,-236,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,6,116,1,1,3,1,3,278,279,280,281,282,283,1,116,284,1,116,285,76,1,5,11,1,7,3,3,5,1,1,13,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,286,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,287,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,289,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,288,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,6,14,3,5,3,5,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,300,103,-260,-260,-260,296,294,102,104,170,107,105,106,96,301,268,302,298,297,290,291,292,293,295,299,1,27,303,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,-131,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,6,23,68,1,1,2,1,307,170,107,304,305,306,6,23,68,1,1,2,1,307,170,107,308,305,306,110,1,4,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,1,1,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-5,309,-5,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-5,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,-5,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,-5,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,-504,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,310,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,311,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,312,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,313,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,314,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,315,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,316,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,317,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,318,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,319,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,320,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,321,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,322,177,323,324,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,325,177,326,327,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,328,177,329,330,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,331,177,332,333,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,334,177,335,336,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,337,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,338,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,14,20,7,6,68,6,7,26,1,9,16,45,4,2,2,157,100,159,96,158,160,162,161,101,202,339,340,341,201,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,342,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,343,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,344,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,345,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,346,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,347,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,3,23,68,1,348,170,107,45,1,5,22,3,5,1,60,14,1,7,5,7,3,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-502,-502,-502,-502,-502,-502,-502,142,-502,-502,-502,349,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,-502,45,1,5,22,3,5,1,60,14,1,7,5,7,3,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-503,-503,-503,-503,-503,-503,-503,142,-503,-503,-503,350,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,-503,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,2,111,20,142,351,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,352,353,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,358,357,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,359,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,49,1,5,22,3,5,1,14,3,1,2,1,39,13,2,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,360,361,362,364,365,-15,363,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,5,17,34,3,1,2,367,366,368,369,370,1,51,371,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,372,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,376,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,377,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,245,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,378,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,379,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,98,-394,382,381,-394,380,6,6,25,5,1,75,22,-333,-333,-333,-333,-333,-333,7,6,25,5,1,14,61,22,-337,-337,-337,-337,383,-337,-337,17,6,14,7,4,2,3,1,64,6,5,2,20,6,1,9,15,1,-340,157,100,-340,159,-340,-340,96,158,-340,160,-340,162,161,101,384,156,9,6,11,1,13,5,1,14,61,22,-341,385,386,-341,-341,-341,-341,-341,-341,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,13,6,11,1,13,5,1,14,61,22,78,2,2,2,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,114,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,250,251,252,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,91,11,1,267,266,268,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,107,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,388,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,387,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-498,-498,-498,-498,-498,-498,-168,-168,-498,-168,-498,-168,-168,-168,-498,-168,-168,-498,-168,-498,-498,-498,-498,-498,-168,-168,-168,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,-498,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,13,81,2,28,5,1,1,3,1,3,6,50,1,1,136,137,142,-230,-230,-230,-230,-230,-230,140,141,389,390,6,116,1,1,3,1,3,-231,-231,-231,-231,-231,-231,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,61,1,5,22,3,1,4,1,44,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,-134,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-499,-499,-499,-499,-499,-499,-168,-168,-499,-168,-499,-168,-168,-168,-499,-168,-168,-499,-168,-499,-499,-499,-499,-499,-168,-168,-168,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,-499,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,-500,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,-501,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,393,391,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,392,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,394,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,-506,4,187,1,9,1,134,135,132,133,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,-507,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,111,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,-508,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,-509,3,27,6,117,100,395,101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,-512,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-512,3,27,6,117,100,396,101,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,397,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,111,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,-515,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,111,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,-516,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,398,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,51,399,1,51,400,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,130,131,-174,126,127,128,-174,-174,129,-174,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,401,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,45,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,2,1,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,402,403,405,404,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,45,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,2,1,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,130,131,-432,126,127,128,406,407,405,404,129,-432,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,45,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,2,1,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,134,135,-434,-434,132,133,408,409,405,404,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,4,212,2,2,2,410,411,412,413,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,414,201,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,415,201,3,36,20,157,164,416,417,5,31,181,2,2,2,418,-494,-494,-494,-494,5,31,181,2,2,2,-493,-493,-493,-493,-493,24,36,151,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,419,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,206,1,1,420,421,422,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,423,130,131,424,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,425,130,131,426,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-449,3,27,6,117,100,427,101,6,17,4,15,16,1,58,-330,428,-330,429,430,431,6,17,4,15,16,1,58,-330,432,-330,433,434,431,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,435,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,45,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,7,15,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,164,-355,436,-355,-355,-355,-355,-355,-355,-355,-355,-355,437,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,3,36,20,114,164,438,439,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,7,15,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,440,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,2,1,1,1,1,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,443,444,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,441,442,445,446,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,130,131,-374,126,-374,-374,-374,-374,129,-374,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-374,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-400,3,27,6,117,100,447,101,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,448,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,2,25,6,449,450,1,25,451,7,20,8,1,6,1,3,62,456,452,453,454,455,457,96,6,20,4,2,1,13,61,229,458,459,460,230,96,2,25,6,-44,-44,1,38,461,29,6,14,3,5,3,5,3,3,17,25,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,466,103,462,-260,465,467,463,464,296,294,102,104,170,107,105,106,96,301,268,302,298,297,290,291,292,293,295,299,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,468,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,469,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,25,13,470,471,4,20,81,13,26,472,96,210,162,21,17,1,33,1,1,1,1,2,1,23,2,28,5,1,1,3,1,3,56,1,1,474,-198,473,475,476,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,18,17,1,36,1,2,1,23,2,28,5,1,1,3,1,3,56,1,1,477,478,147,148,150,151,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,61,1,5,11,1,10,3,5,1,17,1,2,1,23,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,2,36,20,164,479,2,6,179,108,480,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,481,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,30,6,25,5,106,14,6,1,24,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,484,482,483,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,485,487,486,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,24,1,5,106,3,-394,490,489,-394,-394,488,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,491,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,5,6,25,5,1,105,-245,-245,-245,-245,-245,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,493,492,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,5,6,25,5,1,105,-250,-250,-250,-250,-250,6,6,25,5,1,75,30,-393,-393,-393,-393,-393,-393,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,494,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,2,102,1,495,268,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,496,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,497,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,2,111,20,142,498,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,74,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,74,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,74,1,5,11,1,10,3,5,1,14,1,1,1,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,7,11,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,3,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,499,503,-215,142,-215,500,501,502,-215,-215,-215,-215,-215,504,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,2,116,2,261,262,2,102,1,505,268,2,102,1,506,268,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,3,1,6,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,507,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,508,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,509,94,95,89,41,42,90,91,86,87,88,83,101,484,84,85,510,483,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,118,511,8,20,16,65,1,1,20,37,1,516,513,96,517,268,512,514,515,8,20,16,65,1,1,20,37,1,516,519,96,517,268,518,514,515,2,102,1,520,268,2,102,1,521,268,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,522,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,523,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,-496,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,524,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,5,6,22,2,1,5,-394,-394,525,526,-394,5,6,22,3,5,1,-261,-261,-261,-261,-261,6,6,22,3,5,1,117,-265,-265,-265,-265,-265,527,5,6,22,3,5,1,-266,-266,-266,-266,-266,1,154,528,8,6,22,3,5,1,14,2,101,-307,-307,-307,-307,-307,529,530,-307,6,6,22,3,5,1,117,-308,-308,-308,-308,-308,-308,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,531,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,91,11,1,38,267,266,268,532,18,20,7,6,42,4,1,21,1,1,11,25,1,10,5,2,1,1,25,300,100,535,536,538,537,96,301,268,302,87,88,101,533,534,539,540,82,15,6,22,3,5,1,14,2,28,30,5,1,1,4,3,29,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,15,6,22,3,5,1,14,2,28,30,5,1,1,4,3,29,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,15,6,22,3,5,1,14,2,28,30,5,1,1,4,3,29,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,26,6,14,3,5,3,5,48,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,300,103,-260,-260,-260,296,294,102,104,170,107,105,106,96,301,268,302,298,297,541,291,292,293,295,299,6,23,68,1,3,1,4,307,170,107,543,306,542,5,91,1,2,2,4,-136,-136,-136,-136,-136,108,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,5,1,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,544,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,545,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,546,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,91,1,2,2,4,-141,-141,-141,-141,-141,6,23,68,1,2,1,1,307,170,107,547,543,306,5,1,5,31,60,88,-4,-4,-4,-4,-4,24,154,33,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,548,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,111,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,-517,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,111,114,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,-518,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,111,114,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,-519,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,111,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,-520,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,113,112,111,114,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,-521,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,-522,109,-522,113,112,111,114,115,-522,-522,-522,119,120,121,-522,-522,-522,-522,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,-523,109,-523,113,112,111,114,115,116,-523,-523,119,120,121,-523,-523,-523,-523,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,-524,109,-524,113,112,111,114,115,116,117,-524,119,120,121,-524,-524,-524,-524,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,-525,109,-525,113,112,111,114,115,-525,-525,-525,-525,-525,121,-525,-525,-525,-525,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,-526,109,-526,113,112,111,114,115,-526,-526,-526,-526,-526,121,-526,-526,-526,-526,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,109,-527,113,112,111,114,115,-527,-527,-527,-527,-527,-527,-527,-527,-527,-527,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,-528,109,-528,113,112,111,114,115,116,117,118,119,120,121,-528,-528,-528,-528,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,-531,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,-534,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,-529,109,-529,113,112,111,114,115,116,117,118,119,120,121,122,-529,-529,-529,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,-532,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,-535,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,-530,109,-530,113,112,111,114,115,116,117,118,119,120,121,122,-530,-530,-530,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,-533,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,-536,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,-537,130,131,-537,126,-537,-537,-537,-537,129,-537,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-537,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,-539,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,-541,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,-538,130,131,-538,126,-538,-538,-538,-538,129,-538,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-538,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,-540,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,-542,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,130,131,-426,549,-426,-426,-426,-426,129,-426,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,130,131,-428,126,-428,-428,-428,-428,129,-428,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,4,212,2,2,2,550,551,552,553,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,554,201,12,20,7,6,68,6,7,26,1,9,16,45,8,157,100,159,96,158,160,162,161,101,202,555,201,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,130,131,556,126,-407,-407,-407,-407,129,-407,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-407,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,130,131,557,126,-409,-409,-409,-409,129,-409,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-409,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,130,131,-425,126,-425,-425,-425,-425,129,-425,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,130,131,-427,126,-427,-427,-427,-427,129,-427,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,130,131,558,126,-408,-408,-408,-408,129,-408,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-408,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,130,131,559,126,-410,-410,-410,-410,129,-410,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-410,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,5,6,24,1,5,76,-394,560,561,-394,-394,5,6,25,5,1,75,-387,-387,-387,-387,-387,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,562,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,25,5,1,75,30,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-146,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,563,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,564,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,566,565,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,567,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,568,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,569,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,46,16,4,3,4,6,27,1,13,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,25,169,166,103,100,76,570,168,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,170,107,105,106,96,245,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,82,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,571,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,572,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,574,573,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,575,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,47,1,5,22,3,5,1,14,3,1,2,40,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,576,577,578,579,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,580,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,581,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,582,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,583,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,130,131,-171,126,127,128,-171,-171,129,-171,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,584,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,585,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,136,137,-185,586,-185,-230,-230,-230,-185,-230,-230,-185,-230,140,-185,-185,-185,-185,-185,141,389,390,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,4,17,118,1,1,588,587,90,91,16,6,14,7,6,3,1,64,6,7,26,1,9,6,8,1,1,-395,157,100,159,-395,-395,96,158,160,162,161,101,155,589,154,156,2,6,30,590,591,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,592,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,25,5,1,75,22,-339,-339,-339,-339,-339,-339,7,6,25,5,1,14,61,22,-342,-342,-342,-342,-342,-342,-342,8,6,11,14,5,1,14,61,22,-344,593,-344,-344,-344,-344,-344,-344,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,5,2,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,2,6,31,108,594,2,111,20,142,349,2,111,20,142,350,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-161,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,595,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,596,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-164,1,37,597,1,37,598,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,-514,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-514,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-158,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,599,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,601,600,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,602,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,130,131,-175,126,127,128,-175,-175,129,-175,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,3,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,603,405,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,9,20,7,6,3,20,45,6,34,9,604,100,605,164,607,96,606,161,101,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,609,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,608,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,3,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,610,405,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,3,1,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,611,405,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,612,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,613,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,614,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,615,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,214,616,1,216,617,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,-476,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,618,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,11,20,7,6,68,6,7,26,1,9,16,53,157,100,159,96,158,160,162,161,101,202,619,3,206,1,1,620,421,422,4,37,157,13,1,621,622,623,422,3,37,157,14,-455,-455,-455,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,4,1,7,3,1,1,3,1,1,1,1,1,625,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,624,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,626,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,627,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,628,3,17,19,20,630,164,629,4,17,4,15,75,-330,631,-330,431,4,17,4,15,75,-330,632,-330,431,18,6,14,7,4,2,3,65,6,5,2,19,7,1,9,6,8,1,1,-332,157,100,-332,159,-332,96,158,-332,160,633,162,161,101,155,153,154,156,3,17,19,20,635,164,634,4,17,4,15,75,-330,636,-330,431,4,17,4,15,75,-330,637,-330,431,44,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,164,-353,638,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-353,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,639,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,640,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,25,36,139,12,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,219,641,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,2,6,31,643,642,2,6,31,-366,-366,25,6,31,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,6,6,31,150,1,9,1,-370,-370,134,135,132,133,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,644,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,101,645,1,37,646,3,27,6,117,100,647,101,3,23,68,1,648,170,107,3,26,1,13,649,650,230,3,23,68,1,651,170,107,1,25,652,5,6,22,2,1,5,-394,-394,653,654,-394,5,6,22,3,5,1,-35,-35,-35,-35,-35,6,20,9,6,1,3,62,456,655,454,455,457,96,6,6,22,3,5,1,1,-40,-40,-40,-40,-40,656,6,6,22,3,5,1,1,-42,-42,-42,-42,-42,657,1,25,658,1,25,659,7,20,8,1,6,1,3,62,456,660,661,454,455,457,96,2,20,81,662,96,44,1,5,19,3,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,663,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,5,6,22,2,1,5,-394,-394,664,665,-394,5,6,22,3,5,1,-85,-85,-85,-85,-85,6,20,16,3,3,17,42,667,465,467,666,464,96,8,6,22,3,5,2,13,2,101,-90,-90,-90,-90,668,-304,-304,-304,6,6,22,3,5,1,1,-93,-93,-93,-93,-93,669,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,130,131,-56,126,127,128,-56,-56,129,-56,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,27,6,117,100,670,101,3,23,68,1,671,170,107,3,20,19,62,672,673,96,6,17,4,15,16,1,58,-330,674,-330,429,430,431,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,676,675,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,677,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,51,3,1,2,1,678,679,680,681,682,1,51,683,1,51,684,4,54,1,2,1,361,362,364,365,4,17,37,1,2,685,368,369,370,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,2,6,31,108,686,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,687,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,57,10,5,4,3,5,10,4,17,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,57,10,5,4,3,5,10,4,17,28,1,1,1,1,1,1,6,1,2,18,7,1,1,4,4,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,491,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,5,6,25,5,1,105,-251,-251,-251,-251,-251,2,36,106,689,688,115,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,1,3,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-395,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,-395,-395,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-395,691,690,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,4,6,30,1,105,692,-252,-252,-252,61,6,4,5,4,3,5,4,5,1,4,17,28,1,1,1,1,1,1,6,1,2,25,1,1,4,4,1,1,1,1,1,1,8,6,2,1,10,2,1,2,6,4,2,1,1,4,4,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,6,6,24,1,5,1,108,-394,490,489,-394,-394,693,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,487,486,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,29,6,25,5,1,75,30,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,694,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,695,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,142,-218,-218,-218,-218,-218,-218,-218,-218,-218,696,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,2,102,1,697,268,2,102,1,698,268,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,699,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,23,68,1,700,170,107,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,28,31,88,37,6,1,24,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,702,701,484,703,483,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,108,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,5,6,1,1,4,3,1,1,1,1,1,1,9,6,2,1,3,1,6,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,704,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,705,94,95,89,41,42,90,91,86,87,88,83,101,484,84,85,510,483,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,119,706,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,707,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-317,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-317,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,708,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,709,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,88,-394,710,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,712,514,515,5,6,25,5,1,87,-294,-294,-294,-294,-294,7,6,25,5,1,14,73,30,-298,-298,-298,-298,714,-298,713,7,6,25,5,1,14,73,30,-302,-302,-302,-302,-302,-302,-302,7,6,25,5,1,14,73,30,-303,-303,-303,-303,-303,-303,-303,5,6,24,1,5,88,-394,715,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,716,514,515,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,4,1,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,717,718,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,-416,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,719,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,-497,3,6,22,8,721,720,722,25,6,14,3,5,8,1,47,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,-395,300,103,-395,-395,-395,296,294,102,104,170,107,105,106,96,301,268,302,298,297,723,292,293,295,299,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,724,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,725,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,726,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,727,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,728,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,154,729,24,142,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,730,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,731,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,13,6,22,3,5,1,44,30,5,1,1,4,3,6,-274,-274,-274,-274,-274,-276,142,-276,-276,-276,-276,-276,732,13,6,22,3,5,1,44,30,5,1,1,4,3,6,-275,-275,-275,-275,-275,737,142,734,735,736,738,739,733,12,6,22,3,5,1,44,30,5,1,1,4,3,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,12,6,22,3,5,1,44,30,5,1,1,4,3,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,12,6,22,3,5,1,44,30,5,1,1,4,3,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,12,6,22,3,5,1,44,30,5,1,1,4,3,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,4,111,5,2,13,142,261,262,740,2,111,20,142,741,5,6,22,2,1,5,-394,-394,742,526,-394,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,5,91,1,2,2,4,-137,-137,-137,-137,-137,2,6,91,108,743,106,4,1,2,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,744,3,4,5,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,91,1,2,2,4,-140,-140,-140,-140,-140,61,1,5,22,3,1,4,1,44,2,8,1,2,2,1,3,11,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,745,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,747,177,335,336,28,29,30,31,73,32,65,54,71,103,100,76,746,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,748,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,749,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,750,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,751,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,214,752,1,216,753,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,754,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,755,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,756,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,757,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,76,759,760,758,111,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,2,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-395,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-395,-395,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,-395,92,93,94,95,89,41,42,90,91,86,87,88,83,761,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,1,-394,762,561,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-147,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,763,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-149,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,764,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,765,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,6,3,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,136,137,-186,766,-186,-230,-230,-230,-186,-230,-230,-186,-230,140,-186,-186,-186,-186,-186,141,389,390,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-152,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,767,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,768,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,770,769,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,771,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,772,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,108,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,2,5,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,192,191,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,193,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,773,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,1,6,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,374,373,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,375,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,774,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-160,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,130,131,-172,126,127,128,-172,-172,129,-172,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,775,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,776,777,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,20,164,778,3,135,1,1,779,90,91,6,6,25,5,1,75,22,-334,-334,-334,-334,-334,-334,13,20,7,6,68,6,7,26,1,9,6,8,1,1,157,100,159,96,158,160,162,161,101,155,780,154,156,18,6,14,7,4,2,3,1,64,6,7,19,7,1,9,6,8,1,1,-332,157,100,-332,159,-332,-332,96,158,160,781,162,161,101,155,153,154,156,29,6,25,5,1,75,22,53,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,7,6,25,5,1,14,61,22,-343,-343,-343,-343,-343,-343,-343,56,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,5,2,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,782,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-163,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,-510,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,-513,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-159,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-165,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,783,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,784,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,2,36,20,164,785,2,36,20,164,786,2,36,20,164,787,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,130,131,-444,126,127,128,-444,-444,129,-444,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,27,36,20,131,1,1,5,3,1,12,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,788,130,131,790,126,127,128,129,789,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,791,130,131,792,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,793,130,131,794,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,795,130,131,796,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,797,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,798,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,799,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,4,212,2,2,2,-495,-495,-495,-495,4,37,157,13,1,800,801,623,422,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,2,36,20,164,802,3,37,157,14,-456,-456,-456,3,31,5,20,804,164,803,25,31,5,151,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,805,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,806,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,44,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,164,-17,807,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,3,17,19,20,809,164,808,3,17,19,20,811,164,810,5,6,24,1,5,76,-394,382,381,-394,812,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,2,36,20,164,813,3,17,19,20,815,164,814,3,17,19,20,817,164,816,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,44,1,5,22,3,5,1,19,41,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,164,-357,818,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-357,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,819,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,-365,109,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,3,1,1,1,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,-368,443,444,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-368,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,820,445,446,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,25,6,31,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,2,6,31,-372,-372,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,821,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,1,25,822,6,20,9,6,1,3,62,456,823,454,455,457,96,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,824,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,3,23,68,1,825,170,107,3,6,22,8,827,826,828,8,6,14,8,7,1,1,2,62,-395,456,-395,829,-395,-395,457,96,5,6,24,1,5,1,-394,830,654,-394,-394,2,20,81,831,96,2,20,81,832,96,3,23,68,1,833,170,107,3,23,68,1,834,170,107,1,25,835,5,6,22,2,1,5,-394,-394,836,654,-394,1,25,-45,3,23,68,1,837,170,107,3,6,22,8,839,838,840,8,6,14,8,8,1,2,20,42,-395,667,-395,-395,-395,467,841,96,5,6,24,1,5,1,-394,842,665,-394,-394,6,6,22,3,5,1,1,-90,-90,-90,-90,-90,668,3,20,19,62,843,844,96,2,20,81,845,96,1,37,846,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,1,25,847,1,25,848,3,17,19,20,849,164,629,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,130,131,-63,126,127,128,-63,-63,129,-63,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,850,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,851,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,853,852,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,854,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,856,855,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,857,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,859,858,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,860,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,862,861,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,863,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,107,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,865,864,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,164,72,22,21,10,11,13,14,866,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,867,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,6,1,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,869,868,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,870,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,54,1,2,577,578,579,1,185,871,24,142,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,872,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,113,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,1,2,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,255,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,493,873,254,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,105,-246,-246,-246,-246,-246,112,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,3,1,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,1,5,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,-253,-253,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,-253,487,486,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,111,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,4,2,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,2,3,1,1,2,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,256,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,493,874,257,253,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,2,36,1,689,875,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,876,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,877,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,878,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,106,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,4,4,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,4,7,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,879,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,-315,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,-315,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,27,37,119,6,1,24,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,880,484,703,483,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,1,37,881,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,25,37,82,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,882,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,883,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,88,885,886,884,10,6,14,16,1,64,1,1,21,36,1,-395,516,-395,-395,96,517,268,-395,887,515,5,6,24,1,5,1,-394,888,711,-394,-394,5,20,81,1,1,58,516,96,517,268,889,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,890,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,88,885,886,891,5,6,24,1,5,1,-394,892,711,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,-417,3,36,20,136,164,894,893,2,36,20,164,895,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,21,20,3,61,1,4,1,1,1,6,1,2,1,1,11,26,1,10,1,1,2,1,300,103,296,294,102,104,170,107,105,106,96,301,268,302,298,297,896,292,293,295,299,26,6,14,3,8,5,1,47,1,4,1,1,1,6,1,2,1,1,11,26,1,8,2,1,1,2,1,-260,300,103,-260,-260,-260,296,294,102,104,170,107,105,106,96,301,268,302,298,297,897,291,292,293,295,299,5,6,22,3,5,1,-262,-262,-262,-262,-262,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,898,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,899,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,900,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,901,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,117,-309,-309,-309,-309,-309,-309,24,142,45,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,902,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,12,6,22,3,5,1,44,30,5,1,1,4,3,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,12,6,22,3,5,1,44,30,5,1,1,4,3,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,2,102,1,903,268,2,102,1,904,268,105,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,905,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,906,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,12,6,22,3,5,1,44,30,5,1,1,4,3,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,8,20,16,65,1,1,20,37,1,516,908,96,517,268,907,514,515,8,20,16,65,1,1,20,37,1,516,910,96,517,268,909,514,515,12,6,22,3,5,1,44,30,5,1,1,4,3,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,12,6,22,3,5,1,44,30,5,1,1,4,3,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,3,6,22,8,721,911,722,5,91,1,2,2,4,-138,-138,-138,-138,-138,2,6,31,108,912,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,-505,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-505,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,913,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,130,131,-430,126,-430,-430,-430,-430,129,-430,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-430,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,-478,914,-478,-478,-478,-478,-478,-478,915,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-478,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,-483,916,-483,-483,-483,-483,-483,-483,-483,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-483,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,-487,917,-487,-487,-487,-487,-487,-487,-487,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-487,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,-491,918,-491,-491,-491,-491,-491,-491,-491,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-491,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,919,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,920,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-411,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,-413,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-413,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,-412,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-412,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,-414,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-414,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,107,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,921,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,109,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,6,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,922,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,25,5,1,75,-388,-388,-388,-388,-388,3,6,30,1,759,760,923,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-150,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,924,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,110,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,3,5,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,5,1,1,1,11,1,1,4,3,1,1,1,1,1,1,6,3,6,2,1,8,2,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,356,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,355,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,925,926,92,93,94,95,89,41,42,90,91,86,87,88,83,354,101,259,84,85,258,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-153,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,927,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-155,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,928,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,929,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-385,-385,-187,-385,-187,-385,-385,-385,-187,-385,-385,-187,-385,-187,-187,-187,-187,-187,-385,-385,-385,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,5,6,24,1,5,76,-394,930,561,-394,-394,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,36,20,164,931,6,6,25,5,1,75,22,-335,-335,-335,-335,-335,-335,5,6,24,1,5,1,-394,932,381,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-166,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,933,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,-461,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,934,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,935,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,-466,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,936,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,-470,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,937,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,938,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,939,130,131,940,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,941,130,131,942,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,-477,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,2,36,20,164,943,1,37,944,4,6,31,157,14,945,-457,-457,-457,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,946,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,2,36,20,164,947,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,2,36,20,164,948,2,17,19,-331,-331,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,2,36,20,164,949,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,2,36,20,164,950,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,2,6,31,-367,-367,3,27,6,117,100,951,101,3,23,68,1,952,170,107,5,6,22,2,1,5,-394,-394,953,654,-394,3,27,6,117,100,954,101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,1,25,955,4,20,15,4,62,456,956,457,96,6,20,9,6,1,3,62,456,957,454,455,457,96,5,6,22,3,5,1,-36,-36,-36,-36,-36,3,6,30,1,827,828,958,5,6,22,3,5,1,-41,-41,-41,-41,-41,5,6,22,3,5,1,-43,-43,-43,-43,-43,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,3,23,68,1,959,170,107,3,6,22,8,827,960,828,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,-61,44,1,5,19,3,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,961,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,4,20,19,20,42,667,467,962,96,6,20,16,3,3,17,42,667,465,467,963,464,96,5,6,22,3,5,1,-86,-86,-86,-86,-86,3,6,30,1,839,840,964,5,6,22,3,5,1,-91,-91,-91,-91,-91,5,6,22,3,5,1,-92,-92,-92,-92,-92,5,6,22,3,5,1,-94,-94,-94,-94,-94,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,3,23,68,1,965,170,107,3,23,68,1,966,170,107,2,36,20,164,807,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,130,131,-64,126,127,128,-64,-64,129,-64,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,967,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,130,131,-66,126,127,128,-66,-66,129,-66,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,968,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,969,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,130,131,-73,126,127,128,-73,-73,129,-73,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,970,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,971,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,130,131,-76,126,127,128,-76,-76,129,-76,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,972,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,130,131,-79,126,127,128,-79,-79,129,-79,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,973,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,974,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,130,131,-82,126,127,128,-82,-82,129,-82,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,975,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,130,131,-69,126,127,128,-69,-69,129,-69,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,130,131,-70,126,127,128,-70,-70,129,-70,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,976,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,977,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,6,6,24,1,5,1,108,-394,490,489,-394,-394,978,5,6,25,5,1,105,-247,-247,-247,-247,-247,5,6,25,5,1,105,-248,-248,-248,-248,-248,1,119,979,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,980,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,37,82,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,1,119,981,1,119,982,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,983,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,6,20,81,1,1,57,1,516,96,517,268,984,515,7,20,81,1,1,20,37,1,516,96,517,268,985,514,515,5,6,25,5,1,87,-295,-295,-295,-295,-295,3,6,30,1,885,886,986,6,6,25,5,1,14,73,-299,-299,-299,-299,987,-299,28,6,25,5,1,87,63,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,3,6,30,1,885,886,988,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,989,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,5,6,22,3,5,1,-263,-263,-263,-263,-263,5,6,24,1,5,1,-394,990,526,-394,-394,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,991,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,992,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,28,6,22,3,5,1,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,993,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,6,6,22,3,5,1,117,-310,-310,-310,-310,-310,-310,12,6,22,3,5,1,44,30,5,1,1,4,3,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,12,6,22,3,5,1,44,30,5,1,1,4,3,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,24,119,68,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,994,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,995,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,5,6,24,1,5,88,-394,996,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,997,514,515,5,6,24,1,5,88,-394,998,711,-394,-394,7,20,81,1,1,20,37,1,516,96,517,268,999,514,515,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,13,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,2,1,1,2,2,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,1,97,1000,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1001,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1002,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1003,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1004,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1005,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1006,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,-485,1007,-485,-485,-485,-485,-485,-485,-485,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-485,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,-489,1008,-489,-489,-489,-489,-489,-489,-489,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-489,5,6,25,5,1,75,-389,-389,-389,-389,-389,5,6,24,1,5,1,-394,1009,561,-394,-394,5,6,25,5,1,75,-390,-390,-390,-390,-390,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-385,-385,-188,-385,-188,-385,-385,-385,-188,-385,-385,-188,-385,-188,-188,-188,-188,-188,-385,-385,-385,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,5,6,24,1,5,76,-394,1010,561,-394,-394,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-156,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1011,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,6,30,76,759,760,1012,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,3,6,30,1,590,591,1013,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,26,36,20,131,1,1,5,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1014,130,131,1015,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,26,36,20,131,1,6,3,1,12,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1016,130,131,126,127,128,129,1017,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1018,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1019,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1020,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,-468,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1021,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,-472,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1022,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,37,1023,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,3,37,157,14,-458,-458,-458,25,31,5,151,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,1024,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,3,6,22,8,827,1025,828,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,3,23,68,1,1026,170,107,5,6,22,3,5,1,-37,-37,-37,-37,-37,5,6,24,1,5,1,-394,1027,654,-394,-394,5,6,22,3,5,1,-38,-38,-38,-38,-38,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,1,25,1028,3,23,68,1,1029,170,107,5,6,22,3,5,1,-87,-87,-87,-87,-87,5,6,24,1,5,1,-394,1030,665,-394,-394,5,6,22,3,5,1,-88,-88,-88,-88,-88,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,130,131,-67,126,127,128,-67,-67,129,-67,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1031,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,130,131,-74,126,127,128,-74,-74,129,-74,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1032,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,130,131,-77,126,127,128,-77,-77,129,-77,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,130,131,-80,126,127,128,-80,-80,129,-80,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1033,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,130,131,-83,126,127,128,-83,-83,129,-83,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,130,131,-71,126,127,128,-71,-71,129,-71,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1034,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,2,36,1,689,1035,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,119,1036,5,6,25,5,1,87,-296,-296,-296,-296,-296,5,6,24,1,5,1,-394,1037,711,-394,-394,1,124,1038,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1039,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,1,124,1040,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1041,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,6,30,1,721,722,1042,5,6,22,3,5,1,-268,-268,-268,-268,-268,5,6,22,3,5,1,-271,-271,-271,-271,-271,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1043,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,12,6,22,3,5,1,44,30,5,1,1,4,3,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,24,37,150,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1044,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,3,6,30,88,885,886,1045,5,6,24,1,5,1,-394,1046,711,-394,-394,3,6,30,88,885,886,1047,5,6,24,1,5,1,-394,1048,711,-394,-394,5,91,1,2,2,4,-139,-139,-139,-139,-139,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,-479,1049,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-479,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,-480,1050,-480,-480,-480,-480,-480,-480,-480,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-480,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,-484,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-484,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,-488,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-488,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,-492,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-492,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1051,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1052,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,3,6,30,1,759,760,1053,3,6,30,76,759,760,1054,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-386,-386,-189,-386,-189,-386,-386,-386,-189,-386,-386,-189,-386,-189,-189,-189,-189,-189,-386,-386,-386,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,6,6,25,5,1,75,22,-336,-336,-336,-336,-336,-336,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,-462,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1055,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,-463,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1056,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,-467,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,-471,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,-475,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1057,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1058,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,3,27,6,117,100,1059,101,1,25,1060,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,1061,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,3,6,30,1,827,828,1062,3,23,68,1,1063,170,107,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,3,6,30,1,839,840,1064,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,5,6,25,5,1,105,-249,-249,-249,-249,-249,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,3,6,30,1,885,886,1065,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,28,6,25,5,1,87,63,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,68,1,5,11,1,10,3,5,1,14,1,2,1,2,1,23,2,14,8,1,4,1,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,8,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,44,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,4,1,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,1066,718,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,-418,5,6,22,3,5,1,-264,-264,-264,-264,-264,5,6,22,3,5,1,-273,-273,-273,-273,-273,1,119,1067,12,6,22,3,5,1,44,30,5,1,1,4,3,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,3,6,30,1,885,886,1068,12,6,22,3,5,1,44,30,5,1,1,4,3,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,3,6,30,1,885,886,1069,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1070,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,104,7,1,1,1,1,1,1,1,1,1,3,1,2,1,4,6,8,2,1,2,1,1,1,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,6,1,2,3,3,7,1,11,1,1,4,3,1,1,1,1,1,1,9,8,1,10,2,1,2,6,4,2,1,1,2,1,1,3,1,3,5,1,5,7,3,1,1,3,1,1,1,1,1,1071,177,26,27,28,29,30,31,73,32,65,54,71,103,100,76,72,22,21,10,11,13,14,55,6,7,8,9,12,15,16,17,18,19,20,23,24,25,33,34,35,36,37,38,39,40,77,78,79,80,81,102,104,53,107,105,106,96,45,75,92,93,94,95,89,41,42,90,91,86,87,88,83,101,84,85,66,74,67,68,69,82,70,61,62,63,56,97,57,98,58,64,60,59,49,99,43,44,46,47,48,50,51,52,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,-486,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-486,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,-490,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-490,5,6,25,5,1,75,-391,-391,-391,-391,-391,55,1,5,22,3,5,1,44,2,14,14,1,4,1,1,1,2,1,2,1,9,8,12,2,7,18,1,1,2,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-386,-386,-190,-386,-190,-386,-386,-386,-190,-386,-386,-190,-386,-190,-190,-190,-190,-190,-386,-386,-386,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1072,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,25,36,20,131,1,6,3,1,12,13,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,164,1073,130,131,126,127,128,129,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,125,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,-469,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,-473,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,3,23,68,1,1074,170,107,3,27,6,117,100,1075,101,5,6,22,3,5,1,-39,-39,-39,-39,-39,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,5,6,22,3,5,1,-89,-89,-89,-89,-89,5,6,25,5,1,87,-297,-297,-297,-297,-297,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,-419,12,6,22,3,5,1,44,30,5,1,1,4,3,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,1,124,1076,1,124,1077,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,-481,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-481,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,-482,109,110,113,112,111,114,115,116,117,118,119,120,121,122,123,124,-482,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,-465,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,-464,44,1,5,22,3,1,4,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,1078,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,12,6,22,3,5,1,44,30,5,1,1,4,3,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,12,6,22,3,5,1,44,30,5,1,1,4,3,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,3,27,6,117,100,1079,101,43,1,5,22,3,5,1,60,15,7,5,10,8,12,2,7,22,2,1,1,5,3,1,4,1,7,3,10,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30],t=[],r=0,i,n,s,a;while(r","ArrowKind → =>","DoIife → DO_IIFE Code","This → THIS","This → @","ThisProperty → @ Property","ThisProperty → @ STRING","Array → [ ]","Array → [ Elisions ]","Array → [ ArgElisionList OptElisions ]","ArgElisionList → ArgElision","ArgElisionList → ArgElisionList , ArgElision","ArgElisionList → ArgElisionList OptComma TERMINATOR ArgElision","ArgElisionList → INDENT ArgElisionList OptElisions OUTDENT","ArgElisionList → ArgElisionList OptElisions INDENT ArgElisionList OptElisions OUTDENT","ArgElision → Arg","ArgElision → Elisions Arg","OptElisions → OptComma","OptElisions → , Elisions","Elisions → Elision","Elisions → Elisions Elision","Elision → ,","Elision → Elision TERMINATOR","Object → { AssignList OptComma }","Object → MAP_START { AssignList OptComma }","AssignList → ε","AssignList → AssignObj","AssignList → AssignList , AssignObj","AssignList → AssignList OptComma TERMINATOR AssignObj","AssignList → AssignList OptComma INDENT AssignList OptComma OUTDENT","AssignObj → ObjAssignable","AssignObj → ObjRestValue","AssignObj → ObjAssignable : Expression","AssignObj → ObjAssignable : INDENT Expression OUTDENT","AssignObj → Regex : Expression","AssignObj → SimpleObjAssignable = Expression","AssignObj → SimpleObjAssignable = INDENT Expression OUTDENT","AssignObj → SimpleObjAssignable VOID_MARKER : Expression","AssignObj → SimpleObjAssignable VOID_MARKER : INDENT Expression OUTDENT","ObjRestValue → ... SimpleObjAssignable","ObjRestValue → ... ObjSpreadExpr","ObjSpreadExpr → SimpleObjAssignable","ObjSpreadExpr → Object","ObjSpreadExpr → Parenthetical","ObjSpreadExpr → Super","ObjSpreadExpr → This","ObjSpreadExpr → SUPER Arguments","ObjSpreadExpr → DYNAMIC_IMPORT Arguments","ObjSpreadExpr → SimpleObjAssignable Arguments","ObjSpreadExpr → ObjSpreadExpr Arguments","ObjSpreadExpr → ObjSpreadExpr . Property","ObjSpreadExpr → ObjSpreadExpr ?. Property","ObjSpreadExpr → ObjSpreadExpr INDEX_START Expression INDEX_END","ObjSpreadExpr → ObjSpreadExpr INDEX_START INDENT Expression OUTDENT INDEX_END","ObjSpreadExpr → ObjSpreadExpr DAMMIT","ObjSpreadExpr → ObjSpreadExpr PICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START PickList OptComma PICK_END","ObjSpreadExpr → ObjSpreadExpr PICK_START INDENT PickList OptComma OUTDENT PICK_END","ObjSpreadExpr → ObjSpreadExpr OPTPICK_START INDENT PickList OptComma OUTDENT PICK_END","PickList → PickItem","PickList → PickList , PickItem","PickList → PickList OptComma TERMINATOR PickItem","PickList → PickList OptComma INDENT PickList OptComma OUTDENT","PickItem → PickKey","PickItem → PickKey : PickKey","PickItem → PickKey = Expression","PickItem → PickKey : PickKey = Expression","PickKey → Identifier","PickKey → Property","SimpleObjAssignable → Identifier","SimpleObjAssignable → Property","SimpleObjAssignable → ThisProperty","ObjAssignable → SimpleObjAssignable","ObjAssignable → Atom","ObjAssignable → [ Expression ]","ObjAssignable → @ [ Expression ]","RangeDots → ..","RangeDots → ...","Range → [ Expression RangeDots Expression ]","Slice → Expression RangeDots Expression","Slice → Expression RangeDots","Slice → RangeDots Expression","Slice → RangeDots","Def → DEF Identifier OptParams Block","Def → DEF Identifier OptParams TYPE Block","Def → DEF Identifier TYPE_PARAMS OptParams Block","Def → DEF Identifier TYPE_PARAMS OptParams TYPE Block","Def → DEF Identifier VOID_MARKER OptParams Block","Def → DEF Identifier VOID_MARKER OptParams TYPE Block","Def → DEF ThisProperty OptParams Block","Def → DEF ThisProperty OptParams TYPE Block","Def → DEF ThisProperty TYPE_PARAMS OptParams Block","Def → DEF ThisProperty TYPE_PARAMS OptParams TYPE Block","Def → DEF ThisProperty VOID_MARKER OptParams Block","Def → DEF ThisProperty VOID_MARKER OptParams TYPE Block","OptParams → ε","OptParams → CALL_START ParamList CALL_END","ParamList → ε","ParamList → Param","ParamList → ParamList , Param","ParamList → ParamList OptComma TERMINATOR Param","ParamList → ParamList OptComma INDENT ParamList OptComma OUTDENT","Param → TypedParamVar","Param → TypedParamVar = Expression","Param → ... TypedParamVar","Param → ...","TypedParamVar → ParamVar","TypedParamVar → ParamVar TYPE","TypedParamVar → ParamVar OPT_MARKER TYPE","TypedParamVar → ParamVar OPT_MARKER","ParamVar → Identifier","ParamVar → Array","ParamVar → Object","ParamVar → ThisProperty","Splat → ... Expression","ClassName → Identifier","Class → CLASS","Class → CLASS Block","Class → CLASS EXTENDS Expression","Class → CLASS EXTENDS Expression Block","Class → CLASS ClassName","Class → CLASS ClassName Block","Class → CLASS ClassName EXTENDS Expression","Class → CLASS ClassName EXTENDS Expression Block","Class → CLASS ThisProperty Block","Class → CLASS ThisProperty EXTENDS Expression Block","Enum → ENUM Identifier Block","Schema → SCHEMA SCHEMA_BODY","Component → COMPONENT ComponentBlock","Component → COMPONENT EXTENDS Expression ComponentBlock","ComponentBlock → INDENT ComponentBody OUTDENT","ComponentBody → ComponentLine","ComponentBody → ComponentBody TERMINATOR ComponentLine","ComponentBody → ComponentBody TERMINATOR","ComponentLine → Expression","ComponentLine → Statement","ComponentLine → OFFER Expression","ComponentLine → ACCEPT IDENTIFIER","Render → RENDER Block","Render → RENDER Expression","Super → SUPER . Property","Super → SUPER INDEX_START Expression INDEX_END","Super → SUPER INDEX_START INDENT Expression OUTDENT INDEX_END","Invocation → Value Arguments","Invocation → SUPER Arguments","Invocation → Value ES6_OPTIONAL_CALL Arguments","Invocation → Value ? Arguments","Invocation → Value PRESENCE Arguments","Invocation → DYNAMIC_IMPORT Arguments","Invocation → DYNAMIC_IMPORT DAMMIT Arguments","Arguments → CALL_START CALL_END","Arguments → CALL_START ArgList OptComma CALL_END","ArgList → Arg","ArgList → ArgList , Arg","ArgList → ArgList OptComma TERMINATOR Arg","ArgList → INDENT ArgList OptComma OUTDENT","ArgList → ArgList OptComma INDENT ArgList OptComma OUTDENT","Arg → Expression","Arg → Splat","OptComma → ε","OptComma → ,","Block → INDENT OUTDENT","Block → INDENT Body OUTDENT","Parenthetical → ( Body )","Parenthetical → ( INDENT Body OUTDENT )","Return → RETURN Expression","Return → RETURN INDENT Object OUTDENT","Return → RETURN","While → WHILE Expression Block","While → UNTIL Expression Block","While → WHILE Expression WHEN Expression Block","While → UNTIL Expression WHEN Expression Block","While → Expression WHILE Expression","While → Statement WHILE Expression","While → Expression UNTIL Expression","While → Statement UNTIL Expression","While → Expression WHILE Expression WHEN Expression","While → Statement WHILE Expression WHEN Expression","While → Expression UNTIL Expression WHEN Expression","While → Statement UNTIL Expression WHEN Expression","While → Loop","IfBlock → IF Expression Block","IfBlock → IF Expression Block IfElseTail","IfElseTail → ELSE IF Expression Block","IfElseTail → ELSE IF Expression Block IfElseTail","IfElseTail → ELSE Block","UnlessBlock → UNLESS Expression Block","UnlessBlock → UNLESS Expression Block ELSE Block","If → IfBlock","If → UnlessBlock","If → Statement POST_IF Expression","If → Expression POST_IF Expression","If → Statement POST_UNLESS Expression","If → Expression POST_UNLESS Expression","If → Expression POST_IF Expression ELSE INDENT Expression OUTDENT","If → Expression POST_IF Expression ELSE Expression","Try → TRY Block","Try → TRY Expression","Try → TRY Expression Catch","Try → TRY Statement","Try → TRY Statement Catch","Try → TRY Block Catch","Try → TRY Block Finalizer","Try → TRY Block Catch Finalizer","Try → TRY Expression Finalizer","Try → TRY Expression Catch Finalizer","Try → TRY Statement Finalizer","Try → TRY Statement Catch Finalizer","Finalizer → FINALLY Block","Finalizer → FINALLY Expression","Catch → CATCH Identifier Block","Catch → CATCH Object Block","Catch → CATCH Array Block","Catch → CATCH Block","Throw → THROW Expression","Throw → THROW INDENT Object OUTDENT","Switch → SWITCH Expression INDENT Cases OUTDENT","Switch → SWITCH Expression INDENT Cases ELSE Block OUTDENT","Switch → SWITCH INDENT Cases OUTDENT","Switch → SWITCH INDENT Cases ELSE Block OUTDENT","Cases → When","Cases → Cases When","When → LEADING_WHEN SimpleArgs Block","When → LEADING_WHEN SimpleArgs Block TERMINATOR","SimpleArgs → Expression","SimpleArgs → SimpleArgs , Expression","For → FOR ForVariables FORIN Expression Block","For → FOR ForVariables FORIN Expression BY Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression Block","For → FOR ForVariables FORIN Expression WHEN Expression BY Expression Block","For → FOR ForVariables FORIN Expression BY Expression WHEN Expression Block","For → FOR ForVariables FOROF Expression Block","For → FOR ForVariables FOROF Expression WHEN Expression Block","For → FOR OWN ForVariables FOROF Expression Block","For → FOR OWN ForVariables FOROF Expression WHEN Expression Block","For → FOR ForVariables FORAS Expression Block","For → FOR ForVariables FORAS Expression WHEN Expression Block","For → FOR AWAIT ForVariables FORAS Expression Block","For → FOR AWAIT ForVariables FORAS Expression WHEN Expression Block","For → FOR ForVariables FORASAWAIT Expression Block","For → FOR ForVariables FORASAWAIT Expression WHEN Expression Block","For → FOR Range Block","For → FOR Range BY Expression Block","For → Expression FOR ForVariables FORIN Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression","For → Expression FOR ForVariables FORIN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression WHEN Expression BY Expression","For → Expression FOR ForVariables FORIN Expression BY Expression WHEN Expression","For → Expression FOR ForVariables FOROF Expression","For → Expression FOR ForVariables FOROF Expression WHEN Expression","For → Expression FOR OWN ForVariables FOROF Expression","For → Expression FOR OWN ForVariables FOROF Expression WHEN Expression","For → Expression FOR ForVariables FORAS Expression","For → Expression FOR ForVariables FORAS Expression WHEN Expression","For → Expression FOR AWAIT ForVariables FORAS Expression","For → Expression FOR AWAIT ForVariables FORAS Expression WHEN Expression","For → Expression FOR ForVariables FORASAWAIT Expression","For → Expression FOR ForVariables FORASAWAIT Expression WHEN Expression","ForValue → ParamVar","ForVariables → ForValue","ForVariables → ForValue , ForValue","Loop → LOOP Block","Loop → LOOP Expression Block","Operation → -- SimpleAssignable","Operation → ++ SimpleAssignable","Operation → SimpleAssignable --","Operation → SimpleAssignable ++","Operation → Value ?","Operation → Value PRESENCE","Operation → Expression CAST","Operation → Expression TERNARY Expression : Expression","Operation → UNARY Expression","Operation → DO Expression","Operation → UNARY_MATH Expression","Operation → AWAIT Expression","Operation → AWAIT INDENT Object OUTDENT","Operation → YIELD","Operation → YIELD Expression","Operation → YIELD INDENT Object OUTDENT","Operation → YIELD FROM Expression","Operation → - Expression","Operation → + Expression","Operation → Expression ** Expression","Operation → Expression + Expression","Operation → Expression - Expression","Operation → Expression MATH Expression","Operation → Expression SHIFT Expression","Operation → Expression & Expression","Operation → Expression ^ Expression","Operation → Expression | Expression","Operation → Expression COMPARE Expression","Operation → Expression MATCH Expression","Operation → Expression RELATION Expression","Operation → Expression && Expression","Operation → Expression || Expression","Operation → Expression ?? Expression","Operation → Expression && Return","Operation → Expression || Return","Operation → Expression ?? Return","Operation → Expression && STATEMENT","Operation → Expression || STATEMENT","Operation → Expression ?? STATEMENT","Operation → Expression THEN Expression","Operation → Expression ELSE Expression","Operation → Expression THEN Return","Operation → Expression ELSE Return","Operation → Expression THEN STATEMENT","Operation → Expression ELSE STATEMENT"],ruleActions:(e,t,r,i)=>{let n=t,s=t.length-1;switch(e){case 1:return["program"];case 2:return["program",...n[s]];case 3:case 35:case 85:case 136:case 250:case 254:case 261:case 294:case 333:case 366:case 387:case 455:case 459:case 494:return[n[s]];case 4:case 36:case 86:case 262:case 295:case 334:case 367:case 388:{let a=n[s-2];return a.push(n[s]),a}break;case 5:case 138:case 173:case 257:case 331:case 368:return n[s-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 40:case 42:case 44:case 90:case 93:case 95:case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 124:case 126:case 127:case 130:case 131:case 132:case 134:case 141:case 142:case 144:case 145:case 168:case 169:case 170:case 171:case 172:case 174:case 175:case 176:case 198:case 199:case 221:case 222:case 223:case 224:case 225:case 230:case 231:case 235:case 236:case 245:case 266:case 276:case 277:case 278:case 279:case 280:case 302:case 303:case 304:case 305:case 306:case 307:case 308:case 337:case 341:case 345:case 346:case 347:case 348:case 350:case 369:case 370:case 392:case 393:case 394:case 395:case 415:case 420:case 423:case 424:case 443:case 493:return n[s];case 14:return["type-decl",n[s]];case 15:case 342:return["typed-var",n[s-1],n[s]];case 16:case 343:return["typed-var",n[s-2],n[s]];case 17:return["def-sig",n[s-2],n[s-1],n[s]];case 18:return["import",n[s]];case 19:case 20:case 31:case 32:return["import",n[s-2],n[s]];case 21:case 33:return["import","{}",n[s]];case 22:case 34:return["import",n[s-4],n[s]];case 23:return["import",n[s-4],n[s-2],n[s]];case 24:return["import",n[s-7],n[s-4],n[s]];case 25:return["import",[n[s-1],n[s]],n[s-2]];case 26:case 27:return["import",n[s-4],[n[s-1],n[s]],n[s-2]];case 28:return["import",n[s-6],[n[s-1],n[s]],n[s-2]];case 29:return["import",n[s-6],n[s-4],[n[s-1],n[s]],n[s-2]];case 30:return["import",n[s-9],n[s-6],[n[s-1],n[s]],n[s-2]];case 37:case 87:case 263:case 296:case 335:case 389:{let a=n[s-3];return a.push(n[s]),a}break;case 38:case 88:case 139:case 386:case 390:return n[s-2];case 39:case 89:case 264:case 297:case 336:case 391:{let a=n[s-5];return a.push(...n[s-2]),a}break;case 41:case 43:case 91:case 92:case 94:case 495:return[n[s-2],n[s]];case 45:return["*",n[s]];case 46:return["export","{}"];case 47:return["export",n[s-2]];case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return["export",n[s]];case 56:return["export-default",n[s]];case 57:return["export-default",n[s-1]];case 58:return["export-all",n[s]];case 59:case 60:return["export-all",n[s],n[s-2]];case 61:return["export-from","{}",n[s]];case 62:return["export-from",n[s-4],n[s]];case 63:case 146:case 158:case 270:return["=",n[s-2],n[s]];case 64:case 66:case 69:case 147:case 149:case 152:case 159:case 160:return["=",n[s-3],n[s]];case 65:case 148:case 271:return["=",n[s-4],n[s-1]];case 67:case 150:case 153:case 155:return["=",n[s-4],n[s]];case 68:case 151:case 154:return["=",n[s-5],n[s-1]];case 70:case 165:return["void-assign",n[s-3],n[s]];case 71:case 166:return["void-assign",n[s-4],n[s]];case 72:case 167:return["void-assign",n[s-5],n[s-1]];case 73:case 178:case 179:return["state",n[s-3],n[s]];case 74:case 180:return["state",n[s-4],n[s]];case 75:return["state",n[s-5],n[s-1]];case 76:case 78:case 182:case 183:return["computed",n[s-3],n[s]];case 77:case 184:return["computed",n[s-4],n[s]];case 79:case 192:case 193:return["readonly",n[s-3],n[s]];case 80:case 194:return["readonly",n[s-4],n[s]];case 81:return["readonly",n[s-5],n[s-1]];case 82:case 84:case 196:return["effect",n[s-3],n[s]];case 83:return["effect",n[s-4],n[s]];case 123:case 289:return["dammit!",n[s-1]];case 125:case 229:return["tagged-template",n[s-2],n[s]];case 128:return"undefined";case 129:return"null";case 133:return["symbol",n[s]];case 135:return["str",...n[s-1]];case 137:case 255:case 456:{let a=n[s-1];return a.push(n[s]),a}break;case 140:return"";case 143:return["here-regex",n[s],...n[s-1]];case 156:return["=",n[s-5],n[s]];case 157:return["=",n[s-6],n[s-1]];case 161:case 314:case 520:case 521:case 525:case 527:return[n[s-1],n[s-2],n[s]];case 162:return[n[s-3],n[s-4],n[s-1]];case 163:return[n[s-2],n[s-3],n[s]];case 164:return[".=",n[s-2],n[s]];case 177:return["state",n[s-2],n[s]];case 181:return["computed",n[s-2],n[s]];case 185:return["gate",n[s-2],n[s]];case 186:return["gate",n[s-3],n[s]];case 187:return["gate",n[s-4],n[s-2]];case 188:return["gate",n[s-5],n[s-2]];case 189:return["gate",n[s-6],n[s-4],...n[s-2]];case 190:return["gate",n[s-7],n[s-4],...n[s-2]];case 191:return["readonly",n[s-2],n[s]];case 195:return["effect",n[s-2],n[s]];case 197:return["effect",null,n[s]];case 200:case 213:case 214:case 226:case 285:return[".",n[s-2],n[s]];case 201:case 227:case 286:return["?.",n[s-2],n[s]];case 202:case 205:case 228:case 287:return["[]",n[s-3],n[s-1]];case 203:case 206:case 288:return["[]",n[s-5],n[s-2]];case 204:return["regex-index",n[s-5],n[s-3],n[s-1]];case 207:return["optindex",n[s-4],n[s-1]];case 208:return["optindex",n[s-6],n[s-2]];case 209:case 290:return[".{}",n[s-4],...n[s-2]];case 210:case 291:return["?.{}",n[s-4],...n[s-2]];case 211:case 292:return[".{}",n[s-6],...n[s-3]];case 212:case 293:return["?.{}",n[s-6],...n[s-3]];case 215:case 216:case 217:case 445:case 446:case 447:case 506:case 508:return[n[s-1],n[s]];case 218:return["await",["new",n[s-1]]];case 219:return["await",["new",[n[s-2],...n[s]]]];case 220:case 282:case 283:case 284:case 378:case 383:return[n[s-1],...n[s]];case 232:return[n[s-1],n[s-3],n[s]];case 233:return[n[s-1],n[s-4],n[s]];case 234:return[n[s-1],[],n[s]];case 237:case 507:return["do-iife",n[s]];case 238:case 239:return"this";case 240:case 241:return[".","this",n[s]];case 242:return["array"];case 243:return["array",...n[s-1]];case 244:return["array",...n[s-2],...n[s-1]];case 246:{let a=n[s-2];return a.push(...n[s]),a}break;case 247:{let a=n[s-3];return a.push(...n[s]),a}break;case 248:return[...n[s-2],...n[s-1]];case 249:{let a=n[s-5];return a.push(...n[s-4],...n[s-2],...n[s-1]),a}break;case 251:return[...n[s-1],n[s]];case 252:case 260:case 330:case 332:case 385:return[];case 253:return[...n[s]];case 256:return null;case 258:return["object",...n[s-2]];case 259:return["map",...n[s-2]];case 265:return[null,n[s],n[s]];case 267:case 269:return[":",n[s-2],n[s]];case 268:return[":",n[s-4],n[s-1]];case 272:return["void-pair",n[s-3],n[s]];case 273:return["void-pair",n[s-5],n[s-1]];case 274:case 275:case 349:return["...",n[s]];case 281:case 379:return["super",...n[s]];case 298:return[n[s],n[s],null];case 299:return[n[s-2],n[s],null];case 300:return[n[s-2],n[s-2],n[s]];case 301:return[n[s-4],n[s-2],n[s]];case 309:return["dynamicKey",n[s-1]];case 310:return["[]","this",n[s-1]];case 311:return"..";case 312:return"...";case 313:return[n[s-2],n[s-3],n[s-1]];case 315:return[n[s],n[s-1],null];case 316:return[n[s-1],null,n[s]];case 317:return[n[s],null,null];case 318:case 324:return["def",n[s-2],n[s-1],n[s]];case 319:case 325:return["def",n[s-3],n[s-2],n[s]];case 320:case 326:return["def",n[s-3],n[s-1],n[s]];case 321:case 327:return["def",n[s-4],n[s-2],n[s]];case 322:case 328:return["void-def",n[s-3],n[s-1],n[s]];case 323:case 329:return["void-def",n[s-4],n[s-2],n[s]];case 338:return["default",n[s-2],n[s]];case 339:return["rest",n[s]];case 340:return["expansion"];case 344:return["typed-var",n[s-1],""];case 351:return["class",null,null];case 352:return["class",null,null,n[s]];case 353:return["class",null,n[s]];case 354:return["class",null,n[s-1],n[s]];case 355:return["class",n[s],null];case 356:case 359:return["class",n[s-1],null,n[s]];case 357:return["class",n[s-2],n[s]];case 358:case 360:return["class",n[s-3],n[s-1],n[s]];case 361:return["enum",n[s-1],n[s]];case 362:return["schema",n[s]];case 363:return["component",null,n[s]];case 364:return["component",n[s-1],n[s]];case 365:case 397:return["block",...n[s-1]];case 371:return["offer",n[s]];case 372:return["accept",n[s]];case 373:case 374:return["render",n[s]];case 375:return[".","super",n[s]];case 376:return["[]","super",n[s-1]];case 377:return["[]","super",n[s-2]];case 380:case 381:return["optcall",n[s-2],...n[s]];case 382:return["dammit?",n[s-2],...n[s]];case 384:return["await",["import",...n[s]]];case 396:return["block"];case 398:return n[s-1].length===1?(Array.isArray(n[s-1][0])&&(n[s-1][0].parenthesized=!0),n[s-1][0]):["block",...n[s-1]];case 399:return n[s-2].length===1?(Array.isArray(n[s-2][0])&&(n[s-2][0].parenthesized=!0),n[s-2][0]):["block",...n[s-2]];case 400:return["return",n[s]];case 401:return["return",n[s-1]];case 402:return["return"];case 403:return["while",n[s-1],n[s]];case 404:return["while",["!",n[s-1]],n[s]];case 405:return["while",n[s-3],n[s-1],n[s]];case 406:return["while",["!",n[s-3]],n[s-1],n[s]];case 407:case 408:return["while",n[s],[n[s-2]]];case 409:case 410:return["while",["!",n[s]],[n[s-2]]];case 411:case 412:return["while",n[s-2],n[s],[n[s-4]]];case 413:case 414:return["while",["!",n[s-2]],n[s],[n[s-4]]];case 416:case 418:return["if",n[s-1],n[s]];case 417:case 419:return["if",n[s-2],n[s-1],n[s]];case 421:return["if",["!",n[s-1]],n[s]];case 422:return["if",["!",n[s-3]],n[s-2],n[s]];case 425:case 426:return["if",n[s],[n[s-2]]];case 427:case 428:return["if",["!",n[s]],[n[s-2]]];case 429:return["?:",n[s-4],n[s-6],n[s-1]];case 430:return["?:",n[s-2],n[s-4],n[s]];case 431:case 432:case 434:return["try",n[s]];case 433:case 435:case 436:case 437:case 439:case 441:return["try",n[s-1],n[s]];case 438:case 440:case 442:return["try",n[s-2],n[s-1],n[s]];case 444:return["block",n[s]];case 448:return[null,n[s]];case 449:return["throw",n[s]];case 450:return["throw",n[s-1]];case 451:return["switch",n[s-3],n[s-1],null];case 452:return["switch",n[s-5],n[s-3],n[s-1]];case 453:return["switch",null,n[s-1],null];case 454:return["switch",null,n[s-3],n[s-1]];case 457:return["when",n[s-1],n[s]];case 458:return["when",n[s-2],n[s-1]];case 460:return[...n[s-2],n[s]];case 461:return["for-in",n[s-3],n[s-1],null,null,n[s]];case 462:return["for-in",n[s-5],n[s-3],n[s-1],null,n[s]];case 463:return["for-in",n[s-5],n[s-3],null,n[s-1],n[s]];case 464:return["for-in",n[s-7],n[s-5],n[s-1],n[s-3],n[s]];case 465:return["for-in",n[s-7],n[s-5],n[s-3],n[s-1],n[s]];case 466:return["for-of",n[s-3],n[s-1],!1,null,n[s]];case 467:return["for-of",n[s-5],n[s-3],!1,n[s-1],n[s]];case 468:return["for-of",n[s-3],n[s-1],!0,null,n[s]];case 469:return["for-of",n[s-5],n[s-3],!0,n[s-1],n[s]];case 470:return["for-as",n[s-3],n[s-1],!1,null,n[s]];case 471:return["for-as",n[s-5],n[s-3],!1,n[s-1],n[s]];case 472:case 474:return["for-as",n[s-3],n[s-1],!0,null,n[s]];case 473:case 475:return["for-as",n[s-5],n[s-3],!0,n[s-1],n[s]];case 476:return["for-in",[],n[s-1],null,null,n[s]];case 477:return["for-in",[],n[s-3],n[s-1],null,n[s]];case 478:return["comprehension",n[s-4],[["for-in",n[s-2],n[s],null]],[]];case 479:return["comprehension",n[s-6],[["for-in",n[s-4],n[s-2],null]],[n[s]]];case 480:return["comprehension",n[s-6],[["for-in",n[s-4],n[s-2],n[s]]],[]];case 481:return["comprehension",n[s-8],[["for-in",n[s-6],n[s-4],n[s]]],[n[s-2]]];case 482:return["comprehension",n[s-8],[["for-in",n[s-6],n[s-4],n[s-2]]],[n[s]]];case 483:return["comprehension",n[s-4],[["for-of",n[s-2],n[s],!1]],[]];case 484:return["comprehension",n[s-6],[["for-of",n[s-4],n[s-2],!1]],[n[s]]];case 485:return["comprehension",n[s-5],[["for-of",n[s-2],n[s],!0]],[]];case 486:return["comprehension",n[s-7],[["for-of",n[s-4],n[s-2],!0]],[n[s]]];case 487:return["comprehension",n[s-4],[["for-as",n[s-2],n[s],!1,null]],[]];case 488:return["comprehension",n[s-6],[["for-as",n[s-4],n[s-2],!1,null]],[n[s]]];case 489:return["comprehension",n[s-5],[["for-as",n[s-2],n[s],!0,null]],[]];case 490:return["comprehension",n[s-7],[["for-as",n[s-4],n[s-2],!0,null]],[n[s]]];case 491:return["comprehension",n[s-4],[["for-as",n[s-2],n[s],!0,null]],[]];case 492:return["comprehension",n[s-6],[["for-as",n[s-4],n[s-2],!0,null]],[n[s]]];case 496:return["loop",n[s]];case 497:return["loop-n",n[s-1],n[s]];case 498:return["--",n[s],!1];case 499:return["++",n[s],!1];case 500:return["--",n[s-1],!0];case 501:return["++",n[s-1],!0];case 502:return["?",n[s-1]];case 503:return["presence",n[s-1]];case 504:return["cast",n[s-1],n[s]];case 505:return["?:",n[s-4],n[s-2],n[s]];case 509:return["await",n[s]];case 510:return["await",n[s-1]];case 511:return["yield"];case 512:return["yield",n[s]];case 513:return["yield",n[s-1]];case 514:return["yield-from",n[s]];case 515:return["-",n[s]];case 516:return["+",n[s]];case 517:return["**",n[s-2],n[s]];case 518:return["+",n[s-2],n[s]];case 519:return["-",n[s-2],n[s]];case 522:return["&",n[s-2],n[s]];case 523:return["^",n[s-2],n[s]];case 524:return["|",n[s-2],n[s]];case 526:return["=~",n[s-2],n[s]];case 528:case 531:case 534:case 537:case 539:case 541:return["&&",n[s-2],n[s]];case 529:case 532:case 535:case 538:case 540:case 542:return["||",n[s-2],n[s]];case 530:case 533:case 536:return["??",n[s-2],n[s]]}},parse(e,{primitives:t=!1,tolerant:r=!1}={}){let i,n,s,a,o,l,c,f,h,u,d,S,g,p,R,b,_,y,m,k,O,A,x,I,H,G,[K,Z,V,j]=[[0],[null],[null],[[]]],q=this.parseTable,t1=1,M=[],N=[],C=24,w=e.length;if(r)while(w>0&&(e[w-1]===` +`||e[w-1]==="\r"))w--;let D=new Set,B=!1,a1=[],h1=[],f1=[],z=new WeakMap,i1=1,X=Object.create(this.lexer),r1={ctx:{}},Q=this.ctx;for(let P in Q){if(!Object.hasOwn(Q,P))continue;let W=Q[P];r1.ctx[P]=W}if(X.setInput(e,r1.ctx),r&&Array.isArray(X.lexDiagnostics))M.push(...X.lexDiagnostics);[r1.ctx.lexer,r1.ctx.parser]=[X,this];let l1=()=>{let P=X.lex()||t1;if(typeof P!=="number")P=this.symbolIds[P]||P;return P},c1=null,F=null,J={},o1=()=>{f=[];let P=q[G];for(let W in P){if(!Object.hasOwn(P,W))continue;if(this.tokenNames[W]&&+W>2){if(!f.includes(this.tokenNames[W]))f.push(this.tokenNames[W])}}return f},n1=[this.symbolIds.INDENT,this.symbolIds.OUTDENT,this.symbolIds.TERMINATOR],v=()=>{if(c1===t1)return"end of input";let P=this.tokenNames[c1]||c1,W=X.text,s1=typeof W==="string"&&W.trim().length>0&&W.length<=24&&!n1.includes(c1)&&!/^["'`]/.test(W);if(s1&&X.token?.generated)return`implicit '${W}'`;return s1?`'${W}'`:`'${P}'`};while(!0){if(G=K[K.length-1],c1==null)if(N.length>0)y=N.shift(),c1=y.symbol,F=y.loc,X.text=y.text,X.loc=y.loc,X.token=y.token;else c1=l1(),F=c1===t1?{start:e.length,end:e.length}:X.loc??null;if(i=q[G]?.[c1],i==null&&r&&C>0){a=c1===t1?w:F?.start??w,k=(P=null)=>{if(B)return;if(B=!0,u=v(),f=P!=null?[this.tokenNames[P]||P]:o1(),R=`Unexpected ${u}`,f.length)R+=` — expected ${f.join(", ")}`;return M.push({message:R,start:a,end:F?.end??a,expected:f,got:u})},n=c1===t1||X.token?.generated,d=function(P){return`${K.length}:${G}:${P}`},S=null;for(let P of this.repairTable[G]??[]){if(D.has(d(P)))continue;if(n||P===this.symbolIds.TERMINATOR){S=P;break}}if(S!=null)k(S),C--,D.add(d(S)),N.unshift({symbol:c1,loc:F,text:X.text,token:X.token}),c1=S,F={start:a,end:a},X.text="",X.loc=F,X.token={generated:!0,hole:!0},i=q[G]?.[c1];else if(c1!==t1){if(k(),C--,!X.token?.hole)D.clear();c1=null;continue}}if(i==null){if(f=o1(),u=v(),H=F?.start??0,c=F?.end??H,R=`Unexpected ${u}`,f.length)R+=` — expected ${f.join(", ")}`;return M.push({message:R,start:H,end:c,expected:f,got:u}),{sexpr:null,stores:null,diagnostics:M,trivia:X.trivia??null,tokens:X.tokens??null}}if(i>0){if(r&&!X.token?.hole)D.clear();if(K.push(c1,i),Z.push(X.text),V.push(X.loc??null),t)j.push(Array.isArray(X.text?.primitiveSpans)?X.text.primitiveSpans:X.loc!=null?[{value:X.text,sourceStart:X.loc.start,sourceEnd:X.loc.end}]:[]);c1=null}else if(i<0){if(this.ctx?.onReduce)this.ctx.onReduce(-i);if(p=this.ruleTable[-i*2+1],I=(()=>{if(p)return h=V[V.length-p],g=V[V.length-1],{start:h?.start??0,end:g?.end??(h?.end??0)};else return s=F?.start??(V[V.length-1]?.end??0),{start:s,end:s}})(),J.$=Z[Z.length-(p||1)],J._$=I,m=this.ruleActions.call(J,-i,Z,V,r1.ctx),m!=null)J.$=m;if(o=Z.length-p,l=[],t)for(let P of this.primitiveRefs[-i])l.push(...j[o+P-1]??[]);if(b=J.$,Array.isArray(b)&&z.has(b)&&this.accumulators[-i])A=a1[z.get(b)-1],A.sourceStart=I.start,A.sourceEnd=I.end;if(Array.isArray(b)&&!z.has(b))x=this.semantics[-i],o=Z.length-p,O=(P,W,s1,L,U)=>{let e1,m1,b1,d1,R1,E1,A1=[],k1=1/0,w1=-1/0;for(let y1 of L){e1=P;for(let S1 of y1.path)e1=e1[S1];if(!(Array.isArray(e1)&&!z.has(e1)))throw Error(`parse: nested annotation '${y1.role}' of rule ${-i} does not address a fresh array`);m1=O(e1,y1.kind,y1.roles,y1.nested,null),A1.push(m1),k1=Math.min(k1,a1[m1-1].sourceStart),w1=Math.max(w1,a1[m1-1].sourceEnd)}for(let y1 of s1)if(y1.grammarRef!=null){if(R1=V[o+y1.grammarRef-1],R1==null)throw Error(`parse: missing loc for grammarRef ${y1.grammarRef} of rule ${-i} — lexer protocol violation`);k1=Math.min(k1,R1.start),w1=Math.max(w1,R1.end)}let p1=U??(k1===1/0?I:{start:k1,end:w1}),x1=i1++;z.set(P,x1),a1.push({nodeId:x1,fileId:0,semanticKind:W,ruleId:-i,sourceStart:p1.start,sourceEnd:p1.end});for(let y1 of s1)if(y1.grammarRef!=null){if(d1=o+y1.grammarRef-1,R1=V[d1],E1={nodeId:x1,role:y1.name,grammarRef:y1.grammarRef,childSlot:y1.childSlot,sourceStart:R1.start,sourceEnd:R1.end,childNodeId:null,fileId:0},y1.spread)E1.spread=!0;else E1.childNodeId=z.get(Z[d1])??null;h1.push(E1)}else h1.push({nodeId:x1,role:y1.name,grammarRef:null,childSlot:y1.childSlot,literal:y1.literal,fileId:0});for(let y1=0;y1{let t=Object.create(Gl);return Object.defineProperty(t,"ctx",{value:{...e},enumerable:!1,writable:!0,configurable:!0}),t},ds=ms();var Jt=ms,u4=ds.parse.bind(ds);var ps=()=>{throw Error("rip: filesystem access is unavailable in the browser")};class Qt{constructor({nodes:e,roles:t,primitives:r=[],nodeIds:i=null}){this.nodes=e,this.roles=t,this.primitives=r,this.nodeIds=i,this.byId=new Map(e.map((n)=>[n.nodeId,n])),this.rolesByNode=new Map,this.primitivesByValue=new Map;for(let n of t){let s=this.rolesByNode.get(n.nodeId);if(!s)s={list:[],byName:new Map},this.rolesByNode.set(n.nodeId,s);s.list.push(n),s.byName.set(n.role,n)}for(let n of r){let s=this.primitivesByValue.get(n.value);if(!s)this.primitivesByValue.set(n.value,s=[]);s.push(n)}for(let n of this.primitivesByValue.values())n.sort((s,a)=>s.sourceStart-a.sourceStart)}idOf(e){return this.nodeIds?.get(e)??null}alias(e,t){let r=this.nodeIds?.get(t);if(r!=null)this.nodeIds.set(e,r);return e}node(e){return this.byId.get(e)??null}nodesByKind(e){return this.nodes.filter((t)=>t.semanticKind===e)}rolesOf(e){return this.rolesByNode.get(e)?.list??[]}role(e,t){return this.rolesByNode.get(e)?.byName.get(t)??null}primitiveSpans(e,t,r){return(this.primitivesByValue.get(e)??[]).filter((i)=>t<=i.sourceStart&&i.sourceEnd<=r)}selfSpan(e){let t=this.byId.get(e);return t?[t.sourceStart,t.sourceEnd]:null}}var Zt=(e)=>{if(e.length===0)return null;let t=e[e.length>>1].start,r=[],i=[],n=[];for(let s of e){if(Y.on)Y.n++;if(s.end<=t)i.push(s);else if(s.start>t)n.push(s);else r.push(s)}return{center:t,byStart:r,byEnd:[...r].sort((s,a)=>a.end-s.end),left:Zt(i),right:Zt(n)}},Kl=(e,t,r)=>{let i=e;while(i!==null){if(Y.on)Y.n++;if(tt)break;r.push(n)}i=i.left}else if(t>i.center){for(let n of i.byEnd){if(Y.on)Y.n++;if(n.end<=t)break;r.push(n)}i=i.right}else{for(let n of i.byStart){if(Y.on)Y.n++;r.push(n)}break}}return r},un=new Set(["tsDirective","shorthandProp","identifier","literal"]);class pe{constructor(e){this.rows=e,this._genTree=null,this._srcTree=null,this._genCount=-1,this._srcCount=-1}_tree(e){let t=e==="generated";if((t?this._genCount:this._srcCount)!==this.rows.length){let r=[];if(this.rows.forEach((i,n)=>{if(Y.on)Y.n++;let s=t?i.generatedStart:i.sourceStart,a=t?i.generatedEnd:i.sourceEnd;if(s!=null&&si.start-n.start||i.i-n.i),t)this._genTree=Zt(r),this._genCount=this.rows.length;else this._srcTree=Zt(r),this._srcCount=this.rows.length}return t?this._genTree:this._srcTree}_stab(e,t){let r=Kl(this._tree(e),t,[]);return r.sort((i,n)=>i.width-n.width||i.i-n.i),r.map((i)=>this.rows[i.i])}of(e,t){return this.rows.filter((r)=>r.nodeId===e&&r.role===t).sort((r,i)=>r.generatedStart-i.generatedStart)}atGenerated(e){return this._stab("generated",e)}atSource(e){return this._stab("source",e)}static isDirect(e){return e.mappingKind==="exact"||e.mappingKind==="synthetic"}directAtGenerated(e){return this.atGenerated(e).find(pe.isDirect)??null}directAtSource(e){let t=this.atSource(e).filter(pe.isDirect);if(t.length===0)return null;let r=(n)=>n.sourceEnd-n.sourceStart;return t.filter((n)=>r(n)===r(t[0])).find((n)=>!un.has(n.role))??t[0]}zeroWidthExactAtSource(e){if(this._zeroSrcCount!==this.rows.length){this._zeroSrc=new Map;for(let t of this.rows){if(t.mappingKind!=="exact"||t.sourceStart!==t.sourceEnd)continue;let r=this._zeroSrc.get(t.sourceStart);if(r===void 0||t.generatedStarts.mappingKind==="exact"||s.mappingKind==="cover"&&s.role==="$self"&&s.generatedStart!==s.generatedEnd,t=(s)=>s.mappingKind==="exact"?0:1,r=(s)=>s.generatedEnd-s.generatedStart,i=(s)=>s.sourceEnd-s.sourceStart,n=new Map;for(let s of this.rows){if(!e(s))continue;let a=n.get(s.generatedStart);if(!a||t(s)s.generatedStart-a.generatedStart)}}class ge{constructor(e,{source:t=null,primitives:r=!1}={}){this.stores=e,this.source=t,this.trackPrimitives=r,this.chunks=[],this.length=0,this.openMarks=0,this.rows=[],this.exactSourceSpans=new Set,this.markStack=[],this.exactRanges=new Map,this.tsRegions=[],this.tsDepth=0,this.echoSpans=[]}tsOnly(e){let t=this.length;if(this.tsDepth++,e(),this.tsDepth--,this.tsDepth===0&&this.length>t)this.tsRegions.push([t,this.length])}echo(e){let t=this.length;if(e(),this.length>t)this.echoSpans.push([t,this.length])}get currentMark(){return this.markStack[this.markStack.length-1]??null}get offset(){return this.length}get code(){if(this.openMarks>0)return this.chunks.join("");if(this.chunks.length!==1)this.chunks=[this.chunks.join("")],this.exactRanges.clear();return this.chunks[0]}emit(e){return this.chunks.push(e),this.length+=e.length,this}beginMark(e,t){let r,i,n=null;if(t==="$self"){let s=this.stores.node(e);r=s.sourceStart,i=s.sourceEnd}else{let s=this.stores.role(e,t);if("literal"in s)n="synthetic",r=i=this.stores.node(e).sourceStart;else r=s.sourceStart,i=s.sourceEnd}this.openMarks++,this.markStack.push({nodeId:e,role:t,sourceStart:r,sourceEnd:i,mappingKind:n,generatedStart:this.length,chunkStart:this.chunks.length})}endMark(){let e=this.markStack.pop();this.openMarks--;let{mappingKind:t}=e;if(t===null){if(t=this.matchesSource(e)?"exact":"cover",t==="cover"&&ge.NORMALIZED_ROLES.has(e.role))this.layoutTwinSegments(e)}if(this.rows.push({nodeId:e.nodeId,role:e.role,mappingKind:t,sourceStart:e.sourceStart,sourceEnd:e.sourceEnd,generatedStart:e.generatedStart,generatedEnd:this.length,fileId:0}),this.trackPrimitives&&t==="exact")this.exactSourceSpans.add(`${e.sourceStart}:${e.sourceEnd}`)}static NORMALIZED_ROLES=new Set(["annotation","returnType"]);layoutTwinSegments(e){if(this.source===null)return;let t=e.sourceEnd-e.sourceStart,r=this.length-e.generatedStart;if(t===0||r===0||t>256||r>256)return;let i=this.source.slice(e.sourceStart,e.sourceEnd),n=this.chunks.slice(e.chunkStart).join("");if(i.replace(/\s+/g," ")!==n.replace(/\s+/g," "))return;let s=0,a=0;while(s0)i=i.filter((h)=>!t.some(([u,d])=>h.sourceStart>=u&&h.sourceEnd<=d));if(i.length===0)return null;let n=r.primitiveClaims??(r.primitiveClaims=new Map),s=n.get(e);if(s===void 0)n.set(e,s=new Set);let a=i.filter((h)=>!s.has(h.sourceStart)),o=a.filter((h)=>!this.exactSourceSpans.has(`${h.sourceStart}:${h.sourceEnd}`)),l=o.length>0?o:a,c=l.filter((h)=>h.nodeId===r.nodeId),f=(c.length>0?c:l)[0];if(f===void 0){let h=[...s].pop();if(f=h===void 0?void 0:i.find((u)=>u.sourceStart===h),f===void 0){let u=i.filter((d)=>this.exactSourceSpans.has(`${d.sourceStart}:${d.sourceEnd}`));f=u[u.length-1]}if(f===void 0)return null}if(s.add(f.sourceStart),this.source!==null){let h=this.source.slice(f.sourceStart,f.sourceEnd);if(h!==e&&h.endsWith(e)&&!/[\w$]/.test(h[h.length-e.length-1]??""))return[f.sourceEnd-e.length,f.sourceEnd]}return[f.sourceStart,f.sourceEnd]}matchesSource(e){if(this.source===null)return!1;if(e.sourceStart<0||e.sourceEnd>this.source.length)throw Error(`builder: mark (nodeId ${e.nodeId}, role '${e.role}') has source span [${e.sourceStart}, ${e.sourceEnd}) outside the source text [0, ${this.source.length}) — store-protocol violation`);let t=this.length;if(t-e.generatedStart!==e.sourceEnd-e.sourceStart)return!1;let r=e.sourceStart-e.generatedStart,i=this.exactRanges.get(r),n=i!==void 0&&i.genEnd<=t,s=this.chunks.length,a=e.generatedStart,o=e.chunkStart;while(o=i.genStart&&a{throw Error("rip: schema type story is unavailable in the browser")},bs=()=>!1;var Yl={__proto__:null,maxlength:"maxLength",minlength:"minLength",readonly:"readOnly",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",formaction:"formAction",formenctype:"formEnctype",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",novalidate:"noValidate",crossorigin:"crossOrigin",usemap:"useMap",srclang:"srcLang",inputmode:"inputMode",cellpadding:"cellPadding",cellspacing:"cellSpacing",bgcolor:"bgColor",valign:"vAlign",nowrap:"noWrap",for:"htmlFor",datetime:"dateTime",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",dirname:"dirName",accesskey:"accessKey",enterkeyhint:"enterKeyHint",referrerpolicy:"referrerPolicy",fetchpriority:"fetchPriority",imagesrcset:"imageSrcset",imagesizes:"imageSizes",popovertargetaction:"popoverTargetAction",allowfullscreen:"allowFullscreen"},zl="type __RipClassValue = string | boolean | null | undefined | Record | __RipClassValue[];",ql="/** What a component projects through `slot`: the DOM its parent built for it — an element, a fragment, or a text node — or a value rendered as text. */\n"+"type __RipChildren = Node | string | number | boolean | null;",ys="(...args: (__RipClassValue | __RipClassValue[])[]) => string",Xl=`type __RipAV = E extends Record ? V | string : F; type __RipProp = E extends Record ? V : any;`,Jl=["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","columns","flex","flexGrow","flexShrink","fontWeight","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","webkitLineClamp"],Ss=Jl.map((e)=>`'${e}'`).join(" | "),Rs=(e)=>`{ [K in Exclude]?: K extends ${e} ? string | number : string | 0 } & { [k: \`--\${string}\`]: string | number }`,Zl=`type __RipUnitless = ${Ss}; -`+"/** An inline style as an object: CSS property names, camelCased, plus `--custom` properties. Values are written as given — no unit is appended — so a number is admitted only where CSS reads one bare: the unitless properties, and 0 anywhere. */\n"+`type __RipCSSProperties = ${Rs("__RipUnitless")};`,k4=`(${Rs(Ss)})`,dn="__RipCSSProperties | string",Es="(el: object, value: __RipCSSProperties | string | null | undefined) => void",er="__RipClassValue | __RipClassValue[]",ks=" [k: `data-${string}`]: string | number | boolean;\n [k: `aria-${string}`]: string | number | boolean;",pn=(e)=>/^[A-Za-z_$][\w$]*$/.test(e)?e:`'${e}'`,tr=(e,t)=>`__RipAttrVals_${t?"svg_":""}${e}`,gn=(e,t)=>`__RipEl_${t?"svg_":""}${e}`,Oe=(e,t)=>`${t?"SVGElementTagNameMap":"HTMLElementTagNameMap"}['${e}']`,rt=(e,t)=>typeof e==="string"&&(t?Me.has(e):Lt.has(e));function Ts(e,t){let r=Yl[e]??e,i=e==="class"?er:e==="style"?dn:`__RipAV<${t}, '${r}'>`;return[` ${pn(e)}: ${i};`]}function Ql(){let e=[];for(let t of ve)e.push(...Ts(t,"HTMLElement"));return`interface __RipGlobalAttrVals { +`+"/** An inline style as an object: CSS property names, camelCased, plus `--custom` properties. Values are written as given — no unit is appended — so a number is admitted only where CSS reads one bare: the unitless properties, and 0 anywhere. */\n"+`type __RipCSSProperties = ${Rs("__RipUnitless")};`,k4=`(${Rs(Ss)})`,mn="__RipCSSProperties | string",Es="(el: object, value: __RipCSSProperties | string | null | undefined) => void",er="__RipClassValue | __RipClassValue[]",ks=" [k: `data-${string}`]: string | number | boolean;\n [k: `aria-${string}`]: string | number | boolean;",pn=(e)=>/^[A-Za-z_$][\w$]*$/.test(e)?e:`'${e}'`,tr=(e,t)=>`__RipAttrVals_${t?"svg_":""}${e}`,gn=(e,t)=>`__RipEl_${t?"svg_":""}${e}`,Oe=(e,t)=>`${t?"SVGElementTagNameMap":"HTMLElementTagNameMap"}['${e}']`,rt=(e,t)=>typeof e==="string"&&(t?Le.has(e):Lt.has(e));function Ts(e,t){let r=Yl[e]??e,i=e==="class"?er:e==="style"?mn:`__RipAV<${t}, '${r}'>`;return[` ${pn(e)}: ${i};`]}function Ql(){let e=[];for(let t of ve)e.push(...Ts(t,"HTMLElement"));return`interface __RipGlobalAttrVals { ${e.join(` `)} ${ks} -}`}function e3(){let e=[];for(let t of new Set([...ve,...et]))e.push(` ${pn(t)}: ${t==="class"?er:t==="style"?dn:"string | number"};`);return`interface __RipSvgAttrVals { +}`}function e3(){let e=[];for(let t of new Set([...ve,...et]))e.push(` ${pn(t)}: ${t==="class"?er:t==="style"?mn:"string | number"};`);return`interface __RipSvgAttrVals { ${e.join(` `)} ${ks} -}`}function t3(e,t){let r=t?"__RipSvgAttrVals":"__RipGlobalAttrVals",i=t?new Set([...ve,...et]):ve,n=[];for(let a of tn(e)){if(i.has(a))continue;if(t)n.push(` ${pn(a)}: ${a==="class"?er:a==="style"?dn:"string | number"};`);else n.push(...Ts(a,Oe(e,t)))}let s=n.length?` +}`}function t3(e,t){let r=t?"__RipSvgAttrVals":"__RipGlobalAttrVals",i=t?new Set([...ve,...et]):ve,n=[];for(let a of tn(e)){if(i.has(a))continue;if(t)n.push(` ${pn(a)}: ${a==="class"?er:a==="style"?mn:"string | number"};`);else n.push(...Ts(a,Oe(e,t)))}let s=n.length?` ${n.join(` `)} `:"";return`interface ${tr(e,t)} extends ${r} {${s}}`}function r3(e,t){let r=tr(e,t),i=Oe(e,t),n=`keyof ${r} & string`,s=[` setAttribute(name: A, value: ${r}[A]): void;`,` toggleAttribute(name: ${n}, force?: boolean): boolean;`,` removeAttribute(name: ${n}): void;`,` addEventListener(type: K, listener: (e: HTMLElementEventMap[K] & { target: ${i}; currentTarget: ${i} }) => unknown, options?: boolean | AddEventListenerOptions): void;`," addEventListener(type: string, listener: (e: any) => unknown, options?: boolean | AddEventListenerOptions): void;"];if(!t)s.push(` className: ${er};`);for(let a of["value","checked","innerHTML","textContent","innerText"])s.push(` ${a}: __RipProp<${i}, '${a}'>;`);return`interface ${gn(e,t)} { @@ -46,8 +46,8 @@ ${o.join(` `)} `:""}var n3=["type __RipEqEl = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? true : false;","type __RipBaseEl = __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : __RipEqEl extends true ? true : false;","type __RipRefOk = 0 extends (1 & V) ? unknown : [V] extends [null] ? unknown : null extends V ? ([E] extends [Extract, E>] ? unknown : __RipBaseEl> extends true ? ([E] extends [NonNullable] ? unknown : never) : never) : never;","declare function __ripRefCell(tag: K, cell: { value: V } & __RipRefOk): { value: HTMLElementTagNameMap[K] | null };","declare function __ripRefCellSvg(tag: K, cell: { value: V } & __RipRefOk): { value: SVGElementTagNameMap[K] | null };"].join(` `);var bn=()=>{throw Error("rip: component type story is unavailable in the browser")},_s=()=>{throw Error("rip: component type story is unavailable in the browser")},Ns=()=>!1,As=()=>!1,vs=()=>{throw Error("rip: component type story is unavailable in the browser")},Os=()=>{throw Error("rip: component type story is unavailable in the browser")},yn=()=>!0,Is=()=>{throw Error("rip: component type story is unavailable in the browser")},Sn=()=>{throw Error("rip: component type story is unavailable in the browser")},$s=()=>{throw Error("rip: component type story is unavailable in the browser")},Rn="",Ds=()=>null,xs=()=>"",Cs=()=>"",Ps=()=>{throw Error("rip: component type story is unavailable in the browser")},Ls=()=>"string",Ms="",js=()=>[],Fs=()=>!1,Bs=()=>[],Us=()=>[],En=()=>{throw Error("rip: component type story is unavailable in the browser")},Vs=()=>{throw Error("rip: component type story is unavailable in the browser")},Ws=()=>[];var i3=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),s3=new Set(["_state","_frame","_parent","_children","_root","_nodes","_target","_context","_rest","_restWriters","_restHandlers","_inheritedEl","_refCleanups","_initFailed","_hmrOrphans","_hmrReleasing","_hmrPropKeys"]),a3=new Set(["+","-","*","/","%","**","<",">","<=",">=","==","!=","&&","||","??","<<",">>",">>>","&","^","|"]),M1=new Set(["=","void-assign","+=","-=","*=","/=","%=","**=","&&=","||=","??=","<<=",">>=",">>>=","&=","^=","|="]),nt=(e)=>M1.has(e)||e==="//="||e==="%%=",it=new Set(["=","void-assign"]),Hs=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??="]),st=/^[A-Za-z_$][\w$]*$/,kn={"==":"===","!=":"!=="},o3=new Set(["true","false","null","undefined","this"]),Tn=(e,t=0)=>{let r=[],i=null;for(let n=0;nArray.isArray(e),at=(e)=>E(e)&&a3.has(e[0])&&e.length===3,Gs=new Set([".","?.","[]","optindex"]),wn=(e)=>E(e)&&e[0]==="."&&e.length===3&&e[2]==="new",l3={__proto__:null,Array:"",ReadonlyArray:"",Map:"",Set:"",WeakMap:"",WeakSet:"",Promise:"",WeakRef:""};function c3(e){if(e[0]!=="="||e.length!==3)return null;let t=e[1];if(!E(t)||t[0]!=="."||typeof t[2]!=="string")return null;let r=t[1];if(!E(r)||r[0]!=="."||r[2]!=="prototype"||typeof r[1]!=="string")return null;return{head:r[1],member:t[2]}}function ht(e){let t=e;if(E(t)&&t[0]==="typed-var"&&t.length===3)t=t[1];if(E(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")return t[2];return null}function f3(e){let t=e;if(E(t)&&t[0]==="default"&&t.length===3)t=t[1];let r=ht(t);if(r===null)return null;return{name:r,typed:E(t)&&t[0]==="typed-var"&&t.length===3?t:null}}function h3(e){let t=[],r=new Map,i=(n,s)=>{if(!E(n))return;let a=n[0];if(a==="->"||a==="def"||a==="void-def"||a==="class"||a==="component"||a==="schema")return;if((a==="="||a==="void-assign")&&n.length===3&&E(n[1])&&n[1][0]==="."&&n[1][1]==="this"&&typeof n[1][2]==="string"){let o=n[1][2],l=r.get(o);if(l===void 0){let c={name:o,node:n,nodes:[n],viaArrow:s};r.set(o,c),t.push(c)}else if(l.nodes.push(n),l.viaArrow&&!s)l.viaArrow=!1}for(let o of n.slice(1))i(o,s||a==="=>")};for(let n of e)if(n!==null&&n!==void 0)i(n,!1);return t}var Ks=new Set(["<",">","<=",">=","==","!="]),ot=(e)=>E(e)&&Ks.has(e[0])&&e.length===3&&E(e[1])&&Ks.has(e[1][0])&&e[1].length===3&&!e[1].parenthesized,Ys=(e)=>E(e)&&(e[0]==="-"||e[0]==="+"||e[0]==="!"||e[0]==="~"||e[0]==="typeof"||e[0]==="delete")&&e.length===2,u3=(e)=>E(e)&&M1.has(e[0])&&e.length===3,zs=(e)=>E(e)&&(e[0]==="in"||e[0]==="of"||e[0]==="instanceof"||e[0]==="!in"||e[0]==="!of"||e[0]==="!instanceof")&&e.length===3,qs=(e)=>E(e)&&e[0]==="if",Ie=(e)=>E(e)&&(e[0]===".."||e[0]==="...")&&e.length===3,O1=(e)=>E(e)&&e[0]==="object",T1=(e)=>E(e)&&(e[0]==="->"||e[0]==="=>")&&e.length===3,m3=new Set(["break","continue","return"]),d3=new Set(["break"]),g1=(e)=>e==="def"||e==="void-def";function Zs(e){if(!E(e))return!1;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?")return!0;if(t==="for-as"&&e[3]===!0)return!0;if(t==="->"||t==="=>"||g1(t)||t==="class")return!1;return e.some((r)=>Zs(r))}function Qs(e){if(!E(e))return!1;let t=e[0];if(t==="yield"||t==="yield-from")return!0;if(t==="->"||t==="=>"||g1(t)||t==="class")return!1;return e.some((r)=>Qs(r))}var W1=(e)=>E(e)&&(e[0]==="++"||e[0]==="--")&&e.length===3,rr=/^[A-Za-z_$][A-Za-z0-9_$]*$/,nr=(e,t="",r=[])=>{if(!E(e))return r;if(e[0]==="object"){for(let i of e.slice(1)){if(!E(i)||i.length!==3)continue;let n=i[0];if(n!==":"&&n!==null)continue;let s=i[1];if(typeof s!=="string")continue;let a=rr.test(s)?`.${s}`:`[${s}]`,o=i[2];if(typeof o==="string"){if(rr.test(o))r.push([o,t+a])}else nr(o,t+a,r)}return r}if(e[0]==="array")return e.slice(1).forEach((i,n)=>{if(E(i)&&i[0]==="...")return;if(typeof i==="string"){if(rr.test(i))r.push([i,`${t}[${n}]`])}else nr(i,`${t}[${n}]`,r)}),r;return r},_n=(e)=>E(e)&&e[0]==="?:"&&e.length===4,u1=(e)=>E(e)&&e[0]==="block",Q1=(e)=>Ae.has(String(e).split("#")[0]),lt=(e)=>typeof e==="string"&&/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(e),be=(e)=>E(e)&&e[0]==="comprehension"&&e.length===4&&Array.isArray(e[2])&&e[2].length>0&&Array.isArray(e[2][0])&&String(e[2][0][0]).startsWith("for-");var ct=(e)=>E(e)&&((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&e.length===6||e[0]==="while"&&(e.length===3||e.length===4)||e[0]==="loop"&&e.length===2||e[0]==="loop-n"&&e.length===3);function p3(e){let t=0,r=!0,i=(n)=>Array.isArray(n);return e.map((n)=>{if(typeof n==="string"){if(!r)return{item:n,name:n,value:null};return{item:n,name:n,value:String(t++)}}if(i(n)&&n[0]==="="&&n.length===3){let s=n[2],a=typeof s==="string"&&/^[0-9]/.test(s)?Number(s.replace(/_/g,"")):i(s)&&s[0]==="-"&&typeof s[1]==="string"?-Number(s[1].replace(/_/g,"")):null;if(a!==null&&Number.isFinite(a))t=a+1,r=!0;else if(typeof s==="string"&&s.startsWith('"'))r=!1;return{item:n,name:n[1],value:s}}return{item:n,name:null,value:void 0}})}function je(e){return`'${String(e).slice(1,-1).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Nn(e,t){if(!E(t)||t[0]!=="import"||t.length<2)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="import"}class T{constructor(e,t,{face:r="js",pins:i=null,strict:n=!1,script:s=!1,browserModule:a=!1,repl:o=!1,hmr:l=!1,tolerant:c=!1,modulePath:f=null,appStashSpec:h=null,routesUnion:u=null,routeParams:m=null}={}){this.stores=e,this.b=t,this.repl=o,this.tolerant=c,this.replResultName=null,this.replImportResolver=null,this.script=s,this.appStashSpec=h,this.routesUnion=typeof u==="string"&&u.length>0?u:null,this.routeParams=typeof m==="string"&&m.length>0?m:null,this.appAccessors={stash:null,router:null},this.routeWrapSpans=[],this.memberInitSites=[],this.sourceKeySpans=[],this.stashMemberSpans=[],this.domSurfaces=new Map,this._needsClassValue=!1,this._needsCssProperties=!1,this._needsChildren=!1,this._restTags=new Set,this._needsRefCellHelper=!1,this.intrinsics=[],this.renderPairs=[],this.browserModule=a,this.hmr=l===!0,this.modulePath=typeof f==="string"&&f.length>0?f:null,this.importSpans=[],this.typeOnlyImports=new Set,this.pins=i,this.pinnables=[],this.pinnedWrites=new Set,this.mutables=[],this.enums=[],this.classDecls=[],this.pinSpans=[],this.loopVars=[],this.attrNames=[],this.importedRefs=[],this.strict=n,this.ts=r==="ts",this.pendingHoistTypes=new Map,this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],this.tsDirectivesArmed=!1,this.pendingSigs=new WeakMap,this.pendingTypeDecls=[],this.primitiveAvoid=null,this.primitiveReuse=null,this.declaringName=!1,this.vocabulary=[],this.silences=[],this.memberDecls=[],this.kinds=[],this.componentInfo=new Map,this.schemaFns=new Map,this.moduleComponentNames=new Map,this.ind=0,this.methodName=null,this.scopes=[],this.lastProgramStmt=null,this.inPattern=!1,this.bindingPattern=!1,this.deopt=!1,this.inTarget=!1,this.voidFuncs=new WeakSet,this.sideEffectOnly=!1,this.voidReason=null,this.usesSchema=!1,this.exprDepth=0,this.renderRecord=null,this.postfixGuardDepth=0,this._schemaName=null,this.subParses=new Map,this.runtimeAliases=new Map,this.temps={used:new Set,n:0,byNode:new WeakMap},this.refPlans=new WeakMap,this.ctrlDepth=0,this.tailReturnOk=!1,this.rframes=[],this.cframes=[],this._componentName=null,this.moduleBound=new Set,this.renderSelf=null}isReactiveDecl(e){return T.isReactiveDeclIn(this.stores,e)}static isReactiveDeclIn(e,t){if(!E(t)||t[0]!=="state"&&t[0]!=="computed"||t.length!==3)return!1;let r=e.idOf(t),i=r!==null?e.node(r)?.semanticKind:null;return i==="state"||i==="computed"}isGateDecl(e){return T.isGateDeclIn(this.stores,e)}static isGateDeclIn(e,t){if(!E(t)||t[0]!=="gate"||t.length<3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="gate"}isEffectDecl(e){return T.isEffectDeclIn(this.stores,e)}static isEffectDeclIn(e,t){if(!E(t)||t[0]!=="effect"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="effect"}isReadonlyDecl(e){return T.isReadonlyDeclIn(this.stores,e)}static isReadonlyDeclIn(e,t){if(!E(t)||t[0]!=="readonly"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="readonly"}lockedHead(e,t){let r=this.stores.idOf(e);if(r===null)return!0;return this.stores.node(r)?.semanticKind===t}isModuleImport(e){return T.isModuleImportIn(this.stores,e)}static isModuleImportIn(e,t){return Nn(e,t)}static BLOCK_HEADS=new Set(["if","while","loop","for-in","for-of","for-as","switch","when","try","block","comprehension"]);collectReactiveNames(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i)){if(n){let a=i[0]==="state"?":=":"~=";throw this.positionedError(i,`emitter: a reactive declaration ('${typeof i[1]==="string"?i[1]:"…"} ${a} …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, and any later read would unwrap '.value' off a binding that no longer exists")}if(typeof i[1]==="string")t.add(i[1]);return}if(this.isEffectDecl(i))return;let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}collectEffectHandles(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i))return;if(this.isEffectDecl(i)){if(i[1]!==null){if(n)throw this.positionedError(i,`emitter: a bound effect ('${typeof i[1]==="string"?i[1]:"…"} ~> …') must sit at module or function scope — `+"inside a statement block its dispose handle would be a block-scoped const, dead to every later read "+"; a BARE '~> …' stays legal here");if(typeof i[1]==="string")t.add(i[1])}return}let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}collectReadonlyNames(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i)||this.isEffectDecl(i))return;if(this.isReadonlyDecl(i)){if(n)throw this.positionedError(i,`emitter: a readonly declaration ('${typeof i[1]==="string"?i[1]:"…"} =! …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, dead to every later read ");if(typeof i[1]==="string")t.add(i[1]);r(i[2],n);return}let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}static exportedConstNames(e){let t=new Set;for(let r of e){if(!E(r)||r[0]!=="export")continue;for(let i of r.slice(1))if(E(i)&&(i[0]==="="||i[0]==="void-assign")&&i.length===3&&typeof i[1]==="string")t.add(i[1])}return t}isExportedConst(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.exportedConst!==void 0&&r.exportedConst.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}checkExportedConstWrite(e,t){let r=typeof t==="string"?[t]:T.isPattern(t)?this.patternNames(t):[];for(let i of r){if(!this.isExportedConst(i))continue;throw this.positionedError(e,`emitter: cannot assign to exported '${i}' — an exported binding lowers to `+`'export const', which never changes after its declaration; declare it as state ('export ${i} := …') to write it, or drop the export`)}}positionedError(e,t,...r){let i=Error(t);for(let n of[e,...r]){let s=this.stores.idOf(n),a=s!==null?this.stores.selfSpan(s):null;if(a){i.start=a[0],i.end=a[1];break}}return i}positionedErrorAt(e,t,r){let i=Error(r);return i.start=e,i.end=t,i}static declaredNames(e){let t=[],r=(i)=>{if(!E(i))return;if((i[0]==="enum"||i[0]==="class")&&typeof i[1]==="string")t.push(i[1]);if(g1(i[0])&&i.length===4&&typeof i[1]==="string")t.push(i[1])};for(let i of e)if(r(i),E(i)&&i[0]==="export"&&E(i[1]))r(i[1]);return t}static declaredClassNames(e){let t=new Set,r=(i)=>{if(!E(i)||!it.has(i[0])||i.length!==3)return;if(typeof i[1]!=="string")return;let n=i[2];if(E(n)&&(n[0]==="class"||n[0]==="component"))t.add(i[1])};for(let i of e)if(r(i),E(i)&&i[0]==="export"&&E(i[1]))r(i[1]);return t}static declaredEnumNames(e){let t=new Set,r=(i)=>{if(E(i)&&i[0]==="enum"&&typeof i[1]==="string")t.add(i[1])};for(let i of e)if(r(i),E(i)&&i[0]==="export"&&E(i[1]))r(i[1]);return t}nodeLine(e){let t=this.stores.idOf(e),r=t!==null?this.stores.selfSpan(t):null;if(!r||typeof this.b.source!=="string")return null;let i=1;for(let n=0;n{if(typeof f==="string")i.push({name:f,kind:h,node:u,auth:!0})},s=(f,h)=>{if(typeof f==="string")i.push({name:f,kind:"plain",node:h,auth:!1})},a=(f,h,u)=>{let m=new Set;for(let S of f){if(m.has(S))throw this.positionedError(h,`emitter: '${S}' is bound twice in one ${u} — one binding per name; rename or drop the duplicate`,...r!==null?[r]:[]);m.add(S)}return f};{let f=[],h=[];for(let u of t??[]){this.patternNames(u,f,!0);let m=E(u)?u:t;while(h.lengthn(u,"parameter",h[m]))}let o=(f,h)=>{if(!E(f))return;if(this.isModuleImport(f)){for(let m of T.importedNames([f]))n(m,"import",f);return}if(T1(f))return;if(g1(f[0])){if(!h&&f.length===4&&typeof f[1]==="string")n(f[1],"def",f);return}if(f[0]==="enum"){if(!h)n(f[1],"enum",f);return}if(f[0]==="component"&&f.length===3)return;if(f[0]==="class"){if(!h)n(f[1],"class",f);if(f[2]!=null)o(f[2],!0);let m=f[3];if(u1(m)){for(let S of m.slice(1))if(E(S)&&M1.has(S[0])&&S.length===3)o(S[2],!0);else if(!T.isTypedWrapper(S))o(S,!0)}return}if(this.isReactiveDecl(f)){if(n(f[1],f[0]==="computed"?"computed":"state",f),!(f[0]==="computed"&&u1(f[2])&&f[2].length>2))o(f[2],h);return}if(this.isEffectDecl(f)){if(f[1]!==null)n(f[1],"effect",f);return}if(this.isReadonlyDecl(f)){n(f[1],"readonly",f),o(f[2],h);return}if(f[0]==="export"){for(let m of f.slice(1)){if(!E(m))continue;if((m[0]==="="||m[0]==="void-assign")&&m.length===3&&typeof m[1]==="string")n(m[1],"plain",m),o(m[2],h);else o(m,h)}return}if(f[0]==="for-in"||f[0]==="for-of"||f[0]==="for-as"){if(E(f[1])){let m=[];for(let S of f[1])this.patternNames(S,m,!0);a(m,f,"loop head")}for(let m of f.slice(2))o(m,!0);return}if(be(f)){o(f[1],!0);for(let m of f[2]??[]){let S=[];if(E(m[1]))for(let g of m[1])this.patternNames(g,S,!0);a(S,f,"comprehension clause"),o(m[2],!0)}for(let m of f[3]??[])o(m,!0);return}if(f[0]==="try"){for(let m of f.slice(2))if(E(m)&&m.length===2&&T.isPattern(m[0])){for(let S of a(this.patternNames(m[0]),m[0],"catch pattern"))s(S,f);o(m[1],!0)}else o(m,!0);o(f[1],!0);return}if(M1.has(f[0])&&f.length===3){if(typeof f[1]==="string")s(f[1],f);else if(f[0]==="="&&T.isPattern(f[1]))for(let m of a(this.patternNames(f[1]),f,"destructuring pattern"))s(m,f)}let u=h||T.BLOCK_HEADS.has(f[0]);for(let m of f)o(m,u)};for(let f of e)o(f,!1);i.forEach((f,h)=>{f.order=h});let l=(f,h)=>{let u=h.node!==null?this.nodeLine(h.node):null,m=h.kind==="state"||h.kind==="parameter"||h.kind==="plain"?` — assign with '${f.name} = …' to update it, or choose a different name`:" — choose a different name";throw this.positionedError(f.node,`emitter: '${f.name}' was already declared as ${h.kind}${u!==null?` on line ${u}`:""}${m}`,...r!==null?[r]:[])},c=new Map;for(let f of i){if(!f.auth)continue;let h=c.get(f.name);if(h!==void 0)l(f,h);c.set(f.name,f)}for(let f of i){if(f.auth)continue;let h=c.get(f.name);if(h!==void 0){if(h.auth&&f.orderu.members.has(f.name)))continue;c.set(f.name,f)}}pushReactiveFrame(e,t,r=[],i=null){let n=this.collectReactiveNames(e),s=this.collectEffectHandles(e),a=this.collectReadonlyNames(e);return this.checkScopeRedeclarations(e,r,i),this.rframes.push({reactive:n,computed:this.collectComputedNames(e),readonly:a,handles:s,bound:new Set([...t,...T.declaredNames(e),...s,...a]),enums:T.declaredEnumNames(e),classes:T.declaredClassNames(e),importSpecs:T.importedSpecs(e),exportedConst:T.exportedConstNames(e)}),new Set([...n,...s,...a])}withBindings(e,t){this.rframes.push({reactive:new Set,bound:new Set(e)}),t(),this.rframes.pop()}resolveBareRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return"reactive";if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberReactive.has(e)?"member-reactive":"member"}return null}kindOfName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive?.has(e))return r.computed?.has(e)?"computed":"state";if(r.readonly?.has(e))return"readonly";if(r.handles?.has(e))return"effect";if(r.bound?.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberKinds?.get(e)??null}return null}isReactiveName(e){return this.resolveBareRead(e)==="reactive"}isEnumName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.enums!==void 0&&r.enums.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isClassName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.classes!==void 0&&r.classes.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isRenderLoopName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}importSpecOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t],i=r.importSpecs?.get(e);if(i!==void 0)return i;if(r.reactive.has(e)||r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return null}return null}isComputedName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return r.computed!==void 0&&r.computed.has(e);if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isAmbientReadonly(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.ambientReadonly!==void 0&&r.ambientReadonly.has(e))return!0;if(r.readonly!==void 0&&r.readonly.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}memberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return null;if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.members.get(e)}return null}thisMemberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.members!==void 0)return r.members.has(e)?r.members.get(e):null}return null}static targetsRestView(e){if(!E(e))return!1;if(e[0]==="array")return e.slice(1).some((r)=>T.targetsRestView(r));if(e[0]==="object")return e.slice(1).some((r)=>E(r)&&T.targetsRestView(r[2]??r[1]));if(e[0]==="default"||e[0]==="rest")return T.targetsRestView(e[1]);let t=e;while(E(t)&&(t[0]==="."||t[0]==="[]"||t[0]==="?."||t[0]==="optindex")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&t[2]==="rest")return!0;t=t[1]}return!1}checkBareRest(e,t){if(t!=="rest"||this.memberKindOf(t)!=="rest")return;let r=this.positionedError(e,"emitter: `rest` is provided by `extends`, not declared here — spell it `@rest`, as with `@stash` and `@router`");if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}checkMemberWrite(e,t){if(this.cframes.length===0)return;if(this.thisMemberKindOf("rest")==="rest"&&T.targetsRestView(t))throw this.positionedError(e,"emitter: `@rest` is the runtime-owned view of the caller's undeclared props and is never assigned — "+"set the attribute on the element in render, or declare the name as a prop the caller supplies");let r=null,i=null;if(typeof t==="string")this.checkBareRest(e,t),r=t,i=this.memberKindOf(t);else if(E(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")r=t[2],i=this.thisMemberKindOf(r);if(i===null)return;if(i==="readonly")throw this.positionedError(e,`emitter: cannot assign to readonly member '${r}' — a '=!' member never changes after _init; `+"a member that changes is state (':=')");if(i==="plain"){let n=this.cframes[this.cframes.length-1];if(!n.plainWrites.has(r))n.plainWrites.set(r,e)}}notePlainRenderRead(e,t=!1){if(this.rstate==null||this.cframes.length===0)return;if((t?this.thisMemberKindOf(e):this.memberKindOf(e))!=="plain")return;this.cframes[this.cframes.length-1].renderPlainReads.add(e)}collectComputedNames(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i)){if(!n&&i[0]==="computed"&&typeof i[1]==="string")t.add(i[1]);return}if(this.isEffectDecl(i))return;let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}bareRewrite(e){if(this.inPattern&&this.bindingPattern)return null;return this.resolveBareRead(e)}isReactiveRead(e){return this.bareRewrite(e)==="reactive"}memberIsReactive(e){let t=this.cframes[this.cframes.length-1];return t!==void 0&&t.memberReactive.has(e)}inComponent(){return this.cframes.length>0}reactiveRead(e){let t=this.b.currentMark,r=this.b.source;if(this.ts)this.emitPrimitive(e);else if(t!==null&&r!==null&&r.slice(t.sourceStart,t.sourceEnd)===e)this.b.mark(t.nodeId,t.role,()=>this.b.emit(e));else this.b.emit(e);this.b.emit(".value")}memberRead(e,t){let r=this.b.currentMark,i=this.b.source;if(this.b.emit((this.renderSelf??"this")+"."),this.ts){let n=this.emitPrimitive(e);if(t&&n!==null)this.memberDecls.push({start:n[0],end:n[1]})}else if(r!==null&&i!==null&&i.slice(r.sourceStart,r.sourceEnd)===e)this.b.mark(r.nodeId,r.role,()=>this.b.emit(e));else this.b.emit(e);if(t)this.b.emit(".value")}emitPrimitive(e){let t=this.b.currentMark,r=this.ts&&typeof e==="string"?this.b.claimPrimitiveSpan(e,this.primitiveAvoid):null;if(r===null&&this.primitiveReuse!==null&&this.primitiveReuse.name===e)r=this.primitiveReuse.span,this.primitiveReuse=null;if(r!==null&&X1(e)){let i=this.kindOfName(e),n=typeof i==="string"?{label:i,optional:!1}:i;if(n!==null)this.kinds.push({start:r[0],end:r[1],label:n.label,name:e,optional:n.optional})}if(t!==null&&r!==null){let i=X1(e)?"identifier":"literal";this.b.markSpan(t.nodeId,i,r[0],r[1],()=>this.noteNameSpan(e))}else this.noteNameSpan(e);return r}noteNameSpan(e){if(!this.ts||this.declaringName||typeof e!=="string"||!X1(e)){this.b.emit(e);return}let t=this.b.offset;if(this.b.emit(e),this.isEnumName(e)){this.enums.push([t,this.b.offset]);return}if(this.isReactiveName(e)&&!this.isComputedName(e)){this.mutables.push([t,this.b.offset]);return}if(this.isClassName(e)){this.classDecls.push([t,this.b.offset]);return}if(this.isRenderLoopName(e)){this.loopVars.push([t,this.b.offset]);return}let r=this.importSpecOf(e);if(r!==null)this.importedRefs.push([t,this.b.offset,r.importedName,r.specifier])}withDeclaredName(e){let t=this.declaringName;this.declaringName=!0;try{return e()}finally{this.declaringName=t}}noteVocabulary(e,t,r){let i=this.wordSpanIn(t,r);if(i!==null)this.vocabulary.push({kind:e,start:i[0],end:i[1]})}noteShorthandClasses(e,t){for(let r of e)this.noteVocabulary("render-channel",r,t)}noteHeadKeyword(e,t,r){if(!this.ts)return;let i=E(r)?this.stores.idOf(r):null,n=i!==null?this.stores.selfSpan(i):null;if(n===null||this.b.source===null)return;let s=n[0]+t.length;if(s>n[1]||this.b.source.slice(n[0],s)!==t)return;this.vocabulary.push({kind:e,start:n[0],end:s})}noteKind(e,t,r){let i=this.stores.idOf(e),n=i!==null?this.stores.role(i,t):null;if(n?.sourceStart!=null&&n.sourceEnd>n.sourceStart){let s=this.b.source?.slice(n.sourceStart,n.sourceEnd)??null;this.kinds.push({start:n.sourceStart,end:n.sourceEnd,label:r,name:s})}}noteSilence(e,t){let r=this.wordSpanIn(e,t);if(r!==null)this.silences.push([r[0],r[1]])}static MEMBER_KINDS={state:"state",computed:"computed",readonly:"readonly",gate:"gate"};static memberLabel(e){if(e.isPublic&&(e.kind==="prop"||e.kind==="state"))return"prop";return T.MEMBER_KINDS[e.kind]??null}noteMemberDecl(e){if(!this.ts)return;let t=E(e.nameNode)?this.stores.idOf(e.nameNode):null,r=t!==null?this.stores.role(t,e.nameRole):null;if(!r||typeof r.sourceStart!=="number")return;let i=T.memberLabel(e);if(i!==null)this.kinds.push({start:r.sourceStart,end:r.sourceEnd,label:i,name:e.name,optional:e.optional===!0});if(!As(e))return;this.memberDecls.push({start:r.sourceStart,end:r.sourceEnd})}wordSpanIn(e,t){if(!this.ts)return null;let r=E(t)?this.stores.idOf(t):null,i=r!==null?this.stores.selfSpan(r):null;if(i===null)return null;let n=this.stores.primitiveSpans(e,i[0],i[1]);if(n.length!==1)return null;return[n[0].sourceStart,n[0].sourceEnd]}bareChildSpan(e,t,r){let i=(l)=>{let c=E(l)?this.stores.idOf(l):null;return c!==null?this.stores.selfSpan(c):null},n=i(r)??i(this.rstate?.node??null);if(n===null)return null;let[s,a]=n;for(let l=t-1;l>=0;l--){let c=i(e[l]);if(c){s=c[1];break}}for(let l=t+1;l — did you mean '${n}'?`;if(r)return`'${t}' is not a known attribute of <${e}> — a bare word sets the boolean attribute it `+`names; render a value with \`= ${t}\`, or spell \`name: value\``;return`'${t}' is not a known attribute of <${e}> — `+(i?"SVG attribute names are the spec's own, case-sensitive (`viewBox`)":"HTML attribute names are the spec's own, lowercase")+"; `data-`/`aria-` names take any suffix"}emitRewrittenPrimitive(e,t){let r=this.b.currentMark,i=this.ts?this.b.claimPrimitiveSpan(e):null;if(r!==null&&i!==null)this.b.markSpan(r.nodeId,"identifier",i[0],i[1],()=>this.b.emit(t));else this.b.emit(t);return i}emitQuotedPrimitive(e,t="'"){this.b.emit(t);let r=this.emitPrimitive(e);return this.b.emit(t),r}emitKeyAs(e,t){return e===t?this.emitPrimitive(e):this.emitRewrittenPrimitive(e,t)}emitPropertyRoadKey(e){let t=this.b.offset;if(e(),this.ts)this.attrNames.push([t,this.b.offset])}emitSchemaText(e,t=!1){let r=0,i=null;while(r0){let c=e[o];if(l!==null){if(c==="\\")o++;else if(c===l)l=null}else if(c==='"'||c==="'"||c==="`")l=c;else if(c==="{")a++;else if(c==="}")a--;o++}if(this.b.emit("${"),this.emitSchemaText(e.slice(s+2,a===0?o-1:o),t),a===0)this.b.emit("}");s=o;continue}this.b.emit(e[s]),s++}if(sthis.b.emit(a));else if(X1(a))this.emitPrimitive(a);else this.b.emit(a);if(sS.value===o[g].value),h=null;if(!f){h=Array.from({length:l+1},()=>Array(c+1).fill(0));for(let S=l-1;S>=0;S--)for(let g=c-1;g>=0;g--)h[S][g]=a[S].value===o[g].value?h[S+1][g+1]+1:Math.max(h[S][g+1],h[S+1][g])}let u=0,m=0;for(let S=0;Sthis.noteNameSpan(g.value)),u++}else this.noteNameSpan(g.value);m=g.end}this.b.emit(r.slice(m))}registerVoidValue(e,t){if(T1(e)){this.voidFuncs.add(e);return}if(!(E(e)&&g1(e[0])))throw this.positionedError(e,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`, `save! = =>`, `fn!: ->`",t)}withTarget(e){let t=this.inTarget;this.inTarget=!0,e(),this.inTarget=t}withPattern(e,t=!1){let r=this.inPattern,i=this.bindingPattern;this.inPattern=!0,this.bindingPattern=t,e(),this.inPattern=r,this.bindingPattern=i}withExpression(e){let t=this.inPattern,r=this.bindingPattern;this.inPattern=!1,this.bindingPattern=!1,e(),this.inPattern=t,this.bindingPattern=r}withDeopt(e){let t=this.deopt;this.deopt=!0,e(),this.deopt=t}mark(e,t,r){let i=this.stores.idOf(e);if(i!==null&&(t==="$self"||this.stores.role(i,t)!==null))this.b.mark(i,t,r);else r()}beginMark(e,t){let r=this.stores.idOf(e);if(r!==null&&(t==="$self"||this.stores.role(r,t)!==null))return this.b.beginMark(r,t),!0;return!1}endMark(e){if(e)this.b.endMark()}annotationText(e,t="annotation"){let r=this.stores.idOf(e);if(r===null)return null;let i=this.stores.role(r,t);if(!i||i.sourceStart==null||this.b.source===null)return null;return Ct(this.b.source.slice(i.sourceStart,i.sourceEnd).replace(/^\s*:\s*/,""))}tsAnnotate(e,t,r){this.b.tsOnly(()=>this.mark(e,t,()=>this.emitTypeText(e,t,`: ${r}`)))}tsReturnAnnotation(e,t,r,i,n=e){if(!this.ts)return;let s=this.annotationText(e,"returnType");if(s!==null){let a=t&&!i&&!/^Promise\s*`:s;this.b.tsOnly(()=>this.mark(e,"returnType",()=>this.emitTypeText(e,"returnType",`: ${a}`)));return}if(r&&!i){let a=t?"Promise":"void";this.b.tsOnly(()=>this.mark(n,"voidMarker",()=>this.b.emit(`: ${a}`)))}}tsRendered(e,t){try{return t()}catch(r){if(r instanceof Kr)throw this.positionedError(e,`emitter: ${r.message}`);throw r}}emitTsTypeDecls(e,t){if(!this.ts)return;for(let r of e){if(!E(r)||r[0]!=="type-decl")continue;this.tsTypeDeclLine(r,t)}}tsTypeDeclLine(e,t){let r=this.tsRendered(e,()=>di(e[1])),i=this.tsDirectiveMap.get(e);if(i!==void 0){if(this.tsDirectiveMap.delete(e),r.length===1)for(let n of i)this.tsDirectiveLine(n,t,!0)}this.b.tsOnly(()=>{this.b.emit(t),this.mark(e,"$self",()=>this.mark(e,"declaration",()=>{this.emitTypeText(e,"declaration",r.join(` +`)n++;continue}let a=Ki(e,n);if(a!==null){r.push({value:a.value,start:t+a.start,end:t+a.end}),n=a.end;continue}n++}return r},E=(e)=>Array.isArray(e),at=(e)=>E(e)&&a3.has(e[0])&&e.length===3,Gs=new Set([".","?.","[]","optindex"]),wn=(e)=>E(e)&&e[0]==="."&&e.length===3&&e[2]==="new",l3={__proto__:null,Array:"",ReadonlyArray:"",Map:"",Set:"",WeakMap:"",WeakSet:"",Promise:"",WeakRef:""};function c3(e){if(e[0]!=="="||e.length!==3)return null;let t=e[1];if(!E(t)||t[0]!=="."||typeof t[2]!=="string")return null;let r=t[1];if(!E(r)||r[0]!=="."||r[2]!=="prototype"||typeof r[1]!=="string")return null;return{head:r[1],member:t[2]}}function ht(e){let t=e;if(E(t)&&t[0]==="typed-var"&&t.length===3)t=t[1];if(E(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")return t[2];return null}function f3(e){let t=e;if(E(t)&&t[0]==="default"&&t.length===3)t=t[1];let r=ht(t);if(r===null)return null;return{name:r,typed:E(t)&&t[0]==="typed-var"&&t.length===3?t:null}}function h3(e){let t=[],r=new Map,i=(n,s)=>{if(!E(n))return;let a=n[0];if(a==="->"||a==="def"||a==="void-def"||a==="class"||a==="component"||a==="schema")return;if((a==="="||a==="void-assign")&&n.length===3&&E(n[1])&&n[1][0]==="."&&n[1][1]==="this"&&typeof n[1][2]==="string"){let o=n[1][2],l=r.get(o);if(l===void 0){let c={name:o,node:n,nodes:[n],viaArrow:s};r.set(o,c),t.push(c)}else if(l.nodes.push(n),l.viaArrow&&!s)l.viaArrow=!1}for(let o of n.slice(1))i(o,s||a==="=>")};for(let n of e)if(n!==null&&n!==void 0)i(n,!1);return t}var Ks=new Set(["<",">","<=",">=","==","!="]),ot=(e)=>E(e)&&Ks.has(e[0])&&e.length===3&&E(e[1])&&Ks.has(e[1][0])&&e[1].length===3&&!e[1].parenthesized,Ys=(e)=>E(e)&&(e[0]==="-"||e[0]==="+"||e[0]==="!"||e[0]==="~"||e[0]==="typeof"||e[0]==="delete")&&e.length===2,u3=(e)=>E(e)&&M1.has(e[0])&&e.length===3,zs=(e)=>E(e)&&(e[0]==="in"||e[0]==="of"||e[0]==="instanceof"||e[0]==="!in"||e[0]==="!of"||e[0]==="!instanceof")&&e.length===3,qs=(e)=>E(e)&&e[0]==="if",Me=(e)=>E(e)&&(e[0]===".."||e[0]==="...")&&e.length===3,O1=(e)=>E(e)&&e[0]==="object",T1=(e)=>E(e)&&(e[0]==="->"||e[0]==="=>")&&e.length===3,d3=new Set(["break","continue","return"]),m3=new Set(["break"]),g1=(e)=>e==="def"||e==="void-def";function Zs(e){if(!E(e))return!1;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?")return!0;if(t==="for-as"&&e[3]===!0)return!0;if(t==="->"||t==="=>"||g1(t)||t==="class")return!1;return e.some((r)=>Zs(r))}function Qs(e){if(!E(e))return!1;let t=e[0];if(t==="yield"||t==="yield-from")return!0;if(t==="->"||t==="=>"||g1(t)||t==="class")return!1;return e.some((r)=>Qs(r))}var W1=(e)=>E(e)&&(e[0]==="++"||e[0]==="--")&&e.length===3,rr=/^[A-Za-z_$][A-Za-z0-9_$]*$/,nr=(e,t="",r=[])=>{if(!E(e))return r;if(e[0]==="object"){for(let i of e.slice(1)){if(!E(i)||i.length!==3)continue;let n=i[0];if(n!==":"&&n!==null)continue;let s=i[1];if(typeof s!=="string")continue;let a=rr.test(s)?`.${s}`:`[${s}]`,o=i[2];if(typeof o==="string"){if(rr.test(o))r.push([o,t+a])}else nr(o,t+a,r)}return r}if(e[0]==="array")return e.slice(1).forEach((i,n)=>{if(E(i)&&i[0]==="...")return;if(typeof i==="string"){if(rr.test(i))r.push([i,`${t}[${n}]`])}else nr(i,`${t}[${n}]`,r)}),r;return r},_n=(e)=>E(e)&&e[0]==="?:"&&e.length===4,u1=(e)=>E(e)&&e[0]==="block",Q1=(e)=>Ae.has(String(e).split("#")[0]),lt=(e)=>typeof e==="string"&&/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(e),be=(e)=>E(e)&&e[0]==="comprehension"&&e.length===4&&Array.isArray(e[2])&&e[2].length>0&&Array.isArray(e[2][0])&&String(e[2][0][0]).startsWith("for-");var ct=(e)=>E(e)&&((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&e.length===6||e[0]==="while"&&(e.length===3||e.length===4)||e[0]==="loop"&&e.length===2||e[0]==="loop-n"&&e.length===3);function p3(e){let t=0,r=!0,i=(n)=>Array.isArray(n);return e.map((n)=>{if(typeof n==="string"){if(!r)return{item:n,name:n,value:null};return{item:n,name:n,value:String(t++)}}if(i(n)&&n[0]==="="&&n.length===3){let s=n[2],a=typeof s==="string"&&/^[0-9]/.test(s)?Number(s.replace(/_/g,"")):i(s)&&s[0]==="-"&&typeof s[1]==="string"?-Number(s[1].replace(/_/g,"")):null;if(a!==null&&Number.isFinite(a))t=a+1,r=!0;else if(typeof s==="string"&&s.startsWith('"'))r=!1;return{item:n,name:n[1],value:s}}return{item:n,name:null,value:void 0}})}function je(e){return`'${String(e).slice(1,-1).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Nn(e,t){if(!E(t)||t[0]!=="import"||t.length<2)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="import"}class T{constructor(e,t,{face:r="js",pins:i=null,strict:n=!1,script:s=!1,browserModule:a=!1,repl:o=!1,hmr:l=!1,tolerant:c=!1,modulePath:f=null,appStashSpec:h=null,routesUnion:u=null,routeParams:d=null}={}){this.stores=e,this.b=t,this.repl=o,this.tolerant=c,this.replResultName=null,this.replImportResolver=null,this.script=s,this.appStashSpec=h,this.routesUnion=typeof u==="string"&&u.length>0?u:null,this.routeParams=typeof d==="string"&&d.length>0?d:null,this.appAccessors={stash:null,router:null},this.routeWrapSpans=[],this.memberInitSites=[],this.sourceKeySpans=[],this.stashMemberSpans=[],this.domSurfaces=new Map,this._needsClassValue=!1,this._needsCssProperties=!1,this._needsChildren=!1,this._restTags=new Set,this._needsRefCellHelper=!1,this.intrinsics=[],this.renderPairs=[],this.browserModule=a,this.hmr=l===!0,this.modulePath=typeof f==="string"&&f.length>0?f:null,this.importSpans=[],this.typeOnlyImports=new Set,this.pins=i,this.pinnables=[],this.pinnedWrites=new Set,this.mutables=[],this.enums=[],this.classDecls=[],this.pinSpans=[],this.loopVars=[],this.attrNames=[],this.importedRefs=[],this.strict=n,this.ts=r==="ts",this.pendingHoistTypes=new Map,this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],this.tsDirectivesArmed=!1,this.pendingSigs=new WeakMap,this.pendingTypeDecls=[],this.primitiveAvoid=null,this.primitiveReuse=null,this.declaringName=!1,this.vocabulary=[],this.silences=[],this.memberDecls=[],this.kinds=[],this.componentInfo=new Map,this.schemaFns=new Map,this.moduleComponentNames=new Map,this.ind=0,this.methodName=null,this.scopes=[],this.lastProgramStmt=null,this.inPattern=!1,this.bindingPattern=!1,this.deopt=!1,this.inTarget=!1,this.voidFuncs=new WeakSet,this.sideEffectOnly=!1,this.voidReason=null,this.usesSchema=!1,this.exprDepth=0,this.renderRecord=null,this.postfixGuardDepth=0,this._schemaName=null,this.subParses=new Map,this.runtimeAliases=new Map,this.temps={used:new Set,n:0,byNode:new WeakMap},this.refPlans=new WeakMap,this.ctrlDepth=0,this.tailReturnOk=!1,this.rframes=[],this.cframes=[],this._componentName=null,this.moduleBound=new Set,this.renderSelf=null}isReactiveDecl(e){return T.isReactiveDeclIn(this.stores,e)}static isReactiveDeclIn(e,t){if(!E(t)||t[0]!=="state"&&t[0]!=="computed"||t.length!==3)return!1;let r=e.idOf(t),i=r!==null?e.node(r)?.semanticKind:null;return i==="state"||i==="computed"}isGateDecl(e){return T.isGateDeclIn(this.stores,e)}static isGateDeclIn(e,t){if(!E(t)||t[0]!=="gate"||t.length<3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="gate"}isEffectDecl(e){return T.isEffectDeclIn(this.stores,e)}static isEffectDeclIn(e,t){if(!E(t)||t[0]!=="effect"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="effect"}isReadonlyDecl(e){return T.isReadonlyDeclIn(this.stores,e)}static isReadonlyDeclIn(e,t){if(!E(t)||t[0]!=="readonly"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="readonly"}lockedHead(e,t){let r=this.stores.idOf(e);if(r===null)return!0;return this.stores.node(r)?.semanticKind===t}isModuleImport(e){return T.isModuleImportIn(this.stores,e)}static isModuleImportIn(e,t){return Nn(e,t)}static BLOCK_HEADS=new Set(["if","while","loop","for-in","for-of","for-as","switch","when","try","block","comprehension"]);collectReactiveNames(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i)){if(n){let a=i[0]==="state"?":=":"~=";throw this.positionedError(i,`emitter: a reactive declaration ('${typeof i[1]==="string"?i[1]:"…"} ${a} …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, and any later read would unwrap '.value' off a binding that no longer exists")}if(typeof i[1]==="string")t.add(i[1]);return}if(this.isEffectDecl(i))return;let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}collectEffectHandles(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i))return;if(this.isEffectDecl(i)){if(i[1]!==null){if(n)throw this.positionedError(i,`emitter: a bound effect ('${typeof i[1]==="string"?i[1]:"…"} ~> …') must sit at module or function scope — `+"inside a statement block its dispose handle would be a block-scoped const, dead to every later read "+"; a BARE '~> …' stays legal here");if(typeof i[1]==="string")t.add(i[1])}return}let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}collectReadonlyNames(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i)||this.isEffectDecl(i))return;if(this.isReadonlyDecl(i)){if(n)throw this.positionedError(i,`emitter: a readonly declaration ('${typeof i[1]==="string"?i[1]:"…"} =! …') must sit at module or function scope — `+"inside a statement block it lowers to a block-scoped const, dead to every later read ");if(typeof i[1]==="string")t.add(i[1]);r(i[2],n);return}let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}static exportedConstNames(e){let t=new Set;for(let r of e){if(!E(r)||r[0]!=="export")continue;for(let i of r.slice(1))if(E(i)&&(i[0]==="="||i[0]==="void-assign")&&i.length===3&&typeof i[1]==="string")t.add(i[1])}return t}isExportedConst(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.exportedConst!==void 0&&r.exportedConst.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}checkExportedConstWrite(e,t){let r=typeof t==="string"?[t]:T.isPattern(t)?this.patternNames(t):[];for(let i of r){if(!this.isExportedConst(i))continue;throw this.positionedError(e,`emitter: cannot assign to exported '${i}' — an exported binding lowers to `+`'export const', which never changes after its declaration; declare it as state ('export ${i} := …') to write it, or drop the export`)}}positionedError(e,t,...r){let i=Error(t);for(let n of[e,...r]){let s=this.stores.idOf(n),a=s!==null?this.stores.selfSpan(s):null;if(a){i.start=a[0],i.end=a[1];break}}return i}positionedErrorAt(e,t,r){let i=Error(r);return i.start=e,i.end=t,i}static declaredNames(e){let t=[],r=(i)=>{if(!E(i))return;if((i[0]==="enum"||i[0]==="class")&&typeof i[1]==="string")t.push(i[1]);if(g1(i[0])&&i.length===4&&typeof i[1]==="string")t.push(i[1])};for(let i of e)if(r(i),E(i)&&i[0]==="export"&&E(i[1]))r(i[1]);return t}static declaredClassNames(e){let t=new Set,r=(i)=>{if(!E(i)||!it.has(i[0])||i.length!==3)return;if(typeof i[1]!=="string")return;let n=i[2];if(E(n)&&(n[0]==="class"||n[0]==="component"))t.add(i[1])};for(let i of e)if(r(i),E(i)&&i[0]==="export"&&E(i[1]))r(i[1]);return t}static declaredEnumNames(e){let t=new Set,r=(i)=>{if(E(i)&&i[0]==="enum"&&typeof i[1]==="string")t.add(i[1])};for(let i of e)if(r(i),E(i)&&i[0]==="export"&&E(i[1]))r(i[1]);return t}nodeLine(e){let t=this.stores.idOf(e),r=t!==null?this.stores.selfSpan(t):null;if(!r||typeof this.b.source!=="string")return null;let i=1;for(let n=0;n{if(typeof f==="string")i.push({name:f,kind:h,node:u,auth:!0})},s=(f,h)=>{if(typeof f==="string")i.push({name:f,kind:"plain",node:h,auth:!1})},a=(f,h,u)=>{let d=new Set;for(let S of f){if(d.has(S))throw this.positionedError(h,`emitter: '${S}' is bound twice in one ${u} — one binding per name; rename or drop the duplicate`,...r!==null?[r]:[]);d.add(S)}return f};{let f=[],h=[];for(let u of t??[]){this.patternNames(u,f,!0);let d=E(u)?u:t;while(h.lengthn(u,"parameter",h[d]))}let o=(f,h)=>{if(!E(f))return;if(this.isModuleImport(f)){for(let d of T.importedNames([f]))n(d,"import",f);return}if(T1(f))return;if(g1(f[0])){if(!h&&f.length===4&&typeof f[1]==="string")n(f[1],"def",f);return}if(f[0]==="enum"){if(!h)n(f[1],"enum",f);return}if(f[0]==="component"&&f.length===3)return;if(f[0]==="class"){if(!h)n(f[1],"class",f);if(f[2]!=null)o(f[2],!0);let d=f[3];if(u1(d)){for(let S of d.slice(1))if(E(S)&&M1.has(S[0])&&S.length===3)o(S[2],!0);else if(!T.isTypedWrapper(S))o(S,!0)}return}if(this.isReactiveDecl(f)){if(n(f[1],f[0]==="computed"?"computed":"state",f),!(f[0]==="computed"&&u1(f[2])&&f[2].length>2))o(f[2],h);return}if(this.isEffectDecl(f)){if(f[1]!==null)n(f[1],"effect",f);return}if(this.isReadonlyDecl(f)){n(f[1],"readonly",f),o(f[2],h);return}if(f[0]==="export"){for(let d of f.slice(1)){if(!E(d))continue;if((d[0]==="="||d[0]==="void-assign")&&d.length===3&&typeof d[1]==="string")n(d[1],"plain",d),o(d[2],h);else o(d,h)}return}if(f[0]==="for-in"||f[0]==="for-of"||f[0]==="for-as"){if(E(f[1])){let d=[];for(let S of f[1])this.patternNames(S,d,!0);a(d,f,"loop head")}for(let d of f.slice(2))o(d,!0);return}if(be(f)){o(f[1],!0);for(let d of f[2]??[]){let S=[];if(E(d[1]))for(let g of d[1])this.patternNames(g,S,!0);a(S,f,"comprehension clause"),o(d[2],!0)}for(let d of f[3]??[])o(d,!0);return}if(f[0]==="try"){for(let d of f.slice(2))if(E(d)&&d.length===2&&T.isPattern(d[0])){for(let S of a(this.patternNames(d[0]),d[0],"catch pattern"))s(S,f);o(d[1],!0)}else o(d,!0);o(f[1],!0);return}if(M1.has(f[0])&&f.length===3){if(typeof f[1]==="string")s(f[1],f);else if(f[0]==="="&&T.isPattern(f[1]))for(let d of a(this.patternNames(f[1]),f,"destructuring pattern"))s(d,f)}let u=h||T.BLOCK_HEADS.has(f[0]);for(let d of f)o(d,u)};for(let f of e)o(f,!1);i.forEach((f,h)=>{f.order=h});let l=(f,h)=>{let u=h.node!==null?this.nodeLine(h.node):null,d=h.kind==="state"||h.kind==="parameter"||h.kind==="plain"?` — assign with '${f.name} = …' to update it, or choose a different name`:" — choose a different name";throw this.positionedError(f.node,`emitter: '${f.name}' was already declared as ${h.kind}${u!==null?` on line ${u}`:""}${d}`,...r!==null?[r]:[])},c=new Map;for(let f of i){if(!f.auth)continue;let h=c.get(f.name);if(h!==void 0)l(f,h);c.set(f.name,f)}for(let f of i){if(f.auth)continue;let h=c.get(f.name);if(h!==void 0){if(h.auth&&f.orderu.members.has(f.name)))continue;c.set(f.name,f)}}pushReactiveFrame(e,t,r=[],i=null){let n=this.collectReactiveNames(e),s=this.collectEffectHandles(e),a=this.collectReadonlyNames(e);return this.checkScopeRedeclarations(e,r,i),this.rframes.push({reactive:n,computed:this.collectComputedNames(e),readonly:a,handles:s,bound:new Set([...t,...T.declaredNames(e),...s,...a]),enums:T.declaredEnumNames(e),classes:T.declaredClassNames(e),importSpecs:T.importedSpecs(e),exportedConst:T.exportedConstNames(e)}),new Set([...n,...s,...a])}withBindings(e,t){this.rframes.push({reactive:new Set,bound:new Set(e)}),t(),this.rframes.pop()}resolveBareRead(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return"reactive";if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberReactive.has(e)?"member-reactive":"member"}return null}kindOfName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive?.has(e))return r.computed?.has(e)?"computed":"state";if(r.readonly?.has(e))return"readonly";if(r.handles?.has(e))return"effect";if(r.bound?.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.memberKinds?.get(e)??null}return null}isReactiveName(e){return this.resolveBareRead(e)==="reactive"}isEnumName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.enums!==void 0&&r.enums.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isClassName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.classes!==void 0&&r.classes.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isRenderLoopName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.loopVars!==void 0&&r.loopVars.has(e))return!0;if(r.reactive.has(e)||r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}importSpecOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t],i=r.importSpecs?.get(e);if(i!==void 0)return i;if(r.reactive.has(e)||r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return null}return null}isComputedName(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return r.computed!==void 0&&r.computed.has(e);if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}isAmbientReadonly(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return!1;if(r.ambientReadonly!==void 0&&r.ambientReadonly.has(e))return!0;if(r.readonly!==void 0&&r.readonly.has(e))return!0;if(r.bound.has(e))return!1;if(r.members!==void 0&&r.members.has(e))return!1}return!1}memberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e))return null;if(r.bound.has(e))return null;if(r.members!==void 0&&r.members.has(e))return r.members.get(e)}return null}thisMemberKindOf(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.members!==void 0)return r.members.has(e)?r.members.get(e):null}return null}static targetsRestView(e){if(!E(e))return!1;if(e[0]==="array")return e.slice(1).some((r)=>T.targetsRestView(r));if(e[0]==="object")return e.slice(1).some((r)=>E(r)&&T.targetsRestView(r[2]??r[1]));if(e[0]==="default"||e[0]==="rest")return T.targetsRestView(e[1]);let t=e;while(E(t)&&(t[0]==="."||t[0]==="[]"||t[0]==="?."||t[0]==="optindex")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&t[2]==="rest")return!0;t=t[1]}return!1}checkBareRest(e,t){if(t!=="rest"||this.memberKindOf(t)!=="rest")return;let r=this.positionedError(e,"emitter: `rest` is provided by `extends`, not declared here — spell it `@rest`, as with `@stash` and `@router`");if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}checkMemberWrite(e,t){if(this.cframes.length===0)return;if(this.thisMemberKindOf("rest")==="rest"&&T.targetsRestView(t))throw this.positionedError(e,"emitter: `@rest` is the runtime-owned view of the caller's undeclared props and is never assigned — "+"set the attribute on the element in render, or declare the name as a prop the caller supplies");let r=null,i=null;if(typeof t==="string")this.checkBareRest(e,t),r=t,i=this.memberKindOf(t);else if(E(t)&&t[0]==="."&&t[1]==="this"&&typeof t[2]==="string")r=t[2],i=this.thisMemberKindOf(r);if(i===null)return;if(i==="readonly")throw this.positionedError(e,`emitter: cannot assign to readonly member '${r}' — a '=!' member never changes after _init; `+"a member that changes is state (':=')");if(i==="plain"){let n=this.cframes[this.cframes.length-1];if(!n.plainWrites.has(r))n.plainWrites.set(r,e)}}notePlainRenderRead(e,t=!1){if(this.rstate==null||this.cframes.length===0)return;if((t?this.thisMemberKindOf(e):this.memberKindOf(e))!=="plain")return;this.cframes[this.cframes.length-1].renderPlainReads.add(e)}collectComputedNames(e){let t=new Set,r=(i,n)=>{if(!E(i)||g1(i[0])||T1(i)||i[0]==="class"||i[0]==="enum")return;if(i[0]==="component"&&i.length===3)return;if(this.isReactiveDecl(i)){if(!n&&i[0]==="computed"&&typeof i[1]==="string")t.add(i[1]);return}if(this.isEffectDecl(i))return;let s=n||T.BLOCK_HEADS.has(i[0]);for(let a of i)r(a,s)};for(let i of e)r(i,!1);return t}bareRewrite(e){if(this.inPattern&&this.bindingPattern)return null;return this.resolveBareRead(e)}isReactiveRead(e){return this.bareRewrite(e)==="reactive"}memberIsReactive(e){let t=this.cframes[this.cframes.length-1];return t!==void 0&&t.memberReactive.has(e)}inComponent(){return this.cframes.length>0}reactiveRead(e){let t=this.b.currentMark,r=this.b.source;if(this.ts)this.emitPrimitive(e);else if(t!==null&&r!==null&&r.slice(t.sourceStart,t.sourceEnd)===e)this.b.mark(t.nodeId,t.role,()=>this.b.emit(e));else this.b.emit(e);this.b.emit(".value")}memberRead(e,t){let r=this.b.currentMark,i=this.b.source;if(this.b.emit((this.renderSelf??"this")+"."),this.ts){let n=this.emitPrimitive(e);if(t&&n!==null)this.memberDecls.push({start:n[0],end:n[1]})}else if(r!==null&&i!==null&&i.slice(r.sourceStart,r.sourceEnd)===e)this.b.mark(r.nodeId,r.role,()=>this.b.emit(e));else this.b.emit(e);if(t)this.b.emit(".value")}emitPrimitive(e){let t=this.b.currentMark,r=this.ts&&typeof e==="string"?this.b.claimPrimitiveSpan(e,this.primitiveAvoid):null;if(r===null&&this.primitiveReuse!==null&&this.primitiveReuse.name===e)r=this.primitiveReuse.span,this.primitiveReuse=null;if(r!==null&&X1(e)){let i=this.kindOfName(e),n=typeof i==="string"?{label:i,optional:!1}:i;if(n!==null)this.kinds.push({start:r[0],end:r[1],label:n.label,name:e,optional:n.optional})}if(t!==null&&r!==null){let i=X1(e)?"identifier":"literal";this.b.markSpan(t.nodeId,i,r[0],r[1],()=>this.noteNameSpan(e))}else this.noteNameSpan(e);return r}noteNameSpan(e){if(!this.ts||this.declaringName||typeof e!=="string"||!X1(e)){this.b.emit(e);return}let t=this.b.offset;if(this.b.emit(e),this.isEnumName(e)){this.enums.push([t,this.b.offset]);return}if(this.isReactiveName(e)&&!this.isComputedName(e)){this.mutables.push([t,this.b.offset]);return}if(this.isClassName(e)){this.classDecls.push([t,this.b.offset]);return}if(this.isRenderLoopName(e)){this.loopVars.push([t,this.b.offset]);return}let r=this.importSpecOf(e);if(r!==null)this.importedRefs.push([t,this.b.offset,r.importedName,r.specifier])}withDeclaredName(e){let t=this.declaringName;this.declaringName=!0;try{return e()}finally{this.declaringName=t}}noteVocabulary(e,t,r){let i=this.wordSpanIn(t,r);if(i!==null)this.vocabulary.push({kind:e,start:i[0],end:i[1]})}noteShorthandClasses(e,t){for(let r of e)this.noteVocabulary("render-channel",r,t)}noteHeadKeyword(e,t,r){if(!this.ts)return;let i=E(r)?this.stores.idOf(r):null,n=i!==null?this.stores.selfSpan(i):null;if(n===null||this.b.source===null)return;let s=n[0]+t.length;if(s>n[1]||this.b.source.slice(n[0],s)!==t)return;this.vocabulary.push({kind:e,start:n[0],end:s})}noteKind(e,t,r){let i=this.stores.idOf(e),n=i!==null?this.stores.role(i,t):null;if(n?.sourceStart!=null&&n.sourceEnd>n.sourceStart){let s=this.b.source?.slice(n.sourceStart,n.sourceEnd)??null;this.kinds.push({start:n.sourceStart,end:n.sourceEnd,label:r,name:s})}}noteSilence(e,t){let r=this.wordSpanIn(e,t);if(r!==null)this.silences.push([r[0],r[1]])}static MEMBER_KINDS={state:"state",computed:"computed",readonly:"readonly",gate:"gate"};static memberLabel(e){if(e.isPublic&&(e.kind==="prop"||e.kind==="state"))return"prop";return T.MEMBER_KINDS[e.kind]??null}noteMemberDecl(e){if(!this.ts)return;let t=E(e.nameNode)?this.stores.idOf(e.nameNode):null,r=t!==null?this.stores.role(t,e.nameRole):null;if(!r||typeof r.sourceStart!=="number")return;let i=T.memberLabel(e);if(i!==null)this.kinds.push({start:r.sourceStart,end:r.sourceEnd,label:i,name:e.name,optional:e.optional===!0});if(!As(e))return;this.memberDecls.push({start:r.sourceStart,end:r.sourceEnd})}wordSpanIn(e,t){if(!this.ts)return null;let r=E(t)?this.stores.idOf(t):null,i=r!==null?this.stores.selfSpan(r):null;if(i===null)return null;let n=this.stores.primitiveSpans(e,i[0],i[1]);if(n.length!==1)return null;return[n[0].sourceStart,n[0].sourceEnd]}bareChildSpan(e,t,r){let i=(l)=>{let c=E(l)?this.stores.idOf(l):null;return c!==null?this.stores.selfSpan(c):null},n=i(r)??i(this.rstate?.node??null);if(n===null)return null;let[s,a]=n;for(let l=t-1;l>=0;l--){let c=i(e[l]);if(c){s=c[1];break}}for(let l=t+1;l — did you mean '${n}'?`;if(r)return`'${t}' is not a known attribute of <${e}> — a bare word sets the boolean attribute it `+`names; render a value with \`= ${t}\`, or spell \`name: value\``;return`'${t}' is not a known attribute of <${e}> — `+(i?"SVG attribute names are the spec's own, case-sensitive (`viewBox`)":"HTML attribute names are the spec's own, lowercase")+"; `data-`/`aria-` names take any suffix"}emitRewrittenPrimitive(e,t){let r=this.b.currentMark,i=this.ts?this.b.claimPrimitiveSpan(e):null;if(r!==null&&i!==null)this.b.markSpan(r.nodeId,"identifier",i[0],i[1],()=>this.b.emit(t));else this.b.emit(t);return i}emitQuotedPrimitive(e,t="'"){this.b.emit(t);let r=this.emitPrimitive(e);return this.b.emit(t),r}emitKeyAs(e,t){return e===t?this.emitPrimitive(e):this.emitRewrittenPrimitive(e,t)}emitPropertyRoadKey(e){let t=this.b.offset;if(e(),this.ts)this.attrNames.push([t,this.b.offset])}emitSchemaText(e,t=!1){let r=0,i=null;while(r0){let c=e[o];if(l!==null){if(c==="\\")o++;else if(c===l)l=null}else if(c==='"'||c==="'"||c==="`")l=c;else if(c==="{")a++;else if(c==="}")a--;o++}if(this.b.emit("${"),this.emitSchemaText(e.slice(s+2,a===0?o-1:o),t),a===0)this.b.emit("}");s=o;continue}this.b.emit(e[s]),s++}if(sthis.b.emit(a));else if(X1(a))this.emitPrimitive(a);else this.b.emit(a);if(sS.value===o[g].value),h=null;if(!f){h=Array.from({length:l+1},()=>Array(c+1).fill(0));for(let S=l-1;S>=0;S--)for(let g=c-1;g>=0;g--)h[S][g]=a[S].value===o[g].value?h[S+1][g+1]+1:Math.max(h[S][g+1],h[S+1][g])}let u=0,d=0;for(let S=0;Sthis.noteNameSpan(g.value)),u++}else this.noteNameSpan(g.value);d=g.end}this.b.emit(r.slice(d))}registerVoidValue(e,t){if(T1(e)){this.voidFuncs.add(e);return}if(!(E(e)&&g1(e[0])))throw this.positionedError(e,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`, `save! = =>`, `fn!: ->`",t)}withTarget(e){let t=this.inTarget;this.inTarget=!0,e(),this.inTarget=t}withPattern(e,t=!1){let r=this.inPattern,i=this.bindingPattern;this.inPattern=!0,this.bindingPattern=t,e(),this.inPattern=r,this.bindingPattern=i}withExpression(e){let t=this.inPattern,r=this.bindingPattern;this.inPattern=!1,this.bindingPattern=!1,e(),this.inPattern=t,this.bindingPattern=r}withDeopt(e){let t=this.deopt;this.deopt=!0,e(),this.deopt=t}mark(e,t,r){let i=this.stores.idOf(e);if(i!==null&&(t==="$self"||this.stores.role(i,t)!==null))this.b.mark(i,t,r);else r()}beginMark(e,t){let r=this.stores.idOf(e);if(r!==null&&(t==="$self"||this.stores.role(r,t)!==null))return this.b.beginMark(r,t),!0;return!1}endMark(e){if(e)this.b.endMark()}annotationText(e,t="annotation"){let r=this.stores.idOf(e);if(r===null)return null;let i=this.stores.role(r,t);if(!i||i.sourceStart==null||this.b.source===null)return null;return Ct(this.b.source.slice(i.sourceStart,i.sourceEnd).replace(/^\s*:\s*/,""))}tsAnnotate(e,t,r){this.b.tsOnly(()=>this.mark(e,t,()=>this.emitTypeText(e,t,`: ${r}`)))}tsReturnAnnotation(e,t,r,i,n=e){if(!this.ts)return;let s=this.annotationText(e,"returnType");if(s!==null){let a=t&&!i&&!/^Promise\s*`:s;this.b.tsOnly(()=>this.mark(e,"returnType",()=>this.emitTypeText(e,"returnType",`: ${a}`)));return}if(r&&!i){let a=t?"Promise":"void";this.b.tsOnly(()=>this.mark(n,"voidMarker",()=>this.b.emit(`: ${a}`)))}}tsRendered(e,t){try{return t()}catch(r){if(r instanceof Kr)throw this.positionedError(e,`emitter: ${r.message}`);throw r}}emitTsTypeDecls(e,t){if(!this.ts)return;for(let r of e){if(!E(r)||r[0]!=="type-decl")continue;this.tsTypeDeclLine(r,t)}}tsTypeDeclLine(e,t){let r=this.tsRendered(e,()=>mi(e[1])),i=this.tsDirectiveMap.get(e);if(i!==void 0){if(this.tsDirectiveMap.delete(e),r.length===1)for(let n of i)this.tsDirectiveLine(n,t,!0)}this.b.tsOnly(()=>{this.b.emit(t),this.mark(e,"$self",()=>this.mark(e,"declaration",()=>{this.emitTypeText(e,"declaration",r.join(` `+t))})),this.b.emit(` `)})}flushPendingTypeDecls(e,t=!1){if(!this.ts||this.pendingTypeDecls.length===0)return;let r=this.pendingTypeDecls;if(this.pendingTypeDecls=[],t)this.b.tsOnly(()=>this.b.emit(` `));for(let i of r)this.tsTypeDeclLine(i,e)}emitSegments(e){for(let t of e)if(t.node!==void 0)this.mark(t.node,t.role,()=>this.emitAnnotationWords(t));else this.emitDeclaredTypeCopies(t.text)}emitDeclaredTypeCopies(e,t=null){let r=t??this.b.currentMark?.nodeId??null;if(r===null||!this.ts){this.b.emit(e);return}this.emitNamedCopies(e,null,r,null)}emitNamedCopies(e,t,r,i){if(r===null||!this.ts){this.b.emit(e);return}let n=this.moduleTypeDeclarationSpans();if(t!==null&&i!==null)n.set(t,i);if(n.size===0){this.b.emit(e);return}let s=0;for(let a of e.matchAll(/[A-Za-z_$][\w$]*/g)){let o=n.get(a[0]);if(o===void 0||a.indexthis.b.emit(a[0])),s=a.index+a[0].length}this.b.emit(e.slice(s))}moduleTypeDeclarationSpans(){if(this._typeDeclSpans===void 0){let e=new Map;if(this.b.source!==null){let t=/^(?:export\s+)?(?:(?:type|interface|enum)\s+([A-Za-z_$][\w$]*)|([A-Za-z_$][\w$]*)\s*=\s*schema\b|([A-Za-z_$][\w$]*)\s*=\s*[A-Za-z_$][\w$]*\s*\.\s*(?:pick|omit|partial|required|extend)\b)/gmd;for(let i of this.b.source.matchAll(t)){let n=i.indices[1]??i.indices[2]??i.indices[3],s=this.b.source.slice(n[0],n[1]);if(e.has(s))continue;e.set(s,[n[0],n[1]])}let r=/(?:^|,)\s*(?:type\s+)?(?:[A-Za-z_$][\w$]*\s+as\s+)?([A-Za-z_$][\w$]*)/gd;for(let i of this.b.source.matchAll(/^import\s+(?:type\s+)?\{([^}]*)\}/gmd)){let[n]=i.indices[1],s=i.index+i[0].length;for(let a of i[1].matchAll(r)){let[o,l]=a.indices[1],c=i[1].slice(o,l);if(e.has(c))continue;let f=new RegExp(`(?0){let o=this.b.source.lastIndexOf(r,a-1);if(o<0)break;if(!/[\w$]/.test(this.b.source[o-1]??" ")&&!/[\w$]/.test(this.b.source[o+r.length]??" "))return{id:i,span:[o,o+r.length]};a=o}return null}emitAnnotationWords(e){if(e.role!=="annotation"||!this.ts){this.b.emit(e.text);return}let t=this.stores.idOf(e.node),r=t!==null?this.stores.role(t,"annotation"):null,i=r?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):null;if(i===null||e.text.includes(i)){this.b.emit(e.text);return}let n=new Map;for(let a of i.matchAll(/[A-Za-z_$][\w$]*/g))if(!n.has(a[0]))n.set(a[0],[r.sourceStart+a.index,r.sourceStart+a.index+a[0].length]);let s=0;for(let a of e.text.matchAll(/[A-Za-z_$][\w$]*/g)){let o=n.get(a[0]);if(!o)continue;this.b.emit(e.text.slice(s,a.index)),this.b.markSpan(t,"identifier",o[0],o[1],()=>this.b.emit(a[0])),s=a.index+a[0].length}this.b.emit(e.text.slice(s))}tsComponentMemberDeclares(e,t){let r=(s)=>this.b.tsOnly(()=>{this.b.emit(t),s(),this.b.emit(` @@ -57,14 +57,14 @@ ${o.join(` `));else this.b.tsOnly(()=>this.b.emit(`${t}declare static mount: (target?: any) => any; `));this.b.tsOnly(()=>{this.b.emit(`${t}constructor(props${yn(e)?"?":""}: `),this.emitSegments(vs(e,{road:"face"})),this.b.emit(`) { super(props); } `)})}tsComponentCompanion(e,t,r,i=null){if(!this.ts)return;let n=this.componentInfo.get(e);if(n===void 0)return;let s=" ".repeat(this.ind),a=xs(i);this.b.tsOnly(()=>{this.b.emit(` -`+s),this.mark(e,"$self",()=>{let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=-1;if(f!==null&&this.b.source!==null){let S=f[0];while(S>0){let g=this.b.source.lastIndexOf(t,S-1);if(g<0)break;let d=this.b.source[g-1]??" ",R=this.b.source[g+t.length]??" ";if(!/[\w$]/.test(d)&&!/[\w$]/.test(R)){h=g;break}S=g}}let u=this.moduleTypeDeclarationSpans();if(h>=0)u.set(t,[h,h+t.length]);let m=(S)=>{if(u.size===0){this.b.emit(S);return}let g=0;for(let d of S.matchAll(/[A-Za-z_$][\w$]*/g)){let R=u.get(d[0]);if(!R)continue;this.b.emit(S.slice(g,d.index)),this.b.markSpan(c,"identifier",R[0],R[1],()=>this.b.emit(d[0])),g=d.index+d[0].length}this.b.emit(S.slice(g))};this.b.emit(`${r?"export ":""}interface `),m(t),this.b.emit(`${i??""} {`);for(let S of Is(n,`${t}${a}`,{road:"face"})){this.b.emit(` -`+s+" ");let g=()=>{for(let d of S.segs)if(d.node!==void 0)this.mark(d.node,d.role,()=>this.emitAnnotationWords(d));else m(d.text)};if(S.node!==void 0)this.mark(S.node,S.role,g);else g()}this.b.emit(` +`+s),this.mark(e,"$self",()=>{let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=-1;if(f!==null&&this.b.source!==null){let S=f[0];while(S>0){let g=this.b.source.lastIndexOf(t,S-1);if(g<0)break;let p=this.b.source[g-1]??" ",R=this.b.source[g+t.length]??" ";if(!/[\w$]/.test(p)&&!/[\w$]/.test(R)){h=g;break}S=g}}let u=this.moduleTypeDeclarationSpans();if(h>=0)u.set(t,[h,h+t.length]);let d=(S)=>{if(u.size===0){this.b.emit(S);return}let g=0;for(let p of S.matchAll(/[A-Za-z_$][\w$]*/g)){let R=u.get(p[0]);if(!R)continue;this.b.emit(S.slice(g,p.index)),this.b.markSpan(c,"identifier",R[0],R[1],()=>this.b.emit(p[0])),g=p.index+p[0].length}this.b.emit(S.slice(g))};this.b.emit(`${r?"export ":""}interface `),d(t),this.b.emit(`${i??""} {`);for(let S of Is(n,`${t}${a}`,{road:"face"})){this.b.emit(` +`+s+" ");let g=()=>{for(let p of S.segs)if(p.node!==void 0)this.mark(p.node,p.role,()=>this.emitAnnotationWords(p));else d(p.text)};if(S.node!==void 0)this.mark(S.node,S.role,g);else g()}this.b.emit(` `+s+"}")})});let o=n.computedBodies??[];if(n.behavior===null||o.length===0)return;if(this.scopes[0]?.has(n.behavior)||this.moduleBound?.has(n.behavior))throw this.positionedError(e,`emitter: the module binds '${n.behavior}', the face-only name this component's `+"computed types read through — rename the binding");let l=`${t}${Cs(i)}`;this.b.tsOnly(()=>this.b.echo(()=>{this.b.emit(` -`+s),this.mark(e,"$self",()=>{this.b.emit(`const ${n.behavior} = {`);let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=-1;if(f!==null&&this.b.source!==null){let u=f[0];while(u>0){let m=this.b.source.lastIndexOf(t,u-1);if(m<0)break;if(!/[\w$]/.test(this.b.source[m-1]??" ")&&!/[\w$]/.test(this.b.source[m+t.length]??" ")){h=m;break}u=m}}o.forEach(({name:u,code:m,block:S},g)=>{this.b.emit(`${g>0?",":""} ${u}: function (this: `),this.emitNamedCopies(l,t,h>=0?c:null,h>=0?[h,h+t.length]:null),this.b.emit(`) ${S?m:`{ return ${m}; }`}`)}),this.b.emit(" };")})}))}static TS_DIRECTIVE=/^#[ \t]*@ts-(expect-error|ignore|nocheck)(?=\s|$)/;collectTypeOnlyImports(e,t){let r=new Set,i=[],n=(a)=>{if(typeof a==="string"){r.add(a);return}if(!E(a))return;if(Nn(this.stores,a)){let o=this.stores.idOf(a);if(o===null||this.stores.role(o,"typeOnly")===null)i.push(...T.importedNames([a]));return}if(a[0]==="typed-var"&&a.length===3){n(a[1]);return}if(a[0]==="def-sig"){n(a[2]);return}if(a[0]==="type-decl")return;for(let o of a)n(o)};if(n(e),i.length===0||!t)return;let s=new Set;for(let a of this.stores.nodes??[])for(let o of this.stores.rolesOf(a.nodeId)){if(!T.TYPE_ROLES.has(o.role)||typeof o.sourceStart!=="number")continue;for(let l of t.slice(o.sourceStart,o.sourceEnd).matchAll(/[A-Za-z_$][\w$]*/g))s.add(l[0])}for(let a of i)if(s.has(a)&&!r.has(a))this.typeOnlyImports.add(a)}collectAppAccessors(e){this.appAccessors={stash:null,router:null};for(let t of e.slice(1)){if(!Nn(this.stores,t))continue;let r=t[t.length-1];if(typeof r!=="string"||r.slice(1,-1)!=="rip/app")continue;let i=this.stores.idOf(t);if(i!==null&&this.stores.role(i,"typeOnly")!==null)continue;for(let n of T.importSpecs(t)){if(!E(n)||n[0]==="*")continue;for(let s of n){let a=E(s)?s[0]:s,o=E(s)?s[1]:s;if(a==="currentStash")this.appAccessors.stash=o;else if(a==="currentRouter")this.appAccessors.router=o}}}}isAccessorCall(e,t){if(t===null||!E(e)||e.length!==1||e[0]!==t)return!1;return!this.scopes.slice(1).some((r)=>r.has(t))}collectTsDirectives(e,t,r){if(this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],t.length===0)return;let i=[0];for(let h=0;h{let u=0,m=i.length-1;while(u>1;if(i[S]<=h)u=S;else m=S-1}return u},s=[],a=[];for(let h of t){if(h.kind!=="comment")continue;let u=T.TS_DIRECTIVE.exec(h.text);if(u===null)continue;if(!/^[ \t]*$/.test(r.slice(i[n(h.start)],h.start)))continue;(u[1]==="nocheck"?a:s).push(h)}if(s.length===0&&a.length===0)return;let o=[],l=(h)=>{for(let u of h){if(!E(u))continue;let m=this.stores.idOf(u);if(m===null)continue;let S=this.stores.node(m);o.push({el:u,id:m,start:S.sourceStart,end:S.sourceEnd})}};l(e.slice(1));let c=(h)=>{if(!E(h))return;if(u1(h)){l(h.slice(1));for(let u of h.slice(1))if(E(u)&&O1(u))l(u.slice(1))}for(let u of h)c(u)};c(e),o.sort((h,u)=>h.start-u.start||u.end-h.end);for(let h of s){let u=o.find((S)=>S.start>=h.end);if(u===void 0||n(u.start)!==n(h.start)+1)continue;let m=this.tsDirectiveMap.get(u.el)??[];m.push({t:h,nodeId:u.id}),this.tsDirectiveMap.set(u.el,m)}let f=o.length>0?o[0].start:1/0;this.tsNocheck=this.ts?a.find((h)=>h.end<=f)??null:null}tsDirectiveLine(e,t,r=!1){this.b.tsOnly(()=>{if(r)this.b.emit(t);this.b.markSpan(e.nodeId,"tsDirective",e.t.start,e.t.end,()=>{this.b.emit("//"+e.t.text.slice(1))}),this.b.emit(r?` +`+s),this.mark(e,"$self",()=>{this.b.emit(`const ${n.behavior} = {`);let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=-1;if(f!==null&&this.b.source!==null){let u=f[0];while(u>0){let d=this.b.source.lastIndexOf(t,u-1);if(d<0)break;if(!/[\w$]/.test(this.b.source[d-1]??" ")&&!/[\w$]/.test(this.b.source[d+t.length]??" ")){h=d;break}u=d}}o.forEach(({name:u,code:d,block:S},g)=>{this.b.emit(`${g>0?",":""} ${u}: function (this: `),this.emitNamedCopies(l,t,h>=0?c:null,h>=0?[h,h+t.length]:null),this.b.emit(`) ${S?d:`{ return ${d}; }`}`)}),this.b.emit(" };")})}))}static TS_DIRECTIVE=/^#[ \t]*@ts-(expect-error|ignore|nocheck)(?=\s|$)/;collectTypeOnlyImports(e,t){let r=new Set,i=[],n=(a)=>{if(typeof a==="string"){r.add(a);return}if(!E(a))return;if(Nn(this.stores,a)){let o=this.stores.idOf(a);if(o===null||this.stores.role(o,"typeOnly")===null)i.push(...T.importedNames([a]));return}if(a[0]==="typed-var"&&a.length===3){n(a[1]);return}if(a[0]==="def-sig"){n(a[2]);return}if(a[0]==="type-decl")return;for(let o of a)n(o)};if(n(e),i.length===0||!t)return;let s=new Set;for(let a of this.stores.nodes??[])for(let o of this.stores.rolesOf(a.nodeId)){if(!T.TYPE_ROLES.has(o.role)||typeof o.sourceStart!=="number")continue;for(let l of t.slice(o.sourceStart,o.sourceEnd).matchAll(/[A-Za-z_$][\w$]*/g))s.add(l[0])}for(let a of i)if(s.has(a)&&!r.has(a))this.typeOnlyImports.add(a)}collectAppAccessors(e){this.appAccessors={stash:null,router:null};for(let t of e.slice(1)){if(!Nn(this.stores,t))continue;let r=t[t.length-1];if(typeof r!=="string"||r.slice(1,-1)!=="rip/app")continue;let i=this.stores.idOf(t);if(i!==null&&this.stores.role(i,"typeOnly")!==null)continue;for(let n of T.importSpecs(t)){if(!E(n)||n[0]==="*")continue;for(let s of n){let a=E(s)?s[0]:s,o=E(s)?s[1]:s;if(a==="currentStash")this.appAccessors.stash=o;else if(a==="currentRouter")this.appAccessors.router=o}}}}isAccessorCall(e,t){if(t===null||!E(e)||e.length!==1||e[0]!==t)return!1;return!this.scopes.slice(1).some((r)=>r.has(t))}collectTsDirectives(e,t,r){if(this.tsDirectiveMap=new Map,this.tsNocheck=null,this.pendingHoistDirectives=[],t.length===0)return;let i=[0];for(let h=0;h{let u=0,d=i.length-1;while(u>1;if(i[S]<=h)u=S;else d=S-1}return u},s=[],a=[];for(let h of t){if(h.kind!=="comment")continue;let u=T.TS_DIRECTIVE.exec(h.text);if(u===null)continue;if(!/^[ \t]*$/.test(r.slice(i[n(h.start)],h.start)))continue;(u[1]==="nocheck"?a:s).push(h)}if(s.length===0&&a.length===0)return;let o=[],l=(h)=>{for(let u of h){if(!E(u))continue;let d=this.stores.idOf(u);if(d===null)continue;let S=this.stores.node(d);o.push({el:u,id:d,start:S.sourceStart,end:S.sourceEnd})}};l(e.slice(1));let c=(h)=>{if(!E(h))return;if(u1(h)){l(h.slice(1));for(let u of h.slice(1))if(E(u)&&O1(u))l(u.slice(1))}for(let u of h)c(u)};c(e),o.sort((h,u)=>h.start-u.start||u.end-h.end);for(let h of s){let u=o.find((S)=>S.start>=h.end);if(u===void 0||n(u.start)!==n(h.start)+1)continue;let d=this.tsDirectiveMap.get(u.el)??[];d.push({t:h,nodeId:u.id}),this.tsDirectiveMap.set(u.el,d)}let f=o.length>0?o[0].start:1/0;this.tsNocheck=this.ts?a.find((h)=>h.end<=f)??null:null}tsDirectiveLine(e,t,r=!1){this.b.tsOnly(()=>{if(r)this.b.emit(t);this.b.markSpan(e.nodeId,"tsDirective",e.t.start,e.t.end,()=>{this.b.emit("//"+e.t.text.slice(1))}),this.b.emit(r?` `:` -`+t)})}withTsDirectives(e,t,r,i=!1){let n=this.ts&&this.tsDirectivesArmed&&E(e)?this.tsDirectiveMap.get(e):void 0;if(n===void 0)return r();this.tsDirectiveMap.delete(e);for(let s of n)this.tsDirectiveLine(s,t,i);r()}tsForwardDirectives(e){if(!this.ts||!this.tsDirectivesArmed)return;let t=this.tsDirectiveMap?.get(e);if(t===void 0)return;this.tsDirectiveMap.delete(e);for(let r of t)r.forwardOwner=e;this.pendingHoistDirectives.push(...t)}tsOverloadSigs(e,t){if(!this.ts)return;let r=this.pendingSigs.get(e);if(!r)return;for(let i of r){let n=this.tsRendered(i,()=>pi(i[2],gi(this.stores))),s=this.tsDirectiveMap.get(i);if(s!==void 0){this.tsDirectiveMap.delete(i);for(let a of s)this.tsDirectiveLine(a," ".repeat(t))}this.b.tsOnly(()=>{this.mark(i,"$self",()=>{this.b.emit("function "),this.mark(i,"name",()=>this.b.emit(i[1])),this.mark(i,"params",()=>this.b.emit(n)),this.mark(i,"returnType",()=>this.emitTypeText(i,"returnType",`: ${Pe(i[3])}`)),this.b.emit(";")}),this.b.emit(` -`+" ".repeat(t))})}}patternNames(e,t=[],r=!1,i=null){if(!E(e)){if(typeof e==="string"&&e!==","){if(o3.has(e))throw this.positionedError(i,`emitter: \`${e}\` cannot be a destructuring target — a value word lowers to its literal before scope exists, so the binding would be unreachable`);t.push(e)}return t}if(e[0]==="array")for(let n of e.slice(1))this.patternNames(n,t,r,e);else if(e[0]==="object"){for(let n of e.slice(1))if(n[0]===null)this.patternNames(n[1],t,r,e);else if(n[0]===":")this.patternNames(n[2],t,r,e);else if(n[0]==="=")this.patternNames(n[1],t,r,e);else if(n[0]==="...")this.patternNames(n[1],t,r,e)}else if(e[0]==="rest"){if(!r)throw this.positionedError(e,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");this.patternNames(e[1],t,r,e)}else if(e[0]==="...")this.patternNames(e[1],t,r,e);else if(e[0]==="default")this.patternNames(e[1],t,r,e);else if(e[0]==="=")this.patternNames(e[1],t,r,e);else if(e[0]==="cast")this.patternNames(e[1],t,r,e);else if(e[0]==="typed-var")this.patternNames(e[1],t,r,e);return t}static isPattern(e){return O1(e)||E(e)&&e[0]==="array"}static declarablePattern(e){let t=(r)=>typeof r==="string"||(E(r)&&r[0]==="="?t(r[1]):T.declarablePattern(r));if(E(e)&&e[0]==="array"){let r=e.slice(1);return r.every((i,n)=>E(i)&&i[0]==="..."?n===r.length-1&&typeof i[1]==="string":t(i))}if(O1(e)){let r=e.slice(1);return r.every((i,n)=>{if(!E(i))return!1;if(i[0]===null)return typeof i[2]==="string";if(i[0]==="=")return typeof i[1]==="string";if(i[0]==="...")return n===r.length-1&&typeof i[1]==="string";return i[0]===":"&&t(i[2])})}return!1}rejectDuplicateDefault(e){let t=null;for(let r of e){if(!E(r)||r[0]!=="export-default")continue;if(t!==null)throw this.positionedError(r,"emitter: duplicate 'export default' — a module has exactly one default export",t);t=r}}static classDeclNames(e){let t=new Set;for(let r of e){if(!E(r))continue;let i=r[0]==="export"&&E(r[1])?r[1]:r;if(E(i)&&i[0]==="class"&&typeof i[1]==="string")t.add(i[1])}return t}static isTypedWrapper(e){return E(e)&&e[0]==="typed-var"&&e.length===3}static isErasedStmt(e){return E(e)&&(e[0]==="type-decl"||T.isTypedWrapper(e)||e[0]==="def-sig"&&e.length===4)}static stripErased(e){return e.filter((t)=>!T.isErasedStmt(t))}liveStmts(e,{forwards:t=!1}={}){let r=[];for(let i=0;iE(o)&&g1(o[0])&&o.length===4&&o[1]===s);if(!a)throw this.positionedError(n,`emitter: overload signature 'def ${s}' has no implementation — `+`a bodiless typed def must be followed by 'def ${s}' with a body in the same block`);if(this.ts){let o=this.pendingSigs.get(a)??[];if(!o.includes(n))o.push(n),this.pendingSigs.set(a,o)}}if(this.ts&&t&&T.isTypedWrapper(n)&&typeof n[1]==="string"&&!this.pendingHoistTypes.has(n[1]))this.pendingHoistTypes.set(n[1],n);if(t&&T.isTypedWrapper(n))this.tsForwardDirectives(n);this.erasedRows(n)}else r.push(n)}return r}erasedRows(e){this.mark(e,"$self",()=>{});let t=e[0]==="type-decl"?["declaration"]:e[0]==="def-sig"?["name","params","returnType"]:["target","annotation"];for(let r of t)this.mark(e,r,()=>{})}inScope(e){return this.scopes.some((t)=>t.has(e))}scopedHoist(e,t=[],{declareInPlace:r=!0}={}){for(let a of t){let o=T.paramMatchWrite(a);if(o!==null)throw this.positionedError(o,"emitter: a parameter default cannot write the last-match binding — "+"`_` lives in the enclosing body, which a default cannot reach (move the match into the body)")}let i=this.hoistTargets(e,t),n=i.filter(([a,o])=>{if(E(o)&&M1.has(o[0])&&!it.has(o[0])&&typeof o[1]==="string"&&this.isExportedConst(o[1]))return!1;return!this.inScope(a)||a==="_"&&i.matchWrite});n.annotations=i.annotations,n.directives=i.directives;let s=new Set(n.map(([a])=>a));for(let a of t)for(let o of this.patternNames(a,[],!0))s.add(o);if(r)n=this.applyDeclareInPlace(n,e,{tailIsExpression:!0});return{entries:n,names:s}}hoistTargets(e,t=[],r=[]){let i=new Map,n=!1,s=new Set,a=[],o=new Map,l=(d,R)=>{if(this.ts&&!o.has(d)&&this.annotationText(R)!==null)o.set(d,R)},c=(d,R)=>{if(!i.has(d))i.set(d,R)},f=(d)=>{if(this.scopeBoundary(d)==="skip")return;if(T.isMatchWrite(d))c("_",d),n=!0;for(let R of d)f(R)},h=(d)=>{let R=this.scopeBoundary(d);if(R==="skip")return;if(this.ts&&T.isTypedWrapper(d)){if(typeof d[1]==="string")l(d[1],d);this.tsForwardDirectives(d)}if(ot(d)&&E(d[1][2]))a.push([this.chainTemp(d),d[1][2],"$self"]);if(R==="reactive"){if(typeof d[1]==="string")s.add(d[1]);if(!(d[0]==="computed"&&u1(d[2])&&d[2].length>2))h(d[2]);return}if(R==="effect"){if(typeof d[1]==="string")s.add(d[1]);return}if(R==="readonly"){if(typeof d[1]==="string")s.add(d[1]);h(d[2]);return}if(d[0]==="export"&&E(d[1])){let b=d[1];if((this.isReactiveDecl(b)||this.isEffectDecl(b)||this.isReadonlyDecl(b))&&typeof b[1]==="string"){if(s.add(b[1]),!this.isEffectDecl(b)&&!(b[0]==="computed"&&u1(b[2])&&b[2].length>2))h(b[2]);return}if(M1.has(b[0])&&b.length===3)h(b[2]);return}if(R==="loop"){f(d[1]);for(let b of d.slice(2))h(b);return}if(R==="comprehension"){h(d[1]);for(let b of d[2]??[])f(b[1]),h(b[2]);for(let b of d[3]??[])h(b);return}if(d[0]==="export")return;if(R==="class"){if(d[2]!=null)h(d[2]);let b=d[3];if(u1(b)){for(let _ of b.slice(1))if(E(_)&&M1.has(_[0])&&_.length===3)h(_[2]);else if(!T.isTypedWrapper(_))h(_)}return}if(T.isMatchWrite(d))c("_",d),n=!0;if(M1.has(d[0])&&d.length===3){if(typeof d[1]==="string")c(d[1],d),l(d[1],d);else if(d[0]==="="&&T.isPattern(d[1]))for(let b of this.patternNames(d[1]))c(b,d)}if(d[0]==="try"){for(let b of d.slice(2))if(E(b)&&b.length===2&&T.isPattern(b[0]))for(let _ of this.patternNames(b[0]))c(_,d)}for(let b of d)h(b)};for(let d of e)h(d);let u=[];for(let d of t)this.patternNames(d,u,!0);for(let d of u)i.delete(d);for(let d of s)i.delete(d);let m=e.length===1&&u1(e[0])?e[0].slice(1):e;for(let d of T.declaredNames(m))i.delete(d);for(let d of r)i.delete(d);for(let d of m)if(this.isModuleImport(d))for(let R of T.importedNames([d]))i.delete(R);for(let d of this.cframes)for(let R of d.members.keys())i.delete(R);let S=[...i.entries()].map(([d,R])=>[d,R,"target"]);S.matchWrite=n,S.push(...a);let g=new Set([...i.keys(),...u,...s]);if(S.push(...this.planReferenceTemps(e,g)),S.sort(([d],[R])=>dR?1:0),this.ts){for(let[d,R]of this.pendingHoistTypes)if(!o.has(d))o.set(d,R);this.pendingHoistTypes.clear(),S.annotations=o,S.directives=this.pendingHoistDirectives,this.pendingHoistDirectives=[]}return S}static declaresInPlace=new WeakSet;static inlineOwners=new WeakMap;captureScan(e){let t=e.length===1&&u1(e[0])?e[0].slice(1):e,r=new Set(t.filter(E)),i=new Map,n=(o,l,c=!1,f=null,h=null,u="")=>{if(typeof o!=="string"||!rr.test(o))return;let m=i.get(o);if(m===void 0)i.set(o,m={decl:null,seen:!1,nested:!1,nestedWrite:!1,inDef:!1,annotated:null,firstWrite:null,firstWritePath:""});if(!m.seen)m.seen=!0,m.decl=f;if(c&&m.firstWrite===null&&h!==null)m.firstWrite=h,m.firstWritePath=u;if(l>0){if(m.nested=!0,c)m.nestedWrite=!0;if(l===2)m.inDef=!0}},s=(o,l,c)=>{let f=(h)=>{if(typeof h==="string"){if(h!==",")c(h);return}if(h[0]==="="){a(h[2],l),f(h[1]);return}if(h[0]==="..."){c(h[1]);return}s(h,l,c)};if(o[0]==="array"){for(let h of o.slice(1))f(h);return}for(let h of o.slice(1))if(h[0]===null)c(h[2]);else if(h[0]==="=")a(h[2],l),c(h[1]);else if(h[0]==="...")c(h[1]);else if(h[0]===":"){if(E(h[1]))a(h[1],l);f(h[2])}},a=(o,l)=>{if(typeof o==="string")return n(o,l);if(!E(o))return;if(T.isTypedWrapper(o)){if(typeof o[1]==="string"){let f=i.get(o[1]);if(f!==void 0&&f.annotated===null)f.annotated=o}return}let c=o[0];if(T1(o)){for(let f of o.slice(1))a(f,Math.max(l,1));return}if(g1(c)||c==="class"||c==="component"||c==="enum"){let f=g1(c)?2:Math.max(l,1);if(c==="class"){for(let h of o.slice(2)){let u=E(h)&&h[0]==="block"?h.slice(1):[h];for(let m of u)if(E(m)&&g1(m[0])&&m.length===4)for(let S of m.slice(2))a(S,f);else a(m,f)}return}for(let h of o.slice(typeof o[1]==="string"?2:1))a(h,f);return}if(T.isMatchWrite(o)){for(let f of o.slice(1))a(f,l);n("_",l,!0);return}if(M1.has(c)&&o.length===3){if(a(o[2],l),typeof o[1]==="string"){let f=it.has(c);if(!f)n(o[1],l);if(n(o[1],l,!0,f&&!l&&r.has(o)?o:null,f?o:null),f&&this.annotationText(o)!==null){let h=i.get(o[1]);if(h!==void 0&&h.annotated===null)h.annotated=o}}else if(c==="="&&T.declarablePattern(o[1])){let f=!l&&r.has(o)?o:null,h=new Map(nr(o[1]));s(o[1],l,(u)=>n(u,l,!0,f,h.has(u)?o:null,h.get(u)??""))}else if(a(o[1],l),it.has(c))for(let[f,h]of nr(o[1]))n(f,l,!0,null,o,h);return}if(W1(o)){if(typeof o[1]==="string")n(o[1],l,!0);else a(o[1],l);return}if((c==="."||c==="?.")&&o.length===3){if(a(o[1],l),typeof o[2]!=="string")a(o[2],l);return}if(c==="object"){for(let f of o.slice(1))if(E(f)&&f[0]===":"&&f.length===3){if(typeof f[1]!=="string")a(f[1],l);a(f[2],l)}else a(f,l);return}for(let f of o)a(f,l)};for(let o of t)a(o,0);return i}applyDeclareInPlace(e,t,{tailIsExpression:r=!1}={}){if(!e.some(([,,f])=>f==="target"))return e;let i=this.captureScan(t),n=null;if(r){let f=t.length===1&&u1(t[0])?t[0].slice(1):t;for(let h=f.length-1;h>=0;h--)if(!T.isErasedStmt(f[h])){n=f[h];break}}let s=new Map,a=new Set(e.filter(([,,f])=>f==="target").map(([f])=>f)),o=new Map,l=(f)=>{let h=o.get(f);if(h===void 0){let u=this.patternNames(f[1]);if(h=u.every((m)=>{let S=i.get(m);return a.has(m)&&S!==void 0&&S.decl===f&&!S.inDef}),h){let m=u.find((S)=>i.get(S).annotated!==null);if(m!==void 0)throw this.positionedError(i.get(m).annotated,`emitter: '${m}' is declared by a destructuring pattern, which cannot carry this annotation — `+`rename the element in the pattern (\`${m}: raw\`) and declare \`${m}: T\` from it, or annotate the pattern's source`)}o.set(f,h)}return h},c=e.filter(([f,,h])=>{if(h!=="target")return!0;let u=i.get(f);if(!u||u.decl===null||u.inDef||u.decl===n)return!0;if(E(u.decl)&&it.has(u.decl[0])&&T.controlGuard(u.decl[2]))return!0;if(T.isPattern(u.decl[1])){if(!l(u.decl))return!0;return T.declaresInPlace.add(u.decl),!1}let m=e.annotations?.get(f);if(m!==void 0&&m!==u.decl)T.inlineOwners.set(u.decl,m),s.set(m,u.decl);return T.declaresInPlace.add(u.decl),!1});if(c.annotations=e.annotations,c.schemaConsts=e.schemaConsts,e.directives?.length&&s.size){c.directives=[];for(let f of e.directives){let h=f.forwardOwner!==void 0?s.get(f.forwardOwner):void 0;if(h!==void 0){let u=this.tsDirectiveMap.get(h)??[];u.push(f),this.tsDirectiveMap.set(h,u)}else c.directives.push(f)}}else c.directives=e.directives;c.classBindings=new Set,c.componentTypes=new Map;for(let[f,,h]of c){if(h!=="target")continue;let u=i.get(f)?.firstWrite??null,m=u?.[2];if(!E(m))continue;if(m[0]==="class"||m[0]==="component")c.classBindings.add(f);if(!this.ts||!this.isComponentDecl(m))continue;if(this.annotationText(u,"typeParams")!==null)continue;let S=bn(this.stores,this.b.source,m,`__${f}__computed`);S.appStashSpec=this.appStashSpec,S.routesUnion=this.routesUnion,S.routeParams=this.routeParams,c.componentTypes.set(f,`{ ${Bs(S,f,"",f,{road:"face"}).join(" ")} }`),(c.componentInfos??=new Map).set(f,S)}c.pinnable=new Map;for(let[f,,h]of c){if(h!=="target")continue;let u=i.get(f);if(!u?.nested||u.firstWrite===null)continue;if(c.annotations?.has(f)||c.schemaConsts?.has(f))continue;if(c.componentTypes.has(f))continue;let m=this.pinKey(f,u.firstWrite,u.firstWritePath);c.pinnable.set(f,{node:u.firstWrite,key:m}),this.pinnables?.push({name:f,node:u.firstWrite,path:u.firstWritePath,key:m})}return c}pinKey(e,t,r=""){let i=this.stores.idOf(t),n=i!==null?this.stores.role(i,"value"):null;if(!n||n.sourceStart==null||this.b.source===null)return null;let s=r+"\x00"+this.b.source.slice(n.sourceStart,n.sourceEnd),a=5381;for(let o=0;o>>0;return`${e}@${a.toString(36)}`}chainTemp(e){let t=this.temps.byNode.get(e);if(t===void 0)t=this.freshTempName(),this.temps.byNode.set(e,t);return t}freshTempName(){let e;do e=this.temps.n===0?"_ref":`_ref${this.temps.n}`,this.temps.n++;while(this.temps.used.has(e));return e}inCtrl(e){this.ctrlDepth++;try{e()}finally{this.ctrlDepth--}}loopTempName(e){let t=e;for(let r=1;this.temps.used.has(t);r++)t=`${e}${r}`;return t}runtimeName(e){let t=this.runtimeAliases.get(e);if(t===void 0)throw Error(`emitter invariant: generated runtime name '${e}' is not registered`);return t}hoistLine(e,t=""){if(e.length===1)for(let r of e.directives??[])this.tsDirectiveLine(r,t);this.b.emit("let "),e.forEach(([r,i,n],s)=>{if(s>0)this.b.emit(", ");let a=this.ts&&n==="target"?e.annotations?.get(r)??null:null,o=a!==null?this.stores.idOf(a):null,l=o!==null&&T.isTypedWrapper(a)&&this.stores.role(o,"target")!==null,c=this.b.offset;if(l)this.mark(a,"target",()=>this.b.emit(r));else{let f=this.stores.idOf(i),h=f!==null?this.stores.role(f,n):null,u=h?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(h.sourceStart,h.sourceEnd):null,m=u!==null&&u!==r?this.stores.primitiveSpans(r,h.sourceStart,h.sourceEnd)[0]??null:null;if(m)this.b.markSpan(f,"identifier",m.sourceStart,m.sourceEnd,()=>this.b.emit(r));else this.mark(i,n,()=>this.b.emit(r))}if(this.ts&&n==="target"&&e.classBindings?.has(r))this.classDecls.push([c,this.b.offset]);if(this.ts&&n==="target")if(a!==null)this.b.tsOnly(()=>{if(T.isTypedWrapper(a)&&!this.strict)this.b.emit("!");this.mark(a,"annotation",()=>this.b.emit(`: ${this.annotationText(a)}`))});else{let f=e.schemaConsts?.get(r)??null,h=e.componentTypes?.get(r)??null;if(f!==null){let u=this.bindingNameSpan(i,n,r);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(f,r,u?.id??null,u?.span??null)})}else if(h!==null){let u=e.componentInfos?.get(r)??null,m=this.stores.idOf(i),S=m!==null?this.stores.role(m,n):null,g=S?.sourceStart!=null&&this.b.source?.slice(S.sourceStart,S.sourceEnd)===r?[S.sourceStart,S.sourceEnd]:null;this.b.tsOnly(()=>{if(this.b.emit(`${this.strict?"":"!"}: `),u!==null)for(let d of Ws(u,r,"",r,{road:"face"})){if(d.node!==void 0){this.mark(d.node,d.role,()=>this.b.emit(d.text));continue}this.emitNamedCopies(d.text,r,m,g)}else this.b.emit(h)})}else{let u=e.pinnable?.get(r)?.key??null,m=u!==null?this.pins?.get(u):void 0;if(m!==void 0)this.b.tsOnly(()=>{this.pinnedWrites.add(e.pinnable.get(r).node);let S=this.b.offset;this.b.emit(`${this.strict?"":"!"}: `),this.emitDeclaredTypeCopies(m,this.stores.idOf(i)),this.pinSpans.push([S,this.b.offset])})}}}),this.b.emit(";")}program(e){return this.programWith(e)}ambientHoistFilter(e){if(this.scopes.length===0)return e;let t=e.filter(([r])=>!this.inScope(r)||r==="_"&&e.matchWrite);return t.matchWrite=e.matchWrite,t.annotations=e.annotations,t.directives=e.directives,t}attachSchemaConsts(e){if(!this.schemaStories)return;let t=new Map;for(let r of this.schemaStories.values())if(!r.decl.exported&&r.constType!==null)t.set(r.decl.name,r.constType);if(t.size)e.schemaConsts=t}programWith(e){let t=this.liveStmts(e.slice(1),{forwards:!0}),r=0;while(r0){this.mark(e,"$self",()=>{for(let a of t.slice(0,r))this.statement(a,0);this.emitDataConst();let i=t.slice(r),n=this.ambientHoistFilter(this.hoistTargets(i,[],T.importedNames(t.slice(0,r))));this.attachSchemaConsts(n);let s=new Set([...n.map(([a])=>a),...T.importedNames(t.slice(0,r))]);for(let a of this.pushReactiveFrame(t,s))s.add(a);if(this.moduleBound=T.moduleBoundNames(i),this.moduleClassNames=T.classDeclNames(i),this.rejectDuplicateDefault(i),this.scopes.push(s),n=this.applyDeclareInPlace(n,e.slice(1),{tailIsExpression:this.repl}),n.length)this.hoistLine(n),this.b.emit(` +`+t)})}withTsDirectives(e,t,r,i=!1){let n=this.ts&&this.tsDirectivesArmed&&E(e)?this.tsDirectiveMap.get(e):void 0;if(n===void 0)return r();this.tsDirectiveMap.delete(e);for(let s of n)this.tsDirectiveLine(s,t,i);r()}tsForwardDirectives(e){if(!this.ts||!this.tsDirectivesArmed)return;let t=this.tsDirectiveMap?.get(e);if(t===void 0)return;this.tsDirectiveMap.delete(e);for(let r of t)r.forwardOwner=e;this.pendingHoistDirectives.push(...t)}tsOverloadSigs(e,t){if(!this.ts)return;let r=this.pendingSigs.get(e);if(!r)return;for(let i of r){let n=this.tsRendered(i,()=>pi(i[2],gi(this.stores))),s=this.tsDirectiveMap.get(i);if(s!==void 0){this.tsDirectiveMap.delete(i);for(let a of s)this.tsDirectiveLine(a," ".repeat(t))}this.b.tsOnly(()=>{this.mark(i,"$self",()=>{this.b.emit("function "),this.mark(i,"name",()=>this.b.emit(i[1])),this.mark(i,"params",()=>this.b.emit(n)),this.mark(i,"returnType",()=>this.emitTypeText(i,"returnType",`: ${Ce(i[3])}`)),this.b.emit(";")}),this.b.emit(` +`+" ".repeat(t))})}}patternNames(e,t=[],r=!1,i=null){if(!E(e)){if(typeof e==="string"&&e!==","){if(o3.has(e))throw this.positionedError(i,`emitter: \`${e}\` cannot be a destructuring target — a value word lowers to its literal before scope exists, so the binding would be unreachable`);t.push(e)}return t}if(e[0]==="array")for(let n of e.slice(1))this.patternNames(n,t,r,e);else if(e[0]==="object"){for(let n of e.slice(1))if(n[0]===null)this.patternNames(n[1],t,r,e);else if(n[0]===":")this.patternNames(n[2],t,r,e);else if(n[0]==="=")this.patternNames(n[1],t,r,e);else if(n[0]==="...")this.patternNames(n[1],t,r,e)}else if(e[0]==="rest"){if(!r)throw this.positionedError(e,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");this.patternNames(e[1],t,r,e)}else if(e[0]==="...")this.patternNames(e[1],t,r,e);else if(e[0]==="default")this.patternNames(e[1],t,r,e);else if(e[0]==="=")this.patternNames(e[1],t,r,e);else if(e[0]==="cast")this.patternNames(e[1],t,r,e);else if(e[0]==="typed-var")this.patternNames(e[1],t,r,e);return t}static isPattern(e){return O1(e)||E(e)&&e[0]==="array"}static declarablePattern(e){let t=(r)=>typeof r==="string"||(E(r)&&r[0]==="="?t(r[1]):T.declarablePattern(r));if(E(e)&&e[0]==="array"){let r=e.slice(1);return r.every((i,n)=>E(i)&&i[0]==="..."?n===r.length-1&&typeof i[1]==="string":t(i))}if(O1(e)){let r=e.slice(1);return r.every((i,n)=>{if(!E(i))return!1;if(i[0]===null)return typeof i[2]==="string";if(i[0]==="=")return typeof i[1]==="string";if(i[0]==="...")return n===r.length-1&&typeof i[1]==="string";return i[0]===":"&&t(i[2])})}return!1}rejectDuplicateDefault(e){let t=null;for(let r of e){if(!E(r)||r[0]!=="export-default")continue;if(t!==null)throw this.positionedError(r,"emitter: duplicate 'export default' — a module has exactly one default export",t);t=r}}static classDeclNames(e){let t=new Set;for(let r of e){if(!E(r))continue;let i=r[0]==="export"&&E(r[1])?r[1]:r;if(E(i)&&i[0]==="class"&&typeof i[1]==="string")t.add(i[1])}return t}static isTypedWrapper(e){return E(e)&&e[0]==="typed-var"&&e.length===3}static isErasedStmt(e){return E(e)&&(e[0]==="type-decl"||T.isTypedWrapper(e)||e[0]==="def-sig"&&e.length===4)}static stripErased(e){return e.filter((t)=>!T.isErasedStmt(t))}liveStmts(e,{forwards:t=!1}={}){let r=[];for(let i=0;iE(o)&&g1(o[0])&&o.length===4&&o[1]===s);if(!a)throw this.positionedError(n,`emitter: overload signature 'def ${s}' has no implementation — `+`a bodiless typed def must be followed by 'def ${s}' with a body in the same block`);if(this.ts){let o=this.pendingSigs.get(a)??[];if(!o.includes(n))o.push(n),this.pendingSigs.set(a,o)}}if(this.ts&&t&&T.isTypedWrapper(n)&&typeof n[1]==="string"&&!this.pendingHoistTypes.has(n[1]))this.pendingHoistTypes.set(n[1],n);if(t&&T.isTypedWrapper(n))this.tsForwardDirectives(n);this.erasedRows(n)}else r.push(n)}return r}erasedRows(e){this.mark(e,"$self",()=>{});let t=e[0]==="type-decl"?["declaration"]:e[0]==="def-sig"?["name","params","returnType"]:["target","annotation"];for(let r of t)this.mark(e,r,()=>{})}inScope(e){return this.scopes.some((t)=>t.has(e))}scopedHoist(e,t=[],{declareInPlace:r=!0}={}){for(let a of t){let o=T.paramMatchWrite(a);if(o!==null)throw this.positionedError(o,"emitter: a parameter default cannot write the last-match binding — "+"`_` lives in the enclosing body, which a default cannot reach (move the match into the body)")}let i=this.hoistTargets(e,t),n=i.filter(([a,o])=>{if(E(o)&&M1.has(o[0])&&!it.has(o[0])&&typeof o[1]==="string"&&this.isExportedConst(o[1]))return!1;return!this.inScope(a)||a==="_"&&i.matchWrite});n.annotations=i.annotations,n.directives=i.directives;let s=new Set(n.map(([a])=>a));for(let a of t)for(let o of this.patternNames(a,[],!0))s.add(o);if(r)n=this.applyDeclareInPlace(n,e,{tailIsExpression:!0});return{entries:n,names:s}}hoistTargets(e,t=[],r=[]){let i=new Map,n=!1,s=new Set,a=[],o=new Map,l=(p,R)=>{if(this.ts&&!o.has(p)&&this.annotationText(R)!==null)o.set(p,R)},c=(p,R)=>{if(!i.has(p))i.set(p,R)},f=(p)=>{if(this.scopeBoundary(p)==="skip")return;if(T.isMatchWrite(p))c("_",p),n=!0;for(let R of p)f(R)},h=(p)=>{let R=this.scopeBoundary(p);if(R==="skip")return;if(this.ts&&T.isTypedWrapper(p)){if(typeof p[1]==="string")l(p[1],p);this.tsForwardDirectives(p)}if(ot(p)&&E(p[1][2]))a.push([this.chainTemp(p),p[1][2],"$self"]);if(R==="reactive"){if(typeof p[1]==="string")s.add(p[1]);if(!(p[0]==="computed"&&u1(p[2])&&p[2].length>2))h(p[2]);return}if(R==="effect"){if(typeof p[1]==="string")s.add(p[1]);return}if(R==="readonly"){if(typeof p[1]==="string")s.add(p[1]);h(p[2]);return}if(p[0]==="export"&&E(p[1])){let b=p[1];if((this.isReactiveDecl(b)||this.isEffectDecl(b)||this.isReadonlyDecl(b))&&typeof b[1]==="string"){if(s.add(b[1]),!this.isEffectDecl(b)&&!(b[0]==="computed"&&u1(b[2])&&b[2].length>2))h(b[2]);return}if(M1.has(b[0])&&b.length===3)h(b[2]);return}if(R==="loop"){f(p[1]);for(let b of p.slice(2))h(b);return}if(R==="comprehension"){h(p[1]);for(let b of p[2]??[])f(b[1]),h(b[2]);for(let b of p[3]??[])h(b);return}if(p[0]==="export")return;if(R==="class"){if(p[2]!=null)h(p[2]);let b=p[3];if(u1(b)){for(let _ of b.slice(1))if(E(_)&&M1.has(_[0])&&_.length===3)h(_[2]);else if(!T.isTypedWrapper(_))h(_)}return}if(T.isMatchWrite(p))c("_",p),n=!0;if(M1.has(p[0])&&p.length===3){if(typeof p[1]==="string")c(p[1],p),l(p[1],p);else if(p[0]==="="&&T.isPattern(p[1]))for(let b of this.patternNames(p[1]))c(b,p)}if(p[0]==="try"){for(let b of p.slice(2))if(E(b)&&b.length===2&&T.isPattern(b[0]))for(let _ of this.patternNames(b[0]))c(_,p)}for(let b of p)h(b)};for(let p of e)h(p);let u=[];for(let p of t)this.patternNames(p,u,!0);for(let p of u)i.delete(p);for(let p of s)i.delete(p);let d=e.length===1&&u1(e[0])?e[0].slice(1):e;for(let p of T.declaredNames(d))i.delete(p);for(let p of r)i.delete(p);for(let p of d)if(this.isModuleImport(p))for(let R of T.importedNames([p]))i.delete(R);for(let p of this.cframes)for(let R of p.members.keys())i.delete(R);let S=[...i.entries()].map(([p,R])=>[p,R,"target"]);S.matchWrite=n,S.push(...a);let g=new Set([...i.keys(),...u,...s]);if(S.push(...this.planReferenceTemps(e,g)),S.sort(([p],[R])=>pR?1:0),this.ts){for(let[p,R]of this.pendingHoistTypes)if(!o.has(p))o.set(p,R);this.pendingHoistTypes.clear(),S.annotations=o,S.directives=this.pendingHoistDirectives,this.pendingHoistDirectives=[]}return S}static declaresInPlace=new WeakSet;static inlineOwners=new WeakMap;captureScan(e){let t=e.length===1&&u1(e[0])?e[0].slice(1):e,r=new Set(t.filter(E)),i=new Map,n=(o,l,c=!1,f=null,h=null,u="")=>{if(typeof o!=="string"||!rr.test(o))return;let d=i.get(o);if(d===void 0)i.set(o,d={decl:null,seen:!1,nested:!1,nestedWrite:!1,inDef:!1,annotated:null,firstWrite:null,firstWritePath:""});if(!d.seen)d.seen=!0,d.decl=f;if(c&&d.firstWrite===null&&h!==null)d.firstWrite=h,d.firstWritePath=u;if(l>0){if(d.nested=!0,c)d.nestedWrite=!0;if(l===2)d.inDef=!0}},s=(o,l,c)=>{let f=(h)=>{if(typeof h==="string"){if(h!==",")c(h);return}if(h[0]==="="){a(h[2],l),f(h[1]);return}if(h[0]==="..."){c(h[1]);return}s(h,l,c)};if(o[0]==="array"){for(let h of o.slice(1))f(h);return}for(let h of o.slice(1))if(h[0]===null)c(h[2]);else if(h[0]==="=")a(h[2],l),c(h[1]);else if(h[0]==="...")c(h[1]);else if(h[0]===":"){if(E(h[1]))a(h[1],l);f(h[2])}},a=(o,l)=>{if(typeof o==="string")return n(o,l);if(!E(o))return;if(T.isTypedWrapper(o)){if(typeof o[1]==="string"){let f=i.get(o[1]);if(f!==void 0&&f.annotated===null)f.annotated=o}return}let c=o[0];if(T1(o)){for(let f of o.slice(1))a(f,Math.max(l,1));return}if(g1(c)||c==="class"||c==="component"||c==="enum"){let f=g1(c)?2:Math.max(l,1);if(c==="class"){for(let h of o.slice(2)){let u=E(h)&&h[0]==="block"?h.slice(1):[h];for(let d of u)if(E(d)&&g1(d[0])&&d.length===4)for(let S of d.slice(2))a(S,f);else a(d,f)}return}for(let h of o.slice(typeof o[1]==="string"?2:1))a(h,f);return}if(T.isMatchWrite(o)){for(let f of o.slice(1))a(f,l);n("_",l,!0);return}if(M1.has(c)&&o.length===3){if(a(o[2],l),typeof o[1]==="string"){let f=it.has(c);if(!f)n(o[1],l);if(n(o[1],l,!0,f&&!l&&r.has(o)?o:null,f?o:null),f&&this.annotationText(o)!==null){let h=i.get(o[1]);if(h!==void 0&&h.annotated===null)h.annotated=o}}else if(c==="="&&T.declarablePattern(o[1])){let f=!l&&r.has(o)?o:null,h=new Map(nr(o[1]));s(o[1],l,(u)=>n(u,l,!0,f,h.has(u)?o:null,h.get(u)??""))}else if(a(o[1],l),it.has(c))for(let[f,h]of nr(o[1]))n(f,l,!0,null,o,h);return}if(W1(o)){if(typeof o[1]==="string")n(o[1],l,!0);else a(o[1],l);return}if((c==="."||c==="?.")&&o.length===3){if(a(o[1],l),typeof o[2]!=="string")a(o[2],l);return}if(c==="object"){for(let f of o.slice(1))if(E(f)&&f[0]===":"&&f.length===3){if(typeof f[1]!=="string")a(f[1],l);a(f[2],l)}else a(f,l);return}for(let f of o)a(f,l)};for(let o of t)a(o,0);return i}applyDeclareInPlace(e,t,{tailIsExpression:r=!1}={}){if(!e.some(([,,f])=>f==="target"))return e;let i=this.captureScan(t),n=null;if(r){let f=t.length===1&&u1(t[0])?t[0].slice(1):t;for(let h=f.length-1;h>=0;h--)if(!T.isErasedStmt(f[h])){n=f[h];break}}let s=new Map,a=new Set(e.filter(([,,f])=>f==="target").map(([f])=>f)),o=new Map,l=(f)=>{let h=o.get(f);if(h===void 0){let u=this.patternNames(f[1]);if(h=u.every((d)=>{let S=i.get(d);return a.has(d)&&S!==void 0&&S.decl===f&&!S.inDef}),h){let d=u.find((S)=>i.get(S).annotated!==null);if(d!==void 0)throw this.positionedError(i.get(d).annotated,`emitter: '${d}' is declared by a destructuring pattern, which cannot carry this annotation — `+`rename the element in the pattern (\`${d}: raw\`) and declare \`${d}: T\` from it, or annotate the pattern's source`)}o.set(f,h)}return h},c=e.filter(([f,,h])=>{if(h!=="target")return!0;let u=i.get(f);if(!u||u.decl===null||u.inDef||u.decl===n)return!0;if(E(u.decl)&&it.has(u.decl[0])&&T.controlGuard(u.decl[2]))return!0;if(T.isPattern(u.decl[1])){if(!l(u.decl))return!0;return T.declaresInPlace.add(u.decl),!1}let d=e.annotations?.get(f);if(d!==void 0&&d!==u.decl)T.inlineOwners.set(u.decl,d),s.set(d,u.decl);return T.declaresInPlace.add(u.decl),!1});if(c.annotations=e.annotations,c.schemaConsts=e.schemaConsts,e.directives?.length&&s.size){c.directives=[];for(let f of e.directives){let h=f.forwardOwner!==void 0?s.get(f.forwardOwner):void 0;if(h!==void 0){let u=this.tsDirectiveMap.get(h)??[];u.push(f),this.tsDirectiveMap.set(h,u)}else c.directives.push(f)}}else c.directives=e.directives;c.classBindings=new Set,c.componentTypes=new Map;for(let[f,,h]of c){if(h!=="target")continue;let u=i.get(f)?.firstWrite??null,d=u?.[2];if(!E(d))continue;if(d[0]==="class"||d[0]==="component")c.classBindings.add(f);if(!this.ts||!this.isComponentDecl(d))continue;if(this.annotationText(u,"typeParams")!==null)continue;let S=bn(this.stores,this.b.source,d,`__${f}__computed`);S.appStashSpec=this.appStashSpec,S.routesUnion=this.routesUnion,S.routeParams=this.routeParams,c.componentTypes.set(f,`{ ${Bs(S,f,"",f,{road:"face"}).join(" ")} }`),(c.componentInfos??=new Map).set(f,S)}c.pinnable=new Map;for(let[f,,h]of c){if(h!=="target")continue;let u=i.get(f);if(!u?.nested||u.firstWrite===null)continue;if(c.annotations?.has(f)||c.schemaConsts?.has(f))continue;if(c.componentTypes.has(f))continue;let d=this.pinKey(f,u.firstWrite,u.firstWritePath);c.pinnable.set(f,{node:u.firstWrite,key:d}),this.pinnables?.push({name:f,node:u.firstWrite,path:u.firstWritePath,key:d})}return c}pinKey(e,t,r=""){let i=this.stores.idOf(t),n=i!==null?this.stores.role(i,"value"):null;if(!n||n.sourceStart==null||this.b.source===null)return null;let s=r+"\x00"+this.b.source.slice(n.sourceStart,n.sourceEnd),a=5381;for(let o=0;o>>0;return`${e}@${a.toString(36)}`}chainTemp(e){let t=this.temps.byNode.get(e);if(t===void 0)t=this.freshTempName(),this.temps.byNode.set(e,t);return t}freshTempName(){let e;do e=this.temps.n===0?"_ref":`_ref${this.temps.n}`,this.temps.n++;while(this.temps.used.has(e));return e}inCtrl(e){this.ctrlDepth++;try{e()}finally{this.ctrlDepth--}}loopTempName(e){let t=e;for(let r=1;this.temps.used.has(t);r++)t=`${e}${r}`;return t}runtimeName(e){let t=this.runtimeAliases.get(e);if(t===void 0)throw Error(`emitter invariant: generated runtime name '${e}' is not registered`);return t}hoistLine(e,t=""){if(e.length===1)for(let r of e.directives??[])this.tsDirectiveLine(r,t);this.b.emit("let "),e.forEach(([r,i,n],s)=>{if(s>0)this.b.emit(", ");let a=this.ts&&n==="target"?e.annotations?.get(r)??null:null,o=a!==null?this.stores.idOf(a):null,l=o!==null&&T.isTypedWrapper(a)&&this.stores.role(o,"target")!==null,c=this.b.offset;if(l)this.mark(a,"target",()=>this.b.emit(r));else{let f=this.stores.idOf(i),h=f!==null?this.stores.role(f,n):null,u=h?.sourceStart!=null&&this.b.source!==null?this.b.source.slice(h.sourceStart,h.sourceEnd):null,d=u!==null&&u!==r?this.stores.primitiveSpans(r,h.sourceStart,h.sourceEnd)[0]??null:null;if(d)this.b.markSpan(f,"identifier",d.sourceStart,d.sourceEnd,()=>this.b.emit(r));else this.mark(i,n,()=>this.b.emit(r))}if(this.ts&&n==="target"&&e.classBindings?.has(r))this.classDecls.push([c,this.b.offset]);if(this.ts&&n==="target")if(a!==null)this.b.tsOnly(()=>{if(T.isTypedWrapper(a)&&!this.strict)this.b.emit("!");this.mark(a,"annotation",()=>this.b.emit(`: ${this.annotationText(a)}`))});else{let f=e.schemaConsts?.get(r)??null,h=e.componentTypes?.get(r)??null;if(f!==null){let u=this.bindingNameSpan(i,n,r);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(f,r,u?.id??null,u?.span??null)})}else if(h!==null){let u=e.componentInfos?.get(r)??null,d=this.stores.idOf(i),S=d!==null?this.stores.role(d,n):null,g=S?.sourceStart!=null&&this.b.source?.slice(S.sourceStart,S.sourceEnd)===r?[S.sourceStart,S.sourceEnd]:null;this.b.tsOnly(()=>{if(this.b.emit(`${this.strict?"":"!"}: `),u!==null)for(let p of Ws(u,r,"",r,{road:"face"})){if(p.node!==void 0){this.mark(p.node,p.role,()=>this.b.emit(p.text));continue}this.emitNamedCopies(p.text,r,d,g)}else this.b.emit(h)})}else{let u=e.pinnable?.get(r)?.key??null,d=u!==null?this.pins?.get(u):void 0;if(d!==void 0)this.b.tsOnly(()=>{this.pinnedWrites.add(e.pinnable.get(r).node);let S=this.b.offset;this.b.emit(`${this.strict?"":"!"}: `),this.emitDeclaredTypeCopies(d,this.stores.idOf(i)),this.pinSpans.push([S,this.b.offset])})}}}),this.b.emit(";")}program(e){return this.programWith(e)}ambientHoistFilter(e){if(this.scopes.length===0)return e;let t=e.filter(([r])=>!this.inScope(r)||r==="_"&&e.matchWrite);return t.matchWrite=e.matchWrite,t.annotations=e.annotations,t.directives=e.directives,t}attachSchemaConsts(e){if(!this.schemaStories)return;let t=new Map;for(let r of this.schemaStories.values())if(!r.decl.exported&&r.constType!==null)t.set(r.decl.name,r.constType);if(t.size)e.schemaConsts=t}programWith(e){let t=this.liveStmts(e.slice(1),{forwards:!0}),r=0;while(r0){this.mark(e,"$self",()=>{for(let a of t.slice(0,r))this.statement(a,0);this.emitDataConst();let i=t.slice(r),n=this.ambientHoistFilter(this.hoistTargets(i,[],T.importedNames(t.slice(0,r))));this.attachSchemaConsts(n);let s=new Set([...n.map(([a])=>a),...T.importedNames(t.slice(0,r))]);for(let a of this.pushReactiveFrame(t,s))s.add(a);if(this.moduleBound=T.moduleBoundNames(i),this.moduleClassNames=T.classDeclNames(i),this.rejectDuplicateDefault(i),this.scopes.push(s),n=this.applyDeclareInPlace(n,e.slice(1),{tailIsExpression:this.repl}),n.length)this.hoistLine(n),this.b.emit(` `);if(this.emitTsTypeDecls(e.slice(1),""),i.length)this.mark(e,"body",()=>this.statements(i,0,"program"));this.scopes.pop(),this.rframes.pop()});return}this.programPlain(e,t)}static moduleBoundNames(e){let t=new Set,r=(i)=>{if(!E(i))return;if(M1.has(i[0])&&i.length===3&&typeof i[1]==="string")t.add(i[1]);else if((i[0]==="class"||i[0]==="enum")&&typeof i[1]==="string")t.add(i[1]);else if(g1(i[0])&&typeof i[1]==="string")t.add(i[1])};for(let i of e){if(!E(i))continue;if(i[0]==="export")for(let n of i.slice(1))r(n);else r(i)}return t}static importAttributes(e){let t=e.length>2?e[e.length-2]:null;return E(t)&&t[0]==="with"&&t.length===2?t:null}static importSpecs(e){return e.slice(1,-1).filter((t)=>!(E(t)&&t[0]==="with"))}static importedSpecs(e){let t=new Map;for(let r of e){if(!E(r)||r[0]!=="import"||r.length<3)continue;let i=r[r.length-1];if(typeof i!=="string")continue;let n=i.replace(/^['"`]|['"`]$/g,"");for(let s of T.importSpecs(r)){if(s==="{}")continue;if(typeof s==="string")t.set(s,{specifier:n,importedName:"default"});else if(s[0]==="*")t.set(s[1],{specifier:n,importedName:"*"});else for(let a of s){let o=E(a)?a[0]:a,l=E(a)?a[1]:a;t.set(l,{specifier:n,importedName:o})}}}return t}static TYPE_ROLES=new Set(["annotation","returnType","typeParams","declaration"]);static importedNames(e){let t=[];for(let r of e)for(let i of T.importSpecs(r)){if(i==="{}")continue;if(typeof i==="string")t.push(i);else if(i[0]==="*")t.push(i[1]);else for(let n of i)t.push(E(n)?n[1]:n)}return t}emitDataConst(){if(this.dataPayload==null)return;this.b.emit(`const DATA = ${JSON.stringify(this.dataPayload)}; @@ -75,10 +75,10 @@ ${o.join(` `)});return}if(this.repl)return this.replImportStatement(e);this.mark(e,"$self",()=>{this.b.emit("import ");let s=r.length>0&&r.every((a)=>a!=="{}"&&(typeof a==="string"||a[0]==="*"?this.typeOnlyImports.has(typeof a==="string"?a:a[1]):a.every((o)=>this.typeOnlyImports.has(T.specifierLocal(o)))));if(r.length>0){if(!s)this.emitImportClause(r,e);else if(this.ts)this.b.tsOnly(()=>this.emitImportClause(r,e))}{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:je(t)})}this.emitImportAttributes(i)}),this.b.emit(`; `)}emitImportAttributes(e){if(e===null)return;for(let t of e[1].slice(1))if(!(t[0]===":"&&typeof t[2]==="string"&&(t[2][0]==='"'||t[2][0]==="'")))throw this.positionedError(t,'emitter: an import attribute is a string-literal pair (`with { type: "json" }`) — the module loader reads it before any code runs');this.b.emit(" "),this.mark(e,"$self",()=>{this.mark(e,"keyword",()=>this.b.emit("with")),this.b.emit(" "),this.mark(e,"value",()=>this.expr(e[1]))})}replImportStatement(e){let t=e[e.length-1],r=T.importSpecs(e),i=T.importAttributes(e),n=[],s=null;for(let a of r){if(a==="{}")continue;if(typeof a==="string")n.push(`default: ${a}`);else if(a[0]==="*")s=a[1];else for(let o of a)n.push(E(o)?`${o[0]}: ${o[1]}`:o)}this.mark(e,"$self",()=>{if(s!==null)this.b.emit(`const ${s} = `);else if(n.length>0)this.b.emit(`const { ${n.join(", ")} } = `);this.b.emit(`await import(${this.replResolver()}(`);{let a=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(t))),this.importSpans.push({start:a,end:this.b.offset,specifier:je(t)})}if(this.b.emit(")"),i!==null)this.b.emit(", { with: "),this.mark(i,"value",()=>this.expr(i[1])),this.b.emit(" }");if(this.b.emit(")"),s!==null&&n.length>0)this.b.emit(`, { ${n.join(", ")} } = ${s}`)}),this.b.emit(`; `)}exportStatement(e,t){if(this.script)throw this.positionedError(e,"emitter: exports are not available in a script tag — drop the export keyword; script sources share one scope");if(this.repl)throw this.positionedError(e,"emitter: 'export' has no meaning in a REPL entry — every top-level binding already persists to later lines; drop the export keyword");if(t>0||this.postfixGuardDepth>0)throw this.positionedError(e,"emitter: 'export' must be a top-level statement — a module's exports are static, so a guarded or block-nested export has no form; "+"move it to the top level, or guard the exported value instead (`export x = v if c`)");let r=e[0];this.mark(e,"$self",()=>{if(r==="export-all"){if(e.length===3)this.b.emit("export * as "),this.mark(e,"alias",()=>this.b.emit(e[2])),this.b.emit(" from ");else this.b.emit("export * from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[1]))),this.importSpans.push({start:i,end:this.b.offset,specifier:je(e[1])})}this.b.emit(";")}else if(r==="export-from"){if(this.b.emit("export "),e[1]==="{}")this.b.emit("{}");else this.b.emit("{ "),this.emitSpecifiers(e[1]),this.b.emit(" }");this.b.emit(" from ");{let i=this.b.offset;this.mark(e,"source",()=>this.b.emit(this.moduleSource(e[2]))),this.importSpans.push({start:i,end:this.b.offset,specifier:je(e[2])})}this.b.emit(";")}else if(r==="export-default"){if(this.b.emit("export default "),E(e[1])&&g1(e[1][0])&&e[1].length===4)this.mark(e,"spec",()=>this.defStatement(e[1],t));else this.mark(e,"spec",()=>this.expr(e[1]));this.b.emit(";")}else{let i=e[1];if(i==="{}")this.b.emit("export {};");else if(E(i)&&i[0]==="class")this.b.emit("export "),this.classStatement(i,t),this.b.emit(";");else if(E(i)&&g1(i[0]))this.b.emit("export "),this.defStatement(i,t),this.b.emit(";");else if(E(i)&&i[0]==="enum")this.b.emit("export "),this.enumCode(i),this.b.emit(";"),this.tsEnumCompanion(i,!0);else if(this.isReactiveDecl(i))this.b.emit("export "),this.reactiveDecl(i,t);else if(this.isReadonlyDecl(i))this.b.emit("export "),this.readonlyDecl(i,t);else if(this.isEffectDecl(i)){if(i[1]===null)throw this.positionedError(e,"emitter: a bare effect ('export ~> …') binds nothing to export — bind a dispose handle (`export h ~> …`) or drop the export (`export __effect(…)` would be invalid JS)");this.b.emit("export "),this.effectStatement(i,t)}else if(E(i)&&(i[0]==="="||i[0]==="void-assign")){if(i[0]==="void-assign")this.registerVoidValue(i[2],i);if(this.b.emit("export "),this.mark(i,"voidMarker",()=>this.mark(i,"annotation",()=>this.mark(i,"$self",()=>{if(this.b.emit("const "),this.mark(i,"target",()=>this.b.emit(i[1])),this.ts&&this.annotationText(i)!==null)this.tsAnnotate(i,"annotation",this.annotationText(i));this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit("=")),this.b.emit(" ");let n=this._schemaName,s=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,E(i[2])&&i[2][0]==="schema")this._schemaName=i[1];if(this.isComponentDecl(i[2])&&typeof i[1]==="string"){this._componentName=i[1];let o=this.annotationText(i,"typeParams");this._componentTypeParams=o===null?null:{text:o,owner:i}}this.mark(i,"value",()=>this.withExpression(()=>this.expr(i[2]))),this._schemaName=n,this._componentName=s,this._componentTypeParams=a}))),this.b.emit(";"),this.ts&&typeof i[1]==="string"&&this.componentInfo.has(i[2]))this.tsComponentCompanion(i[2],i[1],!0,this.annotationText(i,"typeParams"));if(this.ts)this.tsSchemaBehavior(i[2])}else this.b.emit("export { "),this.emitSpecifiers(i),this.b.emit(" };")}})}enumValue(e,t,r,i){if(typeof e==="string"){if(e.startsWith('"'))try{return[e,JSON.parse(e)]}catch{let n=/\\u(?![0-9a-fA-F]{4})|\\[^"\\/bfnrtu]/.exec(e)?.[0]??"\\";throw this.positionedError(i,`emitter: enum '${t}' member '${r}' — its string value uses the `+`'${n}' escape, which enum values do not support (JSON escapes only; '\\uXXXX' spells the same character)`)}if(/^[\d.]/.test(e)){let n=e.replace(/_/g,"").replace(/n$/,"");return[e,String(Number(n))]}return null}if(E(e)&&e[0]==="-"&&e.length===2){let n=this.enumValue(e[1],t,r,i);if(n===null||e[1].startsWith('"'))return null;return[`-${e[1]}`,`-${n[1]}`]}return null}enumStatement(e){this.enumCode(e),this.b.emit(";"),this.tsEnumCompanion(e,!1)}tsEnumCompanion(e,t){if(!this.ts||typeof e[1]!=="string")return;let r=e[1];this.b.tsOnly(()=>{this.b.emit(` -`),this.mark(e,"$self",()=>{let i=this.stores.idOf(e),n=i!==null?this.stores.selfSpan(i):null,s=n!==null?this.stores.primitiveSpans(r,n[0],n[1])[0]??null:null,a=()=>s?this.b.markSpan(i,"identifier",s.sourceStart,s.sourceEnd,()=>this.b.emit(r)):this.b.emit(r);this.b.emit(`${t?"export ":""}type `),a(),this.b.emit(" = (typeof "),a(),this.b.emit(")[keyof typeof "),a(),this.b.emit("];")})})}enumCode(e){let[,t,r]=e,i=u1(r)?r.slice(1):[r],n=[],s=new Set,a=(f,h,u)=>{if(s.has(f))throw this.positionedError(u,`emitter: enum '${t}' key '${f}' is used more than once (${h}) — `+"forward and reverse entries share one object, so every member name and value must be distinct ",e);s.add(f)},o=p3(i),l=(f)=>{let h=this.b.source,u=this.stores.idOf(r),m=u!==null?this.stores.selfSpan(u)?.[0]??null:null;if(h===null||m===null||typeof i[f]!=="string")return null;for(let g=0;g=0)m=_+d.length}}let S=h.indexOf(i[f],m);return S>=0?[S,S+i[f].length]:null};for(let f=0;f' lines — `+"a bare or computed member has no enum form here",d=l(f);if(d)throw this.positionedErrorAt(d[0],d[1],g);throw this.positionedError(h,g,e)}let u=this.enumValue(h[2],t,h[1],h);if(u===null)throw this.positionedError(h,`emitter: enum '${t}' member '${h[1]}' needs a number or string literal value — `+"the reverse mapping uses the value as an object key, so expressions have no enum form ",e);let[m,S]=u;a(h[1],`member '${h[1]}'`,h),a(S,`value of '${h[1]}'`,h),n.push([h,h[1],m,S])}let c=T.ownKeyText;this.mark(e,"$self",()=>{this.b.emit("const "),this.mark(e,"name",()=>this.noteNameSpan(t)),this.b.emit(" = "),this.mark(e,"body",()=>{this.b.emit("{"),n.forEach(([f,h,u],m)=>{if(m>0)this.b.emit(", ");this.mark(f,"$self",()=>{this.mark(f,"target",()=>{let S=c(h,h);if(S===h)this.emitPrimitive(h);else this.b.emit(S)}),this.b.emit(": "),this.mark(f,"value",()=>this.b.emit(u))})}),n.forEach(([f,h,u,m])=>{this.b.emit(", "),this.mark(f,"$self",()=>{this.b.emit(u.startsWith("-")?JSON.stringify(m):c(u,m)),this.b.emit(`: "${h}"`)})}),this.b.emit("}")})})}schemaExpr(e){let t=e[1];if(!t||typeof t!=="object"||!Array.isArray(t.entries))throw this.positionedError(e,"emitter: schema node without a descriptor — the lexer pass owns SCHEMA_BODY values");if(this.scopes.slice(1).some((o)=>o.has("__schema")))throw this.positionedError(e,"emitter: a function-scope binding of '__schema' shadows the schema runtime where this "+"schema declaration needs it — rename the local, or bind '__schema' at MODULE scope to "+"supply your own factory (the suppression hatch)");this.usesSchema=!0;let r=this._schemaName??null,i=new Map;for(let{entry:o,index:l,tokens:c,value:f}of T.schemaBodies(t)){if(f){i.set(l,this.schemaValueCode(c));continue}let h=this.schemaBodyParams(o);i.set(l,this.schemaFnCode(h,c))}let n=this.schemaStories?.get(e)??null,s=this.stores.idOf(e);if(this.ts&&n!==null)this.schemaFns.set(e,i);this.schemaPins=this.ts?new Map:null,this.schemaPinNode=s;let a=(o,l,c)=>{if(l===null||l===void 0)return;let f=`${o}:${c}`;if(!this.schemaPins.has(f))this.schemaPins.set(f,[]);this.schemaPins.get(f).push([l[0],l[1]])};if(this.ts&&r!==null)a("name",this.moduleTypeDeclarationSpans().get(r)??null,r);for(let o of this.ts?t.entries:[]){let l=(c,f,h)=>{if(typeof h!=="number"||typeof f!=="string")return;a(c,[h,h+f.length],f)};if(o.tag==="union-member")l("name",o.name,o.start);else if(o.tag==="directive"&&o.name==="mixin"&&o.argTokens?.[0]?.kind==="IDENTIFIER")l("target",o.argTokens[0].value,o.argTokens[0].start);else if(o.tag==="ensure")l("field",o.field,o.fieldStart);else if((On[o.tag]??null)!==null){if(l("name",o.name,o.start),o.tag==="field"&&Array.isArray(o.typeSpan)&&this.b.source!==null){let c=/[A-Za-z_$][\w$]*/.exec(this.b.source.slice(o.typeSpan[0],o.typeSpan[1]));if(c!==null&&c[0]===o.typeName)l("typeName",c[0],o.typeSpan[0]+c.index)}}}for(let o of this.schemaPins?.values()??[])for(let[l,c]of o)this.b.exactSourceSpans.add(`${l}:${c}`);this.mark(e,"$self",()=>{if(this.b.emit("__schema("),this.mark(e,"body",()=>{let o=Ci(t,r,i,i.get("adapter")??null,n?.thisTypes??null,this.ts,n?.defaultTypes??null,n?.ensureTypes??null);for(let l of o)if(typeof l==="string")this.emitSchemaText(l);else if(l.body!==void 0)this.emitSchemaText(l.body,!0);else if(l.span!==null&&l.span!==void 0&&s!==null)this.b.tsOnly(()=>this.b.markSpan(s,"literal",l.span[0],l.span[1],()=>this.b.emit(l.ts)));else if(n!==null){let c=this.bindingNameSpan(n.decl.node,"target",n.decl.name);this.b.tsOnly(()=>this.emitNamedCopies(l.ts,n.decl.name,c?.id??null,c?.span??null))}else this.b.tsOnly(()=>this.b.emit(l.ts))}),this.b.emit(")"),n!==null&&n.constType!==null){let o=this.bindingNameSpan(n.decl.node,"target",n.decl.name);this.b.tsOnly(()=>{this.b.emit(" as unknown as "),this.emitNamedCopies(n.constType,n.decl.name,o?.id??null,o?.span??null)})}}),this.schemaPins=null,this.schemaPinNode=null}static schemaFail(e,t){let r=Error(`schema: ${e}`);throw r.start=t,r}static schemaBodies(e){let t=[];if(e.entries.forEach((r,i)=>{if(r.tag==="method"||r.tag==="computed"||r.tag==="derived"||r.tag==="ensure"||r.tag==="hook"||r.tag==="scope"||r.tag==="defaultScope")t.push({entry:r,index:i,tokens:r.bodyTokens});else if(r.tag==="field"&&r.transformTokens)t.push({entry:r,index:i,tokens:r.transformTokens})}),e.adapterTokens)t.push({entry:{tag:"adapter"},index:"adapter",tokens:e.adapterTokens,value:!0});return t}schemaBodyParams(e){if(e.tag==="adapter")return[];if(e.tag==="field")return[{name:"it",type:null}];return Di(e.paramTokens??[],e.tag==="ensure"?"@ensure":`'${e.name}'`,T.schemaFail,this.b.source)}schemaFnCode(e,t){let r=e.map((m)=>m.name),{stmts:i,stores:n}=this.subParse(t);if(i.length===0)return{code:"(function() {})",thisAt:10,annots:[]};let s=i.length===1?i[0]:["block",...i],a=T.containsAwait(s),o=T.containsYield(s),l=this.subEmitter(n),c;if(i.length===1){let m=i[0],{entries:S,names:g}=l.scopedHoist([m],r);for(let d of l.pushReactiveFrame(i,g,r))g.add(d);if(l.scopes.push(g),S.length)l.hoistLine(S),l.b.emit(" ");if(ct(m)||be(m))l.statement(m,0);else l.implicitReturn(m,0);c=`{ ${l.b.code} }`}else{let{entries:m,names:S}=l.scopedHoist([s],r);for(let g of l.pushReactiveFrame(i,S,r))S.add(g);if(l.scopes.push(S),l.b.emit(`{ -`),m.length)l.b.emit(" "),l.hoistLine(m," "),l.b.emit(` -`);i.forEach((g,d)=>{if(l.b.emit(" "),d===i.length-1)l.implicitReturn(g,1);else l.statement(g,1,!0);l.b.emit(` -`)}),l.b.emit("}"),c=l.b.code}let f=`(${a?"async ":""}function${o?"*":""}(`,h=[],u=f.length;return e.forEach((m,S)=>{if(u+=m.name.length,m.type!==null)h.push([u,`: ${m.type}`]);else if(m.optional)h.push([u,"?"]);if(Si++;qt(r,n,t??"",(l,c)=>{let f=Error(`schema: ${l}`);throw f.start=c,f.end=c,f}),Ut(r,n),hn(r),Vt(r,n),Wt(r,n);let a=Jt();a.lexer={tokens:r,index:0,text:"",loc:null,setInput(){this.index=0},lex(){let l=this.tokens[this.index];if(!l)return null;return this.index++,this.text=l.value,this.loc={start:l.start,end:l.end},l.kind}};let o=a.parse("");if(o.diagnostics.length>0){let l=o.diagnostics[0],c=Error(`schema: failed to compile a schema function body: ${l.message}`);throw c.start=l.start,c.end=l.end,c}return{stmts:o.sexpr.slice(1),stores:new Qt(o.stores)}}bareBlockStatement(e,t){this.mark(e,"$self",()=>{this.b.emit(`{ +`),this.mark(e,"$self",()=>{let i=this.stores.idOf(e),n=i!==null?this.stores.selfSpan(i):null,s=n!==null?this.stores.primitiveSpans(r,n[0],n[1])[0]??null:null,a=()=>s?this.b.markSpan(i,"identifier",s.sourceStart,s.sourceEnd,()=>this.b.emit(r)):this.b.emit(r);this.b.emit(`${t?"export ":""}type `),a(),this.b.emit(" = (typeof "),a(),this.b.emit(")[keyof typeof "),a(),this.b.emit("];")})})}enumCode(e){let[,t,r]=e,i=u1(r)?r.slice(1):[r],n=[],s=new Set,a=(f,h,u)=>{if(s.has(f))throw this.positionedError(u,`emitter: enum '${t}' key '${f}' is used more than once (${h}) — `+"forward and reverse entries share one object, so every member name and value must be distinct ",e);s.add(f)},o=p3(i),l=(f)=>{let h=this.b.source,u=this.stores.idOf(r),d=u!==null?this.stores.selfSpan(u)?.[0]??null:null;if(h===null||d===null||typeof i[f]!=="string")return null;for(let g=0;g=0)d=_+p.length}}let S=h.indexOf(i[f],d);return S>=0?[S,S+i[f].length]:null};for(let f=0;f' lines — `+"a bare or computed member has no enum form here",p=l(f);if(p)throw this.positionedErrorAt(p[0],p[1],g);throw this.positionedError(h,g,e)}let u=this.enumValue(h[2],t,h[1],h);if(u===null)throw this.positionedError(h,`emitter: enum '${t}' member '${h[1]}' needs a number or string literal value — `+"the reverse mapping uses the value as an object key, so expressions have no enum form ",e);let[d,S]=u;a(h[1],`member '${h[1]}'`,h),a(S,`value of '${h[1]}'`,h),n.push([h,h[1],d,S])}let c=T.ownKeyText;this.mark(e,"$self",()=>{this.b.emit("const "),this.mark(e,"name",()=>this.noteNameSpan(t)),this.b.emit(" = "),this.mark(e,"body",()=>{this.b.emit("{"),n.forEach(([f,h,u],d)=>{if(d>0)this.b.emit(", ");this.mark(f,"$self",()=>{this.mark(f,"target",()=>{let S=c(h,h);if(S===h)this.emitPrimitive(h);else this.b.emit(S)}),this.b.emit(": "),this.mark(f,"value",()=>this.b.emit(u))})}),n.forEach(([f,h,u,d])=>{this.b.emit(", "),this.mark(f,"$self",()=>{this.b.emit(u.startsWith("-")?JSON.stringify(d):c(u,d)),this.b.emit(`: "${h}"`)})}),this.b.emit("}")})})}schemaExpr(e){let t=e[1];if(!t||typeof t!=="object"||!Array.isArray(t.entries))throw this.positionedError(e,"emitter: schema node without a descriptor — the lexer pass owns SCHEMA_BODY values");if(this.scopes.slice(1).some((o)=>o.has("__schema")))throw this.positionedError(e,"emitter: a function-scope binding of '__schema' shadows the schema runtime where this "+"schema declaration needs it — rename the local, or bind '__schema' at MODULE scope to "+"supply your own factory (the suppression hatch)");this.usesSchema=!0;let r=this._schemaName??null,i=new Map;for(let{entry:o,index:l,tokens:c,value:f}of T.schemaBodies(t)){if(f){i.set(l,this.schemaValueCode(c));continue}let h=this.schemaBodyParams(o);i.set(l,this.schemaFnCode(h,c))}let n=this.schemaStories?.get(e)??null,s=this.stores.idOf(e);if(this.ts&&n!==null)this.schemaFns.set(e,i);this.schemaPins=this.ts?new Map:null,this.schemaPinNode=s;let a=(o,l,c)=>{if(l===null||l===void 0)return;let f=`${o}:${c}`;if(!this.schemaPins.has(f))this.schemaPins.set(f,[]);this.schemaPins.get(f).push([l[0],l[1]])};if(this.ts&&r!==null)a("name",this.moduleTypeDeclarationSpans().get(r)??null,r);for(let o of this.ts?t.entries:[]){let l=(c,f,h)=>{if(typeof h!=="number"||typeof f!=="string")return;a(c,[h,h+f.length],f)};if(o.tag==="union-member")l("name",o.name,o.start);else if(o.tag==="directive"&&o.name==="mixin"&&o.argTokens?.[0]?.kind==="IDENTIFIER")l("target",o.argTokens[0].value,o.argTokens[0].start);else if(o.tag==="ensure")l("field",o.field,o.fieldStart);else if((On[o.tag]??null)!==null){if(l("name",o.name,o.start),o.tag==="field"&&Array.isArray(o.typeSpan)&&this.b.source!==null){let c=/[A-Za-z_$][\w$]*/.exec(this.b.source.slice(o.typeSpan[0],o.typeSpan[1]));if(c!==null&&c[0]===o.typeName)l("typeName",c[0],o.typeSpan[0]+c.index)}}}for(let o of this.schemaPins?.values()??[])for(let[l,c]of o)this.b.exactSourceSpans.add(`${l}:${c}`);this.mark(e,"$self",()=>{if(this.b.emit("__schema("),this.mark(e,"body",()=>{let o=Ci(t,r,i,i.get("adapter")??null,n?.thisTypes??null,this.ts,n?.defaultTypes??null,n?.ensureTypes??null);for(let l of o)if(typeof l==="string")this.emitSchemaText(l);else if(l.body!==void 0)this.emitSchemaText(l.body,!0);else if(l.span!==null&&l.span!==void 0&&s!==null)this.b.tsOnly(()=>this.b.markSpan(s,"literal",l.span[0],l.span[1],()=>this.b.emit(l.ts)));else if(n!==null){let c=this.bindingNameSpan(n.decl.node,"target",n.decl.name);this.b.tsOnly(()=>this.emitNamedCopies(l.ts,n.decl.name,c?.id??null,c?.span??null))}else this.b.tsOnly(()=>this.b.emit(l.ts))}),this.b.emit(")"),n!==null&&n.constType!==null){let o=this.bindingNameSpan(n.decl.node,"target",n.decl.name);this.b.tsOnly(()=>{this.b.emit(" as unknown as "),this.emitNamedCopies(n.constType,n.decl.name,o?.id??null,o?.span??null)})}}),this.schemaPins=null,this.schemaPinNode=null}static schemaFail(e,t){let r=Error(`schema: ${e}`);throw r.start=t,r}static schemaBodies(e){let t=[];if(e.entries.forEach((r,i)=>{if(r.tag==="method"||r.tag==="computed"||r.tag==="derived"||r.tag==="ensure"||r.tag==="hook"||r.tag==="scope"||r.tag==="defaultScope")t.push({entry:r,index:i,tokens:r.bodyTokens});else if(r.tag==="field"&&r.transformTokens)t.push({entry:r,index:i,tokens:r.transformTokens})}),e.adapterTokens)t.push({entry:{tag:"adapter"},index:"adapter",tokens:e.adapterTokens,value:!0});return t}schemaBodyParams(e){if(e.tag==="adapter")return[];if(e.tag==="field")return[{name:"it",type:null}];return Di(e.paramTokens??[],e.tag==="ensure"?"@ensure":`'${e.name}'`,T.schemaFail,this.b.source)}schemaFnCode(e,t){let r=e.map((d)=>d.name),{stmts:i,stores:n}=this.subParse(t);if(i.length===0)return{code:"(function() {})",thisAt:10,annots:[]};let s=i.length===1?i[0]:["block",...i],a=T.containsAwait(s),o=T.containsYield(s),l=this.subEmitter(n),c;if(i.length===1){let d=i[0],{entries:S,names:g}=l.scopedHoist([d],r);for(let p of l.pushReactiveFrame(i,g,r))g.add(p);if(l.scopes.push(g),S.length)l.hoistLine(S),l.b.emit(" ");if(ct(d)||be(d))l.statement(d,0);else l.implicitReturn(d,0);c=`{ ${l.b.code} }`}else{let{entries:d,names:S}=l.scopedHoist([s],r);for(let g of l.pushReactiveFrame(i,S,r))S.add(g);if(l.scopes.push(S),l.b.emit(`{ +`),d.length)l.b.emit(" "),l.hoistLine(d," "),l.b.emit(` +`);i.forEach((g,p)=>{if(l.b.emit(" "),p===i.length-1)l.implicitReturn(g,1);else l.statement(g,1,!0);l.b.emit(` +`)}),l.b.emit("}"),c=l.b.code}let f=`(${a?"async ":""}function${o?"*":""}(`,h=[],u=f.length;return e.forEach((d,S)=>{if(u+=d.name.length,d.type!==null)h.push([u,`: ${d.type}`]);else if(d.optional)h.push([u,"?"]);if(Si++;qt(r,n,t??"",(l,c)=>{let f=Error(`schema: ${l}`);throw f.start=c,f.end=c,f}),Ut(r,n),hn(r),Vt(r,n),Wt(r,n);let a=Jt();a.lexer={tokens:r,index:0,text:"",loc:null,setInput(){this.index=0},lex(){let l=this.tokens[this.index];if(!l)return null;return this.index++,this.text=l.value,this.loc={start:l.start,end:l.end},l.kind}};let o=a.parse("");if(o.diagnostics.length>0){let l=o.diagnostics[0],c=Error(`schema: failed to compile a schema function body: ${l.message}`);throw c.start=l.start,c.end=l.end,c}return{stmts:o.sexpr.slice(1),stores:new Qt(o.stores)}}bareBlockStatement(e,t){this.mark(e,"$self",()=>{this.b.emit(`{ `),this.statements(e.slice(1),t+1,"block"),this.b.emit(" ".repeat(t)+"}")}),this.b.emit(";")}statement(e,t,r=!1){this.withTsDirectives(e," ".repeat(t),()=>this.statementCore(e,t,r))}statementCore(e,t,r){if(this.ind=t,this.funcBodyStmt=r,E(e)){let n=T.STATEMENT_FORMS[e[0]];if(n&&n(this,e,t)){this.replDeclEcho(e);return}if(T.controlGuard(e))return this.returnGuardStatement(e,null);if(e[0]==="="&&e.length===3&&typeof e[1]==="string"&&T.controlGuard(e[2]))return this.returnGuardStatement(e[2],e);if(e[0]==="="&&e.length===3&&T.middleRestPattern(e[1])){this.middleRestAssign(e,t),this.b.emit(";");return}if(e[0]===".="&&e.length===3){this.methodAssignStatement(e,t),this.b.emit(";");return}if(e[0]==="="&&e.length===3&&T.sliceTarget(e[1])!==null){this.sliceAssignStatement(e),this.b.emit(";");return}if(nt(e[0])&&e.length===3&&T.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(nt(e[0])&&e.length===3){let s=T.optionalGuard(e[1]);if(s!==null){this.optionalAssign(e,s,"statement"),this.b.emit(";");return}}}if(this.replCapture(e))return;if(T.needsGrouping(e,"statement"))this.mark(e,"$self",()=>{this.b.emit("("),this.expr(e),this.b.emit(")")}),this.b.emit(";");else this.expr(e),this.b.emit(";");if(this.ts&&E(e)&&e[0]==="="&&e.length===3&&typeof e[1]==="string"&&this.componentInfo.has(e[2]))this.tsComponentCompanion(e[2],e[1],!1,this.annotationText(e,"typeParams"));if(this.ts&&E(e)&&e[0]==="="&&e.length===3)this.tsSchemaBehavior(e[2])}tsSchemaBehavior(e){let t=this.schemaStories?.get(e)??null,r=this.schemaFns.get(e);if(t===null||r===void 0)return;let i=Pi(e[1],t.decl.name,r,t.thisTypes);if(i===null)return;if(this.scopes[0]?.has(t.behaviorName)||this.moduleBound?.has(t.behaviorName))throw this.positionedError(e,`emitter: the module binds '${t.behaviorName}', the face-only name this schema's `+"callable types read through — rename the binding");let n=this.stores.idOf(e);this.b.tsOnly(()=>this.b.echo(()=>{if(this.b.emit(` `+" ".repeat(this.ind)),n!==null)this.b.mark(n,"$self",()=>{let s=this.bindingNameSpan(t.decl.node,"target",t.decl.name);this.emitNamedCopies(i,t.decl.name,s?.id??null,s?.span??null)});else this.b.emit(i)}))}replSlot(){if(this.replResultName===null)this.replResultName=T.mintName("__result",this.temps.used);return this.replResultName}replResolver(){if(this.replImportResolver===null)this.replImportResolver=T.mintName("__resolveImport",this.temps.used);return this.replImportResolver}replCapture(e){if(!this.repl||e!==this.lastProgramStmt)return!1;return this.b.emit(`const ${this.replSlot()} = `),this.expr(e),this.b.emit(";"),!0}replDeclEcho(e){if(!this.repl||e!==this.lastProgramStmt||!E(e))return;let t=null,r=!1;if(this.isReactiveDecl(e)&&typeof e[1]==="string")t=e[1],r=!0;else if(this.isReadonlyDecl(e)&&typeof e[1]==="string")t=e[1];else if(this.isEffectDecl(e)&&typeof e[1]==="string")t=e[1];if(t===null)return;this.b.emit(` const ${this.replSlot()} = ${t}${r?".value":""};`)}whileStatement(e,t){this.inCtrl(()=>this.whileStatementCtrl(e,t))}whileStatementCtrl(e,t){let r=e.length===4?e[2]:null,i=e[e.length-1];this.mark(e,"$self",()=>{if(this.b.emit("while ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),r!==null){let n=u1(i)?i.slice(1):i;this.b.emit(`{ @@ -90,13 +90,13 @@ const ${this.replSlot()} = ${t}${r?".value":""};`)}whileStatement(e,t){this.inCt `+" ".repeat(t+1)),this.statement(r,t+1),this.b.emit(` `+" ".repeat(t)+"}");else this.statement(r,t);this.postfixGuardDepth--});return}this.mark(e,"$self",()=>this.ifChain(e,t))}static LOOP_HEADS=new Set(["for-in","for-of","for-as","while","loop","comprehension"]);loopStatement(e,t){this.withBindings(this.loopBindingNames(e),()=>this.inCtrl(()=>this.loopStatementCtrl(e,t)))}loopStatementCtrl(e,t){this.mark(e,"$self",()=>{let{body:r}=this.loopHeader(e);this.b.emit(" "),this.mark(e,"body",()=>this.braceBlock(r,t))})}throwStatement(e){this.mark(e,"$self",()=>{this.b.emit("throw "),this.mark(e,"value",()=>this.expr(e[1]))}),this.b.emit(";")}tryStatement(e,t){this.mark(e,"$self",()=>{this.b.emit("try ");let r=u1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.braceBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let i of e.slice(2)){if(!E(i))continue;if(u1(i))this.b.emit(" finally "),this.braceBlock(i,t);else{let[n,s]=i;if(n===null)this.b.emit(" catch "),this.braceBlock(s,t);else if(T.isPattern(n)){this.checkExportedConstWrite(i,n);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { `);let o=" ".repeat(t+1);this.b.emit(o+"("),this.mark(i,"binding",()=>this.withPattern(()=>this.expr(n))),this.b.emit(` = ${a}); -`),this.statements(u1(s)?s.slice(1):[s],t+1,"block"),this.b.emit(" ".repeat(t)+"}")}else this.b.emit(" catch ("),this.mark(i,"binding",()=>this.b.emit(n)),this.b.emit(") "),this.withBindings([n],()=>this.braceBlock(s,t))}}})}static isMatchArm(e){if(typeof e==="string")return e.startsWith("/");if(!E(e))return!1;return e[0]==="here-regex"||(e[0]===".."||e[0]==="...")&&e.length===3}static hasMatchArms(e){return e.some((t)=>t[1].some((r)=>T.isMatchArm(r)))}checkMatchSwitch(e){let[,t,r,i]=e;if(t===null)throw this.positionedError(e,"emitter: a regex or range `when` tests the switch subject, and this switch has none — give it one (`switch x`) or spell the test out (`when /re/.test(x)`)");for(let n of[...r.map((s)=>s[2]),i])if(n!==null&&T.findCapturedCtrl(n,d3)!==null)throw this.positionedError(e,"emitter: `break` in an arm of a switch with a regex or range `when` has nothing to leave — the switch is an if-chain and each arm ends on its own; drop the `break`")}static matchArmSexpr(e,t){if(!T.isMatchArm(t))return["==",e,t];if(E(t)&&(t[0]===".."||t[0]==="..."))return["&&",[">=",e,t[1]],[t[0]===".."?"<=":"<",e,t[2]]];return[[".",t,"test"],e]}matchArmTest(e,t){if(typeof e==="string"&&e.startsWith("/"))this.expr(e),this.b.emit(".test("),t(),this.b.emit(")");else if(E(e)&&e[0]==="here-regex")this.b.emit("("),this.expr(e),this.b.emit(").test("),t(),this.b.emit(")");else if(E(e)&&(e[0]===".."||e[0]==="...")&&e.length===3)this.b.emit("("),t(),this.b.emit(" >= "),this.expr(e[1]),this.b.emit(" && "),t(),this.b.emit(e[0]===".."?" <= ":" < "),this.expr(e[2]),this.b.emit(")");else t(),this.b.emit(" === "),this.expr(e)}matchChain(e,t,r){let[,i,n,s]=e,a=" ".repeat(t),l=typeof i==="string"&&/^[A-Za-z_$][\w$]*$/.test(i)&&!this.isReactiveName(i)?null:this.loopTempName("_switch"),c=()=>l!==null?this.b.emit(l):this.mark(e,"subject",()=>this.expr(i));if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"subject",()=>this.expr(i)),this.b.emit(`; -${a}`);if(this.mark(e,"cases",()=>{n.forEach((f,h)=>{this.mark(f,"$self",()=>{let[,u,m]=f;if(h>0)this.b.emit(" else ");this.b.emit("if ("),u.forEach((S,g)=>{if(g>0)this.b.emit(" || ");this.matchArmTest(S,c)}),this.b.emit(") "),r(m)})})}),s!==null)this.b.emit(" else "),r(s)}switchStatement(e,t){let[,r,i,n]=e,s=" ".repeat(t);if(T.hasMatchArms(i)){this.checkMatchSwitch(e),this.mark(e,"$self",()=>this.matchChain(e,t,(a)=>this.braceBlock(a,t)));return}this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(r)),this.b.emit(`) { +`),this.statements(u1(s)?s.slice(1):[s],t+1,"block"),this.b.emit(" ".repeat(t)+"}")}else this.b.emit(" catch ("),this.mark(i,"binding",()=>this.b.emit(n)),this.b.emit(") "),this.withBindings([n],()=>this.braceBlock(s,t))}}})}static isMatchArm(e){if(typeof e==="string")return e.startsWith("/");if(!E(e))return!1;return e[0]==="here-regex"||(e[0]===".."||e[0]==="...")&&e.length===3}static hasMatchArms(e){return e.some((t)=>t[1].some((r)=>T.isMatchArm(r)))}checkMatchSwitch(e){let[,t,r,i]=e;if(t===null)throw this.positionedError(e,"emitter: a regex or range `when` tests the switch subject, and this switch has none — give it one (`switch x`) or spell the test out (`when /re/.test(x)`)");for(let n of[...r.map((s)=>s[2]),i])if(n!==null&&T.findCapturedCtrl(n,m3)!==null)throw this.positionedError(e,"emitter: `break` in an arm of a switch with a regex or range `when` has nothing to leave — the switch is an if-chain and each arm ends on its own; drop the `break`")}static matchArmSexpr(e,t){if(!T.isMatchArm(t))return["==",e,t];if(E(t)&&(t[0]===".."||t[0]==="..."))return["&&",[">=",e,t[1]],[t[0]===".."?"<=":"<",e,t[2]]];return[[".",t,"test"],e]}matchArmTest(e,t){if(typeof e==="string"&&e.startsWith("/"))this.expr(e),this.b.emit(".test("),t(),this.b.emit(")");else if(E(e)&&e[0]==="here-regex")this.b.emit("("),this.expr(e),this.b.emit(").test("),t(),this.b.emit(")");else if(E(e)&&(e[0]===".."||e[0]==="...")&&e.length===3)this.b.emit("("),t(),this.b.emit(" >= "),this.expr(e[1]),this.b.emit(" && "),t(),this.b.emit(e[0]===".."?" <= ":" < "),this.expr(e[2]),this.b.emit(")");else t(),this.b.emit(" === "),this.expr(e)}matchChain(e,t,r){let[,i,n,s]=e,a=" ".repeat(t),l=typeof i==="string"&&/^[A-Za-z_$][\w$]*$/.test(i)&&!this.isReactiveName(i)?null:this.loopTempName("_switch"),c=()=>l!==null?this.b.emit(l):this.mark(e,"subject",()=>this.expr(i));if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"subject",()=>this.expr(i)),this.b.emit(`; +${a}`);if(this.mark(e,"cases",()=>{n.forEach((f,h)=>{this.mark(f,"$self",()=>{let[,u,d]=f;if(h>0)this.b.emit(" else ");this.b.emit("if ("),u.forEach((S,g)=>{if(g>0)this.b.emit(" || ");this.matchArmTest(S,c)}),this.b.emit(") "),r(d)})})}),s!==null)this.b.emit(" else "),r(s)}switchStatement(e,t){let[,r,i,n]=e,s=" ".repeat(t);if(T.hasMatchArms(i)){this.checkMatchSwitch(e),this.mark(e,"$self",()=>this.matchChain(e,t,(a)=>this.braceBlock(a,t)));return}this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(r)),this.b.emit(`) { `),this.mark(e,"cases",()=>{for(let a of i)this.mark(a,"$self",()=>{let[,o,l]=a;for(let c of o)this.b.emit(`${s} case `),this.expr(c),this.b.emit(`: `);this.caseBody(l,t)})}),n!==null)this.b.emit(`${s} default: `),this.caseBody(n,t);this.b.emit(`${s}}`)}else if(i.forEach((a,o)=>{let[,l,c]=a;if(o>0)this.b.emit(" else ");this.b.emit("if (("),l.forEach((f,h)=>{if(h>0)this.b.emit(") || (");this.expr(f)}),this.b.emit(")) "),this.braceBlock(c,t)}),n!==null)this.b.emit(" else "),this.braceBlock(n,t)})}caseBody(e,t){this.inCtrl(()=>this.caseBodyCtrl(e,t))}caseBodyCtrl(e,t){let r=this.liveStmts(u1(e)?e.slice(1):[e]);this.emitTsTypeDecls(u1(e)?e.slice(1):[e]," ".repeat(t+2));for(let i of r)this.b.emit(" ".repeat(t+2)),this.statement(i,t+2),this.b.emit(` `);this.b.emit(" ".repeat(t+2)+`break; -`)}loopBindingNames(e){let t=E(e)?e[0]:null,r=null;if(t==="loop-n")return["it"];if(t==="for-in"||t==="for-of"||t==="for-as")r=e[1];else if(be(e))r=e[2][0][1];if(r===null)return[];if(r.length===0)throw this.positionedError(e,"emitter: a for loop binds no variable — spell a bare repeat with a binding (`for i in [1...3]`)");let i=[];for(let n of r)this.patternNames(n,i,!0);return i}rangedByHeader(e,t,r,i,n){let[s,a,o]=i,l=s===".."?"<=":"<",c=s===".."?">=":">",f=(R)=>typeof R==="string"&&/^[0-9.]/.test(R)?R:null,h=f(n)??(E(n)&&n[0]==="+"&&n.length===2?f(n[1]):null),u=E(n)&&n[0]==="-"&&n.length===2?f(n[1]):null;if((h??u)!==null&&Number((h??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let m=r[0],S=this.singleReadIterable(o)?null:this.loopTempName("_ref"),g=h!==null||u!==null?null:this.loopTempName("_step");if(this.b.emit("for (let "),t(m),this.b.emit(" = "),this.expr(a),S!==null)this.b.emit(`, ${S} = `),this.expr(o);if(g!==null)this.b.emit(`, ${g} = `),this.mark(e,"step",()=>this.expr(n));let d=()=>{if(S!==null)this.b.emit(S);else this.expr(o)};if(this.b.emit("; "),g!==null)this.b.emit(`${g} > 0 ? ${m} ${l} `),d(),this.b.emit(` : ${m} ${c} `),d(),this.b.emit(`; ${m} += ${g})`);else if(u!==null)this.b.emit(`${m} ${c} `),d(),this.b.emit(`; ${m} -= `),this.mark(e,"step",()=>this.b.emit(u)),this.b.emit(")");else this.b.emit(`${m} ${l} `),d(),this.b.emit(`; ${m} += `),this.mark(e,"step",()=>this.b.emit(h)),this.b.emit(")")}forIn(e,t){this.inCtrl(()=>this.forInCtrl(e,t))}forInCtrl(e,t){let[,r,i,n,s,a]=e;this.withBindings(this.loopBindingNames(e),()=>this.forInCore(e,r,i,n,s,a,t))}forInCore(e,t,r,i,n,s,a){this.mark(e,"$self",()=>{let o=(l)=>this.mark(e,"vars",()=>typeof l==="string"?this.emitPrimitive(l):this.withPattern(()=>this.expr(l),!0));if(E(t[0])&&(Ie(r)||i!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(Ie(r)&&i===null){let[l,c,f]=r,h=this.singleReadIterable(f)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),o(t[0]),this.b.emit(" = "),this.expr(c),h)this.b.emit(`, ${h} = `),this.expr(f);if(this.b.emit(`; ${t[0]} ${l===".."?"<=":"<"} `),h)this.b.emit(h);else this.expr(f);this.b.emit(`; ${t[0]}++) `),this.guardedBlock(s,n,a)}else if(Ie(r))this.rangedByHeader(e,o,t,r,i),this.b.emit(" "),this.guardedBlock(s,n,a);else if(i!==null){let l=t.length===2?t[1]:this.loopTempName("_i"),c=()=>{if(t.length===2)o(l);else this.b.emit(l)},f=(d)=>typeof d==="string"&&/^[0-9.]/.test(d)?d:null,h=f(i)??(E(i)&&i[0]==="+"&&i.length===2?f(i[1]):null),u=E(i)&&i[0]==="-"&&i.length===2?f(i[1]):null;if((h??u)!==null&&Number((h??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let m=this.singleReadIterable(r)?null:this.loopTempName("_ref"),S=()=>{if(m)this.b.emit(`${m} = `),this.expr(r),this.b.emit(", ")},g=()=>{if(m)this.b.emit(m);else this.expr(r)};if(u!==null)if(this.b.emit("for (let "),S(),c(),this.b.emit(" = "),g(),this.b.emit(`.length - 1; ${l} >= 0; `),u==="1")this.mark(e,"step",()=>this.b.emit(`${l}--`));else this.b.emit(`${l} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(i[1]),this.b.emit(")")});else if(h!==null)if(this.b.emit("for (let "),S(),c(),this.b.emit(` = 0; ${l} < `),g(),this.b.emit(".length; "),i==="1")this.mark(e,"step",()=>this.b.emit(`${l}++`));else this.b.emit(`${l} += `),this.grouped(e,"step",i,T.needsGrouping(i,"operand"));else{let d=this.loopTempName("_step");this.b.emit(`for (let ${d} = `),this.mark(e,"step",()=>this.expr(i)),this.b.emit(", "),S(),c(),this.b.emit(` = ${d} > 0 ? 0 : `),g(),this.b.emit(`.length - 1; ${d} > 0 ? ${l} < `),g(),this.b.emit(`.length : ${d} < 0 && ${l} >= 0; ${l} += ${d}`)}this.b.emit(`) { +`)}loopBindingNames(e){let t=E(e)?e[0]:null,r=null;if(t==="loop-n")return["it"];if(t==="for-in"||t==="for-of"||t==="for-as")r=e[1];else if(be(e))r=e[2][0][1];if(r===null)return[];if(r.length===0)throw this.positionedError(e,"emitter: a for loop binds no variable — spell a bare repeat with a binding (`for i in [1...3]`)");let i=[];for(let n of r)this.patternNames(n,i,!0);return i}rangedHeader(e,t,r,i,n){let[s,a,o]=i,l=s===".."?"<=":"<",c=s===".."?">=":">",f=(O)=>typeof O==="string"&&/^[0-9.]/.test(O)?O:null,h=(O)=>f(O)??(E(O)&&(O[0]==="+"||O[0]==="-")&&O.length===2&&f(O[1])!==null?`${O[0]==="-"?"-":""}${f(O[1])}`:null),u=(O)=>{let A=h(O);return A===null?null:Number(A.replace(/_/g,""))},d=n===null?null:u(n);if(d===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let S=u(a),g=u(o),p=n===null?S!==null&&g!==null&&S>g:d!==null&&d<0,R=r[0],b=r.length===2?r[1]:null,_=g!==null||this.singleReadIterable(o)?null:this.loopTempName("_ref"),y=n===null||d!==null?null:this.loopTempName("_step");if(this.b.emit("for (let "),t(R),this.b.emit(" = "),this.expr(a),_!==null)this.b.emit(`, ${_} = `),this.expr(o);if(y!==null)this.b.emit(`, ${y} = `),this.mark(e,"step",()=>this.expr(n));if(b!==null)this.b.emit(", "),t(b),this.b.emit(" = 0");let m=()=>{if(_!==null)this.b.emit(_);else this.expr(o)},k=()=>{if(y!==null)this.b.emit(`${R} += ${y}`);else if(n===null)this.b.emit(p?`${R}--`:`${R}++`);else this.b.emit(`${R} ${p?"-=":"+="} `),this.mark(e,"step",()=>this.b.emit(String(Math.abs(d))));if(b!==null)this.b.emit(`, ${b}++`)};if(this.b.emit("; "),y!==null)this.b.emit(`${y} > 0 ? ${R} ${l} `),m(),this.b.emit(` : ${R} ${c} `),m();else this.b.emit(`${R} ${p?c:l} `),m();this.b.emit("; "),k(),this.b.emit(")")}forIn(e,t){this.inCtrl(()=>this.forInCtrl(e,t))}forInCtrl(e,t){let[,r,i,n,s,a]=e;this.withBindings(this.loopBindingNames(e),()=>this.forInCore(e,r,i,n,s,a,t))}forInCore(e,t,r,i,n,s,a){this.mark(e,"$self",()=>{let o=(l)=>this.mark(e,"vars",()=>typeof l==="string"?this.emitPrimitive(l):this.withPattern(()=>this.expr(l),!0));if(E(t[0])&&(Me(r)||i!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(Me(r))this.rangedHeader(e,o,t,r,i),this.b.emit(" "),this.guardedBlock(s,n,a);else if(i!==null){let l=t.length===2?t[1]:this.loopTempName("_i"),c=()=>{if(t.length===2)o(l);else this.b.emit(l)},f=(p)=>typeof p==="string"&&/^[0-9.]/.test(p)?p:null,h=f(i)??(E(i)&&i[0]==="+"&&i.length===2?f(i[1]):null),u=E(i)&&i[0]==="-"&&i.length===2?f(i[1]):null;if((h??u)!==null&&Number((h??u).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let d=this.singleReadIterable(r)?null:this.loopTempName("_ref"),S=()=>{if(d)this.b.emit(`${d} = `),this.expr(r),this.b.emit(", ")},g=()=>{if(d)this.b.emit(d);else this.expr(r)};if(u!==null)if(this.b.emit("for (let "),S(),c(),this.b.emit(" = "),g(),this.b.emit(`.length - 1; ${l} >= 0; `),u==="1")this.mark(e,"step",()=>this.b.emit(`${l}--`));else this.b.emit(`${l} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(i[1]),this.b.emit(")")});else if(h!==null)if(this.b.emit("for (let "),S(),c(),this.b.emit(` = 0; ${l} < `),g(),this.b.emit(".length; "),i==="1")this.mark(e,"step",()=>this.b.emit(`${l}++`));else this.b.emit(`${l} += `),this.grouped(e,"step",i,T.needsGrouping(i,"operand"));else{let p=this.loopTempName("_step");this.b.emit(`for (let ${p} = `),this.mark(e,"step",()=>this.expr(i)),this.b.emit(", "),S(),c(),this.b.emit(` = ${p} > 0 ? 0 : `),g(),this.b.emit(`.length - 1; ${p} > 0 ? ${l} < `),g(),this.b.emit(`.length : ${p} < 0 && ${l} >= 0; ${l} += ${p}`)}this.b.emit(`) { let `),o(t[0]),this.b.emit(" = "),g(),this.b.emit(`[${l}]; `),this.flatBody(s,n," "),this.b.emit("}")}else if(t.length===2){let l=this.singleReadIterable(r)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),l)this.b.emit(`${l} = `),this.expr(r),this.b.emit(", ");if(o(t[1]),this.b.emit(` = 0; ${t[1]} < `),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`.length; ${t[1]}++) { `),this.b.emit(" ".repeat(a+1)+"let "),o(t[0]),this.b.emit(" = "),l)this.b.emit(l);else this.expr(r);if(this.b.emit(`[${t[1]}]; @@ -113,21 +113,21 @@ ${" ".repeat(a)}`);let f=()=>{if(c)this.b.emit(c);else this.expr(r)};if(this.b. `);return}for(let n of i)this.statement(n,0),this.b.emit(` `)}bodyLines(e,t){let r=this.liveStmts(u1(e)?e.slice(1):[e]);this.emitTsTypeDecls(u1(e)?e.slice(1):[e]," ".repeat(t+1));for(let i of r)this.b.emit(" ".repeat(t+1)),this.statement(i,t+1),this.b.emit(` `)}clauseHeader(e,t,r,i,n,s=null){let a=(c)=>this.mark(e,"vars",()=>typeof c==="string"?this.emitPrimitive(c):this.withPattern(()=>this.expr(c),!0)),o=[];if(t==="for-of"){this.checkForOfPatternKey(r,n===!0);let f=(n===!0||r.length===2)&&!this.singleReadIterable(i)?this.loopTempName("_ref"):null;if(f!==null)this.temps.used.add(f),this.b.emit(`const ${f} = `),this.mark(e,"object",()=>this.expr(i)),this.b.emit(`; -${s??""}`);let h=()=>{if(f)this.b.emit(f);else this.expr(i)};if(this.b.emit("for (let "),a(r[0]),this.b.emit(" in "),f)this.b.emit(f);else this.mark(e,"object",()=>this.expr(i));if(this.b.emit(")"),n===!0)o.push(()=>{this.b.emit("if (!Object.hasOwn("),h(),this.b.emit(`, ${r[0]})) continue;`)});if(r.length===2)o.push(()=>{this.b.emit("let "),a(r[1]),this.b.emit(" = "),h(),this.b.emit(`[${r[0]}];`)});return o}if(t==="for-as"){if(r.length!==1)throw this.positionedError(e,"emitter: for-as takes ONE loop variable — the iterator protocol yields single values (destructure with a pattern instead)");return this.b.emit(n===!0?"for await (let ":"for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(i)),this.b.emit(")"),o}let l=n;if(E(r[0])&&(Ie(i)||l!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(Ie(i)&&l!==null)return this.rangedByHeader(e,a,r,i,l),o;if(l!==null){let c=r.length===2?r[1]:this.loopTempName("_i"),f=()=>{if(r.length===2)a(c);else this.b.emit(c)},h=(R)=>typeof R==="string"&&/^[0-9.]/.test(R)?R:null,u=h(l)??(E(l)&&l[0]==="+"&&l.length===2?h(l[1]):null),m=E(l)&&l[0]==="-"&&l.length===2?h(l[1]):null;if((u??m)!==null&&Number((u??m).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let S=this.singleReadIterable(i)?null:this.loopTempName("_ref"),g=()=>{if(S)this.b.emit(`${S} = `),this.expr(i),this.b.emit(", ")},d=()=>{if(S)this.b.emit(S);else this.expr(i)};if(m!==null)if(this.b.emit("for (let "),g(),f(),this.b.emit(" = "),d(),this.b.emit(`.length - 1; ${c} >= 0; `),m==="1")this.mark(e,"step",()=>this.b.emit(`${c}--`));else this.b.emit(`${c} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(l[1]),this.b.emit(")")});else if(u!==null)if(this.b.emit("for (let "),g(),f(),this.b.emit(` = 0; ${c} < `),d(),this.b.emit(".length; "),l==="1")this.mark(e,"step",()=>this.b.emit(`${c}++`));else this.b.emit(`${c} += `),this.grouped(e,"step",l,T.needsGrouping(l,"operand"));else{let R=this.loopTempName("_step");this.b.emit(`for (let ${R} = `),this.mark(e,"step",()=>this.expr(l)),this.b.emit(", "),g(),f(),this.b.emit(` = ${R} > 0 ? 0 : `),d(),this.b.emit(`.length - 1; ${R} > 0 ? ${c} < `),d(),this.b.emit(`.length : ${R} < 0 && ${c} >= 0; ${c} += ${R}`)}return this.b.emit(")"),o.push(()=>{this.b.emit("let "),a(r[0]),this.b.emit(" = "),d(),this.b.emit(`[${c}];`)}),o}if(r.length===2){let c=this.singleReadIterable(i)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),c)this.b.emit(`${c} = `),this.expr(i),this.b.emit(", ");if(a(r[1]),this.b.emit(` = 0; ${r[1]} < `),c)this.b.emit(c);else this.expr(i);return this.b.emit(`.length; ${r[1]}++)`),o.push(()=>{if(this.b.emit("let "),a(r[0]),this.b.emit(" = "),c)this.b.emit(c);else this.expr(i);this.b.emit(`[${r[1]}];`)}),o}return this.b.emit("for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(i)),this.b.emit(")"),o}guardOpen(e){this.b.emit("if (");let t=T.needsGrouping(e,"operand")||W1(e);if(t)this.b.emit("(");if(this.expr(e),t)this.b.emit(")");this.b.emit(`) { +${s??""}`);let h=()=>{if(f)this.b.emit(f);else this.expr(i)};if(this.b.emit("for (let "),a(r[0]),this.b.emit(" in "),f)this.b.emit(f);else this.mark(e,"object",()=>this.expr(i));if(this.b.emit(")"),n===!0)o.push(()=>{this.b.emit("if (!Object.hasOwn("),h(),this.b.emit(`, ${r[0]})) continue;`)});if(r.length===2)o.push(()=>{this.b.emit("let "),a(r[1]),this.b.emit(" = "),h(),this.b.emit(`[${r[0]}];`)});return o}if(t==="for-as"){if(r.length!==1)throw this.positionedError(e,"emitter: for-as takes ONE loop variable — the iterator protocol yields single values (destructure with a pattern instead)");return this.b.emit(n===!0?"for await (let ":"for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(i)),this.b.emit(")"),o}let l=n;if(E(r[0])&&(Me(i)||l!==null))throw this.positionedError(e,"emitter: pattern loop variables with ranges or BY steps are not supported yet");if(Me(i))return this.rangedHeader(e,a,r,i,l),o;if(l!==null){let c=r.length===2?r[1]:this.loopTempName("_i"),f=()=>{if(r.length===2)a(c);else this.b.emit(c)},h=(R)=>typeof R==="string"&&/^[0-9.]/.test(R)?R:null,u=h(l)??(E(l)&&l[0]==="+"&&l.length===2?h(l[1]):null),d=E(l)&&l[0]==="-"&&l.length===2?h(l[1]):null;if((u??d)!==null&&Number((u??d).replace(/_/g,""))===0)throw this.positionedError(e,"emitter: a BY step of 0 never advances the loop");let S=this.singleReadIterable(i)?null:this.loopTempName("_ref"),g=()=>{if(S)this.b.emit(`${S} = `),this.expr(i),this.b.emit(", ")},p=()=>{if(S)this.b.emit(S);else this.expr(i)};if(d!==null)if(this.b.emit("for (let "),g(),f(),this.b.emit(" = "),p(),this.b.emit(`.length - 1; ${c} >= 0; `),d==="1")this.mark(e,"step",()=>this.b.emit(`${c}--`));else this.b.emit(`${c} += `),this.mark(e,"step",()=>{this.b.emit("(-"),this.expr(l[1]),this.b.emit(")")});else if(u!==null)if(this.b.emit("for (let "),g(),f(),this.b.emit(` = 0; ${c} < `),p(),this.b.emit(".length; "),l==="1")this.mark(e,"step",()=>this.b.emit(`${c}++`));else this.b.emit(`${c} += `),this.grouped(e,"step",l,T.needsGrouping(l,"operand"));else{let R=this.loopTempName("_step");this.b.emit(`for (let ${R} = `),this.mark(e,"step",()=>this.expr(l)),this.b.emit(", "),g(),f(),this.b.emit(` = ${R} > 0 ? 0 : `),p(),this.b.emit(`.length - 1; ${R} > 0 ? ${c} < `),p(),this.b.emit(`.length : ${R} < 0 && ${c} >= 0; ${c} += ${R}`)}return this.b.emit(")"),o.push(()=>{this.b.emit("let "),a(r[0]),this.b.emit(" = "),p(),this.b.emit(`[${c}];`)}),o}if(r.length===2){let c=this.singleReadIterable(i)?null:this.loopTempName("_ref");if(this.b.emit("for (let "),c)this.b.emit(`${c} = `),this.expr(i),this.b.emit(", ");if(a(r[1]),this.b.emit(` = 0; ${r[1]} < `),c)this.b.emit(c);else this.expr(i);return this.b.emit(`.length; ${r[1]}++)`),o.push(()=>{if(this.b.emit("let "),a(r[0]),this.b.emit(" = "),c)this.b.emit(c);else this.expr(i);this.b.emit(`[${r[1]}];`)}),o}return this.b.emit("for (let "),a(r[0]),this.b.emit(" of "),this.mark(e,"iterable",()=>this.expr(i)),this.b.emit(")"),o}guardOpen(e){this.b.emit("if (");let t=T.needsGrouping(e,"operand")||W1(e);if(t)this.b.emit("(");if(this.expr(e),t)this.b.emit(")");this.b.emit(`) { `)}comprehension(e,t,r=null){this.withBindings(this.loopBindingNames(e),()=>this.comprehensionCore(e,t,r))}comprehensionCore(e,t,r){this.inCtrl(()=>this.comprehensionCoreCtrl(e,t,r))}comprehensionCoreCtrl(e,t,r){let[,i,[n],s]=e,a=()=>this.mark(e,"value",()=>this.expr(i)),o=r?.expr??r,l=" ".repeat(t);this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(T.containsAwait(e)?`await (async () => { `:`(() => { `);let c=this.loopTempName("result");this.b.emit(`${l} const ${c} = ${o===null?"[]":"{}"}; -`),this.b.emit(`${l} `);let[f,h,u,m]=n,S=[],g=this.stores.idOf(e),d=g!==null?this.stores.role(g,"value"):null;if(d!==null&&d.sourceStart!=null)S.push([d.sourceStart,d.sourceEnd]);for(let p of s){let k=E(p)?this.stores.idOf(p):null,I=k!==null?this.stores.selfSpan(k):null;if(I!==null)S.push(I)}let R=S.length>0?()=>{this.primitiveAvoid=null}:()=>{},b=S.length>0?()=>{this.primitiveAvoid=S}:()=>{};b();let _=this.clauseHeader(e,f,h,u,m??null,`${l} `);R(),this.b.emit(` { -`);let y=`${l} `;for(let p of _)this.b.emit(y),b(),p(),R(),this.b.emit(` -`);if(s.length>0)this.b.emit(y),this.guardOpen(s[0]),y+=" ";if(o===null){this.b.emit(`${y}${c}.push(`);let p=T.needsGrouping(i,"operand")||W1(i);if(p)this.b.emit("(");if(a(),p)this.b.emit(")");this.b.emit(`); -`)}else{let p=this.loopTempName("_k"),k=this.loopTempName("_v");this.b.emit(`${y}const ${p} = ${this.runtimeName("__toPropertyKey")}(`);let I=E(o)&&(T.needsGrouping(o,"operand")||W1(o)),A=()=>{if(I)this.b.emit("(");if(this.expr(o),I)this.b.emit(")")};if(r?.pair!==void 0)if(r.keyNode!==null)this.mark(r.pair,"key",()=>this.mark(r.keyNode,"$self",()=>this.mark(r.keyNode,"key",A)));else this.mark(r.pair,"key",A);else A();this.b.emit(`), ${k} = `);let x=T.needsGrouping(i,"operand")||W1(i);if(x)this.b.emit("(");if(a(),x)this.b.emit(")");this.b.emit(`; -`),this.b.emit(`${y}${this.runtimeName("__defineOwnDataProperty")}(${c}, ${p}, ${k}); +`),this.b.emit(`${l} `);let[f,h,u,d]=n,S=[],g=this.stores.idOf(e),p=g!==null?this.stores.role(g,"value"):null;if(p!==null&&p.sourceStart!=null)S.push([p.sourceStart,p.sourceEnd]);for(let m of s){let k=E(m)?this.stores.idOf(m):null,O=k!==null?this.stores.selfSpan(k):null;if(O!==null)S.push(O)}let R=S.length>0?()=>{this.primitiveAvoid=null}:()=>{},b=S.length>0?()=>{this.primitiveAvoid=S}:()=>{};b();let _=this.clauseHeader(e,f,h,u,d??null,`${l} `);R(),this.b.emit(` { +`);let y=`${l} `;for(let m of _)this.b.emit(y),b(),m(),R(),this.b.emit(` +`);if(s.length>0)this.b.emit(y),this.guardOpen(s[0]),y+=" ";if(o===null){this.b.emit(`${y}${c}.push(`);let m=T.needsGrouping(i,"operand")||W1(i);if(m)this.b.emit("(");if(a(),m)this.b.emit(")");this.b.emit(`); +`)}else{let m=this.loopTempName("_k"),k=this.loopTempName("_v");this.b.emit(`${y}const ${m} = ${this.runtimeName("__toPropertyKey")}(`);let O=E(o)&&(T.needsGrouping(o,"operand")||W1(o)),A=()=>{if(O)this.b.emit("(");if(this.expr(o),O)this.b.emit(")")};if(r?.pair!==void 0)if(r.keyNode!==null)this.mark(r.pair,"key",()=>this.mark(r.keyNode,"$self",()=>this.mark(r.keyNode,"key",A)));else this.mark(r.pair,"key",A);else A();this.b.emit(`), ${k} = `);let x=T.needsGrouping(i,"operand")||W1(i);if(x)this.b.emit("(");if(a(),x)this.b.emit(")");this.b.emit(`; +`),this.b.emit(`${y}${this.runtimeName("__defineOwnDataProperty")}(${c}, ${m}, ${k}); `)}if(s.length>0)this.b.emit(`${l} } `);this.b.emit(`${l} } `),this.b.emit(`${l} return ${c}; `),this.b.emit(`${l}})()`)})}static objectComprehension(e){if(e.length!==2)return null;let t=e[1];if(!E(t)||t[0]!==":")return null;if(!(typeof t[1]==="string"||E(t[1])&&t[1][0]==="dynamicKey"))return null;if(!be(t[2]))return null;if(t[2][2][0][0]!=="for-of")return null;return t}static ifArms(e){let t=[],r=e,i=null;while(!0){if(t.push(r),r.length<4)break;if(E(r[3])&&r[3][0]==="if"){r=r[3];continue}i=r[3];break}return{arms:t,elseBlock:i}}static branchStmts(e){return T.stripErased(u1(e)?e.slice(1):[e[0]])}branchLive(e,t=!1){let r=u1(e)?e.slice(1):[e[0]];if(this.ts&&t){for(let i of r)if(E(i)&&i[0]==="type-decl")this.pendingTypeDecls.push(i)}return this.liveStmts(r)}static statementOnly(e){if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return!0;return E(e)&&(e[0]==="return"||e[0]==="throw"||g1(e[0]))}static containsReturn(e){if(!E(e))return!1;let t=e[0];if(t==="return")return!0;if(t==="->"||t==="=>"||g1(t)||t==="class")return!1;return e.some((r)=>T.containsReturn(r))}static containsCtrl(e){if(typeof e==="string")return e==="break"||e==="continue";if(!E(e))return!1;let t=e[0];if(t==="break"||t==="continue"||t==="return"||t==="throw")return!0;if(t==="->"||t==="=>"||g1(t)||t==="class")return!1;return e.some((r)=>T.containsCtrl(r))}static ifIsSimple(e){let{arms:t,elseBlock:r}=T.ifArms(e),i=(n)=>{let s=T.branchStmts(n);return s.length===1&&!T.statementOnly(s[0])};return t.every((n)=>i(n[2]))&&(r===null||i(r))}valueIf(e){if(!T.ifIsSimple(e)){let t=this.ind;this.rejectYieldInIIFE(e);let r=T.containsAwait(e);this.b.emit(r?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>this.returnifyIf(e,t)),this.b.emit(" })()");return}this.mark(e,"$self",()=>this.ifTernary(e))}ifTernary(e){if(this.grouped(e,"condition",e[1],T.needsGrouping(e[1],"operand")||E(e[1])&&(e[1][0]==="await"||e[1][0]==="yield")),this.b.emit(" ? "),this.ternaryArm(e,"then",this.branchLive(e[2],!0)[0]),this.b.emit(" : "),e.length<4)this.b.emit("undefined");else if(E(e[3])&&e[3][0]==="if")this.mark(e,"else",()=>{this.b.emit("("),this.ifTernary(e[3]),this.b.emit(")")});else this.ternaryArm(e,"else",this.branchLive(e[3],!0)[0])}ternaryArm(e,t,r){this.mark(e,t,()=>{let i=T.needsGrouping(r,"operand")||W1(r);if(i)this.b.emit("(");if(this.expr(r),i)this.b.emit(")")})}returnBlock(e,t){let r=this.branchLive(e);this.b.emit(`{ `),this.emitTsTypeDecls(u1(e)?e.slice(1):[e[0]]," ".repeat(t+1)),r.forEach((i,n)=>{if(this.b.emit(" ".repeat(t+1)),n===r.length-1)this.implicitReturn(i,t+1);else this.statement(i,t+1);this.b.emit(` -`)}),this.b.emit(" ".repeat(t)+"}")}returnifyIf(e,t){if(this.b.emit("if ("),this.grouped(e,"condition",e[1],T.needsGrouping(e[1],"operand")),this.b.emit(") "),this.mark(e,"then",()=>this.returnBlock(e[2],t)),e.length>=4)if(this.b.emit(" else "),E(e[3])&&e[3][0]==="if")this.returnifyIf(e[3],t);else this.mark(e,"else",()=>this.returnBlock(e[3],t))}rejectYieldInIIFE(e){if(T.containsYield(e))throw this.positionedError(e,"emitter: yield inside an expression-lowered construct cannot cross the IIFE boundary; restructure as statements");this.rejectCapturedCtrl(e)}static findCapturedCtrl(e,t=m3){let r=null,i=(n,s,a)=>{if(r!==null||!E(n))return;let o=n[0];if(T1(n)||g1(o)||o==="class")return;if(o==="return"){if(t.has("return"))r={kind:"return",node:n};return}let l=ct(n)||be(n)?s+1:s,c=o==="switch"?a+1:a,f=o==="block"||o==="program"||o==="try";for(let h=1;h { ":"(() => { "),this.mark(e,"$self",()=>{this.b.emit("try ");let r=u1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.returnBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let i of e.slice(2)){if(!E(i))continue;if(u1(i))this.b.emit(" finally "),this.braceBlock(i,t);else{let[n,s]=i;if(n===null)this.b.emit(" catch "),this.returnBlock(s,t);else if(T.isPattern(n)){this.checkExportedConstWrite(i,n);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { +`)}),this.b.emit(" ".repeat(t)+"}")}returnifyIf(e,t){if(this.b.emit("if ("),this.grouped(e,"condition",e[1],T.needsGrouping(e[1],"operand")),this.b.emit(") "),this.mark(e,"then",()=>this.returnBlock(e[2],t)),e.length>=4)if(this.b.emit(" else "),E(e[3])&&e[3][0]==="if")this.returnifyIf(e[3],t);else this.mark(e,"else",()=>this.returnBlock(e[3],t))}rejectYieldInIIFE(e){if(T.containsYield(e))throw this.positionedError(e,"emitter: yield inside an expression-lowered construct cannot cross the IIFE boundary; restructure as statements");this.rejectCapturedCtrl(e)}static findCapturedCtrl(e,t=d3){let r=null,i=(n,s,a)=>{if(r!==null||!E(n))return;let o=n[0];if(T1(n)||g1(o)||o==="class")return;if(o==="return"){if(t.has("return"))r={kind:"return",node:n};return}let l=ct(n)||be(n)?s+1:s,c=o==="switch"?a+1:a,f=o==="block"||o==="program"||o==="try";for(let h=1;h { ":"(() => { "),this.mark(e,"$self",()=>{this.b.emit("try ");let r=u1(e[1])?e[1]:["block",e[1]];if(this.mark(e,"body",()=>this.returnBlock(r,t)),e.length===2)this.b.emit(" catch {}");for(let i of e.slice(2)){if(!E(i))continue;if(u1(i))this.b.emit(" finally "),this.braceBlock(i,t);else{let[n,s]=i;if(n===null)this.b.emit(" catch "),this.returnBlock(s,t);else if(T.isPattern(n)){this.checkExportedConstWrite(i,n);let a=this.loopTempName("_err");this.b.emit(` catch (${a}`),this.tsScaffoldAny(),this.b.emit(`) { `),this.b.emit(" ".repeat(t+1)+"("),this.mark(i,"binding",()=>this.withPattern(()=>this.expr(n))),this.b.emit(` = ${a}); `);let o=this.branchLive(s);this.emitTsTypeDecls(u1(s)?s.slice(1):[s[0]]," ".repeat(t+1)),o.forEach((l,c)=>{if(this.b.emit(" ".repeat(t+1)),c===o.length-1)this.implicitReturn(l,t+1);else this.statement(l,t+1);this.b.emit(` `)}),this.b.emit(" ".repeat(t)+"}")}else this.b.emit(" catch ("),this.mark(i,"binding",()=>this.b.emit(n)),this.b.emit(") "),this.withBindings([n],()=>this.returnBlock(s,t))}}}),this.b.emit(" })()")}valueSwitch(e){let[,t,r,i]=e,n=this.ind,s=" ".repeat(n);this.rejectYieldInIIFE(e),this.b.emit(T.containsAwait(e)?"await (async () => { ":"(() => { "),this.mark(e,"$self",()=>{if(T.hasMatchArms(r))this.checkMatchSwitch(e),this.matchChain(e,n,(a)=>this.returnBlock(a,n));else if(t!==null){this.b.emit("switch ("),this.mark(e,"subject",()=>this.expr(t)),this.b.emit(`) { @@ -156,28 +156,28 @@ ${s??""}`);let h=()=>{if(f)this.b.emit(f);else this.expr(i)};if(this.b.emit("for `);else this.accumulateBody(n,t,i);this.b.emit(`${r}}`)}),this.b.emit(` `),this.b.emit(`${r}return ${i};`)}ifChain(e,t){if(this.b.emit("if ("),this.mark(e,"condition",()=>this.expr(e[1])),this.b.emit(") "),this.mark(e,"then",()=>this.braceBlock(e[2],t)),e.length===4)this.b.emit(" "),this.mark(e,"else",()=>{this.b.emit("else ");let r=e[3];if(qs(r))this.mark(r,"$self",()=>this.ifChain(r,t));else this.braceBlock(r,t)})}defStatement(e,t){let r=e[0]==="void-def";if(typeof e[1]!=="string")throw this.positionedError(e,"emitter: `def @name` declares a static class method — spell it inside a class body");let i=T.containsAwait(e[3]),n=T.containsYield(e[3]);this.tsOverloadSigs(e,t),this.mark(e,"voidMarker",()=>this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(i)this.b.emit("async ");if(this.b.emit(n?"function* ":"function "),this.mark(e,"name",()=>this.b.emit(e[1])),this.ts){let l=this.annotationText(e,"typeParams");if(l!==null)this.b.tsOnly(()=>this.mark(e,"typeParams",()=>this.emitTypeText(e,"typeParams",l)))}this.mark(e,"params",()=>{this.b.emit("("),this.mark(e[2],"$self",()=>this.emitParams(e[2])),this.b.emit(")")}),this.tsReturnAnnotation(e,i,r,n),this.b.emit(" ");let s=this.liveStmts(u1(e[3])?e[3].slice(1):[e[3]],{forwards:!0}),{entries:a,names:o}=this.scopedHoist([e[3]],e[2]);for(let l of this.pushReactiveFrame(s,o,e[2],e))o.add(l);this.scopes.push(o),this.funcBlock(e,e[3],s,t,a,r),this.scopes.pop(),this.rframes.pop()})))}returnStatement(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'return' outside a function");if(e.length===2&&this.sideEffectOnly)throw this.positionedError(e,`emitter: cannot return a value from a void function (${this.voidReason??"the trailing '!' on its definition suppresses returns"})`);this.mark(e,"$self",()=>{if(this.b.emit("return"),e.length===2)this.b.emit(" "),this.grouped(e,"value",e[1],T.needsGrouping(e[1],"return"))}),this.b.emit(";")}braceBlock(e,t,r=[]){let i=E(e)&&e[0]==="block"?e.slice(1):[e];this.mark(e,"$self",()=>{if(this.b.emit(`{ `),r.length)this.b.emit(" ".repeat(t+1)),this.hoistLine(r," ".repeat(t+1)),this.b.emit(` -`);this.mark(e,"statements",()=>this.statements(i,t+1,"block")),this.b.emit(" ".repeat(t)+"}")})}static containsAwait(e){return Zs(e)}static containsBareIt(e){if(e==="it")return!0;if(!E(e))return!1;let t=e[0];if(t==="->"||t==="=>"||g1(t))return!1;if((t==="."||t==="?.")&&e.length===3)return T.containsBareIt(e[1])||typeof e[2]!=="string"&&T.containsBareIt(e[2]);if(t==="object")return e.slice(1).some((r)=>E(r)&&r[0]===":"&&r.length===3?T.containsBareIt(r[2])||typeof r[1]!=="string"&&T.containsBareIt(r[1]):T.containsBareIt(r));return e.some((r)=>T.containsBareIt(r))}static containsYield(e){return Qs(e)}static jsTier(e){if(!E(e))return"primary";if(e[0]==="cast"&&e.length===3)return T.jsTier(e[1]);if(u3(e))return"assign";if(_n(e)||qs(e)&&e.length<=4&&T.ifIsSimple(e))return"ternary";if(e[0]==="?"&&e.length===2)return"binary";if(e[0]==="presence"&&e.length===2)return"ternary";if(T.isStrRepeat(e))return"primary";if(at(e)||zs(e))return"binary";if(Ys(e))return"unary";if((e[0]==="await"||e[0]==="dammit!")&&e.length===2)return"unary";if(e[0]==="dammit?")return"unary";if(E(e[0])&&e[0][0]==="dammit!")return"unary";if((e[0]==="yield"||e[0]==="yield-from")&&e.length<=2)return"yield";if(T1(e))return"function";if(O1(e))return"object";return"primary"}static needsGrouping(e,t){let r=T.jsTier(e);if(t==="operand"||t==="return"){if(r==="unary")return!(e[0]==="!"||e[0]==="typeof"||e[0]==="await"||e[0]==="dammit!"||e[0]==="dammit?"||E(e[0])&&e[0][0]==="dammit!");if(r==="yield")return t==="operand";return r==="binary"||r==="ternary"||r==="assign"||r==="function"}if(t==="head")return r!=="primary";if(T.leadsWithObject(e))return!0;return r==="object"||W1(e)||r==="function"&&e[0]==="->"||E(e)&&(e[0]==="class"||e[0]==="component")||_n(e)&&!T.ternaryHoists(e)||E(e)&&e[0]==="presence"&&e.length===2||r==="unary"&&e[0]==="delete"}operand(e,t,r){this.grouped(e,t,r,T.needsGrouping(r,"operand"))}head(e,t,r){this.grouped(e,t,r,T.needsGrouping(r,"head"))}static isIntegerLiteral(e){return typeof e==="string"&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57&&/^[0-9][0-9_]*$/.test(e)}grouped(e,t,r,i){if(i)this.b.emit("(");if(this.mark(e,t,()=>this.expr(r)),i)this.b.emit(")")}static escapeTemplate(e){return e.replace(/\\[^]|`|\$\{/g,(t)=>t==="`"||t==="${"?`\\${t}`:t)}static MAX_EXPR_DEPTH=1024;expr(e){if(++this.exprDepth>T.MAX_EXPR_DEPTH){let t=this.positionedError(e,`emitter: expression nesting exceeds ${T.MAX_EXPR_DEPTH} levels — restructure the expression (the compile-time nesting bound)`);if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}try{this.exprCore(e)}finally{this.exprDepth--}}exprCore(e){if(!E(e)){if(typeof e==="string"){let r=this.bareRewrite(e);if(r==="reactive")return this.reactiveRead(e);if(r==="member")this.notePlainRenderRead(e);if(r!==null)this.checkBareRest(e,e);if(r!==null)return this.memberRead(e,r==="member-reactive");if(e==="this"&&this.renderSelf!==null)return this.b.emit(this.renderSelf)}if((e==="break"||e==="continue")&&this.ctrlDepth===0){let r=this.positionedError(e,`emitter: '${e}' outside a loop${e==="break"?" or switch":""}`);if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}if(typeof e==="string")this.emitPrimitive(e);else this.b.emit(e);return}let t=e[0];if(t==="str"&&this.lockedHead(e,"str"))return this.strTemplate(e);if(t==="tagged-template"&&e.length===3)return this.taggedTemplate(e);if(t==="here-regex")return this.heregex(e);if(E(t))return this.call(e);if(nt(t)&&e.length===3&&!this.inPattern&&T.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(nt(t)&&e.length===3&&!this.inPattern){let r=T.optionalGuard(e[1]);if(r!==null)return this.optionalAssign(e,r,"value")}if(M1.has(t)&&e.length===3)return this.assign(e);if((t==="."||t==="?.")&&e.length===3)return this.member(e);if((t===".{}"||t==="?.{}")&&e.length>=3)return this.pick(e);if(t==="[]"&&e.length===3)return this.index(e);if(t==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return this.optIndex(e);if(t==="optcall"&&this.lockedHead(e,"optcall"))return this.optCall(e);if(T1(e))return this.func(e);if(W1(e))return this.update(e);if(_n(e))return this.ternary(e);if(t==="array"&&this.lockedHead(e,"array"))return this.array(e);if(t==="object"&&this.lockedHead(e,"object"))return this.object(e);if(Ie(e))return this.range(e);if((t==="in"||t==="of"||t==="!in"||t==="!of"||t==="!instanceof")&&e.length===3)return this.relation(e);if(t==="instanceof"&&e.length===3){this.mark(e,"$self",()=>{this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("instanceof")),this.b.emit(" "),this.operand(e,"right",e[2])});return}if(t==="//"&&e.length===3)return this.floorDiv(e);if(t==="%%"&&e.length===3)return this.modulo(e);if(t==="//="&&e.length===3)return this.floorDivAssign(e);if(t==="=~"&&e.length===3)return this.matchOp(e);if(t==="map"&&this.lockedHead(e,"map"))return this.mapLiteral(e);if(t==="regex-index"&&e.length===4){if(!(typeof e[2]==="string"&&e[2][0]==="/"))throw this.positionedError(e,"emitter: a two-part index is the regex-capture form (`text[/re/, n]`) — its key must be a regex literal");return this.regexIndex(e,e[1],e[2],e[3])}if(t==="symbol"&&e.length===2&&this.lockedHead(e,"symbol"))return this.mark(e,"$self",()=>{let r=JSON.stringify(e[1]);if(r===`"${e[1]}"`)this.b.emit('Symbol.for("'),this.emitPrimitive(e[1]),this.b.emit('")');else this.b.emit(`Symbol.for(${r})`)});if(t===".="&&e.length===3)throw this.positionedError(e,`emitter: ${t} is a statement — its target is spelled twice (write + read), which has no single-expression form`);if(t==="%%="&&e.length===3)return this.moduloAssign(e);if(be(e))return this.comprehension(e,this.ind);if(t==="do-iife"&&e.length===2)return this.doIife(e);if(t==="cast"&&e.length===3)return this.cast(e);if(t==="?"&&e.length===2)return this.existence(e);if(t==="presence"&&e.length===2&&this.lockedHead(e,"presence"))return this.presence(e);if(t==="await"&&e.length===2)return this.awaitExpr(e);if(t==="dammit!"&&e.length===2)return this.dammit(e);if(t==="dammit?")return this.maybeDammit(e);if((t==="yield"||t==="yield-from")&&e.length<=2)return this.yieldExpr(e);if(t==="class")return this.classExpr(e);if(this.isReactiveDecl(e)){let r=t==="state"?":=":"~=";throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${r} …') is a statement — it lowers to a const declaration, which has no expression form`)}if(this.isGateDecl(e))throw this.positionedError(e,"emitter: a render gate ('<~') can only be used as a direct component body line");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') is a statement — it lowers to a const declaration, which has no expression form`);if(this.isEffectDecl(e)){if(e[1]!==null)throw this.positionedError(e,`emitter: a bound effect ('${typeof e[1]==="string"?e[1]:"…"} ~> …') is a statement — it lowers to a const declaration, which has no expression form ; a BARE '~> …' is the expression form`);this.mark(e,"$self",()=>this.effectValue(e,e[2],this.ind,!0));return}if(t==="schema"&&e.length===2)return this.schemaExpr(e);if(this.isComponentDecl(e))return this.componentExpr(e);if(this.isRenderNode(e))throw this.positionedError(e,"emitter: render blocks can only be used inside a component (as a direct body line)");if(this.isOfferNode(e))throw this.positionedError(e,"emitter: offer can only be used as a direct component body line");if(this.isAcceptNode(e))throw this.positionedError(e,"emitter: accept can only be used as a direct component body line");if(t==="super")return this.superCall(e);if(t==="new"&&e.length===2)return this.newExpr(e);if(t==="..."&&e.length===2)return this.spread(e);if(at(e))return this.binary(e);if(Ys(e))return this.unary(e);if(t==="block"){this.mark(e,"$self",()=>{this.b.emit("("),e.slice(1).forEach((r,i)=>{if(i>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")});return}if(t==="if"&&e.length>=3&&e.length<=4)return this.valueIf(e);if(t==="try")return this.valueTry(e);if(t==="switch"&&e.length===4)return this.valueSwitch(e);if(t==="while"&&(e.length===3||e.length===4))return this.accumulatorIIFE(e);if(t==="loop"&&e.length===2)return this.accumulatorIIFE(e);if(t==="loop-n"&&e.length===3)return this.accumulatorIIFE(e);if((t==="for-in"||t==="for-of"||t==="for-as")&&e.length===6)return this.accumulatorIIFE(e);if(t==="throw"&&e.length===2){this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(T.containsAwait(e)?"await (async () => { throw ":"(() => { throw "),this.mark(e,"value",()=>this.expr(e[1])),this.b.emit("; })()")});return}if(g1(t)||t==="return"||t==="program"&&this.lockedHead(e,"program"))throw this.positionedError(e,`emitter: '${t}' is not supported in expression position`);if(t==="type-decl"||T.isTypedWrapper(e))throw this.positionedError(e,"emitter: an erased type statement reached expression position — a statement list missed its filter");return this.call(e)}static optionalGuard(e){if(!E(e)||e.length!==3)return null;if(e[0]==="?."||e[0]==="optindex")return e;if(e[0]==="."||e[0]==="[]")return T.optionalGuard(e[1]);return null}repeatSafeValue(e,t=null){if(typeof e!=="string")return!1;if(e==="this")return!0;if(e[0]==="/")return!1;if(!X1(e))return!0;if(T.LITERAL_WORDS.has(e))return!0;if(t!==null&&t.has(e))return!0;return this.lexicallyBound(e)}lexicallyBound(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e)||r.bound.has(e))return!0;if(r.members!==void 0&&r.members.has(e))return!0}return this.inScope(e)||this.moduleBound.has(e)}singleReadIterable(e,t=null){if(this.repeatSafeValue(e,t))return!0;if(!E(e))return!1;if(e[0]==="array")return e.slice(1).every((r)=>this.singleReadIterable(r,t));return!1}scopeBoundary(e){if(!E(e)||g1(e[0])||T1(e))return"skip";if(e[0]==="component"&&e.length===3)return"skip";if(e[0]==="enum")return"skip";if(this.isEffectDecl(e))return"effect";if(this.isReactiveDecl(e))return"reactive";if(this.isReadonlyDecl(e))return"readonly";if(e[0]==="class")return"class";if(e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")return"loop";if(be(e))return"comprehension";if(e[0]==="try")return"try";return null}static planNeedsFor(e){if(!E(e)||e.length!==3)return null;let t=e[0],r=t==="//="||t==="%%=";if(!r&&!M1.has(t))return null;let i=T.optionalGuard(e[1]);if(i===null&&!r)return null;if(i===null&&!(E(e[1])&&(e[1][0]==="."||e[1][0]==="[]")&&e[1].length===3))return null;return{synth:r,optLink:i}}planReferenceTemps(e,t){let r=[],i=(o)=>{let l=this.loopTempName(o);return this.temps.used.add(l),l},n=(o,l,c)=>{let f=this.refPlans.get(o);if(f!==void 0){for(let m of[f.recv,f.obj,f.key])if(m!==null)r.push([m,o,"$self"]);return}let h=(m)=>this.repeatSafeValue(m,c)||t.has(m),u={recv:null,obj:null,key:null};if(l.optLink!==null&&!h(l.optLink[1]))u.recv=i("_ref");if(l.synth){let m=s(o,l,u),S=m[1];if(!(typeof S==="string"&&(S===u.recv||h(S))))u.obj=i("_o");if((m[0]==="[]"||m[0]==="optindex")&&!h(m[2]))u.key=i("_k")}if(u.recv===null&&u.obj===null&&u.key===null)return;this.refPlans.set(o,u);for(let m of[u.recv,u.obj,u.key])if(m!==null)r.push([m,o,"$self"])},s=(o,l,c)=>{let f=o[1];if(l.optLink!==null&&f===l.optLink)return[f[0],c.recv??f[1],f[2]];return f},a=(o,l)=>{let c=this.scopeBoundary(o);if(c==="skip"||c==="effect")return;if(c==="reactive"){if(!(o[0]==="computed"&&u1(o[2])&&o[2].length>2))a(o[2],l);return}if(c==="readonly"){a(o[2],l);return}if(c==="class"){if(o[2]!=null)a(o[2],l);return}if(c==="loop"){let h=new Set(l);for(let u of this.patternNames(o[1],[],!0))h.add(u);for(let u of o.slice(2))a(u,h);return}if(c==="comprehension"){let h=new Set(l);for(let u of o[2]??[])for(let m of this.patternNames(u[1],[],!0))h.add(m);a(o[1],h);for(let u of o[2]??[])a(u[2],h);for(let u of o[3]??[])a(u,h);return}if(c==="try"){for(let h of o.slice(2)){if(E(h)&&h.length===2&&T.isPattern(h[0])){let u=new Set(l);for(let m of this.patternNames(h[0]))u.add(m);a(h[1],u);continue}a(h,l)}a(o[1],l);return}let f=T.planNeedsFor(o);if(f!==null)n(o,f,l);for(let h of o)a(h,l)};for(let o of e)a(o,new Set);return r}optionalAssign(e,t,r){this.checkMemberWrite(e,e[1]);let i=e[0],n=i==="//="||i==="%%=",s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.recv===null&&!this.repeatSafeValue(t[1]))throw this.positionedError(e,"emitter: reference plan missing for an optional assignment with an impure receiver — a capture site the planner walk did not reach");let a=(h)=>{if(h===t)return this.stores.alias([h[0],s.recv??h[1],h[2]],h);return E(h)?this.stores.alias(h.map(a),h):h},o=a(e[1]),l=()=>{if(s.recv!==null)this.b.emit(`(${s.recv} = `),this.mark(t,"object",()=>this.withExpression(()=>this.expr(t[1]))),this.b.emit(")");else this.mark(t,"object",()=>this.expr(t[1]))},c=()=>this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),f=()=>{if(!n){(()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(o)))))(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(i)),this.b.emit(" "),c();return}let h=null;if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(o,"object",()=>this.withDeopt(()=>this.expr(o[1]))),this.b.emit(", "),h=s.obj;if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(o,"key",()=>this.withExpression(()=>this.expr(o[2]))),this.b.emit(", ");let u=["[]","."].includes(o[0])||o[0]==="?."||o[0]==="optindex"?this.stores.alias([o[0],h??o[1],s.key??o[2]],e[1]):o,m=()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(u))));m(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(i==="//="?"Math.floor(":T.MODULO+"("),m(),this.b.emit(i==="//="?" / ":", "),this.operand(e,"value",e[2]),this.b.emit(")")})};this.mark(e,"$self",()=>{if(r==="statement")this.b.emit("if ("),l(),this.b.emit(" != null) "),f();else l(),this.b.emit(" != null ? ("),f(),this.b.emit(") : undefined")})}sliceAssignError(e){if(e[0]==="=")return this.positionedError(e,"emitter: a slice assignment (`a[i..j] = v`) is a statement — it splices the range in place and has no value form; move it to its own line");return this.positionedError(e,`emitter: a slice takes plain assignment only (\`a[i..j] = v\`) — '${e[0]}' has no in-place reading`)}assign(e){if(typeof e[1]==="string"&&e[1][0]==='"')throw this.positionedError(e,'emitter: a string is not an assignment target — a string-NAMED member (`"data-src" = v`) lives in a class body');let t=T.isPattern(e[1]),r=T.declaresInPlace.has(e),i=O1(e[1])&&!this.inPattern&&!r;if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(T.middleRestPattern(e[1]))throw this.positionedError(e,"emitter: a middle-rest pattern (`[a, ...mid, b]`) assigns only as a STATEMENT — "+"it binds its source once and reads by index, which has no expression form; move the assignment to its own line");if(!this.inPattern)this.checkExportedConstWrite(e,e[1]);if(this.checkMemberWrite(e,e[1]),e[0]==="void-assign")this.registerVoidValue(e[2],e);{let n=c3(e),s=n!==null?this.annotationText(e):null;if(s!==null){let a=(c)=>{let f=this.stores.idOf(e),h=f!==null?this.stores.role(f,"annotation"):null;return h!==null&&h.sourceStart!=null?this.positionedErrorAt(h.sourceStart,h.sourceEnd,c):this.positionedError(e,c)};if(e!==this.moduleTopStmt)throw a("emitter: an annotated prototype member must be a module top-level statement — "+"the annotation manifests as an interface augmentation, which TypeScript admits only at a module's top level; move the write there or drop the annotation");let o=(()=>{let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=f!==null?this.stores.primitiveSpans(n.member,f[0],f[1])[0]??null:null;return h===null?null:{id:c,start:h.sourceStart,end:h.sourceEnd}})(),l=(c,f)=>{if(this.b.emit(c),o!==null)this.b.markSpan(o.id,"identifier",o.start,o.end,()=>this.b.emit(n.member));else this.b.emit(n.member);this.emitTypeText(e,"annotation",f)};if(this.moduleClassNames?.has(n.head)){if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`interface ${n.head} { `,`: ${s} } +`);this.mark(e,"statements",()=>this.statements(i,t+1,"block")),this.b.emit(" ".repeat(t)+"}")})}static containsAwait(e){return Zs(e)}static containsBareIt(e){if(e==="it")return!0;if(!E(e))return!1;let t=e[0];if(t==="->"||t==="=>"||g1(t))return!1;if((t==="."||t==="?.")&&e.length===3)return T.containsBareIt(e[1])||typeof e[2]!=="string"&&T.containsBareIt(e[2]);if(t==="object")return e.slice(1).some((r)=>E(r)&&r[0]===":"&&r.length===3?T.containsBareIt(r[2])||typeof r[1]!=="string"&&T.containsBareIt(r[1]):T.containsBareIt(r));return e.some((r)=>T.containsBareIt(r))}static containsYield(e){return Qs(e)}static jsTier(e){if(!E(e))return"primary";if(e[0]==="cast"&&e.length===3)return T.jsTier(e[1]);if(u3(e))return"assign";if(_n(e)||qs(e)&&e.length<=4&&T.ifIsSimple(e))return"ternary";if(e[0]==="?"&&e.length===2)return"binary";if(e[0]==="presence"&&e.length===2)return"ternary";if(T.isStrRepeat(e))return"primary";if(at(e)||zs(e))return"binary";if(Ys(e))return"unary";if((e[0]==="await"||e[0]==="dammit!")&&e.length===2)return"unary";if(e[0]==="dammit?")return"unary";if(E(e[0])&&e[0][0]==="dammit!")return"unary";if((e[0]==="yield"||e[0]==="yield-from")&&e.length<=2)return"yield";if(T1(e))return"function";if(O1(e))return"object";return"primary"}static needsGrouping(e,t){let r=T.jsTier(e);if(t==="operand"||t==="return"){if(r==="unary")return!(e[0]==="!"||e[0]==="typeof"||e[0]==="await"||e[0]==="dammit!"||e[0]==="dammit?"||E(e[0])&&e[0][0]==="dammit!");if(r==="yield")return t==="operand";return r==="binary"||r==="ternary"||r==="assign"||r==="function"}if(t==="head")return r!=="primary";if(T.leadsWithObject(e))return!0;return r==="object"||W1(e)||r==="function"&&e[0]==="->"||E(e)&&(e[0]==="class"||e[0]==="component")||_n(e)&&!T.ternaryHoists(e)||E(e)&&e[0]==="presence"&&e.length===2||r==="unary"&&e[0]==="delete"}operand(e,t,r){this.grouped(e,t,r,T.needsGrouping(r,"operand"))}head(e,t,r){this.grouped(e,t,r,T.needsGrouping(r,"head"))}static isIntegerLiteral(e){return typeof e==="string"&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57&&/^[0-9][0-9_]*$/.test(e)}grouped(e,t,r,i){if(i)this.b.emit("(");if(this.mark(e,t,()=>this.expr(r)),i)this.b.emit(")")}static escapeTemplate(e){return e.replace(/\\[^]|`|\$\{/g,(t)=>t==="`"||t==="${"?`\\${t}`:t)}static MAX_EXPR_DEPTH=1024;expr(e){if(++this.exprDepth>T.MAX_EXPR_DEPTH){let t=this.positionedError(e,`emitter: expression nesting exceeds ${T.MAX_EXPR_DEPTH} levels — restructure the expression (the compile-time nesting bound)`);if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}try{this.exprCore(e)}finally{this.exprDepth--}}exprCore(e){if(!E(e)){if(typeof e==="string"){let r=this.bareRewrite(e);if(r==="reactive")return this.reactiveRead(e);if(r==="member")this.notePlainRenderRead(e);if(r!==null)this.checkBareRest(e,e);if(r!==null)return this.memberRead(e,r==="member-reactive");if(e==="this"&&this.renderSelf!==null)return this.b.emit(this.renderSelf)}if((e==="break"||e==="continue")&&this.ctrlDepth===0){let r=this.positionedError(e,`emitter: '${e}' outside a loop${e==="break"?" or switch":""}`);if(typeof r.start!=="number"&&this.b.currentMark)r.start=this.b.currentMark.sourceStart,r.end=this.b.currentMark.sourceEnd;throw r}if(typeof e==="string")this.emitPrimitive(e);else this.b.emit(e);return}let t=e[0];if(t==="str"&&this.lockedHead(e,"str"))return this.strTemplate(e);if(t==="tagged-template"&&e.length===3)return this.taggedTemplate(e);if(t==="here-regex")return this.heregex(e);if(E(t))return this.call(e);if(nt(t)&&e.length===3&&!this.inPattern&&T.sliceTarget(e[1])!==null)throw this.sliceAssignError(e);if(nt(t)&&e.length===3&&!this.inPattern){let r=T.optionalGuard(e[1]);if(r!==null)return this.optionalAssign(e,r,"value")}if(M1.has(t)&&e.length===3)return this.assign(e);if((t==="."||t==="?.")&&e.length===3)return this.member(e);if((t===".{}"||t==="?.{}")&&e.length>=3)return this.pick(e);if(t==="[]"&&e.length===3)return this.index(e);if(t==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return this.optIndex(e);if(t==="optcall"&&this.lockedHead(e,"optcall"))return this.optCall(e);if(T1(e))return this.func(e);if(W1(e))return this.update(e);if(_n(e))return this.ternary(e);if(t==="array"&&this.lockedHead(e,"array"))return this.array(e);if(t==="object"&&this.lockedHead(e,"object"))return this.object(e);if(Me(e))return this.range(e);if((t==="in"||t==="of"||t==="!in"||t==="!of"||t==="!instanceof")&&e.length===3)return this.relation(e);if(t==="instanceof"&&e.length===3){this.mark(e,"$self",()=>{this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("instanceof")),this.b.emit(" "),this.operand(e,"right",e[2])});return}if(t==="//"&&e.length===3)return this.floorDiv(e);if(t==="%%"&&e.length===3)return this.modulo(e);if(t==="//="&&e.length===3)return this.floorDivAssign(e);if(t==="=~"&&e.length===3)return this.matchOp(e);if(t==="map"&&this.lockedHead(e,"map"))return this.mapLiteral(e);if(t==="regex-index"&&e.length===4){if(!(typeof e[2]==="string"&&e[2][0]==="/"))throw this.positionedError(e,"emitter: a two-part index is the regex-capture form (`text[/re/, n]`) — its key must be a regex literal");return this.regexIndex(e,e[1],e[2],e[3])}if(t==="symbol"&&e.length===2&&this.lockedHead(e,"symbol"))return this.mark(e,"$self",()=>{let r=JSON.stringify(e[1]);if(r===`"${e[1]}"`)this.b.emit('Symbol.for("'),this.emitPrimitive(e[1]),this.b.emit('")');else this.b.emit(`Symbol.for(${r})`)});if(t===".="&&e.length===3)throw this.positionedError(e,`emitter: ${t} is a statement — its target is spelled twice (write + read), which has no single-expression form`);if(t==="%%="&&e.length===3)return this.moduloAssign(e);if(be(e))return this.comprehension(e,this.ind);if(t==="do-iife"&&e.length===2)return this.doIife(e);if(t==="cast"&&e.length===3)return this.cast(e);if(t==="?"&&e.length===2)return this.existence(e);if(t==="presence"&&e.length===2&&this.lockedHead(e,"presence"))return this.presence(e);if(t==="await"&&e.length===2)return this.awaitExpr(e);if(t==="dammit!"&&e.length===2)return this.dammit(e);if(t==="dammit?")return this.maybeDammit(e);if((t==="yield"||t==="yield-from")&&e.length<=2)return this.yieldExpr(e);if(t==="class")return this.classExpr(e);if(this.isReactiveDecl(e)){let r=t==="state"?":=":"~=";throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${r} …') is a statement — it lowers to a const declaration, which has no expression form`)}if(this.isGateDecl(e))throw this.positionedError(e,"emitter: a render gate ('<~') can only be used as a direct component body line");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') is a statement — it lowers to a const declaration, which has no expression form`);if(this.isEffectDecl(e)){if(e[1]!==null)throw this.positionedError(e,`emitter: a bound effect ('${typeof e[1]==="string"?e[1]:"…"} ~> …') is a statement — it lowers to a const declaration, which has no expression form ; a BARE '~> …' is the expression form`);this.mark(e,"$self",()=>this.effectValue(e,e[2],this.ind,!0));return}if(t==="schema"&&e.length===2)return this.schemaExpr(e);if(this.isComponentDecl(e))return this.componentExpr(e);if(this.isRenderNode(e))throw this.positionedError(e,"emitter: render blocks can only be used inside a component (as a direct body line)");if(this.isOfferNode(e))throw this.positionedError(e,"emitter: offer can only be used as a direct component body line");if(this.isAcceptNode(e))throw this.positionedError(e,"emitter: accept can only be used as a direct component body line");if(t==="super")return this.superCall(e);if(t==="new"&&e.length===2)return this.newExpr(e);if(t==="..."&&e.length===2)return this.spread(e);if(at(e))return this.binary(e);if(Ys(e))return this.unary(e);if(t==="block"){this.mark(e,"$self",()=>{this.b.emit("("),e.slice(1).forEach((r,i)=>{if(i>0)this.b.emit(", ");this.expr(r)}),this.b.emit(")")});return}if(t==="if"&&e.length>=3&&e.length<=4)return this.valueIf(e);if(t==="try")return this.valueTry(e);if(t==="switch"&&e.length===4)return this.valueSwitch(e);if(t==="while"&&(e.length===3||e.length===4))return this.accumulatorIIFE(e);if(t==="loop"&&e.length===2)return this.accumulatorIIFE(e);if(t==="loop-n"&&e.length===3)return this.accumulatorIIFE(e);if((t==="for-in"||t==="for-of"||t==="for-as")&&e.length===6)return this.accumulatorIIFE(e);if(t==="throw"&&e.length===2){this.rejectYieldInIIFE(e),this.mark(e,"$self",()=>{this.b.emit(T.containsAwait(e)?"await (async () => { throw ":"(() => { throw "),this.mark(e,"value",()=>this.expr(e[1])),this.b.emit("; })()")});return}if(g1(t)||t==="return"||t==="program"&&this.lockedHead(e,"program"))throw this.positionedError(e,`emitter: '${t}' is not supported in expression position`);if(t==="type-decl"||T.isTypedWrapper(e))throw this.positionedError(e,"emitter: an erased type statement reached expression position — a statement list missed its filter");return this.call(e)}static optionalGuard(e){if(!E(e)||e.length!==3)return null;if(e[0]==="?."||e[0]==="optindex")return e;if(e[0]==="."||e[0]==="[]")return T.optionalGuard(e[1]);return null}repeatSafeValue(e,t=null){if(typeof e!=="string")return!1;if(e==="this")return!0;if(e[0]==="/")return!1;if(!X1(e))return!0;if(T.LITERAL_WORDS.has(e))return!0;if(t!==null&&t.has(e))return!0;return this.lexicallyBound(e)}lexicallyBound(e){for(let t=this.rframes.length-1;t>=0;t--){let r=this.rframes[t];if(r.reactive.has(e)||r.bound.has(e))return!0;if(r.members!==void 0&&r.members.has(e))return!0}return this.inScope(e)||this.moduleBound.has(e)}singleReadIterable(e,t=null){if(this.repeatSafeValue(e,t))return!0;if(!E(e))return!1;if(e[0]==="array")return e.slice(1).every((r)=>this.singleReadIterable(r,t));return!1}scopeBoundary(e){if(!E(e)||g1(e[0])||T1(e))return"skip";if(e[0]==="component"&&e.length===3)return"skip";if(e[0]==="enum")return"skip";if(this.isEffectDecl(e))return"effect";if(this.isReactiveDecl(e))return"reactive";if(this.isReadonlyDecl(e))return"readonly";if(e[0]==="class")return"class";if(e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")return"loop";if(be(e))return"comprehension";if(e[0]==="try")return"try";return null}static planNeedsFor(e){if(!E(e)||e.length!==3)return null;let t=e[0],r=t==="//="||t==="%%=";if(!r&&!M1.has(t))return null;let i=T.optionalGuard(e[1]);if(i===null&&!r)return null;if(i===null&&!(E(e[1])&&(e[1][0]==="."||e[1][0]==="[]")&&e[1].length===3))return null;return{synth:r,optLink:i}}planReferenceTemps(e,t){let r=[],i=(o)=>{let l=this.loopTempName(o);return this.temps.used.add(l),l},n=(o,l,c)=>{let f=this.refPlans.get(o);if(f!==void 0){for(let d of[f.recv,f.obj,f.key])if(d!==null)r.push([d,o,"$self"]);return}let h=(d)=>this.repeatSafeValue(d,c)||t.has(d),u={recv:null,obj:null,key:null};if(l.optLink!==null&&!h(l.optLink[1]))u.recv=i("_ref");if(l.synth){let d=s(o,l,u),S=d[1];if(!(typeof S==="string"&&(S===u.recv||h(S))))u.obj=i("_o");if((d[0]==="[]"||d[0]==="optindex")&&!h(d[2]))u.key=i("_k")}if(u.recv===null&&u.obj===null&&u.key===null)return;this.refPlans.set(o,u);for(let d of[u.recv,u.obj,u.key])if(d!==null)r.push([d,o,"$self"])},s=(o,l,c)=>{let f=o[1];if(l.optLink!==null&&f===l.optLink)return[f[0],c.recv??f[1],f[2]];return f},a=(o,l)=>{let c=this.scopeBoundary(o);if(c==="skip"||c==="effect")return;if(c==="reactive"){if(!(o[0]==="computed"&&u1(o[2])&&o[2].length>2))a(o[2],l);return}if(c==="readonly"){a(o[2],l);return}if(c==="class"){if(o[2]!=null)a(o[2],l);return}if(c==="loop"){let h=new Set(l);for(let u of this.patternNames(o[1],[],!0))h.add(u);for(let u of o.slice(2))a(u,h);return}if(c==="comprehension"){let h=new Set(l);for(let u of o[2]??[])for(let d of this.patternNames(u[1],[],!0))h.add(d);a(o[1],h);for(let u of o[2]??[])a(u[2],h);for(let u of o[3]??[])a(u,h);return}if(c==="try"){for(let h of o.slice(2)){if(E(h)&&h.length===2&&T.isPattern(h[0])){let u=new Set(l);for(let d of this.patternNames(h[0]))u.add(d);a(h[1],u);continue}a(h,l)}a(o[1],l);return}let f=T.planNeedsFor(o);if(f!==null)n(o,f,l);for(let h of o)a(h,l)};for(let o of e)a(o,new Set);return r}optionalAssign(e,t,r){this.checkMemberWrite(e,e[1]);let i=e[0],n=i==="//="||i==="%%=",s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.recv===null&&!this.repeatSafeValue(t[1]))throw this.positionedError(e,"emitter: reference plan missing for an optional assignment with an impure receiver — a capture site the planner walk did not reach");let a=(h)=>{if(h===t)return this.stores.alias([h[0],s.recv??h[1],h[2]],h);return E(h)?this.stores.alias(h.map(a),h):h},o=a(e[1]),l=()=>{if(s.recv!==null)this.b.emit(`(${s.recv} = `),this.mark(t,"object",()=>this.withExpression(()=>this.expr(t[1]))),this.b.emit(")");else this.mark(t,"object",()=>this.expr(t[1]))},c=()=>this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),f=()=>{if(!n){(()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(o)))))(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(i)),this.b.emit(" "),c();return}let h=null;if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(o,"object",()=>this.withDeopt(()=>this.expr(o[1]))),this.b.emit(", "),h=s.obj;if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(o,"key",()=>this.withExpression(()=>this.expr(o[2]))),this.b.emit(", ");let u=["[]","."].includes(o[0])||o[0]==="?."||o[0]==="optindex"?this.stores.alias([o[0],h??o[1],s.key??o[2]],e[1]):o,d=()=>this.mark(e,"target",()=>this.withTarget(()=>this.withDeopt(()=>this.expr(u))));d(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(i==="//="?"Math.floor(":T.MODULO+"("),d(),this.b.emit(i==="//="?" / ":", "),this.operand(e,"value",e[2]),this.b.emit(")")})};this.mark(e,"$self",()=>{if(r==="statement")this.b.emit("if ("),l(),this.b.emit(" != null) "),f();else l(),this.b.emit(" != null ? ("),f(),this.b.emit(") : undefined")})}sliceAssignError(e){if(e[0]==="=")return this.positionedError(e,"emitter: a slice assignment (`a[i..j] = v`) is a statement — it splices the range in place and has no value form; move it to its own line");return this.positionedError(e,`emitter: a slice takes plain assignment only (\`a[i..j] = v\`) — '${e[0]}' has no in-place reading`)}assign(e){if(typeof e[1]==="string"&&e[1][0]==='"')throw this.positionedError(e,'emitter: a string is not an assignment target — a string-NAMED member (`"data-src" = v`) lives in a class body');let t=T.isPattern(e[1]),r=T.declaresInPlace.has(e),i=O1(e[1])&&!this.inPattern&&!r;if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(T.middleRestPattern(e[1]))throw this.positionedError(e,"emitter: a middle-rest pattern (`[a, ...mid, b]`) assigns only as a STATEMENT — "+"it binds its source once and reads by index, which has no expression form; move the assignment to its own line");if(!this.inPattern)this.checkExportedConstWrite(e,e[1]);if(this.checkMemberWrite(e,e[1]),e[0]==="void-assign")this.registerVoidValue(e[2],e);{let n=c3(e),s=n!==null?this.annotationText(e):null;if(s!==null){let a=(c)=>{let f=this.stores.idOf(e),h=f!==null?this.stores.role(f,"annotation"):null;return h!==null&&h.sourceStart!=null?this.positionedErrorAt(h.sourceStart,h.sourceEnd,c):this.positionedError(e,c)};if(e!==this.moduleTopStmt)throw a("emitter: an annotated prototype member must be a module top-level statement — "+"the annotation manifests as an interface augmentation, which TypeScript admits only at a module's top level; move the write there or drop the annotation");let o=(()=>{let c=this.stores.idOf(e),f=c!==null?this.stores.selfSpan(c):null,h=f!==null?this.stores.primitiveSpans(n.member,f[0],f[1])[0]??null:null;return h===null?null:{id:c,start:h.sourceStart,end:h.sourceEnd}})(),l=(c,f)=>{if(this.b.emit(c),o!==null)this.b.markSpan(o.id,"identifier",o.start,o.end,()=>this.b.emit(n.member));else this.b.emit(n.member);this.emitTypeText(e,"annotation",f)};if(this.moduleClassNames?.has(n.head)){if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`interface ${n.head} { `,`: ${s} } `)))}else if(!this.scopes[0].has(n.head)){let c=l3[n.head]??"";if(this.ts)this.b.tsOnly(()=>this.mark(e,"annotation",()=>l(`declare global { interface ${n.head}${c} { `,`: ${s} } } -`)))}else throw a(`emitter: the annotation on \`${n.head}::${n.member}\` cannot augment — `+`\`${n.head}\` is a module binding, not a class declaration, so the interface has nothing to merge with; declare \`class ${n.head}\`, drop the annotation, or describe the member in a workspace .d.ts`)}}if(r)this.b.emit("let ");this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(i)this.b.emit("(");if(this.mark(e,"target",()=>{if(t)this.withPattern(()=>this.expr(e[1]));else this.withTarget(()=>this.expr(e[1]))}),this.ts&&r){let l=T.inlineOwners.get(e),c=this.annotationText(e)??(l!==void 0?this.annotationText(l):null);if(c!==null)this.tsAnnotate(l??e,"annotation",c);else{let f=this.schemaStories?.get(e);if(f&&!f.decl.exported&&f.constType!==null){let h=this.bindingNameSpan(e,"target",f.decl.name);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(f.constType,f.decl.name,h?.id??null,h?.span??null)})}}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(e[0]==="void-assign"?"=":e[0])),this.b.emit(" ");let n=this._schemaName,s=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,E(e[2])&&e[2][0]==="schema"&&typeof e[1]==="string")this._schemaName=e[1];if(this.isComponentDecl(e[2])&&typeof e[1]==="string"){this._componentName=e[1];let l=this.annotationText(e,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:e}}let o=this.ts&&this.strict&&this.pinnedWrites.has(e);if(o)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),o)this.b.tsOnly(()=>this.b.emit(") satisfies unknown"));if(this._schemaName=n,this._componentName=s,this._componentTypeParams=a,i)this.b.emit(")")})))}reactiveDecl(e,t){let[r,i,n]=e,s=r==="state"?":=":"~=";if(typeof i!=="string")throw this.positionedError(e,`emitter: a reactive declaration takes a plain name — ' ${s} …' cannot declare a ${E(i)&&i[0]==="object"?"destructuring pattern":E(i)&&i[0]==="array"?"destructuring pattern":"member or index target"}`);if(r==="state"&&i==="__state"||r==="computed"&&i==="__computed")throw this.positionedError(e,`emitter: '${i} ${s} …' would bind the very runtime name its own lowering calls (const ${i} = ${i}(…) — a TDZ self-reference); rename the variable`);if(r==="computed"&&T.containsAwait(n))throw this.positionedError(e,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)");if(r==="computed"&&T.containsYield(n))throw this.positionedError(e,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{this.b.emit("const ");let a=this.b.offset;if(this.mark(e,"target",()=>this.b.emit(i)),r==="state"&&this.ts)this.mutables.push([a,this.b.offset]);if(this.ts)this.noteKind(e,"target",r==="state"?"state":"computed");if(this.ts&&this.annotationText(e)!==null){let c=r==="computed"?"readonly ":"";this.tsAnnotate(e,"annotation",Sn(this.annotationText(e),c,Rn))}else if(this.ts){let c=Ds(n);if(c!==null){let f=r==="computed"?"readonly ":"";this.b.tsOnly(()=>this.b.emit(`: ${Sn(c,f,Rn)}`))}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let o=this.ts?this.annotationText(e):null,l=()=>{if(o===null)return;this.b.tsOnly(()=>this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",`<${o}>`)))};if(r==="state")this.b.emit(this.runtimeName("__state")),l(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let c=T.needsGrouping(n,"operand");if(c)this.b.emit("(");if(this.expr(n),c)this.b.emit(")")})),this.b.emit(")");else this.b.emit(this.runtimeName("__computed")),l(),this.b.emit("(() => "),this.mark(e,"value",()=>this.withExpression(()=>this.computedBody(e,n,t))),this.b.emit(")")})),this.b.emit(";")}computedBody(e,t,r){if(u1(t)&&t.length>2){let n=this.liveStmts(t.slice(1),{forwards:!0}),{entries:s,names:a}=this.scopedHoist(n,[]);for(let o of this.pushReactiveFrame(n,a))a.add(o);this.scopes.push(a),this.funcBlock(e,t,n,r,s),this.scopes.pop(),this.rframes.pop();return}let i=T.needsGrouping(t,"operand")||O1(t);if(i)this.b.emit("(");if(this.expr(t),i)this.b.emit(")")}readonlyDecl(e,t){let[,r,i]=e;if(typeof r!=="string")throw this.positionedError(e,`emitter: a readonly declaration takes a plain name — ' =! …' cannot declare a ${E(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","readonly");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>{let n=T.needsGrouping(i,"operand");if(n)this.b.emit("(");if(this.expr(i),n)this.b.emit(")")}))})),this.b.emit(";")}effectStatement(e,t){let[,r,i]=e;if(r!==null&&typeof r!=="string")throw this.positionedError(e,`emitter: an effect handle takes a plain name — ' ~> …' cannot bind a ${E(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);if(r==="__effect")throw this.positionedError(e,"emitter: '__effect ~> …' would bind the very runtime name its own lowering calls (const __effect = __effect(…) — a TDZ self-reference); rename the handle");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","effect");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.effectValue(e,i,t,!1)}else this.effectValue(e,i,t,!0)})),this.b.emit(";")}static findRenderControl(e){if(!E(e))return null;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?"||t==="yield"||t==="yield-from")return e;if(t==="for-as"&&e[3]===!0)return e;if(t==="->"||t==="=>"||g1(t)||t==="class")return null;for(let r of e){let i=T.findRenderControl(r);if(i!==null)return i}return null}effectValue(e,t,r,i){if(T.effectBodyYields(t))throw this.positionedError(e,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)");let n=()=>{let l=this.runtimeName("__effect");if(i)this.mark(e,"operator",()=>this.b.emit(l));else this.b.emit(l)};if(T1(t)){n(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let l=t[0]==="->";if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit(")");return}let s=T.containsAwait(t);if(n(),this.b.emit(s?"(async () => ":"(() => "),u1(t)){this.mark(e,"value",()=>this.withExpression(()=>{let l=this.liveStmts(t.slice(1),{forwards:!0}),{entries:c,names:f}=this.scopedHoist(l,[]);for(let h of this.pushReactiveFrame(l,f))f.add(h);this.scopes.push(f),this.funcBlock(e,t,l,r,c),this.scopes.pop(),this.rframes.pop()})),this.b.emit(")");return}let{entries:a,names:o}=this.scopedHoist([t],[]);if(this.checkScopeRedeclarations([t],[],e),this.scopes.push(o),this.rframes.push({reactive:new Set,bound:o}),this.b.emit("{ "),a.length)this.hoistLine(a),this.b.emit(" ");this.mark(e,"value",()=>this.withExpression(()=>{let l=T.needsGrouping(t,"operand")||O1(t);if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit("; })"),this.scopes.pop(),this.rframes.pop()}static effectBodyYields(e){return T1(e)?T.containsYield(e[2]):T.containsYield(e)}static COMPONENT_HOOKS=i3;static BOOLEAN_ATTRS=Fi;static SVG_NS="http://www.w3.org/2000/svg";isComponentDecl(e){return T.isComponentDeclIn(this.stores,e)}static isComponentDeclIn(e,t){if(!E(t)||t[0]!=="component"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="component"}componentKindOf(e,t,r){if(!E(e)||e[0]!==t||e.length!==r)return!1;let i=this.stores.idOf(e);return(i!==null?this.stores.node(i)?.semanticKind:null)===t}isRenderNode(e){return this.componentKindOf(e,"render",2)}isOfferNode(e){return this.componentKindOf(e,"offer",2)}isAcceptNode(e){return this.componentKindOf(e,"accept",2)}static memberTarget(e){if(typeof e==="string")return{name:e,isPublic:!1};if(E(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return{name:e[2],isPublic:!0};return null}static gateChain(e){let t=[],r=e;while(E(r)&&r[0]==="."&&r.length===3&&typeof r[2]==="string")t.unshift(r[2]),r=r[1];if(typeof r!=="string")return null;return t.unshift(r),t}static gateSource(e){let t=e[2],r=e.slice(3);if(r.length>1)return{error:"arity",node:e};let i=r[0]??null,n=T.gateChain(t);if(n===null||n.length<3||n[0]!=="this"||n[1]!=="stash")return{error:"path",node:t};let s=n.slice(2).join(".");if(i===null)return{path:s,pathNode:t,key:null,keyCode:null,keyParts:null};if(typeof i==="string"&&(/^-?(?:\d+(?:\.\d+)?|\.\d+)$/.test(i.replace(/_/g,""))||/^["'][^]*["']$/.test(i)||i==="true"||i==="false"))return{path:s,pathNode:t,key:i,keyCode:i,keyParts:null};let a=T.gateChain(i);if(a===null)return{error:"key",node:i};if(a[0]==="this")a.shift();if(a[0]!=="params"&&a[0]!=="query"||a.length<2)return{error:"key",node:i};return{path:s,pathNode:t,key:i,keyCode:a.join("."),keyParts:a}}static hmrFingerprint(e){let t=JSON.stringify(e),r=2166136261;for(let i=0;i>>0).toString(16).padStart(8,"0")}emitComponentHmrMeta(e,{bindingName:t,declaredProps:r,stateVars:i,derivedVars:n,gateVars:s,extendsTag:a,methods:o,hooks:l,hasRender:c}){let f=(p)=>[...p].sort(),h=f(r),u=f(i.map((p)=>p.name)),m=f(n.map((p)=>p.name)),S=f(o.map((p)=>p.name)),g=f(l.map((p)=>p.name)),d=s.length,R=T.hmrFingerprint({props:h,state:u,computed:m,gates:d,extends:a}),b=T.hmrFingerprint({methods:S,hooks:g,render:c}),_=`${this.modulePath}#${t}`,y={shape:R,impl:b,state:u,computed:m,props:h,gates:d,extends:a};this.b.emit(`${e}static __hmrId = ${JSON.stringify(_)}; +`)))}else throw a(`emitter: the annotation on \`${n.head}::${n.member}\` cannot augment — `+`\`${n.head}\` is a module binding, not a class declaration, so the interface has nothing to merge with; declare \`class ${n.head}\`, drop the annotation, or describe the member in a workspace .d.ts`)}}if(r)this.b.emit("let ");this.mark(e,"voidMarker",()=>this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(i)this.b.emit("(");if(this.mark(e,"target",()=>{if(t)this.withPattern(()=>this.expr(e[1]));else this.withTarget(()=>this.expr(e[1]))}),this.ts&&r){let l=T.inlineOwners.get(e),c=this.annotationText(e)??(l!==void 0?this.annotationText(l):null);if(c!==null)this.tsAnnotate(l??e,"annotation",c);else{let f=this.schemaStories?.get(e);if(f&&!f.decl.exported&&f.constType!==null){let h=this.bindingNameSpan(e,"target",f.decl.name);this.b.tsOnly(()=>{this.b.emit(": "),this.emitNamedCopies(f.constType,f.decl.name,h?.id??null,h?.span??null)})}}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit(e[0]==="void-assign"?"=":e[0])),this.b.emit(" ");let n=this._schemaName,s=this._componentName,a=this._componentTypeParams;if(this._componentTypeParams=null,E(e[2])&&e[2][0]==="schema"&&typeof e[1]==="string")this._schemaName=e[1];if(this.isComponentDecl(e[2])&&typeof e[1]==="string"){this._componentName=e[1];let l=this.annotationText(e,"typeParams");this._componentTypeParams=l===null?null:{text:l,owner:e}}let o=this.ts&&this.strict&&this.pinnedWrites.has(e);if(o)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.withExpression(()=>this.expr(e[2]))),o)this.b.tsOnly(()=>this.b.emit(") satisfies unknown"));if(this._schemaName=n,this._componentName=s,this._componentTypeParams=a,i)this.b.emit(")")})))}reactiveDecl(e,t){let[r,i,n]=e,s=r==="state"?":=":"~=";if(typeof i!=="string")throw this.positionedError(e,`emitter: a reactive declaration takes a plain name — ' ${s} …' cannot declare a ${E(i)&&i[0]==="object"?"destructuring pattern":E(i)&&i[0]==="array"?"destructuring pattern":"member or index target"}`);if(r==="state"&&i==="__state"||r==="computed"&&i==="__computed")throw this.positionedError(e,`emitter: '${i} ${s} …' would bind the very runtime name its own lowering calls (const ${i} = ${i}(…) — a TDZ self-reference); rename the variable`);if(r==="computed"&&T.containsAwait(n))throw this.positionedError(e,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)");if(r==="computed"&&T.containsYield(n))throw this.positionedError(e,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{this.b.emit("const ");let a=this.b.offset;if(this.mark(e,"target",()=>this.b.emit(i)),r==="state"&&this.ts)this.mutables.push([a,this.b.offset]);if(this.ts)this.noteKind(e,"target",r==="state"?"state":"computed");if(this.ts&&this.annotationText(e)!==null){let c=r==="computed"?"readonly ":"";this.tsAnnotate(e,"annotation",Sn(this.annotationText(e),c,Rn))}else if(this.ts){let c=Ds(n);if(c!==null){let f=r==="computed"?"readonly ":"";this.b.tsOnly(()=>this.b.emit(`: ${Sn(c,f,Rn)}`))}}this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let o=this.ts?this.annotationText(e):null,l=()=>{if(o===null)return;this.b.tsOnly(()=>this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",`<${o}>`)))};if(r==="state")this.b.emit(this.runtimeName("__state")),l(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let c=T.needsGrouping(n,"operand");if(c)this.b.emit("(");if(this.expr(n),c)this.b.emit(")")})),this.b.emit(")");else this.b.emit(this.runtimeName("__computed")),l(),this.b.emit("(() => "),this.mark(e,"value",()=>this.withExpression(()=>this.computedBody(e,n,t))),this.b.emit(")")})),this.b.emit(";")}computedBody(e,t,r){if(u1(t)&&t.length>2){let n=this.liveStmts(t.slice(1),{forwards:!0}),{entries:s,names:a}=this.scopedHoist(n,[]);for(let o of this.pushReactiveFrame(n,a))a.add(o);this.scopes.push(a),this.funcBlock(e,t,n,r,s),this.scopes.pop(),this.rframes.pop();return}let i=T.needsGrouping(t,"operand")||O1(t);if(i)this.b.emit("(");if(this.expr(t),i)this.b.emit(")")}readonlyDecl(e,t){let[,r,i]=e;if(typeof r!=="string")throw this.positionedError(e,`emitter: a readonly declaration takes a plain name — ' =! …' cannot declare a ${E(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","readonly");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>{let n=T.needsGrouping(i,"operand");if(n)this.b.emit("(");if(this.expr(i),n)this.b.emit(")")}))})),this.b.emit(";")}effectStatement(e,t){let[,r,i]=e;if(r!==null&&typeof r!=="string")throw this.positionedError(e,`emitter: an effect handle takes a plain name — ' ~> …' cannot bind a ${E(r)&&(r[0]==="object"||r[0]==="array")?"destructuring pattern":"member or index target"}`);if(r==="__effect")throw this.positionedError(e,"emitter: '__effect ~> …' would bind the very runtime name its own lowering calls (const __effect = __effect(…) — a TDZ self-reference); rename the handle");this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(r!==null){if(this.b.emit("const "),this.mark(e,"target",()=>this.b.emit(r)),this.ts)this.noteKind(e,"target","effect");if(this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.effectValue(e,i,t,!1)}else this.effectValue(e,i,t,!0)})),this.b.emit(";")}static findRenderControl(e){if(!E(e))return null;let t=e[0];if(t==="await"||t==="dammit!"||t==="dammit?"||t==="yield"||t==="yield-from")return e;if(t==="for-as"&&e[3]===!0)return e;if(t==="->"||t==="=>"||g1(t)||t==="class")return null;for(let r of e){let i=T.findRenderControl(r);if(i!==null)return i}return null}effectValue(e,t,r,i){if(T.effectBodyYields(t))throw this.positionedError(e,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)");let n=()=>{let l=this.runtimeName("__effect");if(i)this.mark(e,"operator",()=>this.b.emit(l));else this.b.emit(l)};if(T1(t)){n(),this.b.emit("("),this.mark(e,"value",()=>this.withExpression(()=>{let l=t[0]==="->";if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit(")");return}let s=T.containsAwait(t);if(n(),this.b.emit(s?"(async () => ":"(() => "),u1(t)){this.mark(e,"value",()=>this.withExpression(()=>{let l=this.liveStmts(t.slice(1),{forwards:!0}),{entries:c,names:f}=this.scopedHoist(l,[]);for(let h of this.pushReactiveFrame(l,f))f.add(h);this.scopes.push(f),this.funcBlock(e,t,l,r,c),this.scopes.pop(),this.rframes.pop()})),this.b.emit(")");return}let{entries:a,names:o}=this.scopedHoist([t],[]);if(this.checkScopeRedeclarations([t],[],e),this.scopes.push(o),this.rframes.push({reactive:new Set,bound:o}),this.b.emit("{ "),a.length)this.hoistLine(a),this.b.emit(" ");this.mark(e,"value",()=>this.withExpression(()=>{let l=T.needsGrouping(t,"operand")||O1(t);if(l)this.b.emit("(");if(this.expr(t),l)this.b.emit(")")})),this.b.emit("; })"),this.scopes.pop(),this.rframes.pop()}static effectBodyYields(e){return T1(e)?T.containsYield(e[2]):T.containsYield(e)}static COMPONENT_HOOKS=i3;static BOOLEAN_ATTRS=Fi;static SVG_NS="http://www.w3.org/2000/svg";isComponentDecl(e){return T.isComponentDeclIn(this.stores,e)}static isComponentDeclIn(e,t){if(!E(t)||t[0]!=="component"||t.length!==3)return!1;let r=e.idOf(t);return(r!==null?e.node(r)?.semanticKind:null)==="component"}componentKindOf(e,t,r){if(!E(e)||e[0]!==t||e.length!==r)return!1;let i=this.stores.idOf(e);return(i!==null?this.stores.node(i)?.semanticKind:null)===t}isRenderNode(e){return this.componentKindOf(e,"render",2)}isOfferNode(e){return this.componentKindOf(e,"offer",2)}isAcceptNode(e){return this.componentKindOf(e,"accept",2)}static memberTarget(e){if(typeof e==="string")return{name:e,isPublic:!1};if(E(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return{name:e[2],isPublic:!0};return null}static gateChain(e){let t=[],r=e;while(E(r)&&r[0]==="."&&r.length===3&&typeof r[2]==="string")t.unshift(r[2]),r=r[1];if(typeof r!=="string")return null;return t.unshift(r),t}static gateSource(e){let t=e[2],r=e.slice(3);if(r.length>1)return{error:"arity",node:e};let i=r[0]??null,n=T.gateChain(t);if(n===null||n.length<3||n[0]!=="this"||n[1]!=="stash")return{error:"path",node:t};let s=n.slice(2).join(".");if(i===null)return{path:s,pathNode:t,key:null,keyCode:null,keyParts:null};if(typeof i==="string"&&(/^-?(?:\d+(?:\.\d+)?|\.\d+)$/.test(i.replace(/_/g,""))||/^["'][^]*["']$/.test(i)||i==="true"||i==="false"))return{path:s,pathNode:t,key:i,keyCode:i,keyParts:null};let a=T.gateChain(i);if(a===null)return{error:"key",node:i};if(a[0]==="this")a.shift();if(a[0]!=="params"&&a[0]!=="query"||a.length<2)return{error:"key",node:i};return{path:s,pathNode:t,key:i,keyCode:a.join("."),keyParts:a}}static hmrFingerprint(e){let t=JSON.stringify(e),r=2166136261;for(let i=0;i>>0).toString(16).padStart(8,"0")}emitComponentHmrMeta(e,{bindingName:t,declaredProps:r,stateVars:i,derivedVars:n,gateVars:s,extendsTag:a,methods:o,hooks:l,hasRender:c}){let f=(m)=>[...m].sort(),h=f(r),u=f(i.map((m)=>m.name)),d=f(n.map((m)=>m.name)),S=f(o.map((m)=>m.name)),g=f(l.map((m)=>m.name)),p=s.length,R=T.hmrFingerprint({props:h,state:u,computed:d,gates:p,extends:a}),b=T.hmrFingerprint({methods:S,hooks:g,render:c}),_=`${this.modulePath}#${t}`,y={shape:R,impl:b,state:u,computed:d,props:h,gates:p,extends:a};this.b.emit(`${e}static __hmrId = ${JSON.stringify(_)}; `),this.b.emit(`${e}static __hmrSig = ${JSON.stringify(y)}; -`)}componentExpr(e){let[,t,r]=e,i=null;if(t!==null){let N=typeof t==="string"?t:null;if(N===null||!Q1(N)||N.includes("#"))throw this.positionedError(e,"emitter: 'component extends' takes an HTML tag — rest props forward onto the first '' element the "+`render creates; '${typeof t==="string"?t:"…"}' is not one (component-to-component inheritance is not a surface)`);i=N}if(this.ts){let N=this.stores.idOf(e)??null,C=N!==null?this.stores.selfSpan(N):null,w=this.b.source;if(C!==null&&w!==null&&w.startsWith("component",C[0])){if(this.silences.push([C[0],C[0]+9]),i!==null){let D=/^component(\s+)extends(\s+)/.exec(w.slice(C[0],C[1]));if(D!==null&&w.startsWith(i,C[0]+D[0].length)){let B=C[0]+9+D[1].length;this.silences.push([B,B+7]);let a1=C[0]+D[0].length;this.intrinsics.push({start:a1,end:a1+i.length,kind:"tag",tag:i,svg:!1})}}}}let n=u1(r)?r.slice(1):[],s=[],a=[],o=[],l=[],c=[],f=[],h=[],u=[],m=[],S=[],g=null,d=new Map,R=new Set,b=new Map,_=(N,C,w,D)=>{if(b.has(N))throw this.positionedError(w,`emitter: duplicate component member '${N}' — it is already declared in this component body; `+"duplicates clobber silently across kinds",e);if(s3.has(N))throw this.positionedError(w,`emitter: component member '${N}' collides with component runtime state — `+"the runtime owns this exact instance field; rename the member",e);if(N==="_init"||N==="_create"||N==="_setup"||/^create_block_\d+$/.test(N))throw this.positionedError(w,`emitter: component member '${N}' collides with the generated lifecycle machinery — '_init', `+"'_create', '_setup', and 'create_block_N' are the class methods the component lowering emits (a same-named member would silently replace the generated one at runtime); rename the member",e);if(N==="mount"||N==="unmount"||N==="emit")throw this.positionedError(w,`emitter: component member '${N}' collides with the component runtime API — 'mount', 'unmount', `+"and 'emit' are __Component's own methods, and the machinery calls them on every instance (a same-named member would silently shadow them); rename the member",e);if(b.set(N,w),C!=="hook"){if(d.set(N,C),D)R.add(N)}},y=(N)=>{let C="emitter: a component body line must be a member declaration — state (`x := v`, `@x := v`), a prop (`@x`, `@x?`), "+"computed (`x ~= e`), readonly (`x =! v`), a plain field (`x = v`), a method (`save = (e) ->`), a lifecycle hook "+"(beforeMount/mounted/beforeUnmount/unmounted/onError), an effect (`~> …`), `offer`/`accept`, or `render` — "+"this statement matches no category",w=this.b.source;if((!E(N)||this.stores.idOf(N)===null)&&w!==null){let D=(f1)=>{let z=E(f1)?this.stores.idOf(f1):null;return z!==null?this.stores.selfSpan(z):null},B=n.indexOf(N),a1=D(r),h1=null;for(let f1=B-1;f1>=0&&h1===null;f1--)h1=D(n[f1])?.[1]??null;if(h1===null)h1=a1?.[0]??null;if(h1!==null){while(h1h1&&/\s/.test(w[f1-1]))f1--;throw this.positionedErrorAt(h1,f1,C)}}throw this.positionedError(N,C,e)},p=(N,C,w,D)=>{let B=this.stores.idOf(N),a1=B!==null?this.stores.role(B,C):null;if(a1?.sourceStart!=null)throw this.positionedErrorAt(a1.sourceStart,a1.sourceEnd,D);throw this.positionedError(w,D,N,e)},k=(N,C)=>{if(this.isRenderNode(N)){if(C)I(N);if(g!==null)throw this.positionedError(N,"emitter: duplicate render block — a component takes exactly one",e);let w=T.findRenderControl(N);if(w!==null)throw this.positionedError(w,"emitter: a render body evaluates synchronously — 'await'/'yield' cannot appear in a render expression "+"(text, attributes, props, and event listeners emit into non-async generated scopes); compute the value into a member (a state written by an effect), or make the handler a function ('-> await ...')",N);g=N;return}if(this.isAcceptNode(N)){if(C)I(N);this.noteHeadKeyword("context-channel","accept",N),_(N[1],"accept",N,!0),S.push(N[1]);return}if(this.isGateDecl(N)){if(C)I(N);let w=T.memberTarget(N[1]);if(w===null)p(N,"target",N[1],"emitter: a render gate ('<~') target must be one private component name — patterns and member chains cannot name a gate");if(w.isPublic)p(N,"target",N[1],`emitter: render gate '${w.name}' must be private — '@${w.name} <~ …' would expose route-prefetched state as a caller prop; remove '@' and pass an explicit prop where public input is intended`);let D=T.gateSource(N);if(D.error==="arity")p(N,"key",D.node,"emitter: a keyed render gate takes exactly one key argument — use @stash.name(params.id)");if(D.error==="path")p(N,"rhs",D.node,"emitter: '<~' requires a literal @stash. on the right-hand side, optionally called with one key");if(D.error==="key")p(N,"key",D.node,"emitter: a keyed render gate key may only be a literal or a params/query path (for example params.id or @query.tab)");_(w.name,"gate",N,!0),c.push({name:w.name,...D,node:N});return}if(this.isReactiveDecl(N)){let w=T.memberTarget(N[1]);if(w===null)throw this.positionedError(N,`emitter: a component ${N[0]==="state"?"state":"computed"} member takes a plain name or '@name' — `+"patterns and member chains have no member reading ",e);if(N[0]==="state"){if(T.containsAwait(N[2])||T.containsYield(N[2]))throw this.positionedError(N,"emitter: a component state initializer cannot await or yield — _init runs synchronously during construction",e);_(w.name,"state",N,!0),o.push({name:w.name,value:N[2],isPublic:w.isPublic,required:!1,node:N})}else{if(T.containsAwait(N[2]))throw this.positionedError(N,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)",e);if(T.containsYield(N[2]))throw this.positionedError(N,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously",e);_(w.name,"computed",N,!0),l.push({name:w.name,value:N[2],node:N})}return}if(this.isReadonlyDecl(N)){let w=T.memberTarget(N[1]);if(w===null)throw this.positionedError(N,"emitter: a component readonly member takes a plain name or '@name' — patterns and member chains have no member reading ",e);_(w.name,"readonly",N,!1),s.push({name:w.name,value:N[2],isPublic:w.isPublic,node:N});return}if(this.isEffectDecl(N)){if(C)I(N);if(N[1]!==null)throw this.positionedError(N,`emitter: a bound effect ('${typeof N[1]==="string"?N[1]:"…"} ~> …') has no component-body reading — `+"the handle would bind nothing; use a bare `~> …` effect, or bind the handle inside a method",e);if(T.effectBodyYields(N[2]))throw this.positionedError(N,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)",N);u.push(N);return}if(E(N)&&N[0]==="?"&&N.length===2){let w=T.memberTarget(N[1]);if(w!==null&&w.isPublic){_(w.name,"prop",N,!0),o.push({name:w.name,value:void 0,isPublic:!0,required:!1,optional:!0,node:N});return}y(N)}if(T.isTypedWrapper(N)){let w=T.memberTarget(N[1]);if(w!==null&&w.isPublic){_(w.name,"prop",N,!0),o.push({name:w.name,value:void 0,isPublic:!0,required:!0,node:N});return}y(N)}if(E(N)&&N[0]==="."&&N[1]==="this"&&N.length===3&&typeof N[2]==="string"){_(N[2],"prop",N,!0),o.push({name:N[2],value:void 0,isPublic:!0,required:!0,node:N});return}if(E(N)&&(N[0]==="="||N[0]==="void-assign")&&N.length===3){let w=T.memberTarget(N[1]);if(w===null)y(N);let D=N[0]==="void-assign";if(T.COMPONENT_HOOKS.has(w.name)){if(C)I(N);if(!T1(N[2]))throw this.positionedError(N,`emitter: the lifecycle hook '${w.name}' takes a function value — \`${w.name} = -> …\``,e);_(w.name,"hook",N,!1),h.push({name:w.name,func:N[2],isVoid:D,node:N});return}if(T1(N[2])){_(w.name,"method",N,!1),f.push({name:w.name,func:N[2],isVoid:D,node:N});return}if(D)throw this.positionedError(N,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`",e);_(w.name,"plain",N,!1),a.push({name:w.name,value:N[2],isPublic:w.isPublic,node:N});return}if(O1(N)){if(C)I(N);for(let w of N.slice(1)){if(!E(w)||w[0]!==":"&&w[0]!=="void-pair"||typeof w[1]!=="string"||!T1(w[2]))y(N);let D=w[0]==="void-pair";if(T.COMPONENT_HOOKS.has(w[1]))_(w[1],"hook",N,!1),h.push({name:w[1],func:w[2],isVoid:D,node:w});else _(w[1],"method",N,!1),f.push({name:w[1],func:w[2],isVoid:D,node:w})}return}y(N)},I=(N)=>{throw this.positionedError(N,"emitter: offer takes a member DECLARATION — `offer theme := v`, `offer limit =! v`, `offer total ~= e`, "+"`offer save = (e) ->` — anything else has no context key to publish",e)};for(let N of n){if(this.isOfferNode(N)){let C=N[1];if(!(this.isReactiveDecl(C)||this.isReadonlyDecl(C)||E(C)&&(C[0]==="="||C[0]==="void-assign")&&C.length===3&&T.memberTarget(C[1])!==null))I(N);this.noteHeadKeyword("context-channel","offer",N),k(C,!0);let D=T.memberTarget(C[1]);m.push(D.name);continue}k(N,!1)}let A=[];for(let{name:N,isPublic:C}of[...o,...s,...a])if(C)A.push(N);if(i!==null){if(b.has("rest"))throw this.positionedError(b.get("rest"),"emitter: a component that extends a tag cannot declare a member named 'rest' — `@rest` is the reactive "+"view of the undeclared caller props (the rest-forwarding seam)",e);d.set("rest","rest"),R.add("rest")}if(this.scopes.length===1&&typeof this._componentName==="string"){let N=this.moduleComponentNames.get(this._componentName);if(N!==void 0&&N!==e)throw this.positionedError(e,`emitter: component '${this._componentName}' is bound more than once at module scope — rebinding `+"clobbers the first class silently (existing instances keep the old identity) and the typed artifacts would merge two same-named companion interfaces; give each component its own name");this.moduleComponentNames.set(this._componentName,e)}let x=this.ts&&this.scopes.length===1&&typeof this._componentName==="string"?`__${this._componentName}__computed`:null,O=this.ts?bn(this.stores,this.b.source,e,x):null;if(O)O.appStashSpec=this.appStashSpec,O.routesUnion=this.routesUnion,O.routeParams=this.routeParams;if(O!==null)this.componentInfo.set(e,O);let G=new Map;for(let N of O?.members??[]){let C=T.memberLabel(N);if(C!==null)G.set(N.name,{label:C,optional:N.optional===!0})}if(i!==null)G.set("rest",{label:"rest",optional:!1});let K={members:d,memberReactive:R,memberKinds:G,name:this._componentName,extendsTag:i,plainWrites:new Map,renderPlainReads:new Set},V=this.ind,Z=" ".repeat(V+1),W=Z+" ";this.cframes.push(K),this.rframes.push({reactive:new Set,bound:new Set,members:d,memberReactive:R,memberKinds:G});let j=this.methodName;this.methodName=null;let q=[...[...s,...a,...o].map((N)=>N.value),...l.map((N)=>N.value).filter((N)=>!(u1(N)&&N.length>2))].filter((N)=>N!==void 0),{entries:t1,names:M}=this.scopedHoist(q,[],{declareInPlace:!1});this.mark(e,"$self",()=>{if(this.b.emit("class"),this.ts&&this._componentTypeParams){let{text:F,owner:J}=this._componentTypeParams;this.b.tsOnly(()=>this.mark(J,"typeParams",()=>this.emitTypeText(J,"typeParams",F)))}if(this.b.emit(` extends ${this.runtimeName("__Component")} { -`),O!==null)this.tsComponentMemberDeclares(O,Z);if(c.length>0)this.b.emit(`${Z}static __gates = [`),c.forEach((F,J)=>{if(J>0)this.b.emit(", ");if(!(this.ts&&O!==null&&O.members.some((n1)=>n1.node===F.node&&this.gateTwinSource(n1,O)!==null))){this.noteVocabulary("gate-prefix","stash",F.pathNode);for(let n1 of F.keyParts??[])this.noteSilence(n1,F.key)}this.mark(F.node,"$self",()=>{this.mark(F.node,"operator",()=>{}),this.mark(F.node,"rhs",()=>{if(F.key===null)this.emitQuotedPrimitive(F.path);else{if(this.b.emit("{ path: "),this.emitQuotedPrimitive(F.path),this.b.emit(", key: (params"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));if(this.b.emit(", query"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));this.b.emit(") => "),this.mark(F.node,"key",()=>{this.mark(F.key,"$self",()=>{if(F.keyParts===null){this.b.emit(F.keyCode);return}F.keyParts.forEach((n1,v)=>{if(v>0)this.b.emit(".");this.emitPrimitive(n1)})})}),this.b.emit(" }")}})})}),this.b.emit(`]; +`)}componentExpr(e){let[,t,r]=e,i=null;if(t!==null){let N=typeof t==="string"?t:null;if(N===null||!Q1(N)||N.includes("#"))throw this.positionedError(e,"emitter: 'component extends' takes an HTML tag — rest props forward onto the first '' element the "+`render creates; '${typeof t==="string"?t:"…"}' is not one (component-to-component inheritance is not a surface)`);i=N}if(this.ts){let N=this.stores.idOf(e)??null,C=N!==null?this.stores.selfSpan(N):null,w=this.b.source;if(C!==null&&w!==null&&w.startsWith("component",C[0])){if(this.silences.push([C[0],C[0]+9]),i!==null){let D=/^component(\s+)extends(\s+)/.exec(w.slice(C[0],C[1]));if(D!==null&&w.startsWith(i,C[0]+D[0].length)){let B=C[0]+9+D[1].length;this.silences.push([B,B+7]);let a1=C[0]+D[0].length;this.intrinsics.push({start:a1,end:a1+i.length,kind:"tag",tag:i,svg:!1})}}}}let n=u1(r)?r.slice(1):[],s=[],a=[],o=[],l=[],c=[],f=[],h=[],u=[],d=[],S=[],g=null,p=new Map,R=new Set,b=new Map,_=(N,C,w,D)=>{if(b.has(N))throw this.positionedError(w,`emitter: duplicate component member '${N}' — it is already declared in this component body; `+"duplicates clobber silently across kinds",e);if(s3.has(N))throw this.positionedError(w,`emitter: component member '${N}' collides with component runtime state — `+"the runtime owns this exact instance field; rename the member",e);if(N==="_init"||N==="_create"||N==="_setup"||/^create_block_\d+$/.test(N))throw this.positionedError(w,`emitter: component member '${N}' collides with the generated lifecycle machinery — '_init', `+"'_create', '_setup', and 'create_block_N' are the class methods the component lowering emits (a same-named member would silently replace the generated one at runtime); rename the member",e);if(N==="mount"||N==="unmount"||N==="emit")throw this.positionedError(w,`emitter: component member '${N}' collides with the component runtime API — 'mount', 'unmount', `+"and 'emit' are __Component's own methods, and the machinery calls them on every instance (a same-named member would silently shadow them); rename the member",e);if(b.set(N,w),C!=="hook"){if(p.set(N,C),D)R.add(N)}},y=(N)=>{let C="emitter: a component body line must be a member declaration — state (`x := v`, `@x := v`), a prop (`@x`, `@x?`), "+"computed (`x ~= e`), readonly (`x =! v`), a plain field (`x = v`), a method (`save = (e) ->`), a lifecycle hook "+"(beforeMount/mounted/beforeUnmount/unmounted/onError), an effect (`~> …`), `offer`/`accept`, or `render` — "+"this statement matches no category",w=this.b.source;if((!E(N)||this.stores.idOf(N)===null)&&w!==null){let D=(f1)=>{let z=E(f1)?this.stores.idOf(f1):null;return z!==null?this.stores.selfSpan(z):null},B=n.indexOf(N),a1=D(r),h1=null;for(let f1=B-1;f1>=0&&h1===null;f1--)h1=D(n[f1])?.[1]??null;if(h1===null)h1=a1?.[0]??null;if(h1!==null){while(h1h1&&/\s/.test(w[f1-1]))f1--;throw this.positionedErrorAt(h1,f1,C)}}throw this.positionedError(N,C,e)},m=(N,C,w,D)=>{let B=this.stores.idOf(N),a1=B!==null?this.stores.role(B,C):null;if(a1?.sourceStart!=null)throw this.positionedErrorAt(a1.sourceStart,a1.sourceEnd,D);throw this.positionedError(w,D,N,e)},k=(N,C)=>{if(this.isRenderNode(N)){if(C)O(N);if(g!==null)throw this.positionedError(N,"emitter: duplicate render block — a component takes exactly one",e);let w=T.findRenderControl(N);if(w!==null)throw this.positionedError(w,"emitter: a render body evaluates synchronously — 'await'/'yield' cannot appear in a render expression "+"(text, attributes, props, and event listeners emit into non-async generated scopes); compute the value into a member (a state written by an effect), or make the handler a function ('-> await ...')",N);g=N;return}if(this.isAcceptNode(N)){if(C)O(N);this.noteHeadKeyword("context-channel","accept",N),_(N[1],"accept",N,!0),S.push(N[1]);return}if(this.isGateDecl(N)){if(C)O(N);let w=T.memberTarget(N[1]);if(w===null)m(N,"target",N[1],"emitter: a render gate ('<~') target must be one private component name — patterns and member chains cannot name a gate");if(w.isPublic)m(N,"target",N[1],`emitter: render gate '${w.name}' must be private — '@${w.name} <~ …' would expose route-prefetched state as a caller prop; remove '@' and pass an explicit prop where public input is intended`);let D=T.gateSource(N);if(D.error==="arity")m(N,"key",D.node,"emitter: a keyed render gate takes exactly one key argument — use @stash.name(params.id)");if(D.error==="path")m(N,"rhs",D.node,"emitter: '<~' requires a literal @stash. on the right-hand side, optionally called with one key");if(D.error==="key")m(N,"key",D.node,"emitter: a keyed render gate key may only be a literal or a params/query path (for example params.id or @query.tab)");_(w.name,"gate",N,!0),c.push({name:w.name,...D,node:N});return}if(this.isReactiveDecl(N)){let w=T.memberTarget(N[1]);if(w===null)throw this.positionedError(N,`emitter: a component ${N[0]==="state"?"state":"computed"} member takes a plain name or '@name' — `+"patterns and member chains have no member reading ",e);if(N[0]==="state"){if(T.containsAwait(N[2])||T.containsYield(N[2]))throw this.positionedError(N,"emitter: a component state initializer cannot await or yield — _init runs synchronously during construction",e);_(w.name,"state",N,!0),o.push({name:w.name,value:N[2],isPublic:w.isPublic,required:!1,node:N})}else{if(T.containsAwait(N[2]))throw this.positionedError(N,"emitter: a computed ('~=') body cannot await — computeds evaluate synchronously (make it a state written by an effect)",e);if(T.containsYield(N[2]))throw this.positionedError(N,"emitter: a computed ('~=') body cannot yield — computeds evaluate synchronously",e);_(w.name,"computed",N,!0),l.push({name:w.name,value:N[2],node:N})}return}if(this.isReadonlyDecl(N)){let w=T.memberTarget(N[1]);if(w===null)throw this.positionedError(N,"emitter: a component readonly member takes a plain name or '@name' — patterns and member chains have no member reading ",e);_(w.name,"readonly",N,!1),s.push({name:w.name,value:N[2],isPublic:w.isPublic,node:N});return}if(this.isEffectDecl(N)){if(C)O(N);if(N[1]!==null)throw this.positionedError(N,`emitter: a bound effect ('${typeof N[1]==="string"?N[1]:"…"} ~> …') has no component-body reading — `+"the handle would bind nothing; use a bare `~> …` effect, or bind the handle inside a method",e);if(T.effectBodyYields(N[2]))throw this.positionedError(N,"emitter: an effect ('~>') body cannot yield — the runtime calls the effect function (make the generator a named function the effect calls)",N);u.push(N);return}if(E(N)&&N[0]==="?"&&N.length===2){let w=T.memberTarget(N[1]);if(w!==null&&w.isPublic){_(w.name,"prop",N,!0),o.push({name:w.name,value:void 0,isPublic:!0,required:!1,optional:!0,node:N});return}y(N)}if(T.isTypedWrapper(N)){let w=T.memberTarget(N[1]);if(w!==null&&w.isPublic){_(w.name,"prop",N,!0),o.push({name:w.name,value:void 0,isPublic:!0,required:!0,node:N});return}y(N)}if(E(N)&&N[0]==="."&&N[1]==="this"&&N.length===3&&typeof N[2]==="string"){_(N[2],"prop",N,!0),o.push({name:N[2],value:void 0,isPublic:!0,required:!0,node:N});return}if(E(N)&&(N[0]==="="||N[0]==="void-assign")&&N.length===3){let w=T.memberTarget(N[1]);if(w===null)y(N);let D=N[0]==="void-assign";if(T.COMPONENT_HOOKS.has(w.name)){if(C)O(N);if(!T1(N[2]))throw this.positionedError(N,`emitter: the lifecycle hook '${w.name}' takes a function value — \`${w.name} = -> …\``,e);_(w.name,"hook",N,!1),h.push({name:w.name,func:N[2],isVoid:D,node:N});return}if(T1(N[2])){_(w.name,"method",N,!1),f.push({name:w.name,func:N[2],isVoid:D,node:N});return}if(D)throw this.positionedError(N,"emitter: the void marker (a trailing '!' on the defined name) requires a function value — `save! = ->`",e);_(w.name,"plain",N,!1),a.push({name:w.name,value:N[2],isPublic:w.isPublic,node:N});return}if(O1(N)){if(C)O(N);for(let w of N.slice(1)){if(!E(w)||w[0]!==":"&&w[0]!=="void-pair"||typeof w[1]!=="string"||!T1(w[2]))y(N);let D=w[0]==="void-pair";if(T.COMPONENT_HOOKS.has(w[1]))_(w[1],"hook",N,!1),h.push({name:w[1],func:w[2],isVoid:D,node:w});else _(w[1],"method",N,!1),f.push({name:w[1],func:w[2],isVoid:D,node:w})}return}y(N)},O=(N)=>{throw this.positionedError(N,"emitter: offer takes a member DECLARATION — `offer theme := v`, `offer limit =! v`, `offer total ~= e`, "+"`offer save = (e) ->` — anything else has no context key to publish",e)};for(let N of n){if(this.isOfferNode(N)){let C=N[1];if(!(this.isReactiveDecl(C)||this.isReadonlyDecl(C)||E(C)&&(C[0]==="="||C[0]==="void-assign")&&C.length===3&&T.memberTarget(C[1])!==null))O(N);this.noteHeadKeyword("context-channel","offer",N),k(C,!0);let D=T.memberTarget(C[1]);d.push(D.name);continue}k(N,!1)}let A=[];for(let{name:N,isPublic:C}of[...o,...s,...a])if(C)A.push(N);if(i!==null){if(b.has("rest"))throw this.positionedError(b.get("rest"),"emitter: a component that extends a tag cannot declare a member named 'rest' — `@rest` is the reactive "+"view of the undeclared caller props (the rest-forwarding seam)",e);p.set("rest","rest"),R.add("rest")}if(this.scopes.length===1&&typeof this._componentName==="string"){let N=this.moduleComponentNames.get(this._componentName);if(N!==void 0&&N!==e)throw this.positionedError(e,`emitter: component '${this._componentName}' is bound more than once at module scope — rebinding `+"clobbers the first class silently (existing instances keep the old identity) and the typed artifacts would merge two same-named companion interfaces; give each component its own name");this.moduleComponentNames.set(this._componentName,e)}let x=this.ts&&this.scopes.length===1&&typeof this._componentName==="string"?`__${this._componentName}__computed`:null,I=this.ts?bn(this.stores,this.b.source,e,x):null;if(I)I.appStashSpec=this.appStashSpec,I.routesUnion=this.routesUnion,I.routeParams=this.routeParams;if(I!==null)this.componentInfo.set(e,I);let H=new Map;for(let N of I?.members??[]){let C=T.memberLabel(N);if(C!==null)H.set(N.name,{label:C,optional:N.optional===!0})}if(i!==null)H.set("rest",{label:"rest",optional:!1});let G={members:p,memberReactive:R,memberKinds:H,name:this._componentName,extendsTag:i,plainWrites:new Map,renderPlainReads:new Set},K=this.ind,Z=" ".repeat(K+1),V=Z+" ";this.cframes.push(G),this.rframes.push({reactive:new Set,bound:new Set,members:p,memberReactive:R,memberKinds:H});let j=this.methodName;this.methodName=null;let q=[...[...s,...a,...o].map((N)=>N.value),...l.map((N)=>N.value).filter((N)=>!(u1(N)&&N.length>2))].filter((N)=>N!==void 0),{entries:t1,names:M}=this.scopedHoist(q,[],{declareInPlace:!1});this.mark(e,"$self",()=>{if(this.b.emit("class"),this.ts&&this._componentTypeParams){let{text:F,owner:J}=this._componentTypeParams;this.b.tsOnly(()=>this.mark(J,"typeParams",()=>this.emitTypeText(J,"typeParams",F)))}if(this.b.emit(` extends ${this.runtimeName("__Component")} { +`),I!==null)this.tsComponentMemberDeclares(I,Z);if(c.length>0)this.b.emit(`${Z}static __gates = [`),c.forEach((F,J)=>{if(J>0)this.b.emit(", ");if(!(this.ts&&I!==null&&I.members.some((n1)=>n1.node===F.node&&this.gateTwinSource(n1,I)!==null))){this.noteVocabulary("gate-prefix","stash",F.pathNode);for(let n1 of F.keyParts??[])this.noteSilence(n1,F.key)}this.mark(F.node,"$self",()=>{this.mark(F.node,"operator",()=>{}),this.mark(F.node,"rhs",()=>{if(F.key===null)this.emitQuotedPrimitive(F.path);else{if(this.b.emit("{ path: "),this.emitQuotedPrimitive(F.path),this.b.emit(", key: (params"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));if(this.b.emit(", query"),this.ts)this.b.tsOnly(()=>this.b.emit(": Record"));this.b.emit(") => "),this.mark(F.node,"key",()=>{this.mark(F.key,"$self",()=>{if(F.keyParts===null){this.b.emit(F.keyCode);return}F.keyParts.forEach((n1,v)=>{if(v>0)this.b.emit(".");this.emitPrimitive(n1)})})}),this.b.emit(" }")}})})}),this.b.emit(`]; `);if(A.length>0)this.b.emit(`${Z}static __props = [${A.map((F)=>`'${F}'`).join(", ")}]; `);if(i!==null)this.b.emit(`${Z}static __extends = `),this.emitQuotedPrimitive(i),this.b.emit(`; -`);if(this.hmr&&this.modulePath&&this.scopes.length===1&&typeof this._componentName==="string")this.emitComponentHmrMeta(Z,{bindingName:this._componentName,declaredProps:A,stateVars:o,derivedVars:l,gateVars:c,extendsTag:i,methods:f,hooks:h,hasRender:g!==null});if(O!==null)this.tsComponentCtor(O,Z);if(this.b.emit(`${Z}_init(props`),O!==null)this.b.tsOnly(()=>{this.b.emit(": "),this.emitDeclaredTypeCopies(Os(O,{road:"face"}))});if(this.b.emit(`) { -`),this.scopes.push(M),this.rframes.push({reactive:new Set,bound:M}),t1.length)this.b.emit(W),this.hoistLine(t1,W),this.b.emit(` -`);let N=(F,J)=>{this.renderDirectives(F,W),this.b.emit(W),this.mark(F,"$self",J),this.b.emit(`; -`)},C=(F,J)=>{this.mark(F,"value",()=>this.withExpression(()=>{let o1=T.needsGrouping(J,"operand");if(o1)this.b.emit("(");if(this.expr(J),o1)this.b.emit(")")}))},w=(F,J,o1="target")=>{let n1=this.b.offset;if(this.b.emit("this."),this.mark(F,o1,()=>this.b.emit(J)),this.ts){let v=this.stores.idOf(F),P=v!==null?this.stores.role(v,o1):null;if(P&&typeof P.sourceStart==="number")this.memberInitSites.push({key:[P.sourceStart,P.sourceEnd],site:[n1,this.b.offset]})}},D=new Set(s),B=[];if(O!==null)O.computedBodies=B;let a1=(F)=>{if(N(F.node,()=>{if(D.has(F)&&this.ts){let o1=O?.members.find((n1)=>n1.node===F.node&&n1.kind==="readonly");this.b.tsOnly(()=>this.b.emit("(")),this.b.emit("this"),this.b.tsOnly(()=>{this.b.emit(" as "),this.emitDeclaredTypeCopies(o1?Ps(o1):"any"),this.b.emit(")")}),this.b.emit("."),this.mark(F.node,"target",()=>this.b.emit(F.name))}else w(F.node,F.name);if(this.b.emit(" = "),F.isPublic)this.b.emit(`props.${F.name} ?? `);let J=this._componentName;if(this.isComponentDecl(F.value))this._componentName=F.name;C(F.node,F.value),this._componentName=J}),x!==null&&O!==null){let J=O.members.find((o1)=>o1.node===F.node&&o1.kind==="plain");if(J!==void 0&&Fs(J)){let o1=this.capturedExprText(()=>C(F.node,F.value));B.push({name:F.name,code:o1,block:!1})}}},h1=(F)=>{let J=b.get(F);N(J,()=>{w(J,F,"name"),this.b.emit(` = ${this.runtimeName("getContext")}('${F}')`)})},f1=(F)=>{N(F.node,()=>{if(w(F.node,F.name,F.value===void 0?"property":"target"),this.b.emit(` = ${this.runtimeName("__state")}(`),F.isPublic&&(F.required||F.value===void 0)){if(this.b.emit(`props.__bind_${F.name}__ ?? props.${F.name}`),F.required&&this.ts)this.b.tsOnly(()=>this.b.emit("!"))}else if(F.isPublic)this.b.emit(`props.__bind_${F.name}__ ?? props.${F.name} ?? `),C(F.node,F.value);else C(F.node,F.value);this.b.emit(")")})},z=(F)=>{if(N(F.node,()=>{w(F.node,F.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(F.node,"value",()=>this.withExpression(()=>this.computedBody(F.node,F.value,V+2))),this.b.emit(")")}),x===null||O===null)return;let J=O.members.find((n1)=>n1.node===F.node&&n1.kind==="computed");if(J===void 0||J.annotation!=null)return;let o1=this.capturedExprText(()=>this.computedBody(F.node,F.value,0));B.push({name:F.name,code:o1,block:u1(F.value)&&F.value.length>2})},i1=(F,J)=>{N(F.node,()=>{w(F.node,F.name),this.b.emit(` = ${this.runtimeName("__gateBind")}(`),this.mark(F.node,"operator",()=>{}),this.mark(F.node,"rhs",()=>{this.b.emit(`this, ${J}`)}),this.b.emit(")")})},X=new Map;n.forEach((F,J)=>{if(X.set(F,J),this.isOfferNode(F))X.set(F[1],J)});let r1=[...[...s,...a].map((F)=>({at:X.get(F.node)??0,run:()=>a1(F)})),...S.map((F)=>({at:X.get(b.get(F))??0,run:()=>h1(F)})),...o.map((F)=>({at:X.get(F.node)??0,run:()=>f1(F)})),...l.map((F)=>({at:X.get(F.node)??0,run:()=>z(F)}))].sort((F,J)=>F.at-J.at);for(let[F,J]of c.entries())i1(J,F);for(let F of r1)F.run();for(let F of m)N(b.get(F),()=>this.b.emit(`${this.runtimeName("setContext")}('${F}', this.${F})`));let Q=(F)=>{for(let J of u){let o1=J[2],n1=T.containsAwait(o1);this.b.emit(F),this.mark(J,"$self",()=>{if(this.mark(J,"operator",()=>this.b.emit(this.runtimeName("__effect"))),this.b.emit(n1?"(async () => ":"(() => "),u1(o1)&&o1.length>2)this.mark(J,"value",()=>this.withExpression(()=>{let v=this.liveStmts(o1.slice(1),{forwards:!0}),{entries:P,names:H}=this.scopedHoist(v,[]);for(let s1 of this.pushReactiveFrame(v,H))H.add(s1);this.scopes.push(H),this.funcBlock(J,o1,v,V+2,P),this.scopes.pop(),this.rframes.pop()}));else{let v=u1(o1)?o1[1]:o1,{entries:P,names:H}=this.scopedHoist([v],[]);if(this.scopes.push(H),this.rframes.push({reactive:new Set,bound:H}),this.b.emit("{ "),P.length)this.hoistLine(P),this.b.emit(" ");this.b.emit("return "),this.mark(J,"value",()=>this.withExpression(()=>{let s1=T.needsGrouping(v,"operand")||O1(v);if(s1)this.b.emit("(");if(this.expr(v),s1)this.b.emit(")")})),this.b.emit("; }"),this.scopes.pop(),this.rframes.pop()}this.b.emit(")")}),this.b.emit(`; -`)}};if(this.hmr&&u.length>0)this.b.emit(`${W}this._hmrBindEffects(); -`);else Q(W);if(this.rframes.pop(),this.scopes.pop(),this.b.emit(`${Z}} +`);if(this.hmr&&this.modulePath&&this.scopes.length===1&&typeof this._componentName==="string")this.emitComponentHmrMeta(Z,{bindingName:this._componentName,declaredProps:A,stateVars:o,derivedVars:l,gateVars:c,extendsTag:i,methods:f,hooks:h,hasRender:g!==null});if(I!==null)this.tsComponentCtor(I,Z);if(this.b.emit(`${Z}_init(props`),I!==null)this.b.tsOnly(()=>{this.b.emit(": "),this.emitDeclaredTypeCopies(Os(I,{road:"face"}))});if(this.b.emit(`) { +`),this.scopes.push(M),this.rframes.push({reactive:new Set,bound:M}),t1.length)this.b.emit(V),this.hoistLine(t1,V),this.b.emit(` +`);let N=(F,J)=>{this.renderDirectives(F,V),this.b.emit(V),this.mark(F,"$self",J),this.b.emit(`; +`)},C=(F,J)=>{this.mark(F,"value",()=>this.withExpression(()=>{let o1=T.needsGrouping(J,"operand");if(o1)this.b.emit("(");if(this.expr(J),o1)this.b.emit(")")}))},w=(F,J,o1="target")=>{let n1=this.b.offset;if(this.b.emit("this."),this.mark(F,o1,()=>this.b.emit(J)),this.ts){let v=this.stores.idOf(F),P=v!==null?this.stores.role(v,o1):null;if(P&&typeof P.sourceStart==="number")this.memberInitSites.push({key:[P.sourceStart,P.sourceEnd],site:[n1,this.b.offset]})}},D=new Set(s),B=[];if(I!==null)I.computedBodies=B;let a1=(F)=>{if(N(F.node,()=>{if(D.has(F)&&this.ts){let o1=I?.members.find((n1)=>n1.node===F.node&&n1.kind==="readonly");this.b.tsOnly(()=>this.b.emit("(")),this.b.emit("this"),this.b.tsOnly(()=>{this.b.emit(" as "),this.emitDeclaredTypeCopies(o1?Ps(o1):"any"),this.b.emit(")")}),this.b.emit("."),this.mark(F.node,"target",()=>this.b.emit(F.name))}else w(F.node,F.name);if(this.b.emit(" = "),F.isPublic)this.b.emit(`props.${F.name} ?? `);let J=this._componentName;if(this.isComponentDecl(F.value))this._componentName=F.name;C(F.node,F.value),this._componentName=J}),x!==null&&I!==null){let J=I.members.find((o1)=>o1.node===F.node&&o1.kind==="plain");if(J!==void 0&&Fs(J)){let o1=this.capturedExprText(()=>C(F.node,F.value));B.push({name:F.name,code:o1,block:!1})}}},h1=(F)=>{let J=b.get(F);N(J,()=>{w(J,F,"name"),this.b.emit(` = ${this.runtimeName("getContext")}('${F}')`)})},f1=(F)=>{N(F.node,()=>{if(w(F.node,F.name,F.value===void 0?"property":"target"),this.b.emit(` = ${this.runtimeName("__state")}(`),F.isPublic&&(F.required||F.value===void 0)){if(this.b.emit(`props.__bind_${F.name}__ ?? props.${F.name}`),F.required&&this.ts)this.b.tsOnly(()=>this.b.emit("!"))}else if(F.isPublic)this.b.emit(`props.__bind_${F.name}__ ?? props.${F.name} ?? `),C(F.node,F.value);else C(F.node,F.value);this.b.emit(")")})},z=(F)=>{if(N(F.node,()=>{w(F.node,F.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(F.node,"value",()=>this.withExpression(()=>this.computedBody(F.node,F.value,K+2))),this.b.emit(")")}),x===null||I===null)return;let J=I.members.find((n1)=>n1.node===F.node&&n1.kind==="computed");if(J===void 0||J.annotation!=null)return;let o1=this.capturedExprText(()=>this.computedBody(F.node,F.value,0));B.push({name:F.name,code:o1,block:u1(F.value)&&F.value.length>2})},i1=(F,J)=>{N(F.node,()=>{w(F.node,F.name),this.b.emit(` = ${this.runtimeName("__gateBind")}(`),this.mark(F.node,"operator",()=>{}),this.mark(F.node,"rhs",()=>{this.b.emit(`this, ${J}`)}),this.b.emit(")")})},X=new Map;n.forEach((F,J)=>{if(X.set(F,J),this.isOfferNode(F))X.set(F[1],J)});let r1=[...[...s,...a].map((F)=>({at:X.get(F.node)??0,run:()=>a1(F)})),...S.map((F)=>({at:X.get(b.get(F))??0,run:()=>h1(F)})),...o.map((F)=>({at:X.get(F.node)??0,run:()=>f1(F)})),...l.map((F)=>({at:X.get(F.node)??0,run:()=>z(F)}))].sort((F,J)=>F.at-J.at);for(let[F,J]of c.entries())i1(J,F);for(let F of r1)F.run();for(let F of d)N(b.get(F),()=>this.b.emit(`${this.runtimeName("setContext")}('${F}', this.${F})`));let Q=(F)=>{for(let J of u){let o1=J[2],n1=T.containsAwait(o1);this.b.emit(F),this.mark(J,"$self",()=>{if(this.mark(J,"operator",()=>this.b.emit(this.runtimeName("__effect"))),this.b.emit(n1?"(async () => ":"(() => "),u1(o1)&&o1.length>2)this.mark(J,"value",()=>this.withExpression(()=>{let v=this.liveStmts(o1.slice(1),{forwards:!0}),{entries:P,names:W}=this.scopedHoist(v,[]);for(let s1 of this.pushReactiveFrame(v,W))W.add(s1);this.scopes.push(W),this.funcBlock(J,o1,v,K+2,P),this.scopes.pop(),this.rframes.pop()}));else{let v=u1(o1)?o1[1]:o1,{entries:P,names:W}=this.scopedHoist([v],[]);if(this.scopes.push(W),this.rframes.push({reactive:new Set,bound:W}),this.b.emit("{ "),P.length)this.hoistLine(P),this.b.emit(" ");this.b.emit("return "),this.mark(J,"value",()=>this.withExpression(()=>{let s1=T.needsGrouping(v,"operand")||O1(v);if(s1)this.b.emit("(");if(this.expr(v),s1)this.b.emit(")")})),this.b.emit("; }"),this.scopes.pop(),this.rframes.pop()}this.b.emit(")")}),this.b.emit(`; +`)}};if(this.hmr&&u.length>0)this.b.emit(`${V}this._hmrBindEffects(); +`);else Q(V);if(this.rframes.pop(),this.scopes.pop(),this.b.emit(`${Z}} `),this.hmr&&u.length>0)this.b.emit(`${Z}_hmrBindEffects() { -`),this.scopes.push(M),this.rframes.push({reactive:new Set,bound:M}),Q(W),this.rframes.pop(),this.scopes.pop(),this.b.emit(`${Z}} +`),this.scopes.push(M),this.rframes.push({reactive:new Set,bound:M}),Q(V),this.rframes.pop(),this.scopes.pop(),this.b.emit(`${Z}} `);if(this.hmr&&l.length>0){this.b.emit(`${Z}_hmrRefreshComputeds() { -`),this.scopes.push(M),this.rframes.push({reactive:new Set,bound:M});for(let F of l)this.b.emit(`${W}this.${F.name}?.kill?.(); -`),this.b.emit(W),w(F.node,F.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(F.node,"value",()=>this.withExpression(()=>this.computedBody(F.node,F.value,V+2))),this.b.emit(`); +`),this.scopes.push(M),this.rframes.push({reactive:new Set,bound:M});for(let F of l)this.b.emit(`${V}this.${F.name}?.kill?.(); +`),this.b.emit(V),w(F.node,F.name),this.b.emit(` = ${this.runtimeName("__computed")}(() => `),this.mark(F.node,"value",()=>this.withExpression(()=>this.computedBody(F.node,F.value,K+2))),this.b.emit(`); `);this.rframes.pop(),this.scopes.pop(),this.b.emit(`${Z}} -`)}let l1=new Map;if(this.ts&&g!==null){let F=(J,o1)=>{if(!E(J))return;let n1=o1,v=J[0]==="switch"&&J.length===4?null:T.templateHeadTag(J);if(v==="object")n1=O1(J)&&J.slice(1).some((P)=>E(P)&&P[0]===":")?o1:null;else if(v!==null&&Ae.has(v))n1={tag:v,svg:o1?.svg===!0||en.has(v)};else if(typeof J[0]==="string"&&/^[A-Z]/.test(J[0]))n1=null;if(J[0]===":"&&J.length===3&&E(J[1])&&J[1][0]==="."&&J[1][1]==="this"&&typeof J[1][2]==="string"&&Mt.has(J[1][2])){let P=J[2],H=typeof P==="string"&&d.has(P)?P:E(P)&&P[0]==="."&&P[1]==="this"&&P.length===3&&typeof P[2]==="string"&&d.has(P[2])?P[2]:null;if(H!==null){if(!l1.has(H))l1.set(H,{events:new Set,hosts:new Set,unknownHost:!1});let s1=l1.get(H);if(s1.events.add(J[1][2]),o1!==null&&rt(o1.tag,o1.svg))s1.hosts.add(Oe(o1.tag,o1.svg));else s1.unknownHost=!0}}for(let P of J)F(P,n1)};F(g,null)}let c1=({name:F,func:J,isVoid:o1,node:n1})=>{let[,v,P]=J,H=l1.get(F),s1=H!==void 0&&!H.unknownHost&&H.hosts.size>0?[...H.hosts].join(" | "):null,L=H!==void 0?this.tsEventTypeText([...H.events],s1):F==="onError"?Ms:null;this.b.emit(Z),this.mark(n1,"$self",()=>{if(T.containsAwait(P))this.b.emit("async ");if(T.containsYield(P))this.b.emit("*");this.mark(n1,"target",()=>this.mark(n1,"key",()=>this.b.emit(F))),this.b.emit("("),this.emitParams(v,L),this.b.emit(")"),this.tsReturnAnnotation(J,T.containsAwait(P),o1,T.containsYield(P),n1),this.b.emit(" "),this.mark(n1,"value",()=>{this.methodBlock(J,P,V+1,{isConstructor:!1,binds:[],methodName:F,voidBody:o1})})}),this.b.emit(` -`)};for(let F of f)c1(F);for(let F of h)c1(F);if(g!==null)this.renderBody(g,V,K);if(i!==null&&K.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${i}' but its render never creates a '<${i}>' element `+"at class scope — rest props forward onto the FIRST class-scope element of the extended tag (at any "+"nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");this.b.emit(" ".repeat(V)+"}")}),this.methodName=j;for(let[N,C]of K.plainWrites)if(K.renderPlainReads.has(N))throw this.positionedError(C,`emitter: writing to '${N}' silently freezes the render — it is a plain ('=') member and render `+"reads it, but render never re-runs for a non-reactive field; declare it with ':=' (state) if it changes");this.rframes.pop(),this.cframes.pop(),this.ind=V}renderBody(e,t,r){let i=" ".repeat(t+1),n=i+" ",s=this.rstate,a={kind:"class",name:null,parent:null,self:null,creates:[],setups:[],vars:null,locals:new Set,localDecls:new Map,bindings:new Set,refs:[],loopStack:[],stmts:[],forceNonStatic:!1,root:null,originNode:e,renameHazardNames:new Set};this.rstate={elCount:0,textCount:0,blockCount:0,svgDepth:0,fragChildren:new Map,tags:new Map,svgEls:new Set,pendingClassArgs:null,pendingClassEl:null,pad:n,frame:r,node:e,records:[],sink:a,classRecord:a,transitionSlot:null,suppressedPairs:new Set,slotSeen:!1};let o=e[1],l=u1(o)?o.slice(1):[o];a.stmts=l,this.rframes.push({reactive:new Set,bound:a.bindings});let c;try{c=this.walkRenderRoot(l,a)}finally{this.rframes.pop()}if(this.closeRenderScope(a),this.b.emit(`${i}_create() { +`)}let l1=new Map;if(this.ts&&g!==null){let F=(J,o1)=>{if(!E(J))return;let n1=o1,v=J[0]==="switch"&&J.length===4?null:T.templateHeadTag(J);if(v==="object")n1=O1(J)&&J.slice(1).some((P)=>E(P)&&P[0]===":")?o1:null;else if(v!==null&&Ae.has(v))n1={tag:v,svg:o1?.svg===!0||en.has(v)};else if(typeof J[0]==="string"&&/^[A-Z]/.test(J[0]))n1=null;if(J[0]===":"&&J.length===3&&E(J[1])&&J[1][0]==="."&&J[1][1]==="this"&&typeof J[1][2]==="string"&&Mt.has(J[1][2])){let P=J[2],W=typeof P==="string"&&p.has(P)?P:E(P)&&P[0]==="."&&P[1]==="this"&&P.length===3&&typeof P[2]==="string"&&p.has(P[2])?P[2]:null;if(W!==null){if(!l1.has(W))l1.set(W,{events:new Set,hosts:new Set,unknownHost:!1});let s1=l1.get(W);if(s1.events.add(J[1][2]),o1!==null&&rt(o1.tag,o1.svg))s1.hosts.add(Oe(o1.tag,o1.svg));else s1.unknownHost=!0}}for(let P of J)F(P,n1)};F(g,null)}let c1=({name:F,func:J,isVoid:o1,node:n1})=>{let[,v,P]=J,W=l1.get(F),s1=W!==void 0&&!W.unknownHost&&W.hosts.size>0?[...W.hosts].join(" | "):null,L=W!==void 0?this.tsEventTypeText([...W.events],s1):F==="onError"?Ms:null;this.b.emit(Z),this.mark(n1,"$self",()=>{if(T.containsAwait(P))this.b.emit("async ");if(T.containsYield(P))this.b.emit("*");this.mark(n1,"target",()=>this.mark(n1,"key",()=>this.b.emit(F))),this.b.emit("("),this.emitParams(v,L),this.b.emit(")"),this.tsReturnAnnotation(J,T.containsAwait(P),o1,T.containsYield(P),n1),this.b.emit(" "),this.mark(n1,"value",()=>{this.methodBlock(J,P,K+1,{isConstructor:!1,binds:[],methodName:F,voidBody:o1})})}),this.b.emit(` +`)};for(let F of f)c1(F);for(let F of h)c1(F);if(g!==null)this.renderBody(g,K,G);if(i!==null&&G.inheritedBound!==!0)throw this.positionedError(e,`emitter: this component extends '${i}' but its render never creates a '<${i}>' element `+"at class scope — rest props forward onto the FIRST class-scope element of the extended tag (at any "+"nesting depth; conditional branches and loop rows never bind it), and without one every caller prop lands nowhere");this.b.emit(" ".repeat(K)+"}")}),this.methodName=j;for(let[N,C]of G.plainWrites)if(G.renderPlainReads.has(N))throw this.positionedError(C,`emitter: writing to '${N}' silently freezes the render — it is a plain ('=') member and render `+"reads it, but render never re-runs for a non-reactive field; declare it with ':=' (state) if it changes");this.rframes.pop(),this.cframes.pop(),this.ind=K}renderBody(e,t,r){let i=" ".repeat(t+1),n=i+" ",s=this.rstate,a={kind:"class",name:null,parent:null,self:null,creates:[],setups:[],vars:null,locals:new Set,localDecls:new Map,bindings:new Set,refs:[],loopStack:[],stmts:[],forceNonStatic:!1,root:null,originNode:e,renameHazardNames:new Set};this.rstate={elCount:0,textCount:0,blockCount:0,svgDepth:0,fragChildren:new Map,tags:new Map,svgEls:new Set,pendingClassArgs:null,pendingClassEl:null,pad:n,frame:r,node:e,records:[],sink:a,classRecord:a,transitionSlot:null,suppressedPairs:new Set,slotSeen:!1};let o=e[1],l=u1(o)?o.slice(1):[o];a.stmts=l,this.rframes.push({reactive:new Set,bound:a.bindings});let c;try{c=this.walkRenderRoot(l,a)}finally{this.rframes.pop()}if(this.closeRenderScope(a),this.b.emit(`${i}_create() { `),this.mark(e,"$self",()=>this.mark(e,"body",()=>{this.withRecordContext(a,()=>{if(a.locals.size>0)this.b.emit(`${n}let ${[...a.locals].join(", ")}; `);this.replayCreates(a,n)}),this.b.emit(`${n}return ${c}; `)})),this.b.emit(`${i}} @@ -186,26 +186,26 @@ ${s??""}`);let h=()=>{if(f)this.b.emit(f);else this.expr(i)};if(this.b.emit("for `);for(let f of this.rstate.records)this.emitFactory(f,t,e);this.rstate=s}walkRenderRoot(e,t){if(e.length===0||e.length===1&&e[0]==="null")return"null";let r=this.walkChildStmts(e);if(t.kind==="class"&&this.rstate.fragChildren.has(r))this.renderLine(null,()=>this.b.emit(`this._nodes = [...${r}.childNodes]`));return r}walkChildStmts(e){let t=this.rstate,r=()=>{if(t.transitionSlot!==null&&t.transitionSlot.record===t.sink)t.transitionSlot=null},i=e.reduce((a,o)=>a+(this.isRenderBinding(o)?0:1),0);if(i===0){for(let o of e)this.renderNode(o);let a=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${a} = document.createComment('')`)),a}if(i===1){let a=null;for(let o of e){let l=this.renderNode(o);if(l!=null)a=l,r()}return a}let n=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${n} = document.createDocumentFragment()`));let s=[];for(let a of e){let o=this.renderNode(a);if(o==null)continue;r(),this.renderLine(null,()=>this.b.emit(`${n}.appendChild(${o})`)),s.push(o)}return this.rstate.fragChildren.set(n,s),n}withRecordContext(e,t){let r=this.renderSelf,i=this.renderRecord;this.renderSelf=e.self,this.renderRecord=e,this.rframes.push({reactive:new Set,bound:e.bindings,loopVars:e.bindings});try{t()}finally{this.rframes.pop(),this.renderSelf=r,this.renderRecord=i}}renderDirectives(e,t){if(!this.ts||!this.tsDirectivesArmed||e==null||!E(e))return;let r=this.tsDirectiveMap.get(e);if(r===void 0)return;this.tsDirectiveMap.delete(e);for(let i of r)this.tsDirectiveLine(i,t,!0)}replayCreates(e,t){let r=this.replayPad;this.replayPad=t;try{for(let{node:i,fn:n,semi:s}of e.creates){if(this.renderDirectives(i,t),this.b.emit(t),i!=null)this.mark(i,"$self",n);else n();this.b.emit(s?`; `:` `)}}finally{this.replayPad=r}}replaySetups(e,t){for(let r of e.setups)if(r.kind==="effect"){this.renderDirectives(r.node,t),this.b.emit(t);let i=()=>{this.b.emit(`${this.runtimeName("__effect")}(() => { `),this.narrowGuard(),r.fn(),this.b.emit(" })")};if(r.node!=null)this.mark(r.node,"$self",i);else i();this.b.emit(`; -`)}else{if(r.node!=null)this.renderDirectives(r.node,t);r.fn(t)}}renderLine(e,t,r=!0){this.rstate.sink.creates.push({node:e,fn:t,semi:r})}newRenderVar(e="el"){let t=this.rstate.elCount++,r=this.rstate.sink;if(r.kind==="class")return`this._${e}${t}`;let i=`_${e}${t}`;return r.vars.add(i),i}newRenderText(){let e=this.rstate.textCount++,t=this.rstate.sink;if(t.kind==="class")return`this._t${e}`;let r=`_t${e}`;return t.vars.add(r),r}newBlockName(){let e;do e=`create_block_${this.rstate.blockCount++}`;while(this.rstate.frame.members.has(e));return e}renderEffect(e,t,r){if(r!==void 0)this.checkSetupLocalRefs(r,e);this.rstate.sink.setups.push({kind:"effect",node:e,fn:t})}checkSetupLocalRefs(e,t){let r=this.rstate.sink;if(r.kind!=="class"||r.locals.size===0)return;if($e(e,r.locals))throw this.positionedError(t??e,"emitter: a render local cannot appear in a LIVE binding or a dynamic block head at the render top level — "+"locals live in _create() and reactive machinery lives in _setup() (a compiled read here would be a mount-time ReferenceError); bind the value to a member instead",E(e)?e:this.rstate.node)}renderExpr(e){let t=null;return this.withExpression(()=>{let r=T.needsGrouping(e,"operand");if(r)this.b.emit("(");let i=this.b.offset;if(this.expr(e),t=[i,this.b.offset],r)this.b.emit(")")}),t}renderVarKind(e,t){let r=this.rstate;if(!r)return null;if(r.sink.locals.has(e))return"local";for(let i=r.sink.loopStack.length-1;i>=0;i--){let n=r.sink.loopStack[i];if(n.itemVar===e||n.indexVar===e)return n.reactiveSource?"loop-reactive":"loop"}if(t!==void 0){for(let i=r.sink.parent;i;i=i.parent)if(i.locals.has(e))throw this.positionedError(t,`emitter: render local '${e}' is not visible here — each dynamic block (a conditional branch, a loop body) `+"is its own factory function, and render locals never cross that boundary; declare the local inside this block, or use a member",this.rstate.node)}return null}renderReactive(e){if(typeof e==="string"){let n=this.renderVarKind(e);if(n!==null)return n==="loop-reactive";let s=this.resolveBareRead(e);return s==="reactive"||s==="member-reactive"}if(!E(e))return!1;if(e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return this.memberIsReactive(e[2]);let t=(n)=>{if(typeof n!=="string"||n==="this"||this.renderVarKind(n)!==null)return!1;let s=this.resolveBareRead(n);return s==="member"||s===null&&(this.inScope(n)||this.moduleBound!==void 0&&this.moduleBound.has(n))},r=(n)=>{while(E(n)&&(n[0]==="."||n[0]==="[]")&&n.length===3)n=n[1];return n==="this"||t(n)},i=(n)=>{while(E(n)&&(n[0]==="."||n[0]==="[]"||n[0]==="?."||n[0]==="optindex")&&n.length===3)n=n[1];return typeof n==="string"&&this.renderVarKind(n)==="loop-reactive"};if(e[0]==="."&&e.length===3&&r(e[1]))return!0;if((e[0]==="."||e[0]==="[]")&&e.length===3&&i(e))return!0;if(E(e[0])&&e[0][0]==="."&&e[0][1]==="this"&&typeof e[0][2]==="string"&&this.cframes.length>0&&this.cframes[this.cframes.length-1].members.has(e[0][2]))return!0;return e.some((n)=>this.renderReactive(n))}isRenderBinding(e){return E(e)&&Hs.has(e[0])&&e.length===3&&typeof e[1]==="string"&&st.test(e[1])}renderNode(e){if(this.isRenderBinding(e))return this.renderBinding(e);if(E(e)&&nt(e[0])&&e.length===3)throw this.positionedError(e,"emitter: an assignment at a render child position must declare a render local (`name = expr` / compound forms "+"on a plain name) — member and chain writes have no render reading here; put the write in a handler or method");if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){let o=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${e})`)),o}let i=this.renderVarKind(e,e);if(i!==null){let o=this.newRenderText();if(i==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>this.b.emit(`${o}.data = ${e};`));else this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(String(${e}))`));return o}let n=this.resolveBareRead(e);if(n==="reactive"||n==="member-reactive"){let o=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(e),this.b.emit(";")}),o}if(e==="slot")return this.renderSlot(e,[]);if(lt(e))return this.renderChildComponent(e,e,[]);if(n==="member"){let o=this.newRenderText();return this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(e),this.b.emit("))")}),o}let[s,a]=e.split("#");return this.renderTag(e,s||"div",[],[],a)}if(!E(e))throw this.positionedError(e,"emitter: unsupported render child");let t=e[0],r=typeof t==="string"?t:null;if(r==="if"&&e.length>=3)return this.renderCond(e);if(r==="switch"&&e.length===4)return this.renderSwitch(e);if(r==="for-in"&&e.length===6)return this.renderLoop(e);if(r==="for-of"&&e.length===6)throw this.positionedError(e,"emitter: `for … of` (object iteration) has no reconcile reading inside render — "+"__reconcile expects an array and crashes at mount; iterate entries instead: `for pair in Object.entries(obj)`");if(r==="for-as"&&e.length===6)throw this.positionedError(e,"emitter: an async loop has no render reading — reconciliation is synchronous; collect the items into a state "+"member and loop over it");if(r==="comprehension"||r==="while"||r==="loop")throw this.positionedError(e,"emitter: only `for … in` drives list rendering — while/loop/comprehensions have no reconcile reading inside "+"render");if(this.isEffectDecl(e)||this.isReactiveDecl(e)||this.isReadonlyDecl(e))throw this.positionedError(e,"emitter: declarations and effects have no render-body reading — declare members in the component body, above render");if(r==="slot")return this.renderSlot(e,e.slice(1));if(r!==null&<(r))return this.renderChildComponent(e,r,e.slice(1));if(r==="."&&e[1]==="this"&&typeof e[2]==="string")throw this.positionedError(e,`emitter: bare \`@${e[2]}\` is not rendered as text — use \`= @${e[2]}\` to render it`);if(r==="."){let{tag:i,classes:n,id:s}=T.collectTemplateClasses(e);if(i!==null&&Q1(i)&&this.renderVarKind(i)===null)return this.renderTag(e,i,n,[],s);return this.renderTextExpr(e)}if(r==="__text__"){if(e.length>2)throw this.positionedError(e,"emitter: the `= expr` text form takes ONE expression — an indented continuation under the `=` line has no "+"render reading (inside render a leading `.` starts a NEW element, so the continuation cannot be a method chain; put the whole expression on the `=` line, or bind it in a method)",this.rstate.node);return this.renderTextExpr(e[1]??"undefined",e,!0)}if(r!==null&&Q1(r.split("#")[0])&&e.length>=1&&this.renderVarKind(r)===null){let[i,n]=r.split("#");return this.renderTag(e,i||"div",[],e.slice(1),n)}if(E(t)){if(E(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let a=t[0][1],o=t.slice(1);if(E(a)){let{tag:l,classes:c,id:f}=T.collectTemplateClasses(a);if(l!==null&&Q1(l))return this.renderDynamicTag(e,l,o,e.slice(1),c,f)}else if(typeof a==="string"&&Q1(a.split("#")[0])){let[l,c]=a.split("#");return this.renderDynamicTag(e,l||"div",o,e.slice(1),[],c)}}let{tag:i,classes:n,id:s}=T.collectTemplateClasses(t);if(i!==null&&Q1(i)&&this.renderVarKind(i)===null){if(n.length>0&&n[n.length-1]==="__clsx")return this.renderDynamicTag(e,i,e.slice(1),[],n.slice(0,-1),s);return this.renderTag(e,i,n,e.slice(1),s)}}if(r==="->"||r==="=>")return this.renderChildBlock(e[2]);return this.renderTextExpr(e)}renderTextExpr(e,t=null,r=!1){let i=this.newRenderText(),n=t??(E(e)?e:null);this.checkCrossScopeLocals(e,n??this.rstate.node);let s=(a)=>{if(r&&t!==null)this.mark(t,"args",a);else a()};if(this.renderReactive(e))this.renderLine(n,()=>this.b.emit(`${i} = document.createTextNode('')`)),this.renderEffect(n,()=>{if(this.b.emit(`${i}.data = `),r)this.b.emit("String("),s(()=>this.renderExpr(e)),this.b.emit(")");else this.renderExpr(e);this.b.emit(";")},e);else this.renderLine(n,()=>{this.b.emit(`${i} = document.createTextNode(String(`),s(()=>this.withExpression(()=>this.expr(e))),this.b.emit("))")});return i}bindInheritedTarget(e,t,r){let i=this.rstate;if(i.frame.extendsTag!==t||i.sink.kind!=="class"||i.frame.inheritedBound===!0)return;i.frame.inheritedBound=!0,this.renderLine(e,()=>this.b.emit(`this._inheritedEl = ${r}`)),this.renderLine(e,()=>this.b.emit("this._applyRestToInheritedEl()"))}renderElementPrologue(e,t){let r=this.rstate,i=this.newRenderVar();if(r.tags.set(i,t),r.transitionSlot!==null&&r.transitionSlot.record===r.sink&&r.transitionSlot.el===null)r.transitionSlot.el=i;let n=r.svgDepth>0||en.has(t);if(n)r.svgEls.add(i);return this.renderLine(e,()=>{if(n)this.b.emit(`${i} = document.createElementNS('${T.SVG_NS}', `);else this.b.emit(`${i} = document.createElement(`);let s=this.emitQuotedPrimitive(t);if(s!==null&&rt(t,n))this.intrinsics.push({start:s[0],end:s[1],kind:"tag",tag:t,svg:n});this.b.emit(")")}),{el:i,isSvg:n}}renderElementBasics(e,t,r,i){let n=this.rstate;if(i)this.renderLine(e,()=>this.b.emit(`${r}.id = '${i}'`));if(this.bindInheritedTarget(e,t,r),n.frame.name!==null&&n.elCount===1&&n.sink.kind==="class")this.renderLine(e,()=>this.b.emit(`${r}.setAttribute('data-part', '${n.frame.name}')`))}renderTag(e,t,r,i,n){this.noteShorthandClasses(r,e);let s=this.rstate,{el:a,isSvg:o}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,a,n);let{pendingClassArgs:l,pendingClassEl:c,pendingClassKeys:f}=s;if(r.length>0)s.pendingClassArgs=[`'${r.join(" ")}'`],s.pendingClassEl=a,s.pendingClassKeys=null;if(o)s.svgDepth++;if(this.renderChildren(a,i,e),o)s.svgDepth--;if(r.length>0){if(s.pendingClassArgs.length===1)this.renderLine(e,()=>this.b.emit(o?`${a}.setAttribute('class', '${r.join(" ")}')`:`${a}.className = '${r.join(" ")}'`));else{let h=s.pendingClassArgs.slice(1),u=s.pendingClassKeys??[],m=this.tsElReceiver(a);this.renderEffect(e,()=>{let S=this.runtimeName("__clsx");if(o){m.emit();let g=this.b.offset+1;this.b.emit(`.setAttribute('class', ${S}('${r.join(" ")}', `);for(let d of u)this.intrinsics.push({start:d[0],end:d[1],kind:"attr",name:"class",gen:g})}else{m.emit(),this.b.emit(".");let g=this.b.offset;this.b.emit(`className = ${S}('${r.join(" ")}', `);for(let d of u)this.intrinsics.push({start:d[0],end:d[1],kind:"classkey",gen:g})}h.forEach((g,d)=>{if(d>0)this.b.emit(", ");g()}),this.b.emit(o?"));":");")})}s.pendingClassKeys=f,s.pendingClassArgs=l,s.pendingClassEl=c}return a}renderDynamicTag(e,t,r,i,n,s){this.noteShorthandClasses(n,e);let a=this.rstate,{el:o,isSvg:l}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,o,s);for(let S of r)this.checkCrossScopeLocals(S,e);let{pendingClassArgs:c,pendingClassEl:f,pendingClassKeys:h}=a;if(a.pendingClassArgs=[...n.map((S)=>`'${S}'`),...r.map((S)=>()=>this.renderExpr(S))],a.pendingClassEl=o,a.pendingClassKeys=null,l)a.svgDepth++;if(this.renderChildren(o,i,e),l)a.svgDepth--;let u=a.pendingClassArgs,m=a.pendingClassKeys??[];if(u.length>0)this.renderEffect(e,()=>{let S=this.runtimeName("__clsx");this.b.emit(`${o}`);let g=this.b.offset+1;this.b.emit(l?`.setAttribute('class', ${S}(`:`.className = ${S}(`);for(let d of m)this.intrinsics.push(l?{start:d[0],end:d[1],kind:"attr",name:"class",gen:g}:{start:d[0],end:d[1],kind:"classkey",gen:g});u.forEach((d,R)=>{if(R>0)this.b.emit(", ");if(typeof d==="string")this.b.emit(d);else d()}),this.b.emit(l?"));":");")});return a.pendingClassKeys=h,a.pendingClassArgs=c,a.pendingClassEl=f,o}renderChildBlock(e){if(!u1(e)){let r=this.renderNode(e);if(r!=null)return r;let i=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${i} = document.createComment('')`)),i}let t=e.slice(1);if(t.length===0){let r=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${r} = document.createComment('')`)),r}return this.walkChildStmts(t)}renderChildren(e,t,r=null){for(let i=0;i0)throw this.positionedError(n,"emitter: a parameterized function is not a render child — element children arrows carry no parameters "+"(an indented `.method (v) -> …` continuation re-reads as a NEW element inside render; put the chain on one "+"line or bind it in a method)",this.rstate.node);let s=n[2];if(u1(s))for(let a=1;athis.b.emit(`${e}.appendChild(${l})`))}}else if(s){if(!this.renderOwnLineWord(e,s,[s],0,r)){let a=this.renderNode(s);if(a!=null)this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${a})`))}}continue}if(O1(n)){this.renderAttributes(e,n);continue}if(typeof n==="string"){let s=n.split(/[#.]/)[0],a=s===n?this.renderVarKind(n,n):null;if(a!==null){let l=this.newRenderText();if(a==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${l} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${l}.data = `),this.emitPrimitive(n),this.b.emit(";")});else this.renderLine(null,()=>{this.b.emit(`${l} = document.createTextNode(`),this.emitPrimitive(n),this.b.emit(")")});this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(Q1(s||"div")){let l=this.renderNode(n);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(lt(s)&&s===n){let l=this.renderChildComponent(n,n,[]);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(/^[A-Za-z_$][\w$]*$/.test(n)&&this.resolveBareRead(n)===null&&!this.inScope(n)){this.renderBareAttribute(e,n,t,i,r);continue}let o=this.newRenderText();if(n.startsWith('"')||n.startsWith("'")||n.startsWith("`"))this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${n})`));else{let l=this.resolveBareRead(n);if(l==="reactive"||l==="member-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(n),this.b.emit(";")});else if(l==="member")this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(n),this.b.emit("))")});else this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(`),this.expr(n),this.b.emit(")")})}this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${o})`));continue}if(n!=null){let s=this.renderNode(n);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${s})`))}}}renderTagOf(e){return this.rstate.tags?.get(e)??"div"}renderBareAttribute(e,t,r,i,n){let s=this.renderTagOf(e),a=null;if(this.ts&&!rn(s,t)){let c=this.bareChildSpan(r,i,n);if(c!==null)a=c,this.intrinsics.push({start:c[0],end:c[1],kind:"unknown-attr",tag:s,name:t,message:this.unknownAttrMessage(s,t,{bare:!0,svg:this.rstate?.svgEls?.has(e)===!0})})}let o=this.tsElReceiver(e),l=a===null?null:this.stores.idOf(n);this.renderLine(null,()=>{if(o.emit(),this.b.emit(".setAttribute("),l!==null)this.b.markSpan(l,"identifier",a[0],a[1],()=>this.emitQuotedPrimitive(t));else this.emitQuotedPrimitive(t);this.b.emit(", '')")})}renderOwnLineWord(e,t,r,i,n){if(typeof t!=="string"||!/^[A-Za-z_$][\w$]*$/.test(t))return!1;if(Q1(t)||lt(t))return!1;if(this.renderVarKind(t,t)!==null)return!1;if(this.resolveBareRead(t)!==null||this.inScope(t))return!1;return this.renderBareAttribute(e,t,r,i,n),!0}claimSlot(e){let t=this.rstate,r=e??this.rstate.node;if(t.sink.loopStack.length>0)throw this.positionedError(r,"emitter: `slot` inside a loop row has no working reading — `children` is ONE node, and every row would fight "+"over it; project it once, outside the loop",this.rstate.node);if(t.slotSeen)throw this.positionedError(r,"emitter: a second `slot` in one render — `children` is ONE node, and a second projection point MOVES it "+"",this.rstate.node);t.slotSeen=!0,this.noteVocabulary("render-channel","slot",r)}childrenReadText(){return`${this.renderSelf??"this"}.children${this.memberIsReactive("children")?".value":""}`}emitChildrenRead(e){if(this.b.emit(`${this.renderSelf??"this"}.`),e!==null)this.intrinsics.push({start:e[0],end:e[1],kind:"slot",gen:this.b.offset});if(this.b.emit("children"),this.memberIsReactive("children"))this.b.emit(".value")}renderSlot(e,t){let r=E(e)?e:null;if(t.length>0)throw this.positionedError(r??e,"emitter: `slot` takes no arguments — fallback content has no "+"reading here (render it through a conditional around the slot)",this.rstate.node);this.claimSlot(r);let i=this.newRenderVar("slot"),n=this.ts?this.wordSpanIn("slot",r??this.rstate.node):null;return this.renderLine(r,()=>{let s=this.childrenReadText();this.b.emit(`${i} = `),this.emitChildrenRead(n),this.b.emit(` instanceof Node ? ${s} : (${s} != null ? document.createTextNode(String(${s})) : document.createComment(''))`)}),i}renderChildComponent(e,t,r){let i=this.rstate,n=i.sink,s=E(e)?e:null,a;if(this.renderVarKind(t)!==null)a=()=>this.emitPrimitive(t);else{let w=this.resolveBareRead(t);if(w==="member"||w==="member-reactive")a=()=>{if(this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(t),w==="member-reactive")this.b.emit(".value")};else if(w==="reactive")a=()=>{this.emitPrimitive(t),this.b.emit(".value")};else if(this.inScope(t)||this.moduleBound!==void 0&&this.moduleBound.has(t))a=()=>this.emitPrimitive(t);else throw this.positionedError(s??e,`emitter: component '${t}' is not defined in this module — a child component must be a module binding, `+"an import, or a component member (an undefined name would degrade to a comment placeholder at mount)",this.rstate.node)}let o=this.newRenderVar("inst"),l=this.newRenderVar("el"),c=[],f=[],h=[],u=[],m=new Map,S={prop:"an explicit `children:` prop",body:"element body content",slot:"a nested `slot`"},g=null,d=(w,D,B="prop")=>{let a1=w.startsWith("__bind_")&&w.endsWith("__")?w.slice(7,-2):w;if(m.has(a1)){if(a1==="children")throw this.positionedError(D??s??e,`emitter: this child component receives \`children\` TWICE — ${S[g]} beside ${S[B]}; give the children ONE spelling: the element body (indented or inline), the explicit \`children:\` prop, or a nested \`slot\` forwarding the received children`,this.rstate.node);throw this.positionedError(D??s??e,`emitter: duplicate prop '${a1}' on a child component — duplicate keys emit one object literal where the `+"last silently wins, and on an extends child the pair leaves two live writers racing over the inherited element; pass one value per prop",this.rstate.node)}if(m.set(a1,D??null),a1==="children")g=B},R=(w)=>{if(!E(w)||w.length!==3)throw this.positionedError(w,"emitter: unsupported attribute form on a child component",s??this.rstate.node);if(i.suppressedPairs.has(w))return;let[,D,B]=w;if(E(D)&&D[0]==="."&&D[1]==="this"&&typeof D[2]==="string"){this.checkBareEventHandler(w,B),this.checkCrossScopeLocals(B,w),h.push({pair:w,event:D[2],value:B});return}if(x(w),typeof D!=="string")throw this.positionedError(w,"emitter: computed prop keys are not supported on a child component",s??this.rstate.node);let a1=D.startsWith('"')&&D.endsWith('"')?D.slice(1,-1):D;if(a1==="__transition__")throw this.positionedError(w,"emitter: a transition directive has no child-component reading — the enter/leave phases animate ELEMENTS "+"; put it on the branch's first element, inside the child's own render",this.rstate.node);if(a1==="ref")throw this.positionedError(w,"emitter: `ref:` captures ELEMENTS — on a child component it has no reading "+"(a dead prop, silently); put the ref on an element inside the child, or emit the instance through an event",this.rstate.node);if(a1==="key")throw this.positionedError(w,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",this.rstate.node);if(d(a1,w),a1.startsWith("__bind_")&&a1.endsWith("__")){this.checkUserSpelledBind(w),this.noteVocabulary("render-channel",a1,w);let f1=a1.slice(7,-2),z=this.childContainerRef(B);if(z!==null){c.push({pair:w,key:D,fn:z});return}let i1=(X,r1)=>this.positionedError(w,`emitter: \`${f1} <=> …\` on a child component shares a reactive CONTAINER, and ${X} ; ${r1}`,this.rstate.node);if(typeof B==="string"&&this.renderVarKind(B)===null){let X=this.resolveBareRead(B);if(X==="member")throw i1(`'${B}' is a plain member`,"declare it with ':=' to share it");if(X===null&&!this.inScope(B))throw i1(`'${B}' is not declared`,"bind a reactive member or module reactive name")}if(E(B)&&B[0]==="."&&B[1]==="this"&&B.length===3&&typeof B[2]==="string")throw i1(`'@${B[2]}' is not a reactive member`,"declare it with ':=' to share it");if(typeof B!=="string"&&!T.isChainNode(B))throw i1("this expression is never a container","bind a reactive member or module reactive name");this.checkCrossScopeLocals(B,w),c.push({pair:w,key:D,fn:()=>this.renderExpr(B)});return}this.addChildProp(c,f,w,D,a1,B)},b=(w,D)=>{throw this.positionedError(w,`emitter: bare '${D}' under a child component is ambiguous — it names an HTML element AND a `+`value in scope, and the value would win silently; render the value with \`= ${D}\`, or give the element content or attributes`,this.rstate.node)},_=(w,D)=>{d(D,null),c.push({pair:null,key:D,span:I(D),fn:()=>this.b.emit("true")})},y=s!==null&&this.stores.idOf(s)!==null?this.stores.selfSpan(this.stores.idOf(s)):null,p=y!==null&&this.b.source!==null?y[0]:null,k=(w)=>{if(p===null||w==null)return;if(E(w)){let D=this.stores.idOf(w),B=D!==null?this.stores.selfSpan(D):null;p=B!==null?Math.max(p,B[1]):null;return}if(typeof w==="string"){let D=this.b.source.indexOf(w,p);p=D>=0&&D+w.length<=y[1]?D+w.length:null;return}p=null},I=(w)=>{if(p===null)return null;let D=new RegExp(`(?y[1])return null;return p=B.index+w.length,[B.index,B.index+w.length]},A=new Map,x=(w)=>{if(!this.tsDirectivesArmed)return;let D=this.tsDirectiveMap.get(w);if(D===void 0)return;this.tsDirectiveMap.delete(w),A.set(w,[...A.get(w)??[],...D])},O=(w)=>{if(!this.tsDirectivesArmed)return;let D=this.tsDirectiveMap.get(w);if(D===void 0)return;let B=w.slice(1).find((a1)=>E(a1));if(B===void 0||i.suppressedPairs.has(B))return;this.tsDirectiveMap.delete(w),this.tsDirectiveMap.set(B,[...D,...this.tsDirectiveMap.get(B)??[]])},G=[],K=!1,V=(w)=>!E(w)&&!(typeof w==="string"&&((Q1(w.split(/[#.]/)[0])||lt(w.split(/[#.]/)[0]))&&this.renderVarKind(w)===null&&this.resolveBareRead(w)===null)),Z=(w)=>{if(w==null)return;let D=typeof w==="string"&&st.test(w)&&this.renderVarKind(w)===null&&this.resolveBareRead(w)===null;if(D&&(Q1(w)||w==="slot")&&(this.inScope(w)||this.moduleBound.has(w)))b(s??this.rstate.node,w);if(D&&w==="slot"){K=!0,k(w),G.push(w);return}if(D&&!this.inScope(w)&&!this.moduleBound.has(w)){_(s??this.rstate.node,w);return}k(w),G.push(w)};for(let w of r)if(O1(w)){O(w);for(let D of w.slice(1))R(D);k(w)}else if(T1(w)){let D=w[2],B=u1(D)?D.slice(1):D!=null?[D]:[];for(let a1 of B)if(O1(a1)){O(a1);for(let h1 of a1.slice(1))R(h1);k(a1)}else Z(a1)}else Z(w);let W=(w)=>{if(!V(w))return this.renderNode(w);this.checkCrossScopeLocals(w,s??this.rstate.node);let D=this.newRenderText();if(this.renderReactive(w))this.renderLine(s,()=>this.b.emit(`${D} = document.createTextNode('')`)),this.renderEffect(s,()=>{this.b.emit(`${D}.data = `),this.renderExpr(w),this.b.emit(";")},w);else this.renderLine(s,()=>{this.b.emit(`${D} = document.createTextNode(`),this.renderExpr(w),this.b.emit(")")});return D},j=G.filter((w)=>!this.isRenderBinding(w));if(j.length===1&&K){d("children",null,"slot"),this.claimSlot(s);let w=this.ts?this.wordSpanIn("slot",s??this.rstate.node):null;for(let D of G)if(D!=="slot")W(D);c.push({pair:null,key:"children",fn:()=>this.emitChildrenRead(w)})}else if(j.length===1){d("children",null,"body");let w=null;for(let D of G){let B=W(D);if(B!=null)w=B}c.push({pair:null,key:"children",fn:()=>this.b.emit(w)})}else if(j.length>1){d("children",null,"body");let w=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${w} = document.createDocumentFragment()`));for(let D of G){let B=W(D);if(B!=null)this.renderLine(null,()=>this.b.emit(`${w}.appendChild(${B})`))}c.push({pair:null,key:"children",fn:()=>this.b.emit(w)})}else for(let w of G)W(w);let q=new Set([...n.bindings,...n.locals]);if(n.vars!==null)for(let w of n.vars)q.add(w);if(E(e))T.collectLeafNames(e,q);let t1=T.mintName("__prev",q),M=T.mintName("__childErr",q);if(n.kind!=="class")n.hasKids=!0;let N=(w)=>this.renderLine(s,w,!1),C=()=>this.renderSelf??"this";if(N(()=>this.b.emit(`{ const ${t1} = ${this.runtimeName("__pushComponent")}(${C()}); try {`)),N(()=>this.b.emit("try {")),N(()=>{if(this.b.emit(`${o} = new `),a(),this.b.emit("("),c.length===0)this.b.emit("{}");else{let w=A.size>0,D=this.replayPad+" ";this.b.emit(w?"{":"{ "),c.forEach((B,a1)=>{if(w){if(a1>0)this.b.emit(",");this.b.emit(` +`)}else{if(r.node!=null)this.renderDirectives(r.node,t);r.fn(t)}}renderLine(e,t,r=!0){this.rstate.sink.creates.push({node:e,fn:t,semi:r})}newRenderVar(e="el"){let t=this.rstate.elCount++,r=this.rstate.sink;if(r.kind==="class")return`this._${e}${t}`;let i=`_${e}${t}`;return r.vars.add(i),i}newRenderText(){let e=this.rstate.textCount++,t=this.rstate.sink;if(t.kind==="class")return`this._t${e}`;let r=`_t${e}`;return t.vars.add(r),r}newBlockName(){let e;do e=`create_block_${this.rstate.blockCount++}`;while(this.rstate.frame.members.has(e));return e}renderEffect(e,t,r){if(r!==void 0)this.checkSetupLocalRefs(r,e);this.rstate.sink.setups.push({kind:"effect",node:e,fn:t})}checkSetupLocalRefs(e,t){let r=this.rstate.sink;if(r.kind!=="class"||r.locals.size===0)return;if(Ie(e,r.locals))throw this.positionedError(t??e,"emitter: a render local cannot appear in a LIVE binding or a dynamic block head at the render top level — "+"locals live in _create() and reactive machinery lives in _setup() (a compiled read here would be a mount-time ReferenceError); bind the value to a member instead",E(e)?e:this.rstate.node)}renderExpr(e){let t=null;return this.withExpression(()=>{let r=T.needsGrouping(e,"operand");if(r)this.b.emit("(");let i=this.b.offset;if(this.expr(e),t=[i,this.b.offset],r)this.b.emit(")")}),t}renderVarKind(e,t){let r=this.rstate;if(!r)return null;if(r.sink.locals.has(e))return"local";for(let i=r.sink.loopStack.length-1;i>=0;i--){let n=r.sink.loopStack[i];if(n.itemVar===e||n.indexVar===e)return n.reactiveSource?"loop-reactive":"loop"}if(t!==void 0){for(let i=r.sink.parent;i;i=i.parent)if(i.locals.has(e))throw this.positionedError(t,`emitter: render local '${e}' is not visible here — each dynamic block (a conditional branch, a loop body) `+"is its own factory function, and render locals never cross that boundary; declare the local inside this block, or use a member",this.rstate.node)}return null}renderReactive(e){if(typeof e==="string"){let n=this.renderVarKind(e);if(n!==null)return n==="loop-reactive";let s=this.resolveBareRead(e);return s==="reactive"||s==="member-reactive"}if(!E(e))return!1;if(e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string")return this.memberIsReactive(e[2]);let t=(n)=>{if(typeof n!=="string"||n==="this"||this.renderVarKind(n)!==null)return!1;let s=this.resolveBareRead(n);return s==="member"||s===null&&(this.inScope(n)||this.moduleBound!==void 0&&this.moduleBound.has(n))},r=(n)=>{while(E(n)&&(n[0]==="."||n[0]==="[]")&&n.length===3)n=n[1];return n==="this"||t(n)},i=(n)=>{while(E(n)&&(n[0]==="."||n[0]==="[]"||n[0]==="?."||n[0]==="optindex")&&n.length===3)n=n[1];return typeof n==="string"&&this.renderVarKind(n)==="loop-reactive"};if(e[0]==="."&&e.length===3&&r(e[1]))return!0;if((e[0]==="."||e[0]==="[]")&&e.length===3&&i(e))return!0;if(E(e[0])&&e[0][0]==="."&&e[0][1]==="this"&&typeof e[0][2]==="string"&&this.cframes.length>0&&this.cframes[this.cframes.length-1].members.has(e[0][2]))return!0;return e.some((n)=>this.renderReactive(n))}isRenderBinding(e){return E(e)&&Hs.has(e[0])&&e.length===3&&typeof e[1]==="string"&&st.test(e[1])}renderNode(e){if(this.isRenderBinding(e))return this.renderBinding(e);if(E(e)&&nt(e[0])&&e.length===3)throw this.positionedError(e,"emitter: an assignment at a render child position must declare a render local (`name = expr` / compound forms "+"on a plain name) — member and chain writes have no render reading here; put the write in a handler or method");if(typeof e==="string"){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")){let o=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${e})`)),o}let i=this.renderVarKind(e,e);if(i!==null){let o=this.newRenderText();if(i==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>this.b.emit(`${o}.data = ${e};`));else this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(String(${e}))`));return o}let n=this.resolveBareRead(e);if(n==="reactive"||n==="member-reactive"){let o=this.newRenderText();return this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(e),this.b.emit(";")}),o}if(e==="slot")return this.renderSlot(e,[]);if(lt(e))return this.renderChildComponent(e,e,[]);if(n==="member"){let o=this.newRenderText();return this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(e),this.b.emit("))")}),o}let[s,a]=e.split("#");return this.renderTag(e,s||"div",[],[],a)}if(!E(e))throw this.positionedError(e,"emitter: unsupported render child");let t=e[0],r=typeof t==="string"?t:null;if(r==="if"&&e.length>=3)return this.renderCond(e);if(r==="switch"&&e.length===4)return this.renderSwitch(e);if(r==="for-in"&&e.length===6)return this.renderLoop(e);if(r==="for-of"&&e.length===6)throw this.positionedError(e,"emitter: `for … of` (object iteration) has no reconcile reading inside render — "+"__reconcile expects an array and crashes at mount; iterate entries instead: `for pair in Object.entries(obj)`");if(r==="for-as"&&e.length===6)throw this.positionedError(e,"emitter: an async loop has no render reading — reconciliation is synchronous; collect the items into a state "+"member and loop over it");if(r==="comprehension"||r==="while"||r==="loop")throw this.positionedError(e,"emitter: only `for … in` drives list rendering — while/loop/comprehensions have no reconcile reading inside "+"render");if(this.isEffectDecl(e)||this.isReactiveDecl(e)||this.isReadonlyDecl(e))throw this.positionedError(e,"emitter: declarations and effects have no render-body reading — declare members in the component body, above render");if(r==="slot")return this.renderSlot(e,e.slice(1));if(r!==null&<(r))return this.renderChildComponent(e,r,e.slice(1));if(r==="."&&e[1]==="this"&&typeof e[2]==="string")throw this.positionedError(e,`emitter: bare \`@${e[2]}\` is not rendered as text — use \`= @${e[2]}\` to render it`);if(r==="."){let{tag:i,classes:n,id:s}=T.collectTemplateClasses(e);if(i!==null&&Q1(i)&&this.renderVarKind(i)===null)return this.renderTag(e,i,n,[],s);return this.renderTextExpr(e)}if(r==="__text__"){if(e.length>2)throw this.positionedError(e,"emitter: the `= expr` text form takes ONE expression — an indented continuation under the `=` line has no "+"render reading (inside render a leading `.` starts a NEW element, so the continuation cannot be a method chain; put the whole expression on the `=` line, or bind it in a method)",this.rstate.node);return this.renderTextExpr(e[1]??"undefined",e,!0)}if(r!==null&&Q1(r.split("#")[0])&&e.length>=1&&this.renderVarKind(r)===null){let[i,n]=r.split("#");return this.renderTag(e,i||"div",[],e.slice(1),n)}if(E(t)){if(E(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let a=t[0][1],o=t.slice(1);if(E(a)){let{tag:l,classes:c,id:f}=T.collectTemplateClasses(a);if(l!==null&&Q1(l))return this.renderDynamicTag(e,l,o,e.slice(1),c,f)}else if(typeof a==="string"&&Q1(a.split("#")[0])){let[l,c]=a.split("#");return this.renderDynamicTag(e,l||"div",o,e.slice(1),[],c)}}let{tag:i,classes:n,id:s}=T.collectTemplateClasses(t);if(i!==null&&Q1(i)&&this.renderVarKind(i)===null){if(n.length>0&&n[n.length-1]==="__clsx")return this.renderDynamicTag(e,i,e.slice(1),[],n.slice(0,-1),s);return this.renderTag(e,i,n,e.slice(1),s)}}if(r==="->"||r==="=>")return this.renderChildBlock(e[2]);return this.renderTextExpr(e)}renderTextExpr(e,t=null,r=!1){let i=this.newRenderText(),n=t??(E(e)?e:null);this.checkCrossScopeLocals(e,n??this.rstate.node);let s=(a)=>{if(r&&t!==null)this.mark(t,"args",a);else a()};if(this.renderReactive(e))this.renderLine(n,()=>this.b.emit(`${i} = document.createTextNode('')`)),this.renderEffect(n,()=>{if(this.b.emit(`${i}.data = `),r)this.b.emit("String("),s(()=>this.renderExpr(e)),this.b.emit(")");else this.renderExpr(e);this.b.emit(";")},e);else this.renderLine(n,()=>{this.b.emit(`${i} = document.createTextNode(String(`),s(()=>this.withExpression(()=>this.expr(e))),this.b.emit("))")});return i}bindInheritedTarget(e,t,r){let i=this.rstate;if(i.frame.extendsTag!==t||i.sink.kind!=="class"||i.frame.inheritedBound===!0)return;i.frame.inheritedBound=!0,this.renderLine(e,()=>this.b.emit(`this._inheritedEl = ${r}`)),this.renderLine(e,()=>this.b.emit("this._applyRestToInheritedEl()"))}renderElementPrologue(e,t){let r=this.rstate,i=this.newRenderVar();if(r.tags.set(i,t),r.transitionSlot!==null&&r.transitionSlot.record===r.sink&&r.transitionSlot.el===null)r.transitionSlot.el=i;let n=r.svgDepth>0||en.has(t);if(n)r.svgEls.add(i);return this.renderLine(e,()=>{if(n)this.b.emit(`${i} = document.createElementNS('${T.SVG_NS}', `);else this.b.emit(`${i} = document.createElement(`);let s=this.emitQuotedPrimitive(t);if(s!==null&&rt(t,n))this.intrinsics.push({start:s[0],end:s[1],kind:"tag",tag:t,svg:n});this.b.emit(")")}),{el:i,isSvg:n}}renderElementBasics(e,t,r,i){let n=this.rstate;if(i)this.renderLine(e,()=>this.b.emit(`${r}.id = '${i}'`));if(this.bindInheritedTarget(e,t,r),n.frame.name!==null&&n.elCount===1&&n.sink.kind==="class")this.renderLine(e,()=>this.b.emit(`${r}.setAttribute('data-part', '${n.frame.name}')`))}renderTag(e,t,r,i,n){this.noteShorthandClasses(r,e);let s=this.rstate,{el:a,isSvg:o}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,a,n);let{pendingClassArgs:l,pendingClassEl:c,pendingClassKeys:f}=s;if(r.length>0)s.pendingClassArgs=[`'${r.join(" ")}'`],s.pendingClassEl=a,s.pendingClassKeys=null;if(o)s.svgDepth++;if(this.renderChildren(a,i,e),o)s.svgDepth--;if(r.length>0){if(s.pendingClassArgs.length===1)this.renderLine(e,()=>this.b.emit(o?`${a}.setAttribute('class', '${r.join(" ")}')`:`${a}.className = '${r.join(" ")}'`));else{let h=s.pendingClassArgs.slice(1),u=s.pendingClassKeys??[],d=this.tsElReceiver(a);this.renderEffect(e,()=>{let S=this.runtimeName("__clsx");if(o){d.emit();let g=this.b.offset+1;this.b.emit(`.setAttribute('class', ${S}('${r.join(" ")}', `);for(let p of u)this.intrinsics.push({start:p[0],end:p[1],kind:"attr",name:"class",gen:g})}else{d.emit(),this.b.emit(".");let g=this.b.offset;this.b.emit(`className = ${S}('${r.join(" ")}', `);for(let p of u)this.intrinsics.push({start:p[0],end:p[1],kind:"classkey",gen:g})}h.forEach((g,p)=>{if(p>0)this.b.emit(", ");g()}),this.b.emit(o?"));":");")})}s.pendingClassKeys=f,s.pendingClassArgs=l,s.pendingClassEl=c}return a}renderDynamicTag(e,t,r,i,n,s){this.noteShorthandClasses(n,e);let a=this.rstate,{el:o,isSvg:l}=this.renderElementPrologue(e,t);this.renderElementBasics(e,t,o,s);for(let S of r)this.checkCrossScopeLocals(S,e);let{pendingClassArgs:c,pendingClassEl:f,pendingClassKeys:h}=a;if(a.pendingClassArgs=[...n.map((S)=>`'${S}'`),...r.map((S)=>()=>this.renderExpr(S))],a.pendingClassEl=o,a.pendingClassKeys=null,l)a.svgDepth++;if(this.renderChildren(o,i,e),l)a.svgDepth--;let u=a.pendingClassArgs,d=a.pendingClassKeys??[];if(u.length>0)this.renderEffect(e,()=>{let S=this.runtimeName("__clsx");this.b.emit(`${o}`);let g=this.b.offset+1;this.b.emit(l?`.setAttribute('class', ${S}(`:`.className = ${S}(`);for(let p of d)this.intrinsics.push(l?{start:p[0],end:p[1],kind:"attr",name:"class",gen:g}:{start:p[0],end:p[1],kind:"classkey",gen:g});u.forEach((p,R)=>{if(R>0)this.b.emit(", ");if(typeof p==="string")this.b.emit(p);else p()}),this.b.emit(l?"));":");")});return a.pendingClassKeys=h,a.pendingClassArgs=c,a.pendingClassEl=f,o}renderChildBlock(e){if(!u1(e)){let r=this.renderNode(e);if(r!=null)return r;let i=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${i} = document.createComment('')`)),i}let t=e.slice(1);if(t.length===0){let r=this.newRenderVar("empty");return this.renderLine(null,()=>this.b.emit(`${r} = document.createComment('')`)),r}return this.walkChildStmts(t)}renderChildren(e,t,r=null){for(let i=0;i0)throw this.positionedError(n,"emitter: a parameterized function is not a render child — element children arrows carry no parameters "+"(an indented `.method (v) -> …` continuation re-reads as a NEW element inside render; put the chain on one "+"line or bind it in a method)",this.rstate.node);let s=n[2];if(u1(s))for(let a=1;athis.b.emit(`${e}.appendChild(${l})`))}}else if(s){if(!this.renderOwnLineWord(e,s,[s],0,r)){let a=this.renderNode(s);if(a!=null)this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${a})`))}}continue}if(O1(n)){this.renderAttributes(e,n);continue}if(typeof n==="string"){let s=n.split(/[#.]/)[0],a=s===n?this.renderVarKind(n,n):null;if(a!==null){let l=this.newRenderText();if(a==="loop-reactive")this.renderLine(null,()=>this.b.emit(`${l} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${l}.data = `),this.emitPrimitive(n),this.b.emit(";")});else this.renderLine(null,()=>{this.b.emit(`${l} = document.createTextNode(`),this.emitPrimitive(n),this.b.emit(")")});this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(Q1(s||"div")){let l=this.renderNode(n);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(lt(s)&&s===n){let l=this.renderChildComponent(n,n,[]);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${l})`));continue}if(/^[A-Za-z_$][\w$]*$/.test(n)&&this.resolveBareRead(n)===null&&!this.inScope(n)){this.renderBareAttribute(e,n,t,i,r);continue}let o=this.newRenderText();if(n.startsWith('"')||n.startsWith("'")||n.startsWith("`"))this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode(${n})`));else{let l=this.resolveBareRead(n);if(l==="reactive"||l==="member-reactive")this.renderLine(null,()=>this.b.emit(`${o} = document.createTextNode('')`)),this.renderEffect(null,()=>{this.b.emit(`${o}.data = `),this.expr(n),this.b.emit(";")});else if(l==="member")this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(String(`),this.expr(n),this.b.emit("))")});else this.renderLine(null,()=>{this.b.emit(`${o} = document.createTextNode(`),this.expr(n),this.b.emit(")")})}this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${o})`));continue}if(n!=null){let s=this.renderNode(n);this.renderLine(null,()=>this.b.emit(`${e}.appendChild(${s})`))}}}renderTagOf(e){return this.rstate.tags?.get(e)??"div"}renderBareAttribute(e,t,r,i,n){let s=this.renderTagOf(e),a=null;if(this.ts&&!rn(s,t)){let c=this.bareChildSpan(r,i,n);if(c!==null)a=c,this.intrinsics.push({start:c[0],end:c[1],kind:"unknown-attr",tag:s,name:t,message:this.unknownAttrMessage(s,t,{bare:!0,svg:this.rstate?.svgEls?.has(e)===!0})})}let o=this.tsElReceiver(e),l=a===null?null:this.stores.idOf(n);this.renderLine(null,()=>{if(o.emit(),this.b.emit(".setAttribute("),l!==null)this.b.markSpan(l,"identifier",a[0],a[1],()=>this.emitQuotedPrimitive(t));else this.emitQuotedPrimitive(t);this.b.emit(", '')")})}renderOwnLineWord(e,t,r,i,n){if(typeof t!=="string"||!/^[A-Za-z_$][\w$]*$/.test(t))return!1;if(Q1(t)||lt(t))return!1;if(this.renderVarKind(t,t)!==null)return!1;if(this.resolveBareRead(t)!==null||this.inScope(t))return!1;return this.renderBareAttribute(e,t,r,i,n),!0}claimSlot(e){let t=this.rstate,r=e??this.rstate.node;if(t.sink.loopStack.length>0)throw this.positionedError(r,"emitter: `slot` inside a loop row has no working reading — `children` is ONE node, and every row would fight "+"over it; project it once, outside the loop",this.rstate.node);if(t.slotSeen)throw this.positionedError(r,"emitter: a second `slot` in one render — `children` is ONE node, and a second projection point MOVES it "+"",this.rstate.node);t.slotSeen=!0,this.noteVocabulary("render-channel","slot",r)}childrenReadText(){return`${this.renderSelf??"this"}.children${this.memberIsReactive("children")?".value":""}`}emitChildrenRead(e){if(this.b.emit(`${this.renderSelf??"this"}.`),e!==null)this.intrinsics.push({start:e[0],end:e[1],kind:"slot",gen:this.b.offset});if(this.b.emit("children"),this.memberIsReactive("children"))this.b.emit(".value")}renderSlot(e,t){let r=E(e)?e:null;if(t.length>0)throw this.positionedError(r??e,"emitter: `slot` takes no arguments — fallback content has no "+"reading here (render it through a conditional around the slot)",this.rstate.node);this.claimSlot(r);let i=this.newRenderVar("slot"),n=this.ts?this.wordSpanIn("slot",r??this.rstate.node):null;return this.renderLine(r,()=>{let s=this.childrenReadText();this.b.emit(`${i} = `),this.emitChildrenRead(n),this.b.emit(` instanceof Node ? ${s} : (${s} != null ? document.createTextNode(String(${s})) : document.createComment(''))`)}),i}renderChildComponent(e,t,r){let i=this.rstate,n=i.sink,s=E(e)?e:null,a;if(this.renderVarKind(t)!==null)a=()=>this.emitPrimitive(t);else{let w=this.resolveBareRead(t);if(w==="member"||w==="member-reactive")a=()=>{if(this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(t),w==="member-reactive")this.b.emit(".value")};else if(w==="reactive")a=()=>{this.emitPrimitive(t),this.b.emit(".value")};else if(this.inScope(t)||this.moduleBound!==void 0&&this.moduleBound.has(t))a=()=>this.emitPrimitive(t);else throw this.positionedError(s??e,`emitter: component '${t}' is not defined in this module — a child component must be a module binding, `+"an import, or a component member (an undefined name would degrade to a comment placeholder at mount)",this.rstate.node)}let o=this.newRenderVar("inst"),l=this.newRenderVar("el"),c=[],f=[],h=[],u=[],d=new Map,S={prop:"an explicit `children:` prop",body:"element body content",slot:"a nested `slot`"},g=null,p=(w,D,B="prop")=>{let a1=w.startsWith("__bind_")&&w.endsWith("__")?w.slice(7,-2):w;if(d.has(a1)){if(a1==="children")throw this.positionedError(D??s??e,`emitter: this child component receives \`children\` TWICE — ${S[g]} beside ${S[B]}; give the children ONE spelling: the element body (indented or inline), the explicit \`children:\` prop, or a nested \`slot\` forwarding the received children`,this.rstate.node);throw this.positionedError(D??s??e,`emitter: duplicate prop '${a1}' on a child component — duplicate keys emit one object literal where the `+"last silently wins, and on an extends child the pair leaves two live writers racing over the inherited element; pass one value per prop",this.rstate.node)}if(d.set(a1,D??null),a1==="children")g=B},R=(w)=>{if(!E(w)||w.length!==3)throw this.positionedError(w,"emitter: unsupported attribute form on a child component",s??this.rstate.node);if(i.suppressedPairs.has(w))return;let[,D,B]=w;if(E(D)&&D[0]==="."&&D[1]==="this"&&typeof D[2]==="string"){this.checkBareEventHandler(w,B),this.checkCrossScopeLocals(B,w),h.push({pair:w,event:D[2],value:B});return}if(x(w),typeof D!=="string")throw this.positionedError(w,"emitter: computed prop keys are not supported on a child component",s??this.rstate.node);let a1=D.startsWith('"')&&D.endsWith('"')?D.slice(1,-1):D;if(a1==="__transition__")throw this.positionedError(w,"emitter: a transition directive has no child-component reading — the enter/leave phases animate ELEMENTS "+"; put it on the branch's first element, inside the child's own render",this.rstate.node);if(a1==="ref")throw this.positionedError(w,"emitter: `ref:` captures ELEMENTS — on a child component it has no reading "+"(a dead prop, silently); put the ref on an element inside the child, or emit the instance through an event",this.rstate.node);if(a1==="key")throw this.positionedError(w,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",this.rstate.node);if(p(a1,w),a1.startsWith("__bind_")&&a1.endsWith("__")){this.checkUserSpelledBind(w),this.noteVocabulary("render-channel",a1,w);let f1=a1.slice(7,-2),z=this.childContainerRef(B);if(z!==null){c.push({pair:w,key:D,fn:z});return}let i1=(X,r1)=>this.positionedError(w,`emitter: \`${f1} <=> …\` on a child component shares a reactive CONTAINER, and ${X} ; ${r1}`,this.rstate.node);if(typeof B==="string"&&this.renderVarKind(B)===null){let X=this.resolveBareRead(B);if(X==="member")throw i1(`'${B}' is a plain member`,"declare it with ':=' to share it");if(X===null&&!this.inScope(B))throw i1(`'${B}' is not declared`,"bind a reactive member or module reactive name")}if(E(B)&&B[0]==="."&&B[1]==="this"&&B.length===3&&typeof B[2]==="string")throw i1(`'@${B[2]}' is not a reactive member`,"declare it with ':=' to share it");if(typeof B!=="string"&&!T.isChainNode(B))throw i1("this expression is never a container","bind a reactive member or module reactive name");this.checkCrossScopeLocals(B,w),c.push({pair:w,key:D,fn:()=>this.renderExpr(B)});return}this.addChildProp(c,f,w,D,a1,B)},b=(w,D)=>{throw this.positionedError(w,`emitter: bare '${D}' under a child component is ambiguous — it names an HTML element AND a `+`value in scope, and the value would win silently; render the value with \`= ${D}\`, or give the element content or attributes`,this.rstate.node)},_=(w,D)=>{p(D,null),c.push({pair:null,key:D,span:O(D),fn:()=>this.b.emit("true")})},y=s!==null&&this.stores.idOf(s)!==null?this.stores.selfSpan(this.stores.idOf(s)):null,m=y!==null&&this.b.source!==null?y[0]:null,k=(w)=>{if(m===null||w==null)return;if(E(w)){let D=this.stores.idOf(w),B=D!==null?this.stores.selfSpan(D):null;m=B!==null?Math.max(m,B[1]):null;return}if(typeof w==="string"){let D=this.b.source.indexOf(w,m);m=D>=0&&D+w.length<=y[1]?D+w.length:null;return}m=null},O=(w)=>{if(m===null)return null;let D=new RegExp(`(?y[1])return null;return m=B.index+w.length,[B.index,B.index+w.length]},A=new Map,x=(w)=>{if(!this.tsDirectivesArmed)return;let D=this.tsDirectiveMap.get(w);if(D===void 0)return;this.tsDirectiveMap.delete(w),A.set(w,[...A.get(w)??[],...D])},I=(w)=>{if(!this.tsDirectivesArmed)return;let D=this.tsDirectiveMap.get(w);if(D===void 0)return;let B=w.slice(1).find((a1)=>E(a1));if(B===void 0||i.suppressedPairs.has(B))return;this.tsDirectiveMap.delete(w),this.tsDirectiveMap.set(B,[...D,...this.tsDirectiveMap.get(B)??[]])},H=[],G=!1,K=(w)=>!E(w)&&!(typeof w==="string"&&((Q1(w.split(/[#.]/)[0])||lt(w.split(/[#.]/)[0]))&&this.renderVarKind(w)===null&&this.resolveBareRead(w)===null)),Z=(w)=>{if(w==null)return;let D=typeof w==="string"&&st.test(w)&&this.renderVarKind(w)===null&&this.resolveBareRead(w)===null;if(D&&(Q1(w)||w==="slot")&&(this.inScope(w)||this.moduleBound.has(w)))b(s??this.rstate.node,w);if(D&&w==="slot"){G=!0,k(w),H.push(w);return}if(D&&!this.inScope(w)&&!this.moduleBound.has(w)){_(s??this.rstate.node,w);return}k(w),H.push(w)};for(let w of r)if(O1(w)){I(w);for(let D of w.slice(1))R(D);k(w)}else if(T1(w)){let D=w[2],B=u1(D)?D.slice(1):D!=null?[D]:[];for(let a1 of B)if(O1(a1)){I(a1);for(let h1 of a1.slice(1))R(h1);k(a1)}else Z(a1)}else Z(w);let V=(w)=>{if(!K(w))return this.renderNode(w);this.checkCrossScopeLocals(w,s??this.rstate.node);let D=this.newRenderText();if(this.renderReactive(w))this.renderLine(s,()=>this.b.emit(`${D} = document.createTextNode('')`)),this.renderEffect(s,()=>{this.b.emit(`${D}.data = `),this.renderExpr(w),this.b.emit(";")},w);else this.renderLine(s,()=>{this.b.emit(`${D} = document.createTextNode(`),this.renderExpr(w),this.b.emit(")")});return D},j=H.filter((w)=>!this.isRenderBinding(w));if(j.length===1&&G){p("children",null,"slot"),this.claimSlot(s);let w=this.ts?this.wordSpanIn("slot",s??this.rstate.node):null;for(let D of H)if(D!=="slot")V(D);c.push({pair:null,key:"children",fn:()=>this.emitChildrenRead(w)})}else if(j.length===1){p("children",null,"body");let w=null;for(let D of H){let B=V(D);if(B!=null)w=B}c.push({pair:null,key:"children",fn:()=>this.b.emit(w)})}else if(j.length>1){p("children",null,"body");let w=this.newRenderVar("frag");this.renderLine(null,()=>this.b.emit(`${w} = document.createDocumentFragment()`));for(let D of H){let B=V(D);if(B!=null)this.renderLine(null,()=>this.b.emit(`${w}.appendChild(${B})`))}c.push({pair:null,key:"children",fn:()=>this.b.emit(w)})}else for(let w of H)V(w);let q=new Set([...n.bindings,...n.locals]);if(n.vars!==null)for(let w of n.vars)q.add(w);if(E(e))T.collectLeafNames(e,q);let t1=T.mintName("__prev",q),M=T.mintName("__childErr",q);if(n.kind!=="class")n.hasKids=!0;let N=(w)=>this.renderLine(s,w,!1),C=()=>this.renderSelf??"this";if(N(()=>this.b.emit(`{ const ${t1} = ${this.runtimeName("__pushComponent")}(${C()}); try {`)),N(()=>this.b.emit("try {")),N(()=>{if(this.b.emit(`${o} = new `),a(),this.b.emit("("),c.length===0)this.b.emit("{}");else{let w=A.size>0,D=this.replayPad+" ";this.b.emit(w?"{":"{ "),c.forEach((B,a1)=>{if(w){if(a1>0)this.b.emit(",");this.b.emit(` `);let f1=B.pair!==null?A.get(B.pair):void 0;if(this.ts&&f1!==void 0)for(let z of f1)this.tsDirectiveLine(z,D,!0);this.b.emit(D)}else if(a1>0)this.b.emit(", ");let h1=()=>{let f1=(i1)=>{let X=this.b.offset,r1=i1();if(this.ts)this.attrNames.push([X,this.b.offset]);if("routeKey"in B)B.routeKey=[X,this.b.offset];if(this.ts&&r1!=null){let Q=B.pair!==null?this.stores.idOf(B.pair):null,l1=Q!==null?this.stores.selfSpan(Q):null,c1=[r1[0],r1[1]];this.renderPairs.push({key:c1,pair:l1??c1,sites:[[X,this.b.offset]]})}},z=E(s)?this.stores.idOf(s):null;if(this.ts&&B.span!=null&&z!==null){f1(()=>(this.b.markSpan(z,"shorthandProp",B.span[0],B.span[1],()=>this.b.emit(B.key)),[B.span[0],B.span[1]])),this.b.emit(": "),B.fn();return}if(B.key.startsWith("__bind_")&&B.key.endsWith("__"))f1(()=>{let i1=this.b.offset;this.b.emit("__bind_");let X=this.emitRewrittenPrimitive(B.key,B.key.slice(7,-2));if(this.ts&&X!==null)this.intrinsics.push({start:X[0],end:X[1],kind:"bind",name:B.key.slice(7,-2),gen:i1});return this.b.emit("__"),X});else f1(()=>this.emitPrimitive(B.key));this.b.emit(": "),B.fn()};if(B.pair!==null&&this.stores.idOf(B.pair)!==null)this.mark(B.pair,"$self",h1);else h1()}),this.b.emit(w?` ${this.replayPad}}`:" }")}this.b.emit(");")}),N(()=>this.b.emit(`if (${o} && ${o}._initFailed) {`)),N(()=>this.b.emit(` ${o} = null;`)),N(()=>this.b.emit(` ${l} = document.createComment('rip:child-init-failed: ${t}');`)),N(()=>{this.b.emit("} else if (");let w=()=>this.b.emit(`${o}._mountCreate()`);if(s!==null)this.mark(s,"$self",w);else w();this.b.emit(") {")}),N(()=>this.b.emit(` ${l} = ${o}._root;`)),n.kind==="class")N(()=>this.b.emit(` (this._children || (this._children = [])).push(${o});`));else N(()=>this.b.emit(` ${n.kidsVar}.push(${o});`));N(()=>this.b.emit("} else {")),N(()=>this.b.emit(` ${o} = null;`)),N(()=>this.b.emit(` ${l} = document.createComment('rip:child-error: ${t}');`)),N(()=>this.b.emit("}")),N(()=>this.b.emit(`} catch (${M}) {`)),N(()=>this.b.emit(` console.error('[Rip] ${t} construction failed:', ${M});`)),N(()=>this.b.emit(` ${o} = null;`)),N(()=>this.b.emit(` ${l} = document.createComment('rip:child-error: ${t}');`)),N(()=>this.b.emit("}")),N(()=>this.b.emit(`} finally { ${this.runtimeName("__popComponent")}(${t1}); } }`));for(let{pair:w,event:D,value:B}of h){if(this.ts){let f1=E(w)&&E(w[1])?w[1]:null,z=f1!==null?this.stores.idOf(f1)??null:null,i1=z!==null?this.stores.selfSpan(z):null;if(i1!==null)this.intrinsics.push({start:i1[0],end:i1[1],kind:"event",name:D,type:this.tsEventTypeText([D])!==null?`HTMLElementEventMap['${D}']`:null,child:t})}let a1=new Set;T.collectLeafNames(B,a1);let h1=T.mintName("e",a1);this.renderLine(w,()=>{let f1=`(${o}._nodes?.[0] ?? ${l})`;if(!this.ts)this.b.emit(`if (${o}) ${f1}.addEventListener('${D}', (${h1}`);else this.b.emit(`if (${o}) ${f1}.addEventListener(`),this.emitQuotedPrimitive(D),this.b.emit(`, (${h1}`);this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => (`),this.tsHandlerCast(()=>this.withExpression(()=>this.expr(B))),this.b.emit(`)(${h1})))`)})}n.setups.push({kind:"raw",fn:(w)=>{this.b.emit(w);let D=()=>{this.b.emit(`if (${o} && ${o}._state === 'mounting') { ${w} ${l} = ${o}._mountSetup(document.createComment('rip:child-error: ${t}')); `);let B=this.rstate.fragChildren.get(n.root),a1=B!==void 0?B[0]:n.root;if(n.kind!=="class"&&a1===l){if(this.b.emit(`${w} `),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._first = ${l}; `)}this.b.emit(`${w}}`)};if(s!==null)this.mark(s,"$self",D);else D();this.b.emit(` -`)}});for(let{pair:w,key:D,value:B}of f){let a1=D.startsWith('"')&&D.endsWith('"')?D.slice(1,-1):D;this.renderEffect(w,()=>{this.b.emit(`if (${o}) ${o}._updateProp('${a1}', `),this.renderExpr(B),this.b.emit(");")},B)}return l}addChildProp(e,t,r,i,n,s){let a=this.childContainerRef(s);if(a!==null){e.push({pair:r,key:i,fn:a});return}if(this.checkCrossScopeLocals(s,r),this.ts&&this.routesUnion!==null&&n==="href"&&this.isRouteLiteralValue(s)){this._needsRouteHelper=!0;let l={pair:r,key:i,routeKey:null};l.fn=()=>{this.b.tsOnly(()=>this.b.emit("__ripRoute("));let c=this.b.offset;this.renderExpr(s);let f=this.b.offset;if(this.b.tsOnly(()=>this.b.emit(")")),l.routeKey!==null)this.routeWrapSpans.push({key:l.routeKey,value:[c,f]})},e.push(l)}else e.push({pair:r,key:i,fn:()=>this.renderExpr(s)});if(!T1(s)&&this.renderReactive(s))t.push({pair:r,key:i,value:s})}childContainerRef(e){if(typeof e==="string"){if(this.renderVarKind(e)!==null)return null;let t=this.resolveBareRead(e);if(t==="member-reactive")return()=>{this.b.emit(`${this.renderSelf??"this"}.`);let r=this.emitPrimitive(e);if(this.ts&&r!==null)this.memberDecls.push({start:r[0],end:r[1]})};if(t==="reactive")return()=>this.emitPrimitive(e);return null}if(E(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string"&&this.memberIsReactive(e[2]))return()=>{this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(e[2])};return null}isRouteLiteralValue(e){let t=(r)=>typeof r==="string"&&/^["'`]\//.test(r);return t(e)||E(e)&&e[0]==="str"&&t(e[1])}renderAttributes(e,t){let r=this.rstate;if(this.ts&&this.tsDirectivesArmed&&this.tsDirectiveMap.has(t)){let i=t.slice(1).find((s)=>E(s));if(i!==void 0&&i.length===3&&!r.suppressedPairs.has(i)&&(()=>{let s=i[1];if(typeof s!=="string")return!0;if(s.startsWith('"')&&s.endsWith('"'))s=s.slice(1,-1);if((s==="class"||s==="className")&&r.pendingClassArgs!==null&&r.pendingClassEl===e)return!1;if(s==="ref"&&this.rstate.sink.kind!=="class")return!1;return!0})()){let s=this.tsDirectiveMap.get(t);this.tsDirectiveMap.delete(t),this.tsDirectiveMap.set(i,[...s,...this.tsDirectiveMap.get(i)??[]])}}for(let i of t.slice(1)){if(!E(i)||i.length!==3)throw this.positionedError(i,"emitter: unsupported attribute form in render",t);if(r.suppressedPairs.has(i))continue;let[,n,s]=i;this.checkCrossScopeLocals(s,i);let a=null;if(this.ts){let y=this.stores.idOf(i),p=y!==null?this.stores.selfSpan(y):null,k=this.b.source;if(p!==null&&k!==null){let I=p[0];while(Ip[0])a={key:[p[0],I],pair:[p[0],p[1]],sites:[]},this.renderPairs.push(a)}}let o=(y)=>{if(a!==null&&y!==null&&y[1]>y[0])a.sites.push(y)};if(E(n)&&n[0]==="."&&n[1]==="this"&&typeof n[2]==="string"){let y=n[2];if(this.checkBareEventHandler(i,s),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&$e(s,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let p=new Set;T.collectLeafNames(s,p);let k=T.mintName("e",p),I=this.tsElReceiver(e),A=this.ts?this.tsEventTypeText([y],I.hostText):null;if(this.ts){let x=this.stores.idOf(n)??null,O=x!==null?this.stores.selfSpan(x):null;if(O!==null)this.intrinsics.push({start:O[0],end:O[1],kind:"event",name:y,type:A,tag:this.rstate?.tags?.get(e)??null,svg:this.rstate?.svgEls?.has(e)===!0})}this.renderLine(i,()=>{let x=this.renderSelf??"this";if(!this.ts)this.b.emit(`${e}.addEventListener('${y}', (${k}`);else I.emit(),this.b.emit(".addEventListener("),this.emitQuotedPrimitive(y),this.b.emit(`, (${k}`);if(this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => `),typeof s==="string"&&this.renderVarKind(s)===null&&this.cframes[this.cframes.length-1].members.has(s)){if(this.ts)this.b.tsOnly(()=>this.b.emit("("));let O=this.b.offset;if(this.b.emit(`${x}.`),this.emitPrimitive(s),this.ts)this.b.tsOnly(()=>this.b.emit(A!==null?` as (e: ${A}) => unknown)`:" as any)"));if(this.ts&&A!==null)o([O,this.b.offset-1]);this.b.emit(`(${k})`)}else{let O=!this.ts?null:T1(s)&&(s[1].length===0||s[1].length===1&&typeof s[1][0]==="string")?A??"any":T1(s)?null:A;this.b.emit("("),o(this.tsHandlerCast(()=>this.withExpression(()=>this.expr(s)),O)),this.b.emit(`)(${k})`)}this.b.emit("))")});continue}if(typeof n!=="string")throw this.positionedError(i,"emitter: computed attribute keys are not supported in render",t);let l=n;if(n.startsWith('"')&&n.endsWith('"'))n=n.slice(1,-1);if(n==="__transition__"){this.noteVocabulary("render-channel",n,i),this.renderTransition(e,i,s,t);continue}if(n==="ref"){this.noteVocabulary("render-channel",n,i),this.renderRef(e,i,s,t,o);continue}if(n.startsWith("__bind_")&&n.endsWith("__")){this.noteVocabulary("render-channel",n,i),this.checkUserSpelledBind(i);let y=n.slice(7,-2);this.renderBind(e,i,y,s,t,o);continue}if(n==="key")throw this.positionedError(i,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",t);if(n==="class"||n==="className"){let y=(p,k)=>{if(this.ts&&p!==null)this.intrinsics.push({start:p[0],end:p[1],kind:"attr",name:"class",gen:k})};if(r.pendingClassArgs!==null&&r.pendingClassEl===e){this.checkSetupLocalRefs(s,i);let p=this.stores.idOf(i),k=p!==null?this.stores.selfSpan(p):null;if(this.ts&&k!==null)(r.pendingClassKeys??=[]).push([k[0],k[0]+n.length]);r.pendingClassArgs.push(()=>o(this.renderExpr(s)))}else if(this.renderReactive(s)){let p=r.svgDepth>0,k=this.tsElReceiver(e);this.renderEffect(i,()=>{let I=this.runtimeName("__clsx");if(k.emit(),p){let A=this.b.offset+1;this.b.emit(".setAttribute('"),y(this.emitKeyAs(n,"class"),A),this.b.emit(`', ${I}(`)}else this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(n,"className")),this.b.emit(` = ${I}(`);o(this.renderExpr(s)),this.b.emit(p?"));":");")},s)}else{let p=r.svgDepth>0,k=E(s),I=this.tsElReceiver(e);this.renderLine(i,()=>{let A=this.b.offset;if(I.emit(),p){let O=this.b.offset+1;this.b.emit(".setAttribute('"),y(this.emitKeyAs(n,"class"),O),this.b.emit("', ")}else{if(this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(n,"className")),!k)o([A,this.b.offset]);this.b.emit(" = ")}if(k)this.b.emit(`${this.runtimeName("__clsx")}(`);let x=this.renderExpr(s);if(p||k)o(x);if(k)this.b.emit(")");if(p)this.b.emit(")")})}continue}if((n==="value"||n==="checked")&&this.renderReactive(s)){let y=this.tsElReceiver(e);this.renderEffect(i,()=>{let p=this.b.offset;y.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(n)),o([p,this.b.offset]),this.b.emit(" = "),this.renderExpr(s),this.b.emit(";")},s);continue}if(n==="innerHTML"||n==="textContent"||n==="innerText"){let y=this.tsElReceiver(e),p=()=>{let k=this.b.offset;y.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(n)),o([k,this.b.offset]),this.b.emit(" = "),this.renderExpr(s)};if(this.renderReactive(s))this.renderEffect(i,()=>{p(),this.b.emit(";")},s);else this.renderLine(i,p);continue}if(T.BOOLEAN_ATTRS.has(n)){let y=this.tsElReceiver(e),p=()=>{let k=this.emitKeyAs(l,n);if(this.ts&&y.surfaced&&k!==null)this.intrinsics.push({start:k[0],end:k[1],kind:"attr",name:n,type:"boolean | undefined"})};if(this.renderReactive(s))this.renderEffect(i,()=>{if(y.emit(),this.b.emit(".toggleAttribute('"),p(),this.b.emit("', !!"),this.ts)this.b.tsOnly(()=>this.b.emit("("));this.renderExpr(s);let k=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined)"));if(this.ts)o([k,k+9]);this.b.emit(");")},s);else this.renderLine(i,()=>{this.b.emit("if ("),this.withExpression(()=>this.expr(s));let k=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined"));if(this.ts)o([k,k+9]);this.b.emit(") "),y.emit(),this.b.emit(".setAttribute('"),p(),this.b.emit("', '')")});continue}let c=E(s)&&s[0]==="presence"&&s.length===2;if(n==="style"&&!c){let y=this.tsElReceiver(e),p=()=>{if(this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),this.ts)this.b.tsOnly(()=>this.b.emit(y.surfaced?`: ${y.valsName}['style'] | undefined`:": any"));this.b.emit(" = "),this.renderExpr(s),this.b.emit(`; ${this.runtimeName("__style")}(`),y.emit(),this.b.emit(", __v); }")};if(this.renderReactive(s))this.renderEffect(i,p,s);else this.renderLine(i,p,!1);if(this.ts&&y.surfaced&&a!==null)this.intrinsics.push({start:a.key[0],end:a.key[1],kind:"attr",name:n,type:"string | __RipCSSProperties | undefined"});continue}let f=this.ts&&this.routesUnion!==null&&n==="href"&&this.rstate.tags?.get(e)==="a"&&this.isRouteLiteralValue(s);if(f)this._needsRouteHelper=!0;let h=this.tsElReceiver(e),u=!(typeof s==="string"&&(!X1(s)||s==="true"||s==="false")||E(s)&&s[0]==="str"),m=null,S=null,g=!1,d=()=>{if(g||!this.ts||!h.surfaced||m===null||S===null)return;g=!0,this.intrinsics.push(f?{start:m[0],end:m[1],kind:"attr",name:n,type:this.routesUnion,route:!0}:{start:m[0],end:m[1],kind:"attr",name:n,gen:S});let y=this.renderTagOf(e);if(!rn(y,n))this.intrinsics.push({start:m[0],end:m[1],kind:"unknown-attr",tag:y,name:n,message:this.unknownAttrMessage(y,n,{bare:!1,svg:this.rstate?.svgEls?.has(e)===!0})})},R=()=>{S=this.b.offset+1,this.b.emit(".setAttribute('"),d()},b=()=>{let y=this.emitKeyAs(l,n);if(m===null)m=y;d()},_=()=>{if(!this.ts)return;this.b.tsOnly(()=>this.b.emit(h.surfaced?`: ${h.valsName}['${n}'] | undefined`:": any"))};if(this.renderReactive(s))if(c||u)this.renderEffect(i,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),_(),this.b.emit(" = "),this.renderExpr(s),this.b.emit("; __v == null ? "),h.emit(),this.b.emit(".removeAttribute('"),b(),this.b.emit("') : "),h.emit(),R(),b(),this.b.emit("', __v); }")},s);else this.renderEffect(i,()=>{h.emit(),R();let y=this.b.offset;b();let p=this.b.offset;if(this.b.emit("', "),f)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let k=this.b.offset;o(this.renderExpr(s));let I=this.b.offset;if(this.ts){if(f)this.b.tsOnly(()=>this.b.emit(")"));else if(!h.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(");"),f)this.routeWrapSpans.push({key:[y,p],value:[k,I]})},s);else if(c||u)this.renderLine(i,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),_(),this.b.emit(" = "),this.renderExpr(s),this.b.emit("; if (__v != null) "),h.emit(),R(),b(),this.b.emit("', __v); }")},!1);else this.renderLine(i,()=>{h.emit(),R();let y=this.b.offset;b();let p=this.b.offset;if(this.b.emit("', "),f)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let k=this.b.offset;o(this.renderExpr(s));let I=this.b.offset;if(this.ts){if(f)this.b.tsOnly(()=>this.b.emit(")"));else if(!h.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(")"),f)this.routeWrapSpans.push({key:[y,p],value:[k,I]})})}}loopVarNames(){let e=new Set;for(let t of this.rstate.sink.loopStack)e.add(t.itemVar),e.add(t.indexVar);return e}checkCrossScopeLocals(e,t){let r=this.rstate;if(!r)return;let i=this.loopVarNames(),n=(s)=>r.sink.locals.has(s)||i.has(s);for(let s=r.sink.parent;s!==null;s=s.parent){if(s.locals.size===0)continue;let a=new Set([...s.locals].filter((o)=>!n(o)));if(a.size>0&&$e(e,a))throw this.positionedError(t,"emitter: this expression reads a render local of an ENCLOSING render scope — each dynamic block (a "+"conditional branch, a loop body) is its own factory function, and render locals never cross that boundary ; declare the local inside this block, or use a member",this.rstate.node)}}renderBinding(e){let[t,r,i]=e,n=this.rstate.sink;if(r.startsWith("__"))throw this.positionedError(e,`emitter: render local '${r}' — double-underscore names are the compiler/runtime namespace inside render `+"(factory scaffolding and injected helpers live there)");if(n.loopStack.some((s)=>s.itemVar===r||s.indexVar===r))throw this.positionedError(e,`emitter: '${r}' is a loop variable — a render local cannot re-declare or assign it `);if(t==="="){if(!n.locals.has(r)){if(n.locals.add(r),n.bindings.add(r),n.localDecls.set(r,e),n.kind!=="class")n.vars.add(r)}}else if(!n.locals.has(r))throw this.positionedError(e,`emitter: compound assignment to '${r}' — no render local of that name is declared in this render scope `+"(`name = expr` declares one)");return this.checkCrossScopeLocals(i,e),this.renderLine(e,()=>{this.mark(e,"target",()=>this.b.emit(r)),this.b.emit(` ${t} `),this.mark(e,"value",()=>this.withExpression(()=>this.expr(i)))}),null}closeRenderScope(e){for(let[t,r]of e.localDecls){let i=0,n=(s)=>{if(typeof s==="string"){if(s===t)i++;return}if(!E(s))return;if(Hs.has(s[0])&&s.length===3&&s[1]===t){n(s[2]);return}if((s[0]===":"||s[0]==="void-pair")&&s.length===3&&typeof s[1]==="string"){n(s[2]);return}if((s[0]==="."||s[0]==="?.")&&s.length===3&&typeof s[2]==="string"){n(s[1]);return}for(let a of s)n(a)};for(let s of e.stmts)n(s);if(i===0)throw this.positionedError(r,`emitter: render local '${t}' is never read — a dead local renders NOTHING (if this line meant an `+`element with expression text, spell it \`${t}\` + indented \`= expr\`: inside render \`${t} = expr\` declares a local named the tag)`,this.rstate.node)}}static collectLeafNames(e,t){if(typeof e==="string"){if(st.test(e))t.add(e);return}if(!E(e))return;if((e[0]===":"||e[0]==="void-pair")&&e.length===3&&typeof e[1]==="string"){T.collectLeafNames(e[2],t);return}if((e[0]==="."||e[0]==="?.")&&e.length===3&&typeof e[2]==="string"){T.collectLeafNames(e[1],t);return}for(let r of e)T.collectLeafNames(r,t)}static mintName(e,t){let r=e;while(t.has(r))r=`${r}_`;return t.add(r),r}walkFactory(e,t,r,i=null){let n=this.rstate,s=n.sink,a=this.newBlockName(),o=i!==null?[i.itemVar,i.indexVar]:[],l=new Set(o),c=new Set;T.collectLeafNames(e,c);let f=new Set(s.renameHazardNames??[]),h=(b)=>{if(!l.has(b))return l.add(b),b;let _=`${b}_`;while(l.has(_)||c.has(_))_+="_";return l.add(_),f.add(b),f.add(_),_},u=s.loopStack.map((b)=>({...b,itemVar:h(b.itemVar),indexVar:h(b.indexVar)})),m=u.flatMap((b)=>[b.itemVar,b.indexVar]),S=i!==null?[...u,i]:u,g={kind:t,name:a,parent:s,self:"ctx",paramNames:[...o,...m],frameVar:"__fr",ownerVar:"__o",creates:[],setups:[],vars:new Set,locals:new Set,localDecls:new Map,bindings:new Set([...m,...o]),refs:[],loopStack:S,stmts:[],forceNonStatic:!1,root:null,isStatic:!1,originNode:r,hasKids:!1,kidsVar:null,renameHazardNames:f,narrowed:[...s.narrowed??[],...this._narrowNext??[]]};this._narrowNext=null,n.records.push(g);let d=n.transitionSlot;n.transitionSlot=t==="branch"?{record:g,el:null}:null,n.sink=g,this.rframes.push({reactive:new Set,bound:g.bindings,loopVars:g.bindings});try{let b;if(u1(e))b=e.slice(1);else if(E(e)&&e.length===1&&E(e[0])&&this.stores.idOf(e)===null)b=[e[0]];else b=[e];if(g.stmts=b,g.root=b.length===0?null:this.walkChildStmts(b),g.root===null)g.root=this.newRenderVar("empty"),this.renderLine(null,()=>this.b.emit(`${g.root} = document.createComment('')`))}finally{this.rframes.pop(),n.sink=s,n.transitionSlot=d}this.closeRenderScope(g),g.isStatic=t==="loop"&&g.setups.length===0&&!g.forceNonStatic;let R=new Set([...g.bindings,...g.locals,...g.vars]);if(T.collectLeafNames(g.stmts,R),g.self=T.mintName("ctx",R),g.frameVar=T.mintName("__fr",R),g.ownerVar=T.mintName("__o",R),g.hasKids)g.kidsVar=T.mintName("_factoryChildren",R);return g}narrowConjuncts(e){if(E(e)&&e[0]==="&&"&&e.length===3)return[...this.narrowConjuncts(e[1]),...this.narrowConjuncts(e[2])];if(!T.isDotChain(e))return[];let t=e;while(E(t))t=t[1];if(t==="this")return[e];if(this.renderVarKind(t)!==null||this.bareRewrite(t)===null)return[];return[e]}static isDotChain(e){if(!E(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string"||e[2][0]==='"')return!1;let t=e[1];if(t==="this")return!0;if(typeof t==="string")return/^[A-Za-z_$][\w$]*$/.test(t);return T.isDotChain(t)}activeNarrowed(){let e=this.renderRecord;if(!this.ts||!e||!(e.narrowed?.length>0))return[];return e.narrowed.filter((t)=>{let r=t;while(E(r))r=r[1];return r==="this"||!(e.bindings.has(r)||e.locals.has(r))})}hasNarrow(){return this.activeNarrowed().length>0}narrowGuard(e="statement",{trailing:t=!0}={}){let r=this.activeNarrowed();if(r.length===0)return!1;return this._needsNarrowHelper=!0,this.b.tsOnly(()=>this.b.echo(()=>{if(r.forEach((i,n)=>{if(n>0)this.b.emit(" ");this.b.emit(e==="statement"?"__ripNarrow(":"(__ripNarrow("),this.renderExpr(i),this.b.emit(e==="statement"?");":"),")}),t)this.b.emit(" ")})),!0}narrowGuardClose(e){if(e)this.b.tsOnly(()=>this.b.emit(")".repeat(this.activeNarrowed().length)))}renderCond(e,t=e){if(e.length>4)throw this.positionedError(e,"emitter: unexpected flat conditional chain shape in render (internal)");if(this.stores.idOf(t)===null&&this._chainMarkNode)t=this._chainMarkNode;let[,r,i]=e,n=e.length===4?e[3]:null;this.checkSetupLocalRefs(r,t),this.checkCrossScopeLocals(r,t);let s=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${s} = document.createComment('if')`)),this._narrowNext=this.narrowConjuncts(r);let a=this.walkFactory(i,"branch",t),o=this._chainMarkNode;if(n!==null&&E(n)&&n[0]==="if"&&this.stores.idOf(n)===null)this._chainMarkNode=t;let l=n!==null?this.walkFactory(n,"branch",t):null;this._chainMarkNode=o;let c=a.refs.length>0||l!==null&&l.refs.length>0,f=this.rstate.sink,h=f.loopStack.flatMap((u)=>[u.itemVar,u.indexVar]);return f.setups.push({kind:"raw",node:t,fn:(u)=>this.emitCondSetup(u,t,e,s,a,l,c,h)}),s}renderSwitch(e){let[,t,r,i]=e;if(T.hasMatchArms(r))this.checkMatchSwitch(e);let n=i;for(let s=r.length-1;s>=0;s--){let[,a,o]=r[s],l;if(t===null)l=a.reduce((c,f)=>c===null?f:["||",c,f],null);else l=a.map((c)=>T.matchArmSexpr(t,c)).reduce((c,f)=>c===null?f:["||",c,f],null);n=n!==null?["if",l,o,n]:["if",l,o]}if(n===null||n[0]!=="if")return n===null?this.renderNode("null"):this.renderChildBlock(n);return this.renderCond(n,e)}renderLoop(e){let[,t,r,i,n,s]=e;if(i!==null)throw this.positionedError(e,"emitter: a `by` step has no render reading — the reconciler patches whole collections; step the collection itself: `items.filter((x, i) -> i % 2 == 0)`");if(n!==null)throw this.positionedError(e,"emitter: a `when` guard has no render reading — the reconciler patches whole collections; filter the collection itself: `for x in items.filter((x) -> cond)`");if(t.length>2||t.some((_)=>typeof _!=="string"))throw this.positionedError(e,"emitter: a render loop takes plain item and index variables (`for item, i in items`) — destructuring loop "+"variables have no factory-parameter reading here; destructure inside the body");if(t.length===2&&t[0]===t[1])throw this.positionedError(e,`emitter: a render loop cannot bind '${t[0]}' as BOTH item and index — one name cannot hold two row facts `);for(let _ of t)if(_.startsWith("__"))throw this.positionedError(e,`emitter: render loop variable '${_}' — double-underscore names are the compiler/runtime namespace inside `+"render (factory scaffolding and injected helpers live there)");this.checkSetupLocalRefs(r,e),this.checkCrossScopeLocals(r,e);let a=t[0],o=t[1]??null;if(o===null){let _=new Set(this.loopVarNames());_.add(a),T.collectRenderBodyBindings(s,_);let y=(p,k)=>{if(typeof p==="string")return p===k;return E(p)&&p.some((I)=>y(I,k))};for(let p of["i","j","k","l","m","n"])if(!_.has(p)&&!y(s,p)){o=p;break}o=o??`__rip_idx${this.rstate.sink.loopStack.length}`}let l=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${l} = document.createComment('for')`));let c=this.renderReactive(r),f=this.extractLoopKey(s,e),h=f!==null?this.rstate.keySpan??null:null;if(f!==null)this.checkSetupLocalRefs(f,e),this.checkCrossScopeLocals(f,e);let u=this.stores.idOf(e),m=u!==null?this.stores.role(u,"vars"):null,S=this.primitiveAvoid;if(m?.sourceStart!=null)this.primitiveAvoid=[...S??[],[m.sourceStart,m.sourceEnd]];let g;try{g=this.walkFactory(s,"loop",e,{itemVar:a,indexVar:o,reactiveSource:c,iter:r,node:e})}finally{this.primitiveAvoid=S}if(f!==null){if(g.locals.size>0&&$e(f,g.locals))throw this.positionedError(e,"emitter: a `key:` expression must be evaluable in the loop HEADER scope — it reads a render local declared "+"inside the loop body, which lives in the row factory (derive the key from the item inline: `key: item.id`)");if(!$e(f,new Set([a,o])))throw this.positionedError(e,`emitter: a loop key must derive from the row — this \`key:\` expression never reads '${a}'${t.length===2?` or '${o}'`:""} (a row-independent key cannot identify rows)`)}let d=g.refs.length>0,R=this.rstate.sink,b=R.loopStack.flatMap((_)=>[_.itemVar,_.indexVar]);return R.setups.push({kind:"raw",node:e,fn:(_)=>this.emitLoopSetup(_,e,l,r,g,f,a,o,d,b,h)}),l}static collectRenderBodyBindings(e,t){if(!E(e))return;if((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&E(e[1])){for(let r of e[1])if(typeof r==="string")t.add(r)}else if(e[0]==="="&&e.length===3&&typeof e[1]==="string")t.add(e[1]);for(let r of e)T.collectRenderBodyBindings(r,t)}extractLoopKey(e,t){let i=(u1(e)?e.slice(1):[e]).find((s)=>!this.isRenderBinding(s));if(!E(i))return null;let n=(s)=>{for(let a=1;a0?`, ${o.join(", ")}`:"",f=e+" ",h=f+" ",u=new Set([l,...o]);T.collectLeafNames(r[1],u);let m=T.mintName("anchor",u),S=T.mintName("currentBlock",u),g=T.mintName("showing",u),d=T.mintName("show",u),R=T.mintName("want",u),b=T.mintName("leaving",u),_=this.runtimeName("__transition"),y=(k)=>{this.b.emit(`${h} ${S} = ${l}.${k.name}(${l}${c}); +`)}});for(let{pair:w,key:D,value:B}of f){let a1=D.startsWith('"')&&D.endsWith('"')?D.slice(1,-1):D;this.renderEffect(w,()=>{this.b.emit(`if (${o}) ${o}._updateProp('${a1}', `),this.renderExpr(B),this.b.emit(");")},B)}return l}addChildProp(e,t,r,i,n,s){let a=this.childContainerRef(s);if(a!==null){e.push({pair:r,key:i,fn:a});return}if(this.checkCrossScopeLocals(s,r),this.ts&&this.routesUnion!==null&&n==="href"&&this.isRouteLiteralValue(s)){this._needsRouteHelper=!0;let l={pair:r,key:i,routeKey:null};l.fn=()=>{this.b.tsOnly(()=>this.b.emit("__ripRoute("));let c=this.b.offset;this.renderExpr(s);let f=this.b.offset;if(this.b.tsOnly(()=>this.b.emit(")")),l.routeKey!==null)this.routeWrapSpans.push({key:l.routeKey,value:[c,f]})},e.push(l)}else e.push({pair:r,key:i,fn:()=>this.renderExpr(s)});if(!T1(s)&&this.renderReactive(s))t.push({pair:r,key:i,value:s})}childContainerRef(e){if(typeof e==="string"){if(this.renderVarKind(e)!==null)return null;let t=this.resolveBareRead(e);if(t==="member-reactive")return()=>{this.b.emit(`${this.renderSelf??"this"}.`);let r=this.emitPrimitive(e);if(this.ts&&r!==null)this.memberDecls.push({start:r[0],end:r[1]})};if(t==="reactive")return()=>this.emitPrimitive(e);return null}if(E(e)&&e[0]==="."&&e[1]==="this"&&e.length===3&&typeof e[2]==="string"&&this.memberIsReactive(e[2]))return()=>{this.b.emit(`${this.renderSelf??"this"}.`),this.emitPrimitive(e[2])};return null}isRouteLiteralValue(e){let t=(r)=>typeof r==="string"&&/^["'`]\//.test(r);return t(e)||E(e)&&e[0]==="str"&&t(e[1])}renderAttributes(e,t){let r=this.rstate;if(this.ts&&this.tsDirectivesArmed&&this.tsDirectiveMap.has(t)){let i=t.slice(1).find((s)=>E(s));if(i!==void 0&&i.length===3&&!r.suppressedPairs.has(i)&&(()=>{let s=i[1];if(typeof s!=="string")return!0;if(s.startsWith('"')&&s.endsWith('"'))s=s.slice(1,-1);if((s==="class"||s==="className")&&r.pendingClassArgs!==null&&r.pendingClassEl===e)return!1;if(s==="ref"&&this.rstate.sink.kind!=="class")return!1;return!0})()){let s=this.tsDirectiveMap.get(t);this.tsDirectiveMap.delete(t),this.tsDirectiveMap.set(i,[...s,...this.tsDirectiveMap.get(i)??[]])}}for(let i of t.slice(1)){if(!E(i)||i.length!==3)throw this.positionedError(i,"emitter: unsupported attribute form in render",t);if(r.suppressedPairs.has(i))continue;let[,n,s]=i;this.checkCrossScopeLocals(s,i);let a=null;if(this.ts){let y=this.stores.idOf(i),m=y!==null?this.stores.selfSpan(y):null,k=this.b.source;if(m!==null&&k!==null){let O=m[0];while(Om[0])a={key:[m[0],O],pair:[m[0],m[1]],sites:[]},this.renderPairs.push(a)}}let o=(y)=>{if(a!==null&&y!==null&&y[1]>y[0])a.sites.push(y)};if(E(n)&&n[0]==="."&&n[1]==="this"&&typeof n[2]==="string"){let y=n[2];if(this.checkBareEventHandler(i,s),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ie(s,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let m=new Set;T.collectLeafNames(s,m);let k=T.mintName("e",m),O=this.tsElReceiver(e),A=this.ts?this.tsEventTypeText([y],O.hostText):null;if(this.ts){let x=this.stores.idOf(n)??null,I=x!==null?this.stores.selfSpan(x):null;if(I!==null)this.intrinsics.push({start:I[0],end:I[1],kind:"event",name:y,type:A,tag:this.rstate?.tags?.get(e)??null,svg:this.rstate?.svgEls?.has(e)===!0})}this.renderLine(i,()=>{let x=this.renderSelf??"this";if(!this.ts)this.b.emit(`${e}.addEventListener('${y}', (${k}`);else O.emit(),this.b.emit(".addEventListener("),this.emitQuotedPrimitive(y),this.b.emit(`, (${k}`);if(this.tsScaffoldAny(),this.b.emit(`) => ${this.runtimeName("__batch")}(() => `),typeof s==="string"&&this.renderVarKind(s)===null&&this.cframes[this.cframes.length-1].members.has(s)){if(this.ts)this.b.tsOnly(()=>this.b.emit("("));let I=this.b.offset;if(this.b.emit(`${x}.`),this.emitPrimitive(s),this.ts)this.b.tsOnly(()=>this.b.emit(A!==null?` as (e: ${A}) => unknown)`:" as any)"));if(this.ts&&A!==null)o([I,this.b.offset-1]);this.b.emit(`(${k})`)}else{let I=!this.ts?null:T1(s)&&(s[1].length===0||s[1].length===1&&typeof s[1][0]==="string")?A??"any":T1(s)?null:A;this.b.emit("("),o(this.tsHandlerCast(()=>this.withExpression(()=>this.expr(s)),I)),this.b.emit(`)(${k})`)}this.b.emit("))")});continue}if(typeof n!=="string")throw this.positionedError(i,"emitter: computed attribute keys are not supported in render",t);let l=n;if(n.startsWith('"')&&n.endsWith('"'))n=n.slice(1,-1);if(n==="__transition__"){this.noteVocabulary("render-channel",n,i),this.renderTransition(e,i,s,t);continue}if(n==="ref"){this.noteVocabulary("render-channel",n,i),this.renderRef(e,i,s,t,o);continue}if(n.startsWith("__bind_")&&n.endsWith("__")){this.noteVocabulary("render-channel",n,i),this.checkUserSpelledBind(i);let y=n.slice(7,-2);this.renderBind(e,i,y,s,t,o);continue}if(n==="key")throw this.positionedError(i,"emitter: `key:` identifies loop rows — it is read only on the FIRST element of a `for` body inside render; "+"anywhere else it would leak into the DOM as an attribute",t);if(n==="class"||n==="className"){let y=(m,k)=>{if(this.ts&&m!==null)this.intrinsics.push({start:m[0],end:m[1],kind:"attr",name:"class",gen:k})};if(r.pendingClassArgs!==null&&r.pendingClassEl===e){this.checkSetupLocalRefs(s,i);let m=this.stores.idOf(i),k=m!==null?this.stores.selfSpan(m):null;if(this.ts&&k!==null)(r.pendingClassKeys??=[]).push([k[0],k[0]+n.length]);r.pendingClassArgs.push(()=>o(this.renderExpr(s)))}else if(this.renderReactive(s)){let m=r.svgDepth>0,k=this.tsElReceiver(e);this.renderEffect(i,()=>{let O=this.runtimeName("__clsx");if(k.emit(),m){let A=this.b.offset+1;this.b.emit(".setAttribute('"),y(this.emitKeyAs(n,"class"),A),this.b.emit(`', ${O}(`)}else this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(n,"className")),this.b.emit(` = ${O}(`);o(this.renderExpr(s)),this.b.emit(m?"));":");")},s)}else{let m=r.svgDepth>0,k=E(s),O=this.tsElReceiver(e);this.renderLine(i,()=>{let A=this.b.offset;if(O.emit(),m){let I=this.b.offset+1;this.b.emit(".setAttribute('"),y(this.emitKeyAs(n,"class"),I),this.b.emit("', ")}else{if(this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitKeyAs(n,"className")),!k)o([A,this.b.offset]);this.b.emit(" = ")}if(k)this.b.emit(`${this.runtimeName("__clsx")}(`);let x=this.renderExpr(s);if(m||k)o(x);if(k)this.b.emit(")");if(m)this.b.emit(")")})}continue}if((n==="value"||n==="checked")&&this.renderReactive(s)){let y=this.tsElReceiver(e);this.renderEffect(i,()=>{let m=this.b.offset;y.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(n)),o([m,this.b.offset]),this.b.emit(" = "),this.renderExpr(s),this.b.emit(";")},s);continue}if(n==="innerHTML"||n==="textContent"||n==="innerText"){let y=this.tsElReceiver(e),m=()=>{let k=this.b.offset;y.emit(),this.b.emit("."),this.emitPropertyRoadKey(()=>this.emitPrimitive(n)),o([k,this.b.offset]),this.b.emit(" = "),this.renderExpr(s)};if(this.renderReactive(s))this.renderEffect(i,()=>{m(),this.b.emit(";")},s);else this.renderLine(i,m);continue}if(T.BOOLEAN_ATTRS.has(n)){let y=this.tsElReceiver(e),m=()=>{let k=this.emitKeyAs(l,n);if(this.ts&&y.surfaced&&k!==null)this.intrinsics.push({start:k[0],end:k[1],kind:"attr",name:n,type:"boolean | undefined"})};if(this.renderReactive(s))this.renderEffect(i,()=>{if(y.emit(),this.b.emit(".toggleAttribute('"),m(),this.b.emit("', !!"),this.ts)this.b.tsOnly(()=>this.b.emit("("));this.renderExpr(s);let k=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined)"));if(this.ts)o([k,k+9]);this.b.emit(");")},s);else this.renderLine(i,()=>{this.b.emit("if ("),this.withExpression(()=>this.expr(s));let k=this.b.offset+1;if(this.ts)this.b.tsOnly(()=>this.b.emit(" satisfies boolean | undefined"));if(this.ts)o([k,k+9]);this.b.emit(") "),y.emit(),this.b.emit(".setAttribute('"),m(),this.b.emit("', '')")});continue}let c=E(s)&&s[0]==="presence"&&s.length===2;if(n==="style"&&!c){let y=this.tsElReceiver(e),m=()=>{if(this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),this.ts)this.b.tsOnly(()=>this.b.emit(y.surfaced?`: ${y.valsName}['style'] | undefined`:": any"));this.b.emit(" = "),this.renderExpr(s),this.b.emit(`; ${this.runtimeName("__style")}(`),y.emit(),this.b.emit(", __v); }")};if(this.renderReactive(s))this.renderEffect(i,m,s);else this.renderLine(i,m,!1);if(this.ts&&y.surfaced&&a!==null)this.intrinsics.push({start:a.key[0],end:a.key[1],kind:"attr",name:n,type:"string | __RipCSSProperties | undefined"});continue}let f=this.ts&&this.routesUnion!==null&&n==="href"&&this.rstate.tags?.get(e)==="a"&&this.isRouteLiteralValue(s);if(f)this._needsRouteHelper=!0;let h=this.tsElReceiver(e),u=!(typeof s==="string"&&(!X1(s)||s==="true"||s==="false")||E(s)&&s[0]==="str"),d=null,S=null,g=!1,p=()=>{if(g||!this.ts||!h.surfaced||d===null||S===null)return;g=!0,this.intrinsics.push(f?{start:d[0],end:d[1],kind:"attr",name:n,type:this.routesUnion,route:!0}:{start:d[0],end:d[1],kind:"attr",name:n,gen:S});let y=this.renderTagOf(e);if(!rn(y,n))this.intrinsics.push({start:d[0],end:d[1],kind:"unknown-attr",tag:y,name:n,message:this.unknownAttrMessage(y,n,{bare:!1,svg:this.rstate?.svgEls?.has(e)===!0})})},R=()=>{S=this.b.offset+1,this.b.emit(".setAttribute('"),p()},b=()=>{let y=this.emitKeyAs(l,n);if(d===null)d=y;p()},_=()=>{if(!this.ts)return;this.b.tsOnly(()=>this.b.emit(h.surfaced?`: ${h.valsName}['${n}'] | undefined`:": any"))};if(this.renderReactive(s))if(c||u)this.renderEffect(i,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),_(),this.b.emit(" = "),this.renderExpr(s),this.b.emit("; __v == null ? "),h.emit(),this.b.emit(".removeAttribute('"),b(),this.b.emit("') : "),h.emit(),R(),b(),this.b.emit("', __v); }")},s);else this.renderEffect(i,()=>{h.emit(),R();let y=this.b.offset;b();let m=this.b.offset;if(this.b.emit("', "),f)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let k=this.b.offset;o(this.renderExpr(s));let O=this.b.offset;if(this.ts){if(f)this.b.tsOnly(()=>this.b.emit(")"));else if(!h.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(");"),f)this.routeWrapSpans.push({key:[y,m],value:[k,O]})},s);else if(c||u)this.renderLine(i,()=>{this.b.emit("{ const __v"),o([this.b.offset-3,this.b.offset]),_(),this.b.emit(" = "),this.renderExpr(s),this.b.emit("; if (__v != null) "),h.emit(),R(),b(),this.b.emit("', __v); }")},!1);else this.renderLine(i,()=>{h.emit(),R();let y=this.b.offset;b();let m=this.b.offset;if(this.b.emit("', "),f)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let k=this.b.offset;o(this.renderExpr(s));let O=this.b.offset;if(this.ts){if(f)this.b.tsOnly(()=>this.b.emit(")"));else if(!h.surfaced)this.b.tsOnly(()=>this.b.emit(" as any"))}if(this.b.emit(")"),f)this.routeWrapSpans.push({key:[y,m],value:[k,O]})})}}loopVarNames(){let e=new Set;for(let t of this.rstate.sink.loopStack)e.add(t.itemVar),e.add(t.indexVar);return e}checkCrossScopeLocals(e,t){let r=this.rstate;if(!r)return;let i=this.loopVarNames(),n=(s)=>r.sink.locals.has(s)||i.has(s);for(let s=r.sink.parent;s!==null;s=s.parent){if(s.locals.size===0)continue;let a=new Set([...s.locals].filter((o)=>!n(o)));if(a.size>0&&Ie(e,a))throw this.positionedError(t,"emitter: this expression reads a render local of an ENCLOSING render scope — each dynamic block (a "+"conditional branch, a loop body) is its own factory function, and render locals never cross that boundary ; declare the local inside this block, or use a member",this.rstate.node)}}renderBinding(e){let[t,r,i]=e,n=this.rstate.sink;if(r.startsWith("__"))throw this.positionedError(e,`emitter: render local '${r}' — double-underscore names are the compiler/runtime namespace inside render `+"(factory scaffolding and injected helpers live there)");if(n.loopStack.some((s)=>s.itemVar===r||s.indexVar===r))throw this.positionedError(e,`emitter: '${r}' is a loop variable — a render local cannot re-declare or assign it `);if(t==="="){if(!n.locals.has(r)){if(n.locals.add(r),n.bindings.add(r),n.localDecls.set(r,e),n.kind!=="class")n.vars.add(r)}}else if(!n.locals.has(r))throw this.positionedError(e,`emitter: compound assignment to '${r}' — no render local of that name is declared in this render scope `+"(`name = expr` declares one)");return this.checkCrossScopeLocals(i,e),this.renderLine(e,()=>{this.mark(e,"target",()=>this.b.emit(r)),this.b.emit(` ${t} `),this.mark(e,"value",()=>this.withExpression(()=>this.expr(i)))}),null}closeRenderScope(e){for(let[t,r]of e.localDecls){let i=0,n=(s)=>{if(typeof s==="string"){if(s===t)i++;return}if(!E(s))return;if(Hs.has(s[0])&&s.length===3&&s[1]===t){n(s[2]);return}if((s[0]===":"||s[0]==="void-pair")&&s.length===3&&typeof s[1]==="string"){n(s[2]);return}if((s[0]==="."||s[0]==="?.")&&s.length===3&&typeof s[2]==="string"){n(s[1]);return}for(let a of s)n(a)};for(let s of e.stmts)n(s);if(i===0)throw this.positionedError(r,`emitter: render local '${t}' is never read — a dead local renders NOTHING (if this line meant an `+`element with expression text, spell it \`${t}\` + indented \`= expr\`: inside render \`${t} = expr\` declares a local named the tag)`,this.rstate.node)}}static collectLeafNames(e,t){if(typeof e==="string"){if(st.test(e))t.add(e);return}if(!E(e))return;if((e[0]===":"||e[0]==="void-pair")&&e.length===3&&typeof e[1]==="string"){T.collectLeafNames(e[2],t);return}if((e[0]==="."||e[0]==="?.")&&e.length===3&&typeof e[2]==="string"){T.collectLeafNames(e[1],t);return}for(let r of e)T.collectLeafNames(r,t)}static mintName(e,t){let r=e;while(t.has(r))r=`${r}_`;return t.add(r),r}walkFactory(e,t,r,i=null){let n=this.rstate,s=n.sink,a=this.newBlockName(),o=i!==null?[i.itemVar,i.indexVar]:[],l=new Set(o),c=new Set;T.collectLeafNames(e,c);let f=new Set(s.renameHazardNames??[]),h=(b)=>{if(!l.has(b))return l.add(b),b;let _=`${b}_`;while(l.has(_)||c.has(_))_+="_";return l.add(_),f.add(b),f.add(_),_},u=s.loopStack.map((b)=>({...b,itemVar:h(b.itemVar),indexVar:h(b.indexVar)})),d=u.flatMap((b)=>[b.itemVar,b.indexVar]),S=i!==null?[...u,i]:u,g={kind:t,name:a,parent:s,self:"ctx",paramNames:[...o,...d],frameVar:"__fr",ownerVar:"__o",creates:[],setups:[],vars:new Set,locals:new Set,localDecls:new Map,bindings:new Set([...d,...o]),refs:[],loopStack:S,stmts:[],forceNonStatic:!1,root:null,isStatic:!1,originNode:r,hasKids:!1,kidsVar:null,renameHazardNames:f,narrowed:[...s.narrowed??[],...this._narrowNext??[]]};this._narrowNext=null,n.records.push(g);let p=n.transitionSlot;n.transitionSlot=t==="branch"?{record:g,el:null}:null,n.sink=g,this.rframes.push({reactive:new Set,bound:g.bindings,loopVars:g.bindings});try{let b;if(u1(e))b=e.slice(1);else if(E(e)&&e.length===1&&E(e[0])&&this.stores.idOf(e)===null)b=[e[0]];else b=[e];if(g.stmts=b,g.root=b.length===0?null:this.walkChildStmts(b),g.root===null)g.root=this.newRenderVar("empty"),this.renderLine(null,()=>this.b.emit(`${g.root} = document.createComment('')`))}finally{this.rframes.pop(),n.sink=s,n.transitionSlot=p}this.closeRenderScope(g),g.isStatic=t==="loop"&&g.setups.length===0&&!g.forceNonStatic;let R=new Set([...g.bindings,...g.locals,...g.vars]);if(T.collectLeafNames(g.stmts,R),g.self=T.mintName("ctx",R),g.frameVar=T.mintName("__fr",R),g.ownerVar=T.mintName("__o",R),g.hasKids)g.kidsVar=T.mintName("_factoryChildren",R);return g}narrowConjuncts(e){if(E(e)&&e[0]==="&&"&&e.length===3)return[...this.narrowConjuncts(e[1]),...this.narrowConjuncts(e[2])];if(!T.isDotChain(e))return[];let t=e;while(E(t))t=t[1];if(t==="this")return[e];if(this.renderVarKind(t)!==null||this.bareRewrite(t)===null)return[];return[e]}static isDotChain(e){if(!E(e)||e[0]!=="."||e.length!==3||typeof e[2]!=="string"||e[2][0]==='"')return!1;let t=e[1];if(t==="this")return!0;if(typeof t==="string")return/^[A-Za-z_$][\w$]*$/.test(t);return T.isDotChain(t)}activeNarrowed(){let e=this.renderRecord;if(!this.ts||!e||!(e.narrowed?.length>0))return[];return e.narrowed.filter((t)=>{let r=t;while(E(r))r=r[1];return r==="this"||!(e.bindings.has(r)||e.locals.has(r))})}hasNarrow(){return this.activeNarrowed().length>0}narrowGuard(e="statement",{trailing:t=!0}={}){let r=this.activeNarrowed();if(r.length===0)return!1;return this._needsNarrowHelper=!0,this.b.tsOnly(()=>this.b.echo(()=>{if(r.forEach((i,n)=>{if(n>0)this.b.emit(" ");this.b.emit(e==="statement"?"__ripNarrow(":"(__ripNarrow("),this.renderExpr(i),this.b.emit(e==="statement"?");":"),")}),t)this.b.emit(" ")})),!0}narrowGuardClose(e){if(e)this.b.tsOnly(()=>this.b.emit(")".repeat(this.activeNarrowed().length)))}renderCond(e,t=e){if(e.length>4)throw this.positionedError(e,"emitter: unexpected flat conditional chain shape in render (internal)");if(this.stores.idOf(t)===null&&this._chainMarkNode)t=this._chainMarkNode;let[,r,i]=e,n=e.length===4?e[3]:null;this.checkSetupLocalRefs(r,t),this.checkCrossScopeLocals(r,t);let s=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${s} = document.createComment('if')`)),this._narrowNext=this.narrowConjuncts(r);let a=this.walkFactory(i,"branch",t),o=this._chainMarkNode;if(n!==null&&E(n)&&n[0]==="if"&&this.stores.idOf(n)===null)this._chainMarkNode=t;let l=n!==null?this.walkFactory(n,"branch",t):null;this._chainMarkNode=o;let c=a.refs.length>0||l!==null&&l.refs.length>0,f=this.rstate.sink,h=f.loopStack.flatMap((u)=>[u.itemVar,u.indexVar]);return f.setups.push({kind:"raw",node:t,fn:(u)=>this.emitCondSetup(u,t,e,s,a,l,c,h)}),s}renderSwitch(e){let[,t,r,i]=e;if(T.hasMatchArms(r))this.checkMatchSwitch(e);let n=i;for(let s=r.length-1;s>=0;s--){let[,a,o]=r[s],l;if(t===null)l=a.reduce((c,f)=>c===null?f:["||",c,f],null);else l=a.map((c)=>T.matchArmSexpr(t,c)).reduce((c,f)=>c===null?f:["||",c,f],null);n=n!==null?["if",l,o,n]:["if",l,o]}if(n===null||n[0]!=="if")return n===null?this.renderNode("null"):this.renderChildBlock(n);return this.renderCond(n,e)}renderLoop(e){let[,t,r,i,n,s]=e;if(i!==null)throw this.positionedError(e,"emitter: a `by` step has no render reading — the reconciler patches whole collections; step the collection itself: `items.filter((x, i) -> i % 2 == 0)`");if(n!==null)throw this.positionedError(e,"emitter: a `when` guard has no render reading — the reconciler patches whole collections; filter the collection itself: `for x in items.filter((x) -> cond)`");if(t.length>2||t.some((_)=>typeof _!=="string"))throw this.positionedError(e,"emitter: a render loop takes plain item and index variables (`for item, i in items`) — destructuring loop "+"variables have no factory-parameter reading here; destructure inside the body");if(t.length===2&&t[0]===t[1])throw this.positionedError(e,`emitter: a render loop cannot bind '${t[0]}' as BOTH item and index — one name cannot hold two row facts `);for(let _ of t)if(_.startsWith("__"))throw this.positionedError(e,`emitter: render loop variable '${_}' — double-underscore names are the compiler/runtime namespace inside `+"render (factory scaffolding and injected helpers live there)");this.checkSetupLocalRefs(r,e),this.checkCrossScopeLocals(r,e);let a=t[0],o=t[1]??null;if(o===null){let _=new Set(this.loopVarNames());_.add(a),T.collectRenderBodyBindings(s,_);let y=(m,k)=>{if(typeof m==="string")return m===k;return E(m)&&m.some((O)=>y(O,k))};for(let m of["i","j","k","l","m","n"])if(!_.has(m)&&!y(s,m)){o=m;break}o=o??`__rip_idx${this.rstate.sink.loopStack.length}`}let l=this.newRenderVar("anchor");this.renderLine(null,()=>this.b.emit(`${l} = document.createComment('for')`));let c=this.renderReactive(r),f=this.extractLoopKey(s,e),h=f!==null?this.rstate.keySpan??null:null;if(f!==null)this.checkSetupLocalRefs(f,e),this.checkCrossScopeLocals(f,e);let u=this.stores.idOf(e),d=u!==null?this.stores.role(u,"vars"):null,S=this.primitiveAvoid;if(d?.sourceStart!=null)this.primitiveAvoid=[...S??[],[d.sourceStart,d.sourceEnd]];let g;try{g=this.walkFactory(s,"loop",e,{itemVar:a,indexVar:o,reactiveSource:c,iter:r,node:e})}finally{this.primitiveAvoid=S}if(f!==null){if(g.locals.size>0&&Ie(f,g.locals))throw this.positionedError(e,"emitter: a `key:` expression must be evaluable in the loop HEADER scope — it reads a render local declared "+"inside the loop body, which lives in the row factory (derive the key from the item inline: `key: item.id`)");if(!Ie(f,new Set([a,o])))throw this.positionedError(e,`emitter: a loop key must derive from the row — this \`key:\` expression never reads '${a}'${t.length===2?` or '${o}'`:""} (a row-independent key cannot identify rows)`)}let p=g.refs.length>0,R=this.rstate.sink,b=R.loopStack.flatMap((_)=>[_.itemVar,_.indexVar]);return R.setups.push({kind:"raw",node:e,fn:(_)=>this.emitLoopSetup(_,e,l,r,g,f,a,o,p,b,h)}),l}static collectRenderBodyBindings(e,t){if(!E(e))return;if((e[0]==="for-in"||e[0]==="for-of"||e[0]==="for-as")&&E(e[1])){for(let r of e[1])if(typeof r==="string")t.add(r)}else if(e[0]==="="&&e.length===3&&typeof e[1]==="string")t.add(e[1]);for(let r of e)T.collectRenderBodyBindings(r,t)}extractLoopKey(e,t){let i=(u1(e)?e.slice(1):[e]).find((s)=>!this.isRenderBinding(s));if(!E(i))return null;let n=(s)=>{for(let a=1;a0?`, ${o.join(", ")}`:"",f=e+" ",h=f+" ",u=new Set([l,...o]);T.collectLeafNames(r[1],u);let d=T.mintName("anchor",u),S=T.mintName("currentBlock",u),g=T.mintName("showing",u),p=T.mintName("show",u),R=T.mintName("want",u),b=T.mintName("leaving",u),_=this.runtimeName("__transition"),y=(k)=>{this.b.emit(`${h} ${S} = ${l}.${k.name}(${l}${c}); `),this.b.emit(`${h} ${S}.c(); -`),this.b.emit(`${h} if (${m}.parentNode) ${S}.m(${m}.parentNode, ${m}.nextSibling); +`),this.b.emit(`${h} if (${d}.parentNode) ${S}.m(${d}.parentNode, ${d}.nextSibling); `),this.b.emit(`${h} ${S}.p(${l}${c}); `),this.b.emit(`${h} if (${S}._t) ${_}(${S}._first, ${S}._t, 'enter', undefined); -`)},p=()=>{if(this.b.emit(`${e}{ -`),this.b.emit(`${f}const ${m} = ${i}; +`)},m=()=>{if(this.b.emit(`${e}{ +`),this.b.emit(`${f}const ${d} = ${i}; `),this.b.emit(`${f}let ${S}`),this.tsScaffoldAny(),this.b.emit(` = null; `),this.b.emit(`${f}let ${g}`),this.tsScaffoldAny(),this.b.emit(` = null; `),this.b.emit(`${f}${this.runtimeName("__effect")}(() => { `),a)this.b.emit(`${h}${this.runtimeName("__batch")}(() => { `);if(this.hasNarrow())this.b.tsOnly(()=>{this.b.emit(h),this.narrowGuard("statement",{trailing:!1}),this.b.emit(` -`)});if(this.b.emit(`${h}const ${d} = !!(`),this.mark(t,"$self",()=>this.mark(t,"condition",()=>this.renderExpr(r[1]))),this.b.emit(`); -`),this.b.emit(`${h}const ${R} = ${d} ? 'then' : ${s!==null?"'else'":"null"}; +`)});if(this.b.emit(`${h}const ${p} = !!(`),this.mark(t,"$self",()=>this.mark(t,"condition",()=>this.renderExpr(r[1]))),this.b.emit(`); +`),this.b.emit(`${h}const ${R} = ${p} ? 'then' : ${s!==null?"'else'":"null"}; `),this.b.emit(`${h}if (${R} === ${g}) return; `),this.b.emit(`${h}if (${S}) { `),this.b.emit(`${h} const ${b} = ${S}; @@ -222,14 +222,14 @@ ${w} ${l} = ${o}._mountSetup(document.createComment('rip:child-error: ${t}')); `);this.b.emit(`${f}}); `),this.b.emit(`${f}${this.runtimeName("__ownerFrame")}().add(() => { if (${S}) { ${S}.d(true); ${S} = null; } }); `),this.b.emit(`${e}} -`)};this.mark(t,"$self",p)}emitLoopSetup(e,t,r,i,n,s,a,o,l,c,f=null){let h=this.renderSelf??"this",u=c.length>0?`, ${c.join(", ")}`:"",m=e+" ",S=m+" ",g=new Set([h,a,o,...c]);if(T.collectLeafNames(i,g),s!==null)T.collectLeafNames(s,g);let d=T.mintName("__s",g),R=T.mintName("__b",g);this.mark(t,"$self",()=>{if(this.b.emit(`${e}{ -`),this.b.emit(`${m}const ${d}`),this.tsScaffoldAny(),this.b.emit(` = { blocks: [], keys: [] }; -`),this.b.emit(`${m}${this.runtimeName("__effect")}(() => { -`),this.b.emit(S),l)this.b.emit(`${this.runtimeName("__batch")}(() => `);let b=this.narrowGuard(l?"expression":"statement");if(this.b.emit(`${this.runtimeName("__reconcile")}(${r}, ${d}, `),this.withExpression(()=>this.expr(i)),this.b.emit(`, ${h}, ${h}.${n.name}, `),s!==null){let _=this.tsIterElementTypeText(i,new Set([a,o,...n.renameHazardNames]),new Set([h,...c]));{let y=this.stores.idOf(t),p=y!==null?this.stores.role(y,"vars"):null,k=p?.sourceStart!=null?this.stores.primitiveSpans(a,p.sourceStart,p.sourceEnd)[0]??null:null;if(this.b.emit("("),k){let I=this.b.offset;this.b.markSpan(y,"identifier",k.sourceStart,k.sourceEnd,()=>this.b.emit(a)),this.loopVars.push([I,this.b.offset])}else this.b.emit(a)}if(_!==null)this.b.tsOnly(()=>this.b.emit(`: ${_}`));if(this.b.emit(`, ${o}`),this.ts)this.b.tsOnly(()=>this.b.emit(": number"));this.b.emit(") => "),this.rframes.push({reactive:new Set,bound:new Set([a,o]),loopVars:new Set([a,o])});try{this.withExpression(()=>{let y=T.needsGrouping(s,"operand")||O1(s),p=this.tsServedValue("__key",()=>{if(y)this.b.emit("(");{let k=this.stores.idOf(t),I=k!==null?this.stores.role(k,"vars"):null,A=this.primitiveAvoid;if(I?.sourceStart!=null)this.primitiveAvoid=[...A??[],[I.sourceStart,I.sourceEnd]];try{this.expr(s)}finally{this.primitiveAvoid=A}}if(y)this.b.emit(")")});if(p!==null&&f!==null)this.intrinsics.push({start:f[0],end:f[1],kind:"key",gen:p})})}finally{this.rframes.pop()}}else this.b.emit("null");if(this.b.emit(`${u})`),l)this.narrowGuardClose(b);if(l)this.b.emit(")");this.b.emit(`; -`),this.b.emit(`${m}}); -`),this.b.emit(`${m}${this.runtimeName("__ownerFrame")}().add(() => { for (const ${R} of ${d}.blocks) { try { ${R}.d(true); } catch {} } ${d}.blocks = []; ${d}.keys = []; ${d}.items = []; }); +`)};this.mark(t,"$self",m)}emitLoopSetup(e,t,r,i,n,s,a,o,l,c,f=null){let h=this.renderSelf??"this",u=c.length>0?`, ${c.join(", ")}`:"",d=e+" ",S=d+" ",g=new Set([h,a,o,...c]);if(T.collectLeafNames(i,g),s!==null)T.collectLeafNames(s,g);let p=T.mintName("__s",g),R=T.mintName("__b",g);this.mark(t,"$self",()=>{if(this.b.emit(`${e}{ +`),this.b.emit(`${d}const ${p}`),this.tsScaffoldAny(),this.b.emit(` = { blocks: [], keys: [] }; +`),this.b.emit(`${d}${this.runtimeName("__effect")}(() => { +`),this.b.emit(S),l)this.b.emit(`${this.runtimeName("__batch")}(() => `);let b=this.narrowGuard(l?"expression":"statement");if(this.b.emit(`${this.runtimeName("__reconcile")}(${r}, ${p}, `),this.withExpression(()=>this.expr(i)),this.b.emit(`, ${h}, ${h}.${n.name}, `),s!==null){let _=this.tsIterElementTypeText(i,new Set([a,o,...n.renameHazardNames]),new Set([h,...c]));{let y=this.stores.idOf(t),m=y!==null?this.stores.role(y,"vars"):null,k=m?.sourceStart!=null?this.stores.primitiveSpans(a,m.sourceStart,m.sourceEnd)[0]??null:null;if(this.b.emit("("),k){let O=this.b.offset;this.b.markSpan(y,"identifier",k.sourceStart,k.sourceEnd,()=>this.b.emit(a)),this.loopVars.push([O,this.b.offset])}else this.b.emit(a)}if(_!==null)this.b.tsOnly(()=>this.b.emit(`: ${_}`));if(this.b.emit(`, ${o}`),this.ts)this.b.tsOnly(()=>this.b.emit(": number"));this.b.emit(") => "),this.rframes.push({reactive:new Set,bound:new Set([a,o]),loopVars:new Set([a,o])});try{this.withExpression(()=>{let y=T.needsGrouping(s,"operand")||O1(s),m=this.tsServedValue("__key",()=>{if(y)this.b.emit("(");{let k=this.stores.idOf(t),O=k!==null?this.stores.role(k,"vars"):null,A=this.primitiveAvoid;if(O?.sourceStart!=null)this.primitiveAvoid=[...A??[],[O.sourceStart,O.sourceEnd]];try{this.expr(s)}finally{this.primitiveAvoid=A}}if(y)this.b.emit(")")});if(m!==null&&f!==null)this.intrinsics.push({start:f[0],end:f[1],kind:"key",gen:m})})}finally{this.rframes.pop()}}else this.b.emit("null");if(this.b.emit(`${u})`),l)this.narrowGuardClose(b);if(l)this.b.emit(")");this.b.emit(`; +`),this.b.emit(`${d}}); +`),this.b.emit(`${d}${this.runtimeName("__ownerFrame")}().add(() => { for (const ${R} of ${p}.blocks) { try { ${R}.d(true); } catch {} } ${p}.blocks = []; ${p}.keys = []; ${p}.items = []; }); `),this.b.emit(`${e}} -`)})}emitFactory(e,t,r){let i=" ".repeat(t+1),n=i+" ",s=n+" ",a=s+" ",{self:o,frameVar:l,ownerVar:c}=e,f=[o,...e.paramNames],h=e.setups.length>0,u=new Set([...e.bindings,...e.locals,...e.vars,o,l,c]);if(e.kidsVar!==null)u.add(e.kidsVar);T.collectLeafNames(e.stmts,u);let m=[o,...e.paramNames.map((k)=>T.mintName(`__${k}`,u))],S=e.kidsVar!==null?T.mintName("__c",u):null,g=e.kidsVar!==null?T.mintName("__e",u):null,d=!e.isStatic,R=this.ts?T.mintName("__Ctx",u):null,b=new Map,_=new Map;if(e.loopStack.forEach((k)=>{if(k.node!==void 0)_.set(k.itemVar,k.node),_.set(k.indexVar,k.node)}),this.ts)this.withRecordContext(e,()=>{e.loopStack.forEach((k,I)=>{let A=this.tsLoopItemTypeText(k,e,I);if(A!==null)b.set(k.itemVar,A);b.set(k.indexVar,"number")})});let y=new Map;for(let k of e.loopStack){let I=k.node?this.stores.idOf(k.node):null,A=I!==null?this.stores.role(I,"vars"):null;if(A?.sourceStart==null)continue;for(let x of[k.itemVar,k.indexVar]){if(typeof x!=="string"||y.has(x))continue;let O=this.stores.primitiveSpans(x,A.sourceStart,A.sourceEnd)[0]??null;if(O)y.set(x,{id:I,start:O.sourceStart,end:O.sourceEnd})}}let p=(k,I,A)=>{k.forEach((x,O)=>{if(O>0)this.b.emit(", ");let G=()=>{let V=y.get(x);if(V){let W=this.b.offset;if(this.b.markSpan(V.id,"identifier",V.start,V.end,()=>this.b.emit(x)),this.isRenderLoopName(x))this.loopVars.push([W,this.b.offset])}else this.emitPrimitive(x);if(!this.ts)return;let Z=O===0?I:A(x,O);if(Z!=null)this.b.tsOnly(()=>this.b.emit(`: ${Z}`))},K=_.get(x);if(K!==void 0)this.mark(K,"$self",G);else G()})};this.mark(r,"$self",()=>{this.withRecordContext(e,()=>{if(this.b.emit(`${i}${e.name}(`),p(f,"this",(A)=>b.get(A)),this.b.emit(`) { +`)})}emitFactory(e,t,r){let i=" ".repeat(t+1),n=i+" ",s=n+" ",a=s+" ",{self:o,frameVar:l,ownerVar:c}=e,f=[o,...e.paramNames],h=e.setups.length>0,u=new Set([...e.bindings,...e.locals,...e.vars,o,l,c]);if(e.kidsVar!==null)u.add(e.kidsVar);T.collectLeafNames(e.stmts,u);let d=[o,...e.paramNames.map((k)=>T.mintName(`__${k}`,u))],S=e.kidsVar!==null?T.mintName("__c",u):null,g=e.kidsVar!==null?T.mintName("__e",u):null,p=!e.isStatic,R=this.ts?T.mintName("__Ctx",u):null,b=new Map,_=new Map;if(e.loopStack.forEach((k)=>{if(k.node!==void 0)_.set(k.itemVar,k.node),_.set(k.indexVar,k.node)}),this.ts)this.withRecordContext(e,()=>{e.loopStack.forEach((k,O)=>{let A=this.tsLoopItemTypeText(k,e,O);if(A!==null)b.set(k.itemVar,A);b.set(k.indexVar,"number")})});let y=new Map;for(let k of e.loopStack){let O=k.node?this.stores.idOf(k.node):null,A=O!==null?this.stores.role(O,"vars"):null;if(A?.sourceStart==null)continue;for(let x of[k.itemVar,k.indexVar]){if(typeof x!=="string"||y.has(x))continue;let I=this.stores.primitiveSpans(x,A.sourceStart,A.sourceEnd)[0]??null;if(I)y.set(x,{id:O,start:I.sourceStart,end:I.sourceEnd})}}let m=(k,O,A)=>{k.forEach((x,I)=>{if(I>0)this.b.emit(", ");let H=()=>{let K=y.get(x);if(K){let V=this.b.offset;if(this.b.markSpan(K.id,"identifier",K.start,K.end,()=>this.b.emit(x)),this.isRenderLoopName(x))this.loopVars.push([V,this.b.offset])}else this.emitPrimitive(x);if(!this.ts)return;let Z=I===0?O:A(x,I);if(Z!=null)this.b.tsOnly(()=>this.b.emit(`: ${Z}`))},G=_.get(x);if(G!==void 0)this.mark(G,"$self",H);else H()})};this.mark(r,"$self",()=>{this.withRecordContext(e,()=>{if(this.b.emit(`${i}${e.name}(`),m(f,"this",(A)=>b.get(A)),this.b.emit(`) { `),this.ts)this.b.tsOnly(()=>this.b.emit(`${n}type ${R} = typeof ${o}; `));if(e.vars.size>0)this.b.emit(`${n}let `),[...e.vars].forEach((A,x)=>{if(x>0)this.b.emit(", ");this.b.emit(A),this.tsScaffoldAny()}),this.b.emit(`; `);if(e.kidsVar!==null)this.b.emit(`${n}let ${e.kidsVar}`),this.tsScaffoldAny("[]"),this.b.emit(` = []; @@ -237,15 +237,15 @@ ${w} ${l} = ${o}._mountSetup(document.createComment('rip:child-error: ${t}')); `);if(this.b.emit(`${n}return { `),e.isStatic)this.b.emit(`${s}_s: true, `);this.b.emit(`${s}c() { -`),this.replayCreates(e,a);let k=this.rstate.fragChildren.get(e.root),I=k!==void 0?k[0]:e.root;if(this.b.emit(a),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));if(this.b.emit(`._first = ${I}; +`),this.replayCreates(e,a);let k=this.rstate.fragChildren.get(e.root),O=k!==void 0?k[0]:e.root;if(this.b.emit(a),this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));if(this.b.emit(`._first = ${O}; `),this.b.emit(`${s}}, `),this.b.emit(`${s}m(target`),this.tsScaffoldAny(),this.b.emit(", anchor"),this.tsScaffoldAny(),this.b.emit(`) { `),k!==void 0)for(let A of k)this.b.emit(`${a}if (target) target.insertBefore(${A}, anchor); `);else this.b.emit(`${a}if (target) target.insertBefore(${e.root}, anchor); -`);for(let A of e.refs)this.b.emit(a),this.mark(A.node,"$self",()=>{let x=this.ts&&typeof A.tag==="string";if(x)this.b.tsOnly(()=>this.b.emit(`${A.svg?"__ripRefCellSvg":"__ripRefCell"}('${A.tag}', `));let O=this.b.offset;this.b.emit(`${o}.`);let G=this.emitPrimitive(A.name);if(G!==null)this.memberDecls.push({start:G[0],end:G[1]});if(x)A.site([O,this.b.offset]);if(x)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${A.elVar}`),x)this.b.tsOnly(()=>this.b.emit(` as ${Oe(A.tag,A.svg)} | null`));this.b.emit(";")}),this.b.emit(` +`);for(let A of e.refs)this.b.emit(a),this.mark(A.node,"$self",()=>{let x=this.ts&&typeof A.tag==="string";if(x)this.b.tsOnly(()=>this.b.emit(`${A.svg?"__ripRefCellSvg":"__ripRefCell"}('${A.tag}', `));let I=this.b.offset;this.b.emit(`${o}.`);let H=this.emitPrimitive(A.name);if(H!==null)this.memberDecls.push({start:H[0],end:H[1]});if(x)A.site([I,this.b.offset]);if(x)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${A.elVar}`),x)this.b.tsOnly(()=>this.b.emit(` as ${Oe(A.tag,A.svg)} | null`));this.b.emit(";")}),this.b.emit(` `);if(this.b.emit(`${s}}, -`),this.b.emit(`${s}p(`),d)p(m,R,(A,x)=>`typeof ${e.paramNames[x-1]}`);else p(f,R,(A)=>b.get(A));if(this.b.emit(`) { -`),d&&e.paramNames.length>0)this.b.emit(`${a}${e.paramNames.map((A,x)=>`${A} = ${m[x+1]};`).join(" ")} +`),this.b.emit(`${s}p(`),p)m(d,R,(A,x)=>`typeof ${e.paramNames[x-1]}`);else m(f,R,(A)=>b.get(A));if(this.b.emit(`) { +`),p&&e.paramNames.length>0)this.b.emit(`${a}${e.paramNames.map((A,x)=>`${A} = ${d[x+1]};`).join(" ")} `);if(h)this.b.emit(`${a}if (${l}) ${l}.dispose(); `),this.b.emit(`${a}const ${c} = ${this.runtimeName("__pushOwner")}(${l} = ${this.runtimeName("__ownerFrame")}()); `),this.b.emit(`${a}try { @@ -264,90 +264,90 @@ ${w} ${l} = ${o}._mountSetup(document.createComment('rip:child-error: ${t}')); `);this.b.emit(`${s}} `),this.b.emit(`${n}}; `),this.b.emit(`${i}} -`)})})}renderTransition(e,t,r,i){let n=this.rstate,s=n.transitionSlot;if(s===null||s.record!==n.sink||s.el!==e){let o=n.sink.kind==="class"?"a static element)":n.sink.kind==="loop"?"a loop body — the reconciler has no enter/leave phase for rows":"a nested position — the swap animates the branch's FIRST node, so a deeper directive would animate an "+"element it does not name";throw this.positionedError(t,`emitter: a transition (\`~name\`) runs where a conditional branch enters or leaves, and this directive sits on ${o}; put it on the FIRST top-level element of an if/else branch`,this.rstate.node)}if(typeof r!=="string"||!(r.startsWith('"')||r.startsWith("'")))throw this.positionedError(t,"emitter: a transition takes a literal name (`~fade`) — computed transition names have no reading",this.rstate.node);let a=r.replace(/^["']|["']$/g,"");this.renderLine(t,()=>{if(this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._t = "${a}"`)})}renderRef(e,t,r,i,n){let s=typeof r==="string"&&st.test(r)?r:null;if(s===null)throw this.positionedError(t,"emitter: ref: expects a state cell — declare `el := null` then write `ref: el`",this.rstate.node);let a=this.rstate.frame.members.get(s);if(a!=="state"&&a!=="prop")throw this.positionedError(t,a!==void 0?`emitter: ref: target '${s}' is not a writable state cell — declare it with ':=' (computed '~=' and `+"readonly '=!' members can't hold a ref)":`emitter: ref: target '${s}' must be a state cell declared with ':=' (e.g. \`${s} := null\`)`,this.rstate.node);let o=this.renderTagOf(e),l=this.ts&&o!==null&&/^[a-z][a-z0-9-]*$/.test(o),c=this.rstate.svgEls?.has(e)===!0;if(l){this._needsRefCellHelper=!0;let f=this.wordSpanIn("ref",t);if(f!==null)this.intrinsics.push({start:f[0],end:f[1],kind:"ref",tag:o,svg:c,name:s})}if(this.rstate.sink.kind==="class")this.renderLine(t,()=>{if(l)this.b.tsOnly(()=>this.b.emit(`${c?"__ripRefCellSvg":"__ripRefCell"}('${o}', `));let f=this.b.offset;this.b.emit("this.");let h=this.emitPrimitive(s);if(h!==null)this.memberDecls.push({start:h[0],end:h[1]});if(l)n([f,this.b.offset]);if(l)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${e}`),l)this.b.tsOnly(()=>this.b.emit(` as ${Oe(o,c)} | null`))}),this.renderLine(t,()=>{this.b.emit(`(this._refCleanups ??= []).push(() => ${this.runtimeName("__detachRef")}(this.`),this.emitPrimitive(s),this.b.emit(`, ${e}))`)});else this.rstate.sink.refs.push({name:s,elVar:e,node:t,tag:l?o:null,svg:c,site:n})}renderBind(e,t,r,i,n,s){if(this.checkBindTarget(t,i),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&$e(i,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let a=null;for(let u of n.slice(1))if(E(u)&&u.length===3&&(u[1]==="type"||u[1]==='"type"')&&typeof u[2]==="string")a=u[2].replace(/^["']|["']$/g,"");let o,l;if(r==="checked")o="change",l="target.checked";else o="input",l=a==="number"||a==="range"?"target.valueAsNumber":"target.value";this.renderEffect(t,()=>{this.b.emit(`${e}.`);let u=this.emitRewrittenPrimitive(`__bind_${r}__`,r);this.b.emit(" = ");let m=this.tsServedValue("__bind",()=>this.withExpression(()=>this.expr(i)));if(m!==null&&u!==null)this.intrinsics.push({start:u[0],end:u[1],kind:"bind",name:r,gen:m});this.b.emit(";")},i);let c=this.bindRootTouch(i),f=new Set;T.collectLeafNames(i,f);let h=T.mintName("e",f);this.renderLine(t,()=>{this.b.emit(`${e}.addEventListener('${o}', (${h}`);let u=this.tsElReceiver(e),m=this.ts?this.tsEventTypeText([o],u.hostText):null;if(m!==null)this.b.tsOnly(()=>this.b.emit(`: ${m}`));else this.tsScaffoldAny();this.b.emit(") => { ");let S=this.b.offset;if(this.withExpression(()=>this.expr(i)),s([S,this.b.offset]),this.b.emit(` = ${h}.${l};`),c!==null)this.b.emit(" "),c(),this.b.emit(".touch?.();");this.b.emit(" })")})}checkBindTarget(e,t){let r=(s)=>{throw this.positionedError(e,s,this.rstate.node)};if(typeof t==="string"){if(!st.test(t))r("emitter: a two-way binding (`<=>`) needs an assignable target — a literal cannot receive the input");let s=this.renderVarKind(t,e);if(s!==null)r(`emitter: a two-way binding cannot target a ${s==="local"?"render local":"loop variable"} — `+"the write would land on a factory parameter and reach nothing; bind a state member or a chain into row data");let a=this.resolveBareRead(t);if(a==="member-reactive"&&this.rstate.frame.members.get(t)==="computed")r(`emitter: '<=>' targets '${t}', a computed ('~=') member — a derived value has no writable `+"container (its .value is get-only); bind the state it derives from");if(a==="reactive"||a==="member-reactive")return;if(a==="member")r(`emitter: '<=>' targets '${t}', a plain (\`=\`) member — writes would never notify and the display `+"would never update; declare it with ':='");r(`emitter: '<=>' targets '${t}', which is not declared — declare a state member (\`${t} := ""\`) to bind it`)}if(E(t)&&t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string"){if(this.memberIsReactive(t[2])&&this.rstate.frame.members.get(t[2])==="computed")r(`emitter: '<=>' targets '@${t[2]}', a computed ('~=') member — a derived value has no writable `+"container; bind the state it derives from");if(this.memberIsReactive(t[2]))return;if(this.rstate.frame.members.has(t[2]))r(`emitter: '<=>' targets '@${t[2]}', a non-reactive member — writes would never notify`+"); declare it with ':='");r(`emitter: '<=>' targets '@${t[2]}', which is not a declared member`)}if(E(t)&&T.optionalGuard(t)!==null)r("emitter: a two-way binding target cannot carry optional links — the write form would be invalid JS");let i=t,n=!1;while(E(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3)n=!0,i=i[1];if(n)return;r("emitter: a two-way binding (`<=>`) needs an assignable target — a state member or a member/index chain "+"")}bindRootTouch(e){if(typeof e==="string")return null;if(E(e)&&e[0]==="."&&e[1]==="this"&&e.length===3)return null;let t=e;while(E(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&typeof t[2]==="string"){let r=t[2];if(this.memberIsReactive(r))return()=>this.b.emit(`${this.renderSelf??"this"}.${r}`);return null}t=t[1]}if(typeof t==="string"){if(this.renderVarKind(t)!==null)return null;let r=this.resolveBareRead(t);if(r==="member-reactive"){let i=t;return()=>this.b.emit(`${this.renderSelf??"this"}.${i}`)}if(r==="reactive"){let i=t;return()=>this.b.emit(i)}}return null}checkUserSpelledBind(e){let t=E(e)?this.stores.idOf(e):null,r=t!==null?this.stores.role(t,"key"):null;if(!r||r.sourceStart==null||this.b.source===null)return;if(this.b.source.slice(r.sourceStart,r.sourceEnd).startsWith("__bind_"))throw this.positionedError(e,"emitter: '__bind_…__:' is the compiler's two-way-binding channel — spell the binding `name <=> container` "+"(`__`-prefixed names are the compiler/runtime namespace)",this.rstate.node)}checkBareEventHandler(e,t){if(!E(t)||t[0]!=="."||t[1]!=="this"||typeof t[2]!=="string")return;let r=this.stores.idOf(t),i=r!==null?this.stores.selfSpan(r):null;if(i===null||i[0]!==i[1])return;let n=e[1],s=typeof n[2]==="string"?n[2]:String(n[2]);if(!Mt.has(s))throw this.positionedError(e,`emitter: \`@${s}\` is not a DOM event — use \`= @${s}\` to render text, or \`@${s}: handler\` for an explicit handler`);if(s==="error")throw this.positionedError(e,"emitter: bare `@error` is ambiguous with the onError lifecycle hook — write `@error: handler` to bind a DOM error listener explicitly");let a=t[2];if(!this.cframes[this.cframes.length-1].members.has(a))throw this.positionedError(e,`emitter: bare \`@${s}\` requires a component method \`${a}\` — define \`${a}\`, or use \`@${s}: handler\` for an explicit handler`)}static collectTemplateClasses(e){let t=[],r,i=e;while(E(i)&&i[0]==="."&&i.length===3){if(typeof i[2]!=="string")return{tag:null,classes:t,id:r};t.unshift(i[2]),i=i[1]}if(typeof i!=="string")return{tag:null,classes:t,id:r};let[n,s]=i.split("#");if(s)r=s;for(let a=0;a=0)r=t[a].slice(o+1),t[a]=t[a].slice(0,o)}return{tag:n||"div",classes:t.filter((a)=>a!==""),id:r}}static templateHeadTag(e){if(!E(e))return null;let t=e[0];if(typeof t==="string"){if(t===".")return T.collectTemplateClasses(e).tag;return t.length>0?t.split("#")[0]||"div":null}if(!E(t))return null;if(E(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let r=t[0][1];if(typeof r==="string")return r.split("#")[0]||"div";return T.collectTemplateClasses(r).tag}return T.collectTemplateClasses(t).tag}static returnGuard(e){return E(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&E(e[2])&&e[2][0]==="return"}static stmtGuard(e){return E(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&(e[2]==="continue"||e[2]==="break"||e[2]==="debugger")}static controlGuard(e){return T.returnGuard(e)||T.throwGuard(e)||T.stmtGuard(e)}static throwGuard(e){return E(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&E(e[2])&&e[2][0]==="throw"&&e[2].length===2}static isStrRepeat(e){return E(e)&&e[0]==="*"&&e.length===3&&typeof e[1]==="string"&&e[1][0]==='"'}static leadsWithObject(e){let t=e;for(;;){if(!E(t))return!1;if(O1(t))return!0;if(at(t)||zs(t)||ot(t)){t=t[1];continue}let r=T.chainHeadSlot(t);if(r!==null){t=t[r];continue}return!1}}static chainHeadSlot(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]"||e[0]==="optindex")&&e.length===3)return 1;if(e[0]==="optcall")return 1;return T.chainHeadSlotRest(e)}chainHeadSlotOf(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]")&&e.length===3)return 1;if(e[0]==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return 1;if(e[0]==="optcall"&&this.lockedHead(e,"optcall"))return 1;return T.chainHeadSlotRest(e)}static chainHeadSlotRest(e){if(E(e[0])&&e[0][0]!=="dammit!"&&!(e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"))return 0;return null}static isChainNode(e){return E(e)&&T.chainHeadSlot(e)!==null}isChainNodeOf(e){return E(e)&&this.chainHeadSlotOf(e)!==null}chain(e){this.noteProvidedRead(e);let t=[e];while(!0){let i=t[t.length-1],n=i[this.chainHeadSlotOf(i)];if(!this.isChainNodeOf(n))break;t.push(n)}let r=[];for(let i=0;i=0;i--){let n=t[i],s=n[0],a=r[i];if(this.endMark(a.role),a.kind==="member"){this.inTarget=a.savedTarget;let o=this.deopt&&s==="?."?".":s;if(typeof n[2]==="string"&&n[2][0]==='"')this.mark(n,"operator",()=>this.b.emit(s==="?."&&!this.deopt?"?.":"")),this.mark(n,"property",()=>this.b.emit(`[${n[2]}]`));else this.mark(n,"operator",()=>this.b.emit(o)),this.mark(n,"property",()=>{let l=this.b.offset;if(this.stores.idOf(n)===null)this.emitPrimitive(n[2]);else this.b.emit(n[2]);if(this.ts&&this.appStashSpec!==null&&typeof n[2]==="string"&&T.isThisMember(n[1],"stash")&&!(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash")))this.stashMemberSpans.push([l,this.b.offset]);if(this.ts&&n[1]==="this"&&typeof n[2]==="string"){let f=this.cframes[this.cframes.length-1]?.memberKinds?.get(n[2])??null,h=this.stores.idOf(n)??null,u=h!==null?this.stores.role(h,"property"):null;if(f!==null&&u&&typeof u.sourceStart==="number")this.kinds.push({start:u.sourceStart,end:u.sourceEnd,label:f.label,name:n[2],optional:f.optional})}});if(n[1]==="this"&&typeof n[2]==="string"&&this.memberIsReactive(n[2])){if(this.ts){let l=this.stores.idOf(n)??null,c=l!==null?this.stores.role(l,"property"):null;if(c&&typeof c.sourceStart==="number")this.memberDecls.push({start:c.sourceStart,end:c.sourceEnd})}this.b.emit(".value")}}else if(a.kind==="index")this.indexTail(n,a.opt,a.isWrite),this.inTarget=a.savedTarget;else if(a.kind==="optcall")this.b.emit("?."),this.mark(n,"args",()=>{this.b.emit("("),n.slice(2).forEach((o,l)=>{if(l>0)this.b.emit(", ");this.expr(o)}),this.b.emit(")")});else{let o=this.sourceKeyArgOf(n);if(o!==null)(this._sourceKeyArgs??=new Set).add(o),this._needsSourceKeyHelper=!0;let l=this.routerArgOf(n);if(l!==null){if((this._routerArgs??=new Map).set(l.arg,l.wrap),l.wrap)this._needsRouteHelper=!0}this.mark(n,"args",()=>{this.b.emit("("),n.slice(1).forEach((c,f)=>{if(f>0)this.b.emit(", ");this.callArg(c)}),this.b.emit(")")})}this.endMark(a.self)}}member(e){if(e[0]==="."&&e[1]==="this"&&typeof e[2]==="string"&&!this.inTarget)this.notePlainRenderRead(e[2],!0);this.chain(e)}noteProvidedRead(e){if(!this.ts||!(this.cframes?.length>0))return;let t=e;while(E(t)){let s=this.chainHeadSlotOf(t);if(s===null||!E(t[s]))break;t=t[s]}if(!E(t)||t[0]!=="."||t[1]!=="this"||t[2]!=="stash"&&t[2]!=="router")return;if(this.cframes[this.cframes.length-1].members?.has(t[2]))return;let r=this.stores.idOf(t),i=r!==null?this.stores.selfSpan(r):null,n=i!==null?this.stores.primitiveSpans(t[2],i[0],i[1])[0]??null:null;if(n&&!this.kinds.some((s)=>s.start===n.sourceStart&&s.label===t[2]))this.kinds.push({start:n.sourceStart,end:n.sourceEnd,label:t[2],name:t[2],optional:!1})}pick(e,t=!1){let[r,i,...n]=e;if(this.inPattern||this.inTarget)throw this.positionedError(e,"emitter: a pick expression is not an assignment target — it lowers to a fresh object literal (`({…}) = value` would be invalid JS)");let s=r==="?.{}",a=typeof i==="string"&&(i==="this"||/^[A-Za-z_$][\w$]*$/.test(i));if(!a)for(let l of n){if(l[2]!==null&&T.containsAwait(l[2]))throw this.positionedError(l,"emitter: a pick default cannot await when the source needs single evaluation — the lowering's '(_) =>' arrow is not async; bind the source first",e);if(l[2]!==null&&T.containsYield(l[2]))throw this.positionedError(l,"emitter: a pick default cannot yield when the source needs single evaluation — yield cannot cross the lowering's '(_) =>' arrow; bind the source first",e)}let o=(l)=>this.mark(e,"items",()=>{n.forEach((c,f)=>{if(f>0)this.b.emit(", ");let[h,u,m]=c;this.mark(c,"$self",()=>{if(this.mark(c,"target",()=>this.b.emit(T.ownKeyText(u,u))),this.b.emit(": "),m!==null)this.b.emit("(");if(l(),this.b.emit("."),this.mark(c,"key",()=>this.b.emit(h)),m!==null)this.b.emit(" ?? "),this.withExpression(()=>this.operand(c,"default",m)),this.b.emit(")")})})});this.mark(e,"$self",()=>{if(a&&!s)this.b.emit(t?"{":"({"),o(()=>this.mark(e,"source",()=>this.expr(i))),this.b.emit(t?"}":"})");else if(a){if(!t)this.b.emit("(");this.mark(e,"source",()=>this.expr(i)),this.b.emit(" == null ? undefined : {"),o(()=>this.mark(e,"source",()=>this.expr(i))),this.b.emit(t?"}":"})")}else{let l=this.loopTempName("_");this.b.emit(s?`((${l}) => ${l} == null ? undefined : ({`:`((${l}) => ({`),o(()=>this.b.emit(l)),this.b.emit("}))("),this.withExpression(()=>this.grouped(e,"source",i,T.needsGrouping(i,"operand"))),this.b.emit(")")}})}callArg(e){if(this._sourceKeyArgs?.has(e)){this._sourceKeyArgs.delete(e),this.b.tsOnly(()=>this.b.emit("__ripSourceKey("));let r=this.b.offset;this.expr(e),this.sourceKeySpans.push([r,this.b.offset]),this.b.tsOnly(()=>this.b.emit(")"));return}let t=this._routerArgs?.get(e);if(t!==void 0){if(this._routerArgs.delete(e),t)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let r=this.b.offset;if(this.expr(e),this.routeWrapSpans.push({key:null,value:[r,this.b.offset]}),t)this.b.tsOnly(()=>this.b.emit(")"));return}if(E(e)&&(e[0]===".{}"||e[0]==="?.{}")&&e.length>=3)return this.pick(e,!0);this.expr(e)}sourceKeyArgOf(e){if(!this.ts||this.appStashSpec===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!E(r)||r.length!==3||r[2]!=="source")return null;let i=r[1];if(r[0]==="."&&T.isThisMember(i,"stash")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash"))return null;return t}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(i,this.appAccessors.stash))return t;return null}static isThisMember(e,t){return E(e)&&e[0]==="."&&e.length===3&&e[1]==="this"&&e[2]===t}static stashKeysOf(e,t){let r=null;for(let s of e.slice(1)){let a=E(s)&&s[0]==="export"?s[1]:s;if(E(a)&&a[0]==="="&&a[1]===t){r=a[2];break}}if(E(r)&&r.length===2&&typeof r[0]==="string"&&E(r[1])&&r[1][0]==="object")r=r[1];if(!E(r)||r[0]!=="object")return null;let i=[],n=!0;for(let s of r.slice(1)){if(!E(s))continue;if(s[0]==="..."){n=!1;continue}let a=s[0]===":"?s[1]:s[0]===null?s[1]:null;if(typeof a!=="string"){n=!1;continue}i.push(/^["']/.test(a)?a.slice(1,-1):a)}return{keys:i,complete:n}}routerArgOf(e){if(!this.ts||this.routesUnion===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!E(r)||r.length!==3||r[2]!=="push"&&r[2]!=="replace")return null;let i=r[1];if(r[0]==="."&&T.isThisMember(i,"router")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("router"))return null;return{arg:t,method:r[2],wrap:!1}}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(i,this.appAccessors.router))return{arg:t,method:r[2],wrap:!0};return null}binary(e){if(T.returnGuard(e))throw this.positionedError(e[2],"emitter: a return guard is a statement — in value position the 'return' would lose its function target (bind the value first, or use `or throw`)");if(T.stmtGuard(e))throw this.positionedError(e[2],`emitter: a ${e[2]} guard is a statement`);if(e[0]==="&&"||e[0]==="||")return this.logicalChain(e);if(T.isStrRepeat(e)){this.mark(e,"$self",()=>{this.mark(e,"left",()=>this.b.emit(e[1])),this.b.emit(".repeat("),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")});return}if(ot(e))return this.comparisonChain(e);let t=(o)=>at(o)&&o[0]!=="&&"&&o[0]!=="||"&&!ot(o)&&!T.isStrRepeat(o),r=[e];while(t(r[r.length-1][1]))r.push(r[r.length-1][1]);let i=[];for(let o=0;o=0;o--){let l=r[o];if(this.b.emit(" "),this.mark(l,"operator",()=>this.b.emit(kn[l[0]]??l[0])),this.b.emit(" "),this.operand(l,"right",l[2]),this.endMark(i[o].self),o>0)this.endMark(i[o-1].left),this.b.emit(")")}}logicalChain(e){let t=e[0],r=(a)=>at(a)&&a[0]===t,i=[e];while(r(i[i.length-1][1]))i.push(i[i.length-1][1]);let n=[];for(let a=0;a=0;a--){let o=i[a];if(this.b.emit(" "),this.mark(o,"operator",()=>this.b.emit(t)),this.b.emit(" "),r(o[2]))this.grouped(o,"right",o[2],!1);else this.operand(o,"right",o[2]);if(this.endMark(n[a].self),a>0)this.endMark(n[a-1].left)}}comparisonChain(e){let t=[e];while(ot(t[t.length-1]))t.push(t[t.length-1][1]);t.reverse();let r=[];for(let s=t.length-1;s>=1;s--){let a=t[s],o=this.beginMark(a,"$self");this.b.emit("("),r[s]={self:o,left:this.beginMark(a,"left")}}let i=t[0],n=this.beginMark(i,"$self");this.operand(i,"left",i[1]),this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit(kn[i[0]]??i[0])),this.b.emit(" "),this.chainRight(i,t[1]),this.endMark(n);for(let s=1;sthis.b.emit(kn[a[0]]??a[0])),this.b.emit(" "),this.chainRight(a,t[s+1]),this.b.emit(")"),this.endMark(r[s].self)}}chainRight(e,t){let r=e[2];if(t!==void 0&&E(r)){let i=this.temps.byNode.get(t);if(i===void 0)throw this.positionedError(r,"emitter: a chained comparison here cannot cache its middle operand for single evaluation "+"(no enclosing scope hoist) — bind the middle operand to a variable first ",e);this.b.emit("("),this.mark(e,"right",()=>{this.b.emit(`${i} = `),this.expr(r)}),this.b.emit(")");return}this.operand(e,"right",r)}chainMid(e,t){let r=this.temps.byNode.get(t);if(r!==void 0){this.mark(e,"right",()=>this.b.emit(r));return}this.operand(e,"right",e[2])}cast(e){if(!this.ts){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>this.mark(e,"value",()=>this.expr(e[1]))));return}let t=this.stores.idOf(e),r=t===null?null:this.stores.role(t,"annotation"),i=r&&r.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):`as ${Pe(e[2])}`;this.mark(e,"$self",()=>{this.b.tsOnly(()=>this.b.emit("("));let n=T.jsTier(e[1])!=="primary";if(n)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.expr(e[1])),n)this.b.tsOnly(()=>this.b.emit(")"));this.b.tsOnly(()=>{this.b.emit(" "),this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",i))}),this.b.tsOnly(()=>this.b.emit(")"))})}existence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" != null")})}presence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" ? true : undefined")})}unary(e){if(e[0]==="delete"&&typeof e[1]==="string"&&this.isReactiveName(e[1]))throw this.positionedError(e,`emitter: cannot delete the reactive variable '${e[1]}' — \`delete ${e[1]}.value\` would remove the container's accessor and silently kill the reactive`);if(e[0]==="delete"&&!(E(e[1])&&(e[1][0]==="."||e[1][0]==="[]")))throw this.positionedError(e,"emitter: delete requires a property reference (delete obj.a / delete obj[k]) — deleting a plain binding is a strict-mode SyntaxError in modules");this.mark(e,"$self",()=>{if(this.mark(e,"operator",()=>this.b.emit(e[0])),/^[a-z]/.test(e[0]))this.b.emit(" ");this.operand(e,"operand",e[1])})}spread(e){this.mark(e,"$self",()=>{if(this.b.emit("..."),this.inPattern)this.mark(e,"value",()=>this.expr(e[1]));else this.operand(e,"value",e[1])})}array(e){this.mark(e,"$self",()=>{this.b.emit("["),this.mark(e,"items",()=>{let t=e.slice(1);t.forEach((r,i)=>{if(i>0)this.b.emit(", ");if(r===","){if(i===t.length-1)this.b.emit(",");return}if(E(r)&&r[0]==="rest"&&this.inPattern){if(!this.bindingPattern)throw this.positionedError(r,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')",e);if(r.length!==2||i!==t.length-1)throw this.positionedError(r,"emitter: a `rest` element takes the pattern's tail alone",e);if(typeof r[1]!=="string")throw this.positionedError(r,"emitter: a `rest` element takes a plain name",e);this.b.emit("..."),this.b.emit(r[1]);return}let n=!this.inPattern&&!(E(r)&&r[0]==="...")&&T.needsGrouping(r,"operand");if(n)this.b.emit("(");if(this.expr(r),n)this.b.emit(")")})}),this.b.emit("]")})}symbolKey(e){this.b.emit("["),this.expr(e),this.b.emit("]")}static isMethodPair(e){return E(e)&&(e[0]===":"||e[0]==="void-pair")&&typeof e[1]==="string"&&/^[A-Za-z_$][\w$]*$/.test(e[1])&&E(e[2])&&e[2][0]==="->"}object(e){for(let a of e.slice(1)){if(E(a)&&a[0]===":"&&typeof a[1]==="string"&&a[1][0]==="/")throw this.positionedError(a,"emitter: a regex key needs a MAP literal (`*{ /re/: v }`) — object property names are strings");if(!this.inPattern&&!this.tolerant&&E(a)&&a[0]==="="&&a.length===3)throw this.positionedError(a,"emitter: `a = 1` inside an object literal is a destructuring default, which only a pattern can carry — spell the pair `a: 1`",e)}let t=!this.inPattern&&T.objectComprehension(e);if(t){let a=E(t[1])?t[1]:null,o={expr:a!==null?a[1]:t[1],pair:t,keyNode:a};return this.mark(e,"$self",()=>this.mark(e,"pairs",()=>this.mark(t,"$self",()=>this.mark(t,"value",()=>this.comprehension(t[2],this.ind,o)))))}let r=e.slice(1),i=this.ind,n=r.map((a)=>!this.inPattern&&T.isMethodPair(a)),s=(a)=>n[a]||n.slice(0,a).some(Boolean)?`, -`:", ";this.mark(e,"$self",()=>{this.b.emit("{"),this.mark(e,"pairs",()=>{r.forEach((a,o)=>{if(o>0)this.b.emit(s(o));if(n[o]){this.mark(a,"voidMarker",()=>this.mark(a,"$self",()=>{if(T.containsAwait(a[2][2]))this.b.emit("async ");if(T.containsYield(a[2][2]))this.b.emit("*");this.mark(a,"key",()=>this.b.emit(a[1]));let[,h,u]=a[2],m=this.ts&&this.contextuallyTyped(a[2]);this.b.emit("("),this.mark(a[2],"params",()=>this.emitParams(h,null,!m)),this.b.emit(")"),this.tsReturnAnnotation(a[2],T.containsAwait(u),a[0]==="void-pair",T.containsYield(u),a),this.b.emit(" "),this.mark(a,"value",()=>{this.methodBlock(a[2],u,i,{isConstructor:!1,binds:[],methodName:a[1],voidBody:a[0]==="void-pair"})})}));return}let l=E(a[1])&&a[1][0]==="dynamicKey";if(l&&a[0]===null)throw this.positionedError(a,"emitter: a computed key needs an explicit value ({[k]: v}) — there is no shorthand form",e);let c=E(a[1])&&a[1][0]==="str",f=a[0]===":"&&E(a[1])&&a[1][0]==="symbol";if(a[0]!=="..."&&E(a[1])&&!l&&!c&&!f)throw this.positionedError(a,"emitter: @-keys are only supported in class bodies",e);if(f){this.mark(a,"$self",()=>{this.mark(a,"key",()=>this.symbolKey(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[2]))});return}if(a[0]===":"&&c){this.mark(a,"$self",()=>{this.b.emit("["),this.mark(a,"key",()=>this.strTemplate(a[1])),this.b.emit("]: "),this.mark(a,"value",()=>this.expr(a[2]))});return}this.mark(a,"$self",()=>{if(a[0]===":"&&l)if(this.mark(a,"key",()=>{this.mark(a[1],"$self",()=>{this.b.emit("["),this.withExpression(()=>this.operand(a[1],"key",a[1][1])),this.b.emit("]")})}),this.b.emit(": "),this.inPattern||E(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2]);else if(a[0]===":"||a[0]==="void-pair"){if(a[0]==="void-pair"){if(this.inPattern)throw this.positionedError(a,"emitter: the void marker has no meaning in a destructuring pattern — a pattern key takes no trailing '!'",e);this.registerVoidValue(a[2],a)}this.mark(a,"voidMarker",()=>{if(this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.inPattern||E(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2])})}else if(a[0]==="=")this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(" = "),this.withExpression(()=>this.operand(a,"value",a[2]));else if(a[0]==="..."){if(this.inPattern&&(E(a[1])||a[1]==="this"))throw this.positionedError(a,"emitter: object rest in a destructuring pattern takes a plain name — chained-accessor rest targets are not supported",e);if(this.b.emit("..."),this.inPattern)this.mark(a,"value",()=>this.expr(a[1]));else this.operand(a,"value",a[1])}else if(typeof a[1]==="string"&&this.bareRewrite(a[1])!==null)this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[1]));else this.mark(a,"value",()=>this.mark(a,"key",()=>this.b.emit(a[1])))})})}),this.b.emit("}")})}static negativeLiteralKey(e){return E(e)&&e[0]==="-"&&e.length===2&&typeof e[1]==="string"&&/^\d+$/.test(e[1])}indexTail(e,t,r){let i=e[2],n=()=>{let s=this.deopt;this.deopt=!1,this.mark(e,"key",()=>this.expr(i)),this.deopt=s};if(!t&&Ie(i))this.mark(e,"key",()=>this.slice(i));else if(T.negativeLiteralKey(i)){if(r)throw this.positionedError(e,"emitter: a negative-literal index cannot be an assignment target (reads lower to .at(-n), and a call is not assignable)");this.b.emit(t?"?.at(":".at("),this.mark(e,"key",()=>{this.b.emit("-"),this.b.emit(i[1])}),this.b.emit(")")}else this.b.emit(t?"?.[":"["),n(),this.b.emit("]")}index(e){if(e.length===3&&typeof e[2]==="string"&&e[2][0]==="/")return this.regexIndex(e,e[1],e[2],null);this.chain(e)}optIndex(e){this.chain(e)}optCall(e){this.chain(e)}slice(e){let[t,r,i]=e;if(this.b.emit(".slice("),this.mark(e,"from",()=>r===null?this.b.emit("0"):this.expr(r)),i!==null)if(this.b.emit(", "),t==="...")this.mark(e,"to",()=>this.expr(i));else if(typeof i==="string"&&/^\d+$/.test(i))this.mark(e,"to",()=>this.b.emit(String(Number(i)+1)));else this.b.emit("+"),this.mark(e,"to",()=>this.expr(i)),this.b.emit(" + 1 || 9e9");this.b.emit(")")}range(e){let[t,r,i]=e,n=t===".."?"((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))":"((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))";this.mark(e,"$self",()=>{this.b.emit(n),this.b.emit("("),this.mark(e,"from",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"to",()=>this.expr(i)),this.b.emit(")")})}classStatement(e,t){this.mark(e,"$self",()=>this.classCode(e,t))}classExpr(e){this.mark(e,"$self",()=>this.classCode(e,this.ind))}classCode(e,t){let[,r,i,n]=e;if(this.b.emit("class"),r!=null){if(typeof r!=="string")throw this.positionedError(e,"emitter: `class @Name` is a STATIC member class — it lives inside a class body (`static Name = class`); at the top level give the class a plain name");this.b.emit(" "),this.mark(e,"name",()=>this.b.emit(r))}if(i!=null)this.b.emit(" extends "),this.mark(e,"parent",()=>this.expr(i));if(this.b.emit(` { -`),n!=null)this.mark(e,"body",()=>this.classMembers(n,t));this.b.emit(" ".repeat(t)+"}")}classMethodForm(e){if(!E(e))return null;if(g1(e[0])&&e.length===4){let t=this.stores.alias(["->",e[2],e[3]],e);return{form:"def",pair:this.stores.alias([e[0]==="void-def"?"void-pair":":",e[1],t],e)}}if((e[0]==="get"||e[0]==="set")&&e.length===2&&O1(e[1])&&e[1].length===2){let t=e[1][1];if(E(t)&&t[0]===":"&&t.length===3&&T1(t[2]))return{form:e[0],pair:t}}return null}classMembers(e,t){let r=E(e)&&e[0]==="block"?e.slice(1):[e],i=new Map(r.map((R)=>[R,this.classMethodForm(R)])),n=(R)=>E(R)&&R[0]==="."&&R[1]==="this"?R[2]:R,s=(R)=>E(R)&&R[0]==="."&&R[1]==="this"&&R.length===3&&typeof R[2]==="string",a=" ".repeat(t+1),o=[],l=null,c=!1,f=new Set,h=null,u=null,m=[],S=(R)=>s(R)?`static ${R[2]}`:R,g=new Set,d=[];for(let R of r){let b=i.get(R)??null,_=b!==null?[b.pair]:O1(R)?R.slice(1):null;if(_===null){let y=typeof R==="string"||s(R)?R:T.isTypedWrapper(R)&&(typeof R[1]==="string"||s(R[1]))?R[1]:E(R)&&R[0]==="="&&R.length===3&&(typeof R[1]==="string"||s(R[1]))?R[1]:null;if(y!==null){if(g.add(S(y)),!s(y))f.add(y)}continue}for(let y of _){if(y[0]!==":"&&y[0]!=="void-pair")throw this.positionedError(y,"emitter: class bodies support methods and fields only",R);if(b!==null&&b.form!=="def"){let k=y[2][1].length;if(y[2][0]==="=>")throw this.positionedError(y,`emitter: a ${b.form} accessor takes '->' — accessors are looked up on the instance, never bound`,R);if(T.containsAwait(y[2][2])||T.containsYield(y[2][2]))throw this.positionedError(y,`emitter: a ${b.form} accessor cannot await or yield — JavaScript has no async or generator accessors`,R);if(b.form==="get"&&k!==0)throw this.positionedError(y,"emitter: a getter takes no parameters (`get x: -> …`)",R);if(b.form==="set"&&k!==1)throw this.positionedError(y,"emitter: a setter takes exactly one parameter (`set x: (v) -> …`)",R)}if(E(y[1])&&(y[1][0]==="dynamicKey"||y[1][0]==="[]"))throw this.positionedError(y,"emitter: computed class members are not supported yet",R);let p=n(y[1]);if(b!==null&&b.form!=="def"){if(p==="constructor")throw this.positionedError(y,`emitter: a class constructor cannot be a ${b.form} accessor`,R);d.push({pair:y,stmt:R,key:S(y[1]),form:b.form})}if(p==="constructor"&&!s(y[1])){if(c=!0,T1(y[2]))h=y[2][1],u=y[2][2]}else if(!s(y[1])&&typeof p==="string")f.add(p);if(T1(y[2])&&!s(y[1])&&p!=="constructor")m.push(y[2][2]);if(T1(y[2])&&y[2][0]==="=>"&&!s(y[1])&&p!=="constructor"){if(typeof p!=="string")throw this.positionedError(y,"emitter: a symbol-keyed method cannot be bound ('=>') — the constructor binds members by name; use '->'",R);o.push(p),l??=y}}}if(o.length>0&&!c)throw this.positionedError(l,"emitter: bound ('=>') class methods require an explicit constructor",e);for(let R of d)if(g.has(R.key))throw this.positionedError(R.pair,`emitter: field and ${R.form} accessor '${n(R.pair[1])}' share a name — the field would shadow the accessor on every instance; drop one`,R.stmt);if(this.ts&&h!==null)for(let R of h){let b=f3(R);if(b===null||f.has(b.name))continue;f.add(b.name);let _=b.typed===null?null:this.annotationText(b.typed)??(b.typed[2]===""?null:Pe(b.typed[2])),y=this.stores.idOf(e),p=y!==null?this.stores.selfSpan(y):null,k=p!==null?this.stores.primitiveSpans(b.name,p[0],p[1])[0]??null:null;this.b.tsOnly(()=>{if(this.b.emit(a),k)this.b.markSpan(y,"identifier",k.sourceStart,k.sourceEnd,()=>this.b.emit(b.name));else this.b.emit(b.name);this.b.emit(`${_?`: ${_}`:""}; -`)})}if(this.ts)for(let R of h3([u,...m])){if(f.has(R.name))continue;f.add(R.name);let _=R.nodes.map((y)=>this.annotationText(y)).find((y)=>y!=null)??null??(R.viaArrow?"any":null);this.b.tsOnly(()=>this.b.emit(`${a}${R.name}${_?`: ${_}`:""}; +`)})})}renderTransition(e,t,r,i){let n=this.rstate,s=n.transitionSlot;if(s===null||s.record!==n.sink||s.el!==e){let o=n.sink.kind==="class"?"a static element)":n.sink.kind==="loop"?"a loop body — the reconciler has no enter/leave phase for rows":"a nested position — the swap animates the branch's FIRST node, so a deeper directive would animate an "+"element it does not name";throw this.positionedError(t,`emitter: a transition (\`~name\`) runs where a conditional branch enters or leaves, and this directive sits on ${o}; put it on the FIRST top-level element of an if/else branch`,this.rstate.node)}if(typeof r!=="string"||!(r.startsWith('"')||r.startsWith("'")))throw this.positionedError(t,"emitter: a transition takes a literal name (`~fade`) — computed transition names have no reading",this.rstate.node);let a=r.replace(/^["']|["']$/g,"");this.renderLine(t,()=>{if(this.ts)this.b.tsOnly(()=>this.b.emit("("));if(this.b.emit("this"),this.ts)this.b.tsOnly(()=>this.b.emit(" as any)"));this.b.emit(`._t = "${a}"`)})}renderRef(e,t,r,i,n){let s=typeof r==="string"&&st.test(r)?r:null;if(s===null)throw this.positionedError(t,"emitter: ref: expects a state cell — declare `el := null` then write `ref: el`",this.rstate.node);let a=this.rstate.frame.members.get(s);if(a!=="state"&&a!=="prop")throw this.positionedError(t,a!==void 0?`emitter: ref: target '${s}' is not a writable state cell — declare it with ':=' (computed '~=' and `+"readonly '=!' members can't hold a ref)":`emitter: ref: target '${s}' must be a state cell declared with ':=' (e.g. \`${s} := null\`)`,this.rstate.node);let o=this.renderTagOf(e),l=this.ts&&o!==null&&/^[a-z][a-z0-9-]*$/.test(o),c=this.rstate.svgEls?.has(e)===!0;if(l){this._needsRefCellHelper=!0;let f=this.wordSpanIn("ref",t);if(f!==null)this.intrinsics.push({start:f[0],end:f[1],kind:"ref",tag:o,svg:c,name:s})}if(this.rstate.sink.kind==="class")this.renderLine(t,()=>{if(l)this.b.tsOnly(()=>this.b.emit(`${c?"__ripRefCellSvg":"__ripRefCell"}('${o}', `));let f=this.b.offset;this.b.emit("this.");let h=this.emitPrimitive(s);if(h!==null)this.memberDecls.push({start:h[0],end:h[1]});if(l)n([f,this.b.offset]);if(l)this.b.tsOnly(()=>this.b.emit(")"));if(this.b.emit(`.value = ${e}`),l)this.b.tsOnly(()=>this.b.emit(` as ${Oe(o,c)} | null`))}),this.renderLine(t,()=>{this.b.emit(`(this._refCleanups ??= []).push(() => ${this.runtimeName("__detachRef")}(this.`),this.emitPrimitive(s),this.b.emit(`, ${e}))`)});else this.rstate.sink.refs.push({name:s,elVar:e,node:t,tag:l?o:null,svg:c,site:n})}renderBind(e,t,r,i,n,s){if(this.checkBindTarget(t,i),this.rstate.sink.kind==="loop"&&this.loopVarNames().size>0&&Ie(i,this.loopVarNames()))this.rstate.sink.forceNonStatic=!0;let a=null;for(let u of n.slice(1))if(E(u)&&u.length===3&&(u[1]==="type"||u[1]==='"type"')&&typeof u[2]==="string")a=u[2].replace(/^["']|["']$/g,"");let o,l;if(r==="checked")o="change",l="target.checked";else o="input",l=a==="number"||a==="range"?"target.valueAsNumber":"target.value";this.renderEffect(t,()=>{this.b.emit(`${e}.`);let u=this.emitRewrittenPrimitive(`__bind_${r}__`,r);this.b.emit(" = ");let d=this.tsServedValue("__bind",()=>this.withExpression(()=>this.expr(i)));if(d!==null&&u!==null)this.intrinsics.push({start:u[0],end:u[1],kind:"bind",name:r,gen:d});this.b.emit(";")},i);let c=this.bindRootTouch(i),f=new Set;T.collectLeafNames(i,f);let h=T.mintName("e",f);this.renderLine(t,()=>{this.b.emit(`${e}.addEventListener('${o}', (${h}`);let u=this.tsElReceiver(e),d=this.ts?this.tsEventTypeText([o],u.hostText):null;if(d!==null)this.b.tsOnly(()=>this.b.emit(`: ${d}`));else this.tsScaffoldAny();this.b.emit(") => { ");let S=this.b.offset;if(this.withExpression(()=>this.expr(i)),s([S,this.b.offset]),this.b.emit(` = ${h}.${l};`),c!==null)this.b.emit(" "),c(),this.b.emit(".touch?.();");this.b.emit(" })")})}checkBindTarget(e,t){let r=(s)=>{throw this.positionedError(e,s,this.rstate.node)};if(typeof t==="string"){if(!st.test(t))r("emitter: a two-way binding (`<=>`) needs an assignable target — a literal cannot receive the input");let s=this.renderVarKind(t,e);if(s!==null)r(`emitter: a two-way binding cannot target a ${s==="local"?"render local":"loop variable"} — `+"the write would land on a factory parameter and reach nothing; bind a state member or a chain into row data");let a=this.resolveBareRead(t);if(a==="member-reactive"&&this.rstate.frame.members.get(t)==="computed")r(`emitter: '<=>' targets '${t}', a computed ('~=') member — a derived value has no writable `+"container (its .value is get-only); bind the state it derives from");if(a==="reactive"||a==="member-reactive")return;if(a==="member")r(`emitter: '<=>' targets '${t}', a plain (\`=\`) member — writes would never notify and the display `+"would never update; declare it with ':='");r(`emitter: '<=>' targets '${t}', which is not declared — declare a state member (\`${t} := ""\`) to bind it`)}if(E(t)&&t[0]==="."&&t[1]==="this"&&t.length===3&&typeof t[2]==="string"){if(this.memberIsReactive(t[2])&&this.rstate.frame.members.get(t[2])==="computed")r(`emitter: '<=>' targets '@${t[2]}', a computed ('~=') member — a derived value has no writable `+"container; bind the state it derives from");if(this.memberIsReactive(t[2]))return;if(this.rstate.frame.members.has(t[2]))r(`emitter: '<=>' targets '@${t[2]}', a non-reactive member — writes would never notify`+"); declare it with ':='");r(`emitter: '<=>' targets '@${t[2]}', which is not a declared member`)}if(E(t)&&T.optionalGuard(t)!==null)r("emitter: a two-way binding target cannot carry optional links — the write form would be invalid JS");let i=t,n=!1;while(E(i)&&(i[0]==="."||i[0]==="[]")&&i.length===3)n=!0,i=i[1];if(n)return;r("emitter: a two-way binding (`<=>`) needs an assignable target — a state member or a member/index chain "+"")}bindRootTouch(e){if(typeof e==="string")return null;if(E(e)&&e[0]==="."&&e[1]==="this"&&e.length===3)return null;let t=e;while(E(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){if(t[0]==="."&&t[1]==="this"&&typeof t[2]==="string"){let r=t[2];if(this.memberIsReactive(r))return()=>this.b.emit(`${this.renderSelf??"this"}.${r}`);return null}t=t[1]}if(typeof t==="string"){if(this.renderVarKind(t)!==null)return null;let r=this.resolveBareRead(t);if(r==="member-reactive"){let i=t;return()=>this.b.emit(`${this.renderSelf??"this"}.${i}`)}if(r==="reactive"){let i=t;return()=>this.b.emit(i)}}return null}checkUserSpelledBind(e){let t=E(e)?this.stores.idOf(e):null,r=t!==null?this.stores.role(t,"key"):null;if(!r||r.sourceStart==null||this.b.source===null)return;if(this.b.source.slice(r.sourceStart,r.sourceEnd).startsWith("__bind_"))throw this.positionedError(e,"emitter: '__bind_…__:' is the compiler's two-way-binding channel — spell the binding `name <=> container` "+"(`__`-prefixed names are the compiler/runtime namespace)",this.rstate.node)}checkBareEventHandler(e,t){if(!E(t)||t[0]!=="."||t[1]!=="this"||typeof t[2]!=="string")return;let r=this.stores.idOf(t),i=r!==null?this.stores.selfSpan(r):null;if(i===null||i[0]!==i[1])return;let n=e[1],s=typeof n[2]==="string"?n[2]:String(n[2]);if(!Mt.has(s))throw this.positionedError(e,`emitter: \`@${s}\` is not a DOM event — use \`= @${s}\` to render text, or \`@${s}: handler\` for an explicit handler`);if(s==="error")throw this.positionedError(e,"emitter: bare `@error` is ambiguous with the onError lifecycle hook — write `@error: handler` to bind a DOM error listener explicitly");let a=t[2];if(!this.cframes[this.cframes.length-1].members.has(a))throw this.positionedError(e,`emitter: bare \`@${s}\` requires a component method \`${a}\` — define \`${a}\`, or use \`@${s}: handler\` for an explicit handler`)}static collectTemplateClasses(e){let t=[],r,i=e;while(E(i)&&i[0]==="."&&i.length===3){if(typeof i[2]!=="string")return{tag:null,classes:t,id:r};t.unshift(i[2]),i=i[1]}if(typeof i!=="string")return{tag:null,classes:t,id:r};let[n,s]=i.split("#");if(s)r=s;for(let a=0;a=0)r=t[a].slice(o+1),t[a]=t[a].slice(0,o)}return{tag:n||"div",classes:t.filter((a)=>a!==""),id:r}}static templateHeadTag(e){if(!E(e))return null;let t=e[0];if(typeof t==="string"){if(t===".")return T.collectTemplateClasses(e).tag;return t.length>0?t.split("#")[0]||"div":null}if(!E(t))return null;if(E(t[0])&&t[0][0]==="."&&t[0][2]==="__clsx"){let r=t[0][1];if(typeof r==="string")return r.split("#")[0]||"div";return T.collectTemplateClasses(r).tag}return T.collectTemplateClasses(t).tag}static returnGuard(e){return E(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&E(e[2])&&e[2][0]==="return"}static stmtGuard(e){return E(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&(e[2]==="continue"||e[2]==="break"||e[2]==="debugger")}static controlGuard(e){return T.returnGuard(e)||T.throwGuard(e)||T.stmtGuard(e)}static throwGuard(e){return E(e)&&(e[0]==="||"||e[0]==="&&"||e[0]==="??")&&e.length===3&&E(e[2])&&e[2][0]==="throw"&&e[2].length===2}static isStrRepeat(e){return E(e)&&e[0]==="*"&&e.length===3&&typeof e[1]==="string"&&e[1][0]==='"'}static leadsWithObject(e){let t=e;for(;;){if(!E(t))return!1;if(O1(t))return!0;if(at(t)||zs(t)||ot(t)){t=t[1];continue}let r=T.chainHeadSlot(t);if(r!==null){t=t[r];continue}return!1}}static chainHeadSlot(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]"||e[0]==="optindex")&&e.length===3)return 1;if(e[0]==="optcall")return 1;return T.chainHeadSlotRest(e)}chainHeadSlotOf(e){if((e[0]==="."||e[0]==="?."||e[0]==="[]")&&e.length===3)return 1;if(e[0]==="optindex"&&e.length===3&&this.lockedHead(e,"optindex"))return 1;if(e[0]==="optcall"&&this.lockedHead(e,"optcall"))return 1;return T.chainHeadSlotRest(e)}static chainHeadSlotRest(e){if(E(e[0])&&e[0][0]!=="dammit!"&&!(e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"))return 0;return null}static isChainNode(e){return E(e)&&T.chainHeadSlot(e)!==null}isChainNodeOf(e){return E(e)&&this.chainHeadSlotOf(e)!==null}chain(e){this.noteProvidedRead(e);let t=[e];while(!0){let i=t[t.length-1],n=i[this.chainHeadSlotOf(i)];if(!this.isChainNodeOf(n))break;t.push(n)}let r=[];for(let i=0;i=0;i--){let n=t[i],s=n[0],a=r[i];if(this.endMark(a.role),a.kind==="member"){this.inTarget=a.savedTarget;let o=this.deopt&&s==="?."?".":s;if(typeof n[2]==="string"&&n[2][0]==='"')this.mark(n,"operator",()=>this.b.emit(s==="?."&&!this.deopt?"?.":"")),this.mark(n,"property",()=>this.b.emit(`[${n[2]}]`));else this.mark(n,"operator",()=>this.b.emit(o)),this.mark(n,"property",()=>{let l=this.b.offset;if(this.stores.idOf(n)===null)this.emitPrimitive(n[2]);else this.b.emit(n[2]);if(this.ts&&this.appStashSpec!==null&&typeof n[2]==="string"&&T.isThisMember(n[1],"stash")&&!(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash")))this.stashMemberSpans.push([l,this.b.offset]);if(this.ts&&n[1]==="this"&&typeof n[2]==="string"){let f=this.cframes[this.cframes.length-1]?.memberKinds?.get(n[2])??null,h=this.stores.idOf(n)??null,u=h!==null?this.stores.role(h,"property"):null;if(f!==null&&u&&typeof u.sourceStart==="number")this.kinds.push({start:u.sourceStart,end:u.sourceEnd,label:f.label,name:n[2],optional:f.optional})}});if(n[1]==="this"&&typeof n[2]==="string"&&this.memberIsReactive(n[2])){if(this.ts){let l=this.stores.idOf(n)??null,c=l!==null?this.stores.role(l,"property"):null;if(c&&typeof c.sourceStart==="number")this.memberDecls.push({start:c.sourceStart,end:c.sourceEnd})}this.b.emit(".value")}}else if(a.kind==="index")this.indexTail(n,a.opt,a.isWrite),this.inTarget=a.savedTarget;else if(a.kind==="optcall")this.b.emit("?."),this.mark(n,"args",()=>{this.b.emit("("),n.slice(2).forEach((o,l)=>{if(l>0)this.b.emit(", ");this.expr(o)}),this.b.emit(")")});else{let o=this.sourceKeyArgOf(n);if(o!==null)(this._sourceKeyArgs??=new Set).add(o),this._needsSourceKeyHelper=!0;let l=this.routerArgOf(n);if(l!==null){if((this._routerArgs??=new Map).set(l.arg,l.wrap),l.wrap)this._needsRouteHelper=!0}this.mark(n,"args",()=>{this.b.emit("("),n.slice(1).forEach((c,f)=>{if(f>0)this.b.emit(", ");this.callArg(c)}),this.b.emit(")")})}this.endMark(a.self)}}member(e){if(e[0]==="."&&e[1]==="this"&&typeof e[2]==="string"&&!this.inTarget)this.notePlainRenderRead(e[2],!0);this.chain(e)}noteProvidedRead(e){if(!this.ts||!(this.cframes?.length>0))return;let t=e;while(E(t)){let s=this.chainHeadSlotOf(t);if(s===null||!E(t[s]))break;t=t[s]}if(!E(t)||t[0]!=="."||t[1]!=="this"||t[2]!=="stash"&&t[2]!=="router")return;if(this.cframes[this.cframes.length-1].members?.has(t[2]))return;let r=this.stores.idOf(t),i=r!==null?this.stores.selfSpan(r):null,n=i!==null?this.stores.primitiveSpans(t[2],i[0],i[1])[0]??null:null;if(n&&!this.kinds.some((s)=>s.start===n.sourceStart&&s.label===t[2]))this.kinds.push({start:n.sourceStart,end:n.sourceEnd,label:t[2],name:t[2],optional:!1})}pick(e,t=!1){let[r,i,...n]=e;if(this.inPattern||this.inTarget)throw this.positionedError(e,"emitter: a pick expression is not an assignment target — it lowers to a fresh object literal (`({…}) = value` would be invalid JS)");let s=r==="?.{}",a=typeof i==="string"&&(i==="this"||/^[A-Za-z_$][\w$]*$/.test(i));if(!a)for(let l of n){if(l[2]!==null&&T.containsAwait(l[2]))throw this.positionedError(l,"emitter: a pick default cannot await when the source needs single evaluation — the lowering's '(_) =>' arrow is not async; bind the source first",e);if(l[2]!==null&&T.containsYield(l[2]))throw this.positionedError(l,"emitter: a pick default cannot yield when the source needs single evaluation — yield cannot cross the lowering's '(_) =>' arrow; bind the source first",e)}let o=(l)=>this.mark(e,"items",()=>{n.forEach((c,f)=>{if(f>0)this.b.emit(", ");let[h,u,d]=c;this.mark(c,"$self",()=>{if(this.mark(c,"target",()=>this.b.emit(T.ownKeyText(u,u))),this.b.emit(": "),d!==null)this.b.emit("(");if(l(),this.b.emit("."),this.mark(c,"key",()=>this.b.emit(h)),d!==null)this.b.emit(" ?? "),this.withExpression(()=>this.operand(c,"default",d)),this.b.emit(")")})})});this.mark(e,"$self",()=>{if(a&&!s)this.b.emit(t?"{":"({"),o(()=>this.mark(e,"source",()=>this.expr(i))),this.b.emit(t?"}":"})");else if(a){if(!t)this.b.emit("(");this.mark(e,"source",()=>this.expr(i)),this.b.emit(" == null ? undefined : {"),o(()=>this.mark(e,"source",()=>this.expr(i))),this.b.emit(t?"}":"})")}else{let l=this.loopTempName("_");this.b.emit(s?`((${l}) => ${l} == null ? undefined : ({`:`((${l}) => ({`),o(()=>this.b.emit(l)),this.b.emit("}))("),this.withExpression(()=>this.grouped(e,"source",i,T.needsGrouping(i,"operand"))),this.b.emit(")")}})}callArg(e){if(this._sourceKeyArgs?.has(e)){this._sourceKeyArgs.delete(e),this.b.tsOnly(()=>this.b.emit("__ripSourceKey("));let r=this.b.offset;this.expr(e),this.sourceKeySpans.push([r,this.b.offset]),this.b.tsOnly(()=>this.b.emit(")"));return}let t=this._routerArgs?.get(e);if(t!==void 0){if(this._routerArgs.delete(e),t)this.b.tsOnly(()=>this.b.emit("__ripRoute("));let r=this.b.offset;if(this.expr(e),this.routeWrapSpans.push({key:null,value:[r,this.b.offset]}),t)this.b.tsOnly(()=>this.b.emit(")"));return}if(E(e)&&(e[0]===".{}"||e[0]==="?.{}")&&e.length>=3)return this.pick(e,!0);this.expr(e)}sourceKeyArgOf(e){if(!this.ts||this.appStashSpec===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!E(r)||r.length!==3||r[2]!=="source")return null;let i=r[1];if(r[0]==="."&&T.isThisMember(i,"stash")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("stash"))return null;return t}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(i,this.appAccessors.stash))return t;return null}static isThisMember(e,t){return E(e)&&e[0]==="."&&e.length===3&&e[1]==="this"&&e[2]===t}static stashKeysOf(e,t){let r=null;for(let s of e.slice(1)){let a=E(s)&&s[0]==="export"?s[1]:s;if(E(a)&&a[0]==="="&&a[1]===t){r=a[2];break}}if(E(r)&&r.length===2&&typeof r[0]==="string"&&E(r[1])&&r[1][0]==="object")r=r[1];if(!E(r)||r[0]!=="object")return null;let i=[],n=!0;for(let s of r.slice(1)){if(!E(s))continue;if(s[0]==="..."){n=!1;continue}let a=s[0]===":"?s[1]:s[0]===null?s[1]:null;if(typeof a!=="string"){n=!1;continue}i.push(/^["']/.test(a)?a.slice(1,-1):a)}return{keys:i,complete:n}}routerArgOf(e){if(!this.ts||this.routesUnion===null)return null;let t=e[1];if(typeof t!=="string"||!/^["']/.test(t))return null;let r=e[0];if(!E(r)||r.length!==3||r[2]!=="push"&&r[2]!=="replace")return null;let i=r[1];if(r[0]==="."&&T.isThisMember(i,"router")){if(this.cframes.length&&this.cframes[this.cframes.length-1].members.has("router"))return null;return{arg:t,method:r[2],wrap:!1}}if((r[0]==="."||r[0]==="?.")&&this.isAccessorCall(i,this.appAccessors.router))return{arg:t,method:r[2],wrap:!0};return null}binary(e){if(T.returnGuard(e))throw this.positionedError(e[2],"emitter: a return guard is a statement — in value position the 'return' would lose its function target (bind the value first, or use `or throw`)");if(T.stmtGuard(e))throw this.positionedError(e[2],`emitter: a ${e[2]} guard is a statement`);if(e[0]==="&&"||e[0]==="||")return this.logicalChain(e);if(T.isStrRepeat(e)){this.mark(e,"$self",()=>{this.mark(e,"left",()=>this.b.emit(e[1])),this.b.emit(".repeat("),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")});return}if(ot(e))return this.comparisonChain(e);let t=(o)=>at(o)&&o[0]!=="&&"&&o[0]!=="||"&&!ot(o)&&!T.isStrRepeat(o),r=[e];while(t(r[r.length-1][1]))r.push(r[r.length-1][1]);let i=[];for(let o=0;o=0;o--){let l=r[o];if(this.b.emit(" "),this.mark(l,"operator",()=>this.b.emit(kn[l[0]]??l[0])),this.b.emit(" "),this.operand(l,"right",l[2]),this.endMark(i[o].self),o>0)this.endMark(i[o-1].left),this.b.emit(")")}}logicalChain(e){let t=e[0],r=(a)=>at(a)&&a[0]===t,i=[e];while(r(i[i.length-1][1]))i.push(i[i.length-1][1]);let n=[];for(let a=0;a=0;a--){let o=i[a];if(this.b.emit(" "),this.mark(o,"operator",()=>this.b.emit(t)),this.b.emit(" "),r(o[2]))this.grouped(o,"right",o[2],!1);else this.operand(o,"right",o[2]);if(this.endMark(n[a].self),a>0)this.endMark(n[a-1].left)}}comparisonChain(e){let t=[e];while(ot(t[t.length-1]))t.push(t[t.length-1][1]);t.reverse();let r=[];for(let s=t.length-1;s>=1;s--){let a=t[s],o=this.beginMark(a,"$self");this.b.emit("("),r[s]={self:o,left:this.beginMark(a,"left")}}let i=t[0],n=this.beginMark(i,"$self");this.operand(i,"left",i[1]),this.b.emit(" "),this.mark(i,"operator",()=>this.b.emit(kn[i[0]]??i[0])),this.b.emit(" "),this.chainRight(i,t[1]),this.endMark(n);for(let s=1;sthis.b.emit(kn[a[0]]??a[0])),this.b.emit(" "),this.chainRight(a,t[s+1]),this.b.emit(")"),this.endMark(r[s].self)}}chainRight(e,t){let r=e[2];if(t!==void 0&&E(r)){let i=this.temps.byNode.get(t);if(i===void 0)throw this.positionedError(r,"emitter: a chained comparison here cannot cache its middle operand for single evaluation "+"(no enclosing scope hoist) — bind the middle operand to a variable first ",e);this.b.emit("("),this.mark(e,"right",()=>{this.b.emit(`${i} = `),this.expr(r)}),this.b.emit(")");return}this.operand(e,"right",r)}chainMid(e,t){let r=this.temps.byNode.get(t);if(r!==void 0){this.mark(e,"right",()=>this.b.emit(r));return}this.operand(e,"right",e[2])}cast(e){if(!this.ts){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>this.mark(e,"value",()=>this.expr(e[1]))));return}let t=this.stores.idOf(e),r=t===null?null:this.stores.role(t,"annotation"),i=r&&r.sourceStart!=null&&this.b.source!==null?this.b.source.slice(r.sourceStart,r.sourceEnd):`as ${Ce(e[2])}`;this.mark(e,"$self",()=>{this.b.tsOnly(()=>this.b.emit("("));let n=T.jsTier(e[1])!=="primary";if(n)this.b.tsOnly(()=>this.b.emit("("));if(this.mark(e,"value",()=>this.expr(e[1])),n)this.b.tsOnly(()=>this.b.emit(")"));this.b.tsOnly(()=>{this.b.emit(" "),this.mark(e,"annotation",()=>this.emitTypeText(e,"annotation",i))}),this.b.tsOnly(()=>this.b.emit(")"))})}existence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" != null")})}presence(e){this.mark(e,"$self",()=>{this.operand(e,"value",e[1]),this.b.emit(" ? true : undefined")})}unary(e){if(e[0]==="delete"&&typeof e[1]==="string"&&this.isReactiveName(e[1]))throw this.positionedError(e,`emitter: cannot delete the reactive variable '${e[1]}' — \`delete ${e[1]}.value\` would remove the container's accessor and silently kill the reactive`);if(e[0]==="delete"&&!(E(e[1])&&(e[1][0]==="."||e[1][0]==="[]")))throw this.positionedError(e,"emitter: delete requires a property reference (delete obj.a / delete obj[k]) — deleting a plain binding is a strict-mode SyntaxError in modules");this.mark(e,"$self",()=>{if(this.mark(e,"operator",()=>this.b.emit(e[0])),/^[a-z]/.test(e[0]))this.b.emit(" ");this.operand(e,"operand",e[1])})}spread(e){this.mark(e,"$self",()=>{if(this.b.emit("..."),this.inPattern)this.mark(e,"value",()=>this.expr(e[1]));else this.operand(e,"value",e[1])})}array(e){this.mark(e,"$self",()=>{this.b.emit("["),this.mark(e,"items",()=>{let t=e.slice(1);t.forEach((r,i)=>{if(i>0)this.b.emit(", ");if(r===","){if(i===t.length-1)this.b.emit(",");return}if(E(r)&&r[0]==="rest"&&this.inPattern){if(!this.bindingPattern)throw this.positionedError(r,"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')",e);if(r.length!==2||i!==t.length-1)throw this.positionedError(r,"emitter: a `rest` element takes the pattern's tail alone",e);if(typeof r[1]!=="string")throw this.positionedError(r,"emitter: a `rest` element takes a plain name",e);this.b.emit("..."),this.b.emit(r[1]);return}let n=!this.inPattern&&!(E(r)&&r[0]==="...")&&T.needsGrouping(r,"operand");if(n)this.b.emit("(");if(this.expr(r),n)this.b.emit(")")})}),this.b.emit("]")})}symbolKey(e){this.b.emit("["),this.expr(e),this.b.emit("]")}static isMethodPair(e){return E(e)&&(e[0]===":"||e[0]==="void-pair")&&typeof e[1]==="string"&&/^[A-Za-z_$][\w$]*$/.test(e[1])&&E(e[2])&&e[2][0]==="->"}object(e){for(let a of e.slice(1)){if(E(a)&&a[0]===":"&&typeof a[1]==="string"&&a[1][0]==="/")throw this.positionedError(a,"emitter: a regex key needs a MAP literal (`*{ /re/: v }`) — object property names are strings");if(!this.inPattern&&!this.tolerant&&E(a)&&a[0]==="="&&a.length===3)throw this.positionedError(a,"emitter: `a = 1` inside an object literal is a destructuring default, which only a pattern can carry — spell the pair `a: 1`",e)}let t=!this.inPattern&&T.objectComprehension(e);if(t){let a=E(t[1])?t[1]:null,o={expr:a!==null?a[1]:t[1],pair:t,keyNode:a};return this.mark(e,"$self",()=>this.mark(e,"pairs",()=>this.mark(t,"$self",()=>this.mark(t,"value",()=>this.comprehension(t[2],this.ind,o)))))}let r=e.slice(1),i=this.ind,n=r.map((a)=>!this.inPattern&&T.isMethodPair(a)),s=(a)=>n[a]||n.slice(0,a).some(Boolean)?`, +`:", ";this.mark(e,"$self",()=>{this.b.emit("{"),this.mark(e,"pairs",()=>{r.forEach((a,o)=>{if(o>0)this.b.emit(s(o));if(n[o]){this.mark(a,"voidMarker",()=>this.mark(a,"$self",()=>{if(T.containsAwait(a[2][2]))this.b.emit("async ");if(T.containsYield(a[2][2]))this.b.emit("*");this.mark(a,"key",()=>this.b.emit(a[1]));let[,h,u]=a[2],d=this.ts&&this.contextuallyTyped(a[2]);this.b.emit("("),this.mark(a[2],"params",()=>this.emitParams(h,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(a[2],T.containsAwait(u),a[0]==="void-pair",T.containsYield(u),a),this.b.emit(" "),this.mark(a,"value",()=>{this.methodBlock(a[2],u,i,{isConstructor:!1,binds:[],methodName:a[1],voidBody:a[0]==="void-pair"})})}));return}let l=E(a[1])&&a[1][0]==="dynamicKey";if(l&&a[0]===null)throw this.positionedError(a,"emitter: a computed key needs an explicit value ({[k]: v}) — there is no shorthand form",e);let c=E(a[1])&&a[1][0]==="str",f=a[0]===":"&&E(a[1])&&a[1][0]==="symbol";if(a[0]!=="..."&&E(a[1])&&!l&&!c&&!f)throw this.positionedError(a,"emitter: @-keys are only supported in class bodies",e);if(f){this.mark(a,"$self",()=>{this.mark(a,"key",()=>this.symbolKey(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[2]))});return}if(a[0]===":"&&c){this.mark(a,"$self",()=>{this.b.emit("["),this.mark(a,"key",()=>this.strTemplate(a[1])),this.b.emit("]: "),this.mark(a,"value",()=>this.expr(a[2]))});return}this.mark(a,"$self",()=>{if(a[0]===":"&&l)if(this.mark(a,"key",()=>{this.mark(a[1],"$self",()=>{this.b.emit("["),this.withExpression(()=>this.operand(a[1],"key",a[1][1])),this.b.emit("]")})}),this.b.emit(": "),this.inPattern||E(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2]);else if(a[0]===":"||a[0]==="void-pair"){if(a[0]==="void-pair"){if(this.inPattern)throw this.positionedError(a,"emitter: the void marker has no meaning in a destructuring pattern — a pattern key takes no trailing '!'",e);this.registerVoidValue(a[2],a)}this.mark(a,"voidMarker",()=>{if(this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.inPattern||E(a[2])&&a[2][0]==="=>")this.mark(a,"value",()=>this.expr(a[2]));else this.operand(a,"value",a[2])})}else if(a[0]==="=")this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(" = "),this.withExpression(()=>this.operand(a,"value",a[2]));else if(a[0]==="..."){if(this.inPattern&&(E(a[1])||a[1]==="this"))throw this.positionedError(a,"emitter: object rest in a destructuring pattern takes a plain name — chained-accessor rest targets are not supported",e);if(this.b.emit("..."),this.inPattern)this.mark(a,"value",()=>this.expr(a[1]));else this.operand(a,"value",a[1])}else if(typeof a[1]==="string"&&this.bareRewrite(a[1])!==null)this.mark(a,"key",()=>this.b.emit(a[1])),this.b.emit(": "),this.mark(a,"value",()=>this.expr(a[1]));else this.mark(a,"value",()=>this.mark(a,"key",()=>this.b.emit(a[1])))})})}),this.b.emit("}")})}static negativeLiteralKey(e){return E(e)&&e[0]==="-"&&e.length===2&&typeof e[1]==="string"&&/^\d+$/.test(e[1])}indexTail(e,t,r){let i=e[2],n=()=>{let s=this.deopt;this.deopt=!1,this.mark(e,"key",()=>this.expr(i)),this.deopt=s};if(!t&&Me(i))this.mark(e,"key",()=>this.slice(i));else if(T.negativeLiteralKey(i)){if(r)throw this.positionedError(e,"emitter: a negative-literal index cannot be an assignment target (reads lower to .at(-n), and a call is not assignable)");this.b.emit(t?"?.at(":".at("),this.mark(e,"key",()=>{this.b.emit("-"),this.b.emit(i[1])}),this.b.emit(")")}else this.b.emit(t?"?.[":"["),n(),this.b.emit("]")}index(e){if(e.length===3&&typeof e[2]==="string"&&e[2][0]==="/")return this.regexIndex(e,e[1],e[2],null);this.chain(e)}optIndex(e){this.chain(e)}optCall(e){this.chain(e)}slice(e){let[t,r,i]=e;if(this.b.emit(".slice("),this.mark(e,"from",()=>r===null?this.b.emit("0"):this.expr(r)),i!==null)if(this.b.emit(", "),t==="...")this.mark(e,"to",()=>this.expr(i));else if(typeof i==="string"&&/^\d+$/.test(i))this.mark(e,"to",()=>this.b.emit(String(Number(i)+1)));else this.b.emit("+"),this.mark(e,"to",()=>this.expr(i)),this.b.emit(" + 1 || 9e9");this.b.emit(")")}range(e){let[t,r,i]=e,n=t===".."?"((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))":"((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))";this.mark(e,"$self",()=>{this.b.emit(n),this.b.emit("("),this.mark(e,"from",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"to",()=>this.expr(i)),this.b.emit(")")})}classStatement(e,t){this.mark(e,"$self",()=>this.classCode(e,t))}classExpr(e){this.mark(e,"$self",()=>this.classCode(e,this.ind))}classCode(e,t){let[,r,i,n]=e;if(this.b.emit("class"),r!=null){if(typeof r!=="string")throw this.positionedError(e,"emitter: `class @Name` is a STATIC member class — it lives inside a class body (`static Name = class`); at the top level give the class a plain name");this.b.emit(" "),this.mark(e,"name",()=>this.b.emit(r))}if(i!=null)this.b.emit(" extends "),this.mark(e,"parent",()=>this.expr(i));if(this.b.emit(` { +`),n!=null)this.mark(e,"body",()=>this.classMembers(n,t));this.b.emit(" ".repeat(t)+"}")}classMethodForm(e){if(!E(e))return null;if(g1(e[0])&&e.length===4){let t=this.stores.alias(["->",e[2],e[3]],e);return{form:"def",pair:this.stores.alias([e[0]==="void-def"?"void-pair":":",e[1],t],e)}}if((e[0]==="get"||e[0]==="set")&&e.length===2&&O1(e[1])&&e[1].length===2){let t=e[1][1];if(E(t)&&t[0]===":"&&t.length===3&&T1(t[2]))return{form:e[0],pair:t}}return null}classMembers(e,t){let r=E(e)&&e[0]==="block"?e.slice(1):[e],i=new Map(r.map((R)=>[R,this.classMethodForm(R)])),n=(R)=>E(R)&&R[0]==="."&&R[1]==="this"?R[2]:R,s=(R)=>E(R)&&R[0]==="."&&R[1]==="this"&&R.length===3&&typeof R[2]==="string",a=" ".repeat(t+1),o=[],l=null,c=!1,f=new Set,h=null,u=null,d=[],S=(R)=>s(R)?`static ${R[2]}`:R,g=new Set,p=[];for(let R of r){let b=i.get(R)??null,_=b!==null?[b.pair]:O1(R)?R.slice(1):null;if(_===null){let y=typeof R==="string"||s(R)?R:T.isTypedWrapper(R)&&(typeof R[1]==="string"||s(R[1]))?R[1]:E(R)&&R[0]==="="&&R.length===3&&(typeof R[1]==="string"||s(R[1]))?R[1]:null;if(y!==null){if(g.add(S(y)),!s(y))f.add(y)}continue}for(let y of _){if(y[0]!==":"&&y[0]!=="void-pair")throw this.positionedError(y,"emitter: class bodies support methods and fields only",R);if(b!==null&&b.form!=="def"){let k=y[2][1].length;if(y[2][0]==="=>")throw this.positionedError(y,`emitter: a ${b.form} accessor takes '->' — accessors are looked up on the instance, never bound`,R);if(T.containsAwait(y[2][2])||T.containsYield(y[2][2]))throw this.positionedError(y,`emitter: a ${b.form} accessor cannot await or yield — JavaScript has no async or generator accessors`,R);if(b.form==="get"&&k!==0)throw this.positionedError(y,"emitter: a getter takes no parameters (`get x: -> …`)",R);if(b.form==="set"&&k!==1)throw this.positionedError(y,"emitter: a setter takes exactly one parameter (`set x: (v) -> …`)",R)}if(E(y[1])&&(y[1][0]==="dynamicKey"||y[1][0]==="[]"))throw this.positionedError(y,"emitter: computed class members are not supported yet",R);let m=n(y[1]);if(b!==null&&b.form!=="def"){if(m==="constructor")throw this.positionedError(y,`emitter: a class constructor cannot be a ${b.form} accessor`,R);p.push({pair:y,stmt:R,key:S(y[1]),form:b.form})}if(m==="constructor"&&!s(y[1])){if(c=!0,T1(y[2]))h=y[2][1],u=y[2][2]}else if(!s(y[1])&&typeof m==="string")f.add(m);if(T1(y[2])&&!s(y[1])&&m!=="constructor")d.push(y[2][2]);if(T1(y[2])&&y[2][0]==="=>"&&!s(y[1])&&m!=="constructor"){if(typeof m!=="string")throw this.positionedError(y,"emitter: a symbol-keyed method cannot be bound ('=>') — the constructor binds members by name; use '->'",R);o.push(m),l??=y}}}if(o.length>0&&!c)throw this.positionedError(l,"emitter: bound ('=>') class methods require an explicit constructor",e);for(let R of p)if(g.has(R.key))throw this.positionedError(R.pair,`emitter: field and ${R.form} accessor '${n(R.pair[1])}' share a name — the field would shadow the accessor on every instance; drop one`,R.stmt);if(this.ts&&h!==null)for(let R of h){let b=f3(R);if(b===null||f.has(b.name))continue;f.add(b.name);let _=b.typed===null?null:this.annotationText(b.typed)??(b.typed[2]===""?null:Ce(b.typed[2])),y=this.stores.idOf(e),m=y!==null?this.stores.selfSpan(y):null,k=m!==null?this.stores.primitiveSpans(b.name,m[0],m[1])[0]??null:null;this.b.tsOnly(()=>{if(this.b.emit(a),k)this.b.markSpan(y,"identifier",k.sourceStart,k.sourceEnd,()=>this.b.emit(b.name));else this.b.emit(b.name);this.b.emit(`${_?`: ${_}`:""}; +`)})}if(this.ts)for(let R of h3([u,...d])){if(f.has(R.name))continue;f.add(R.name);let _=R.nodes.map((y)=>this.annotationText(y)).find((y)=>y!=null)??null??(R.viaArrow?"any":null);this.b.tsOnly(()=>this.b.emit(`${a}${R.name}${_?`: ${_}`:""}; `))}for(let R of r)this.withTsDirectives(R,a,()=>this.classMember(R,e,t,a,{memberName:n,isStaticKey:s,bound:o,form:i.get(R)??null}),!0)}classFieldValue(e){if(T.containsAwait(e))throw this.positionedError(e,"emitter: a class field initializer cannot await — JavaScript evaluates class fields synchronously");if(T.containsYield(e))throw this.positionedError(e,"emitter: a class field initializer cannot yield — class field evaluation is not a generator context");let t=this.planReferenceTemps([e],new Set);if(t.length===0){this.expr(e);return}this.b.emit("(() => { "),this.hoistLine(t),this.b.emit(" return "),this.expr(e),this.b.emit("; })()")}classMember(e,t,r,i,{memberName:n,isStaticKey:s,bound:a,form:o}){let l=o!==null&&o.form!=="def"?o.form:null,c=o!==null&&o.form==="def"?"name":"key",f=e;if(o!==null)e=this.stores.alias(["object",o.pair],e);{if(E(e)&&e[0]==="class"&&E(e[1])&&e[1][0]==="."&&e[1][1]==="this"&&typeof e[1][2]==="string"){this.b.emit(i+"static "),this.mark(e,"name",()=>this.emitPrimitive(e[1][2])),this.b.emit(" = "),this.classCode(["class",null,e[2]??null,e[3]],r+1),this.b.emit(`; -`);return}if(O1(e)){for(let h of e.slice(1))this.withTsDirectives(h,i,()=>{let u=h[1],m=h[2],S=n(u),g=h[0]==="void-pair";if(!T1(m)){if(g)throw this.positionedError(h,"emitter: the void marker (a trailing '!' on the method key) requires a function value — `fn!: ->` (this class member's value is not a function)",e);throw this.positionedError(h,"emitter: a class field takes '=' for its value (`x = v`, `x: T = v`, `@x = v`) — `name: value` is a typed bodiless field only when the value is a TYPE",e)}if(g&&S==="constructor")throw this.positionedError(h,"emitter: a constructor cannot carry the void marker (`constructor!:`) — constructors have no implicit return to suppress",e);this.b.emit(i),this.mark(h,"voidMarker",()=>this.mark(h,"$self",()=>{if(s(u))this.b.emit("static ");if(T.containsAwait(m[2]))this.b.emit("async ");if(T.containsYield(m[2]))this.b.emit("*");if(l!==null){let y=this.stores.idOf(f),p=y!==null?this.stores.role(y,"callee"):null;if(p!==null)this.silences.push([p.sourceStart,p.sourceEnd]);this.mark(f,"callee",()=>this.b.emit(l)),this.b.emit(" ")}if(E(u)&&u[0]==="symbol")this.mark(h,"key",()=>this.symbolKey(u));else this.mark(h,c,()=>this.emitPrimitive(S));if(this.ts){let y=this.annotationText(h,"typeParams");if(y!==null)this.b.tsOnly(()=>this.mark(h,"typeParams",()=>this.emitTypeText(h,"typeParams",y)))}let[,d,R]=m,b=[],_=S==="constructor"&&!s(h[1]);if(_){let y=(p)=>{let k=ht(p);if(k!==null)return b.push(k),E(p)&&p[0]==="typed-var"?["typed-var",k,p[2]]:k;if(E(p)&&p[0]==="default"&&p.length===3){let I=ht(p[1]);if(I!==null)return b.push(I),["default",E(p[1])&&p[1][0]==="typed-var"&&p[1].length===3?["typed-var",I,p[1][2]]:I,p[2]]}return p};if(d=d.map(y),b.length>0&&E(R)&&R[0]==="block"&&E(R[1])&&R[1][0]==="super"){let p=new Set(b),k=(I)=>{if(!E(I))return I;if(I[0]==="."&&I[1]==="this"&&p.has(I[2]))return I[2];return I.map(k)};R=["block",k(R[1]),...R.slice(2)]}}if(this.b.emit("("),this.emitParams(d,null,l!=="set"),this.b.emit(")"),!_)this.tsReturnAnnotation(m,T.containsAwait(m[2]),g,T.containsYield(m[2]),h);this.b.emit(" "),this.mark(h,"value",()=>{this.methodBlock(m,R,r+1,{isConstructor:_,binds:_?a:[],methodName:typeof S==="string"?S:"symbol",voidBody:g||l==="set",tailReturn:l!=="set",voidReason:l==="set"?"a setter discards its return value":null,atParams:b})})})),this.b.emit(` +`);return}if(O1(e)){for(let h of e.slice(1))this.withTsDirectives(h,i,()=>{let u=h[1],d=h[2],S=n(u),g=h[0]==="void-pair";if(!T1(d)){if(g)throw this.positionedError(h,"emitter: the void marker (a trailing '!' on the method key) requires a function value — `fn!: ->` (this class member's value is not a function)",e);throw this.positionedError(h,"emitter: a class field takes '=' for its value (`x = v`, `x: T = v`, `@x = v`) — `name: value` is a typed bodiless field only when the value is a TYPE",e)}if(g&&S==="constructor")throw this.positionedError(h,"emitter: a constructor cannot carry the void marker (`constructor!:`) — constructors have no implicit return to suppress",e);this.b.emit(i),this.mark(h,"voidMarker",()=>this.mark(h,"$self",()=>{if(s(u))this.b.emit("static ");if(T.containsAwait(d[2]))this.b.emit("async ");if(T.containsYield(d[2]))this.b.emit("*");if(l!==null){let y=this.stores.idOf(f),m=y!==null?this.stores.role(y,"callee"):null;if(m!==null)this.silences.push([m.sourceStart,m.sourceEnd]);this.mark(f,"callee",()=>this.b.emit(l)),this.b.emit(" ")}if(E(u)&&u[0]==="symbol")this.mark(h,"key",()=>this.symbolKey(u));else this.mark(h,c,()=>this.emitPrimitive(S));if(this.ts){let y=this.annotationText(h,"typeParams");if(y!==null)this.b.tsOnly(()=>this.mark(h,"typeParams",()=>this.emitTypeText(h,"typeParams",y)))}let[,p,R]=d,b=[],_=S==="constructor"&&!s(h[1]);if(_){let y=(m)=>{let k=ht(m);if(k!==null)return b.push(k),E(m)&&m[0]==="typed-var"?["typed-var",k,m[2]]:k;if(E(m)&&m[0]==="default"&&m.length===3){let O=ht(m[1]);if(O!==null)return b.push(O),["default",E(m[1])&&m[1][0]==="typed-var"&&m[1].length===3?["typed-var",O,m[1][2]]:O,m[2]]}return m};if(p=p.map(y),b.length>0&&E(R)&&R[0]==="block"&&E(R[1])&&R[1][0]==="super"){let m=new Set(b),k=(O)=>{if(!E(O))return O;if(O[0]==="."&&O[1]==="this"&&m.has(O[2]))return O[2];return O.map(k)};R=["block",k(R[1]),...R.slice(2)]}}if(this.b.emit("("),this.emitParams(p,null,l!=="set"),this.b.emit(")"),!_)this.tsReturnAnnotation(d,T.containsAwait(d[2]),g,T.containsYield(d[2]),h);this.b.emit(" "),this.mark(h,"value",()=>{this.methodBlock(d,R,r+1,{isConstructor:_,binds:_?a:[],methodName:typeof S==="string"?S:"symbol",voidBody:g||l==="set",tailReturn:l!=="set",voidReason:l==="set"?"a setter discards its return value":null,atParams:b})})})),this.b.emit(` `)},!0);return}if(typeof e==="string"){this.b.emit(i+e+`; `);return}if(s(e)){this.b.emit(i),this.mark(e,"$self",()=>{this.b.emit("static "),this.mark(e,"property",()=>this.emitPrimitive(e[2]))}),this.b.emit(`; -`);return}if(T.isTypedWrapper(e)&&(typeof e[1]==="string"||s(e[1]))){this.b.emit(i),this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(n(e[1])))),this.ts)this.tsAnnotate(e,"annotation",this.annotationText(e)??Pe(e[2]))})),this.b.emit(`; +`);return}if(T.isTypedWrapper(e)&&(typeof e[1]==="string"||s(e[1]))){this.b.emit(i),this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(n(e[1])))),this.ts)this.tsAnnotate(e,"annotation",this.annotationText(e)??Ce(e[2]))})),this.b.emit(`; `);return}if(E(e)&&e[0]==="="&&e.length===3&&(typeof e[1]==="string"||s(e[1]))){this.ind=r+1,this.b.emit(i),this.mark(e,"annotation",()=>this.mark(e,"$self",()=>{if(s(e[1]))this.b.emit("static ");if(this.mark(e,"target",()=>this.withDeclaredName(()=>this.emitPrimitive(n(e[1])))),this.ts&&this.annotationText(e)!==null)this.tsAnnotate(e,"annotation",this.annotationText(e));this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"value",()=>this.withExpression(()=>this.classFieldValue(e[2])))})),this.b.emit(`; `);return}if(E(e)&&e[0]==="type-decl")throw this.positionedError(e,"emitter: type declarations are not allowed as class members — move the `type`/`interface` to module scope");if(this.isReactiveDecl(e))throw this.positionedError(e,`emitter: a reactive declaration ('${typeof e[1]==="string"?e[1]:"…"} ${e[0]==="state"?":=":"~="} …') cannot be a class member — declare it at module or function scope`);if(this.isEffectDecl(e))throw this.positionedError(e,"emitter: an effect ('~>') cannot be a class member — run it at module or function scope, or inside a method");if(this.isReadonlyDecl(e))throw this.positionedError(e,`emitter: a readonly declaration ('${typeof e[1]==="string"?e[1]:"…"} =! …') cannot be a class member — declare it at module or function scope`);throw this.positionedError(e,"emitter: unsupported class member — fields take `name = value`, `name: T = value`, `name: T`, or their `@`-static forms; methods take `name: -> …`",t)}}static middleRestPattern(e){if(!E(e)||e[0]!=="array")return!1;let t=e.slice(1),r=t.findIndex((i)=>E(i)&&i[0]==="..."&&i.length===2);return r!==-1&&rE(o)&&o[0]==="..."&&o.length===2),n=r.slice(0,i),s=r[i][1],a=r.slice(i+1);for(let o of[...n,s,...a])if(typeof o!=="string")throw this.positionedError(e,"emitter: a middle-rest pattern takes plain names (`[a, ...mid, b]`) — nested patterns have no single-read lowering");this.mark(e,"$self",()=>{let o=e[2],l=this.repeatSafeValue(o)?null:this.loopTempName("_ref");if(l!==null)this.temps.used.add(l),this.b.emit(`const ${l} = `),this.mark(e,"value",()=>this.expr(o)),this.b.emit(`; ${" ".repeat(t)}`);let c=()=>{if(l!==null)this.b.emit(l);else this.expr(o)},f=()=>this.b.emit(`; -${" ".repeat(t)}`);n.forEach((h,u)=>{this.b.emit(`${h} = `),c(),this.b.emit(`[${u}]`),f()}),this.b.emit(`${s} = `),c(),this.b.emit(a.length>0?`.slice(${n.length}, -${a.length})`:`.slice(${n.length})`),a.forEach((h,u)=>{f(),this.b.emit(`${h} = `),c(),this.b.emit("["),c(),this.b.emit(`.length - ${a.length-u}]`)})})}methodBlock(e,t,r,{isConstructor:i,binds:n,methodName:s,voidBody:a=!1,tailReturn:o=!0,voidReason:l=null,atParams:c=[]}){let f=this.liveStmts(E(t)&&t[0]==="block"?t.slice(1):[t],{forwards:!0}),{entries:h,names:u}=this.scopedHoist(f,e[1]);for(let d of this.pushReactiveFrame(f,u,e[1],e))u.add(d);this.scopes.push(u);let m=this.methodName;this.methodName=s;let S=this.sideEffectOnly,g=this.voidReason;this.sideEffectOnly=a,this.voidReason=l,this.mark(t,"$self",()=>{if(this.b.emit(`{ +${" ".repeat(t)}`);n.forEach((h,u)=>{this.b.emit(`${h} = `),c(),this.b.emit(`[${u}]`),f()}),this.b.emit(`${s} = `),c(),this.b.emit(a.length>0?`.slice(${n.length}, -${a.length})`:`.slice(${n.length})`),a.forEach((h,u)=>{f(),this.b.emit(`${h} = `),c(),this.b.emit("["),c(),this.b.emit(`.length - ${a.length-u}]`)})})}methodBlock(e,t,r,{isConstructor:i,binds:n,methodName:s,voidBody:a=!1,tailReturn:o=!0,voidReason:l=null,atParams:c=[]}){let f=this.liveStmts(E(t)&&t[0]==="block"?t.slice(1):[t],{forwards:!0}),{entries:h,names:u}=this.scopedHoist(f,e[1]);for(let p of this.pushReactiveFrame(f,u,e[1],e))u.add(p);this.scopes.push(u);let d=this.methodName;this.methodName=s;let S=this.sideEffectOnly,g=this.voidReason;this.sideEffectOnly=a,this.voidReason=l,this.mark(t,"$self",()=>{if(this.b.emit(`{ `),h.length)this.b.emit(" ".repeat(r+1)),this.hoistLine(h," ".repeat(r+1)),this.b.emit(` -`);let d=" ".repeat(r+1),R=()=>{for(let b of n)this.b.emit(`${d}this.${b} = this.${b}.bind(this); -`);for(let b of c)this.b.emit(`${d}this.${b} = ${b}; -`)};if(this.emitTsTypeDecls(E(t)&&t[0]==="block"?t.slice(1):[t],d),this.mark(t,"statements",()=>{let b=i&&f.length>0&&E(f[0])&&f[0][0]==="super";if(!b)R();f.forEach((_,y)=>{this.b.emit(d);let p=y===f.length-1;if(!i&&!a&&p)this.implicitReturn(_,r+1);else this.statement(_,r+1,!p||!i);if(this.b.emit(` -`),b&&y===0)R()})}),o)this.voidTailReturn(f,r);this.b.emit(" ".repeat(r)+"}")}),this.sideEffectOnly=S,this.voidReason=g,this.methodName=m,this.scopes.pop(),this.rframes.pop()}superCall(e){if(!this.methodName)throw this.positionedError(e,"emitter: super outside a class method");this.mark(e,"$self",()=>{this.b.emit(this.methodName==="constructor"?"super(":`super.${this.methodName}(`),this.mark(e,"args",()=>{e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)})}),this.b.emit(")")})}newExpr(e){let[,t]=e;this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("new")),this.b.emit(" "),this.mark(e,"operand",()=>{if(E(t)&&Gs.has(t[0])&&T.optionalGuard(t))this.b.emit("("),this.expr(t),this.b.emit(" ?? undefined)()");else if(E(t)&&(t[0]==="."||t[0]==="?."))this.member(t);else if(E(t)&&t[0]==="new"&&t.length===2&&T.optionalGuard(t[1]))this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(E(t)&&t[0]==="tagged-template")this.b.emit("("),this.taggedTemplate(t),this.b.emit(")()");else if(E(t)&&E(t[0])&&!wn(t[0])&&Gs.has(t[0][0])&&T.optionalGuard(t[0]))this.mark(t,"$self",()=>{this.b.emit("("),this.expr(t[0]),this.b.emit(" ?? undefined)"),this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((r,i)=>{if(i>0)this.b.emit(", ");this.callArg(r)}),this.b.emit(")")})});else if(E(t)&&t[0]==="new"&&t.length===2)this.b.emit("("),this.newExpr(t),this.b.emit(")");else if(E(t)&&t[0]==="dammit!"){if(t.parenthesized)this.b.emit("(");if(this.dammit(t),t.parenthesized)this.b.emit(")");this.b.emit("()")}else if(E(t))this.call(t);else this.emitPrimitive(t),this.b.emit("()")})})}emitParam(e){if(typeof e==="string")return this.withDeclaredName(()=>this.emitPrimitive(e));if(e[0]==="typed-var"){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(this.mark(e,"target",()=>this.emitParam(e[1])),this.ts){let t=this.stores.idOf(e);if(t!==null&&this.stores.role(t,"optionalMarker"))this.b.tsOnly(()=>this.mark(e,"optionalMarker",()=>this.b.emit("?")));let r=this.annotationText(e)??(e[2]===""?"":Pe(e[2]));if(r!=="")this.tsAnnotate(e,"annotation",r)}}));return}if(e[0]==="rest")return this.b.emit("..."),this.emitParam(e[1]);if(e[0]==="default")return this.emitParam(e[1]),this.b.emit(" = "),this.withExpression(()=>this.expr(e[2]));this.withPattern(()=>this.expr(e),!0)}static paramCore(e){return E(e)&&e[0]==="typed-var"?e[1]:e}static expansionSplit(e){let t=e.findIndex((i)=>E(i)&&i[0]==="expansion");if(t===-1)return{list:e,extractions:[]};let r=e.slice(t+1);return{list:[...e.slice(0,t),["rest","_rest"]],extractions:r.map((i,n)=>({node:i,name:T.paramCore(i),slot:`_rest[_rest.length - ${r.length-n}]`}))}}contextuallyTyped(e){let t=this.stores.idOf(e),r=t===null?null:this.stores.node(t);if(!r||typeof r.sourceStart!=="number")return!1;if(this._argSpans??=this.stores.roles.filter((i)=>i.role==="args"&&typeof i.sourceStart==="number").map((i)=>[i.sourceStart,i.sourceEnd]),this._argSpans.some(([i,n])=>r.sourceStart>=i&&r.sourceEnd<=n))return!0;return this._annotatedValueSpans??=(()=>{let i=new Set,n=[];for(let a of this.stores.nodes){if(a.semanticKind!=="assign"&&a.semanticKind!=="pair")continue;if(!this.stores.role(a.nodeId,"annotation"))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")i.add(`${o.sourceStart}:${o.sourceEnd}`),n.push([o.sourceStart,o.sourceEnd])}let s=[];for(let a of this.stores.nodes)if((a.semanticKind==="func"||a.semanticKind==="def"||a.semanticKind==="class")&&typeof a.sourceStart==="number"&&n.some(([o,l])=>a.sourceStart>=o&&a.sourceEnd<=l))s.push([a.sourceStart,a.sourceEnd]);for(let a of this.stores.nodes){if(a.semanticKind!=="pair"||typeof a.sourceStart!=="number")continue;if(!n.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;if(s.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")i.add(`${o.sourceStart}:${o.sourceEnd}`)}return i})(),this._annotatedValueSpans.has(`${r.sourceStart}:${r.sourceEnd}`)}emitParams(e,t=null,r=!0){let i=T.expansionSplit(e).list,n=r&&this.ts?bi(i):new Set;if(t!==null)n.delete(0);i.forEach((s,a)=>{if(ht(s)!==null||E(s)&&s[0]==="default"&&ht(s[1])!==null)throw this.positionedError(E(s)?s:e,"emitter: an @-parameter promotes only in a constructor (`constructor: (@name) ->`) — bind a plain parameter and assign it here");if(a>0)this.b.emit(", ");if(this.emitParam(s),n.has(a)&&this.ts)this.b.tsOnly(()=>this.b.emit("?"));if(a===0&&t!==null&&typeof s==="string"&&this.ts)this.b.tsOnly(()=>this.b.emit(`: ${t}`))})}func(e){let[t,r,i]=e,n=r.length===0&&T.containsBareIt(i)?["it"]:r,s=t==="->"&&this.inComponent()?"=>":t,a=this.ind,o=this.voidFuncs.has(e),l=this.liveStmts(E(i)&&i[0]==="block"?i.slice(1):[i],{forwards:!0}),{entries:c,names:f}=this.scopedHoist(l,n);for(let S of this.pushReactiveFrame(l,f,n,e))f.add(S);this.scopes.push(f);let h=T.containsAwait(i),u=T.containsYield(i);if(u&&s==="=>")throw this.positionedError(e,t==="->"?"emitter: a generator arrow cannot sit inside a component body — thin arrows lower to fat arrows there to keep `this` on the instance, and JS has no generator arrows (name the generator a method and call it)":"emitter: fat arrows cannot contain yield (JS has no generator arrows; use ->)");let m=this.ts&&this.contextuallyTyped(e);this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(s==="->"){if(h)this.b.emit("async ");this.mark(e,"kind",()=>this.b.emit(u?"function*":"function")),this.b.emit("("),this.mark(e,"params",()=>this.emitParams(n,null,!m)),this.b.emit(")"),this.tsReturnAnnotation(e,h,o,u),this.b.emit(" "),this.funcBlock(e,i,l,a,c,o)}else{if(h)this.b.emit("async ");let S=this.ts&&!m&&n.length===1&&typeof n[0]==="string",g=this.ts&&n.length===1&&typeof T.paramCore(n[0])==="string"&&(T.isTypedWrapper(n[0])||this.annotationText(e,"returnType")!==null||o||S);if(this.mark(e,"params",()=>{if(n.length===1&&typeof T.paramCore(n[0])==="string"){if(g)this.b.tsOnly(()=>this.b.emit("("));if(this.emitParam(n[0]),S)this.b.tsOnly(()=>this.b.emit("?"));if(g)this.b.tsOnly(()=>this.b.emit(")"))}else this.b.emit("("),this.emitParams(n,null,!m),this.b.emit(")")}),this.tsReturnAnnotation(e,h,o,u),this.b.emit(" "),this.mark(e,"kind",()=>this.b.emit("=>")),this.b.emit(" "),!o&&l.length===1&&c.length===0&&!T.statementOnly(l[0])&&!(E(l[0])&&(g1(l[0][0])||["return","if","while","block"].includes(l[0][0]))))this.mark(e,"body",()=>{let R=T.needsGrouping(l[0],"operand")||O1(l[0]);if(R)this.b.emit("(");if(this.expr(l[0]),R)this.b.emit(")")});else this.funcBlock(e,i,l,a,c,o)}})),this.scopes.pop(),this.rframes.pop(),this.ind=a}funcBlock(e,t,r,i,n,s=!1){let a=g1(e[0])?e[2]:e[1],{extractions:o}=T.expansionSplit(Array.isArray(a)?a:[]),l=this.sideEffectOnly,c=this.voidReason;this.sideEffectOnly=s,this.voidReason=null,this.mark(e,"body",()=>{this.mark(t,"$self",()=>{if(this.b.emit(`{ +`);let p=" ".repeat(r+1),R=()=>{for(let b of n)this.b.emit(`${p}this.${b} = this.${b}.bind(this); +`);for(let b of c)this.b.emit(`${p}this.${b} = ${b}; +`)};if(this.emitTsTypeDecls(E(t)&&t[0]==="block"?t.slice(1):[t],p),this.mark(t,"statements",()=>{let b=i&&f.length>0&&E(f[0])&&f[0][0]==="super";if(!b)R();f.forEach((_,y)=>{this.b.emit(p);let m=y===f.length-1;if(!i&&!a&&m)this.implicitReturn(_,r+1);else this.statement(_,r+1,!m||!i);if(this.b.emit(` +`),b&&y===0)R()})}),o)this.voidTailReturn(f,r);this.b.emit(" ".repeat(r)+"}")}),this.sideEffectOnly=S,this.voidReason=g,this.methodName=d,this.scopes.pop(),this.rframes.pop()}superCall(e){if(!this.methodName)throw this.positionedError(e,"emitter: super outside a class method");this.mark(e,"$self",()=>{this.b.emit(this.methodName==="constructor"?"super(":`super.${this.methodName}(`),this.mark(e,"args",()=>{e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)})}),this.b.emit(")")})}newExpr(e){let[,t]=e;this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("new")),this.b.emit(" "),this.mark(e,"operand",()=>{if(E(t)&&Gs.has(t[0])&&T.optionalGuard(t))this.b.emit("("),this.expr(t),this.b.emit(" ?? undefined)()");else if(E(t)&&(t[0]==="."||t[0]==="?."))this.member(t);else if(E(t)&&t[0]==="new"&&t.length===2&&T.optionalGuard(t[1]))this.b.emit("("),this.newExpr(t),this.b.emit(")()");else if(E(t)&&t[0]==="tagged-template")this.b.emit("("),this.taggedTemplate(t),this.b.emit(")()");else if(E(t)&&E(t[0])&&!wn(t[0])&&Gs.has(t[0][0])&&T.optionalGuard(t[0]))this.mark(t,"$self",()=>{this.b.emit("("),this.expr(t[0]),this.b.emit(" ?? undefined)"),this.mark(t,"args",()=>{this.b.emit("("),t.slice(1).forEach((r,i)=>{if(i>0)this.b.emit(", ");this.callArg(r)}),this.b.emit(")")})});else if(E(t)&&t[0]==="new"&&t.length===2)this.b.emit("("),this.newExpr(t),this.b.emit(")");else if(E(t)&&t[0]==="dammit!"){if(t.parenthesized)this.b.emit("(");if(this.dammit(t),t.parenthesized)this.b.emit(")");this.b.emit("()")}else if(E(t))this.call(t);else this.emitPrimitive(t),this.b.emit("()")})})}emitParam(e){if(typeof e==="string")return this.withDeclaredName(()=>this.emitPrimitive(e));if(e[0]==="typed-var"){this.mark(e,"$self",()=>this.mark(e,"annotation",()=>{if(this.mark(e,"target",()=>this.emitParam(e[1])),this.ts){let t=this.stores.idOf(e);if(t!==null&&this.stores.role(t,"optionalMarker"))this.b.tsOnly(()=>this.mark(e,"optionalMarker",()=>this.b.emit("?")));let r=this.annotationText(e)??(e[2]===""?"":Ce(e[2]));if(r!=="")this.tsAnnotate(e,"annotation",r)}}));return}if(e[0]==="rest")return this.b.emit("..."),this.emitParam(e[1]);if(e[0]==="default")return this.emitParam(e[1]),this.b.emit(" = "),this.withExpression(()=>this.expr(e[2]));this.withPattern(()=>this.expr(e),!0)}static paramCore(e){return E(e)&&e[0]==="typed-var"?e[1]:e}static expansionSplit(e){let t=e.findIndex((i)=>E(i)&&i[0]==="expansion");if(t===-1)return{list:e,extractions:[]};let r=e.slice(t+1);return{list:[...e.slice(0,t),["rest","_rest"]],extractions:r.map((i,n)=>({node:i,name:T.paramCore(i),slot:`_rest[_rest.length - ${r.length-n}]`}))}}contextuallyTyped(e){let t=this.stores.idOf(e),r=t===null?null:this.stores.node(t);if(!r||typeof r.sourceStart!=="number")return!1;if(this._argSpans??=this.stores.roles.filter((i)=>i.role==="args"&&typeof i.sourceStart==="number").map((i)=>[i.sourceStart,i.sourceEnd]),this._argSpans.some(([i,n])=>r.sourceStart>=i&&r.sourceEnd<=n))return!0;return this._annotatedValueSpans??=(()=>{let i=new Set,n=[];for(let a of this.stores.nodes){if(a.semanticKind!=="assign"&&a.semanticKind!=="pair")continue;if(!this.stores.role(a.nodeId,"annotation"))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")i.add(`${o.sourceStart}:${o.sourceEnd}`),n.push([o.sourceStart,o.sourceEnd])}let s=[];for(let a of this.stores.nodes)if((a.semanticKind==="func"||a.semanticKind==="def"||a.semanticKind==="class")&&typeof a.sourceStart==="number"&&n.some(([o,l])=>a.sourceStart>=o&&a.sourceEnd<=l))s.push([a.sourceStart,a.sourceEnd]);for(let a of this.stores.nodes){if(a.semanticKind!=="pair"||typeof a.sourceStart!=="number")continue;if(!n.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;if(s.some(([l,c])=>a.sourceStart>=l&&a.sourceEnd<=c))continue;let o=this.stores.role(a.nodeId,"value");if(typeof o?.sourceStart==="number")i.add(`${o.sourceStart}:${o.sourceEnd}`)}return i})(),this._annotatedValueSpans.has(`${r.sourceStart}:${r.sourceEnd}`)}emitParams(e,t=null,r=!0){let i=T.expansionSplit(e).list,n=r&&this.ts?bi(i):new Set;if(t!==null)n.delete(0);i.forEach((s,a)=>{if(ht(s)!==null||E(s)&&s[0]==="default"&&ht(s[1])!==null)throw this.positionedError(E(s)?s:e,"emitter: an @-parameter promotes only in a constructor (`constructor: (@name) ->`) — bind a plain parameter and assign it here");if(a>0)this.b.emit(", ");if(this.emitParam(s),n.has(a)&&this.ts)this.b.tsOnly(()=>this.b.emit("?"));if(a===0&&t!==null&&typeof s==="string"&&this.ts)this.b.tsOnly(()=>this.b.emit(`: ${t}`))})}func(e){let[t,r,i]=e,n=r.length===0&&T.containsBareIt(i)?["it"]:r,s=t==="->"&&this.inComponent()?"=>":t,a=this.ind,o=this.voidFuncs.has(e),l=this.liveStmts(E(i)&&i[0]==="block"?i.slice(1):[i],{forwards:!0}),{entries:c,names:f}=this.scopedHoist(l,n);for(let S of this.pushReactiveFrame(l,f,n,e))f.add(S);this.scopes.push(f);let h=T.containsAwait(i),u=T.containsYield(i);if(u&&s==="=>")throw this.positionedError(e,t==="->"?"emitter: a generator arrow cannot sit inside a component body — thin arrows lower to fat arrows there to keep `this` on the instance, and JS has no generator arrows (name the generator a method and call it)":"emitter: fat arrows cannot contain yield (JS has no generator arrows; use ->)");let d=this.ts&&this.contextuallyTyped(e);this.mark(e,"returnType",()=>this.mark(e,"$self",()=>{if(s==="->"){if(h)this.b.emit("async ");this.mark(e,"kind",()=>this.b.emit(u?"function*":"function")),this.b.emit("("),this.mark(e,"params",()=>this.emitParams(n,null,!d)),this.b.emit(")"),this.tsReturnAnnotation(e,h,o,u),this.b.emit(" "),this.funcBlock(e,i,l,a,c,o)}else{if(h)this.b.emit("async ");let S=this.ts&&!d&&n.length===1&&typeof n[0]==="string",g=this.ts&&n.length===1&&typeof T.paramCore(n[0])==="string"&&(T.isTypedWrapper(n[0])||this.annotationText(e,"returnType")!==null||o||S);if(this.mark(e,"params",()=>{if(n.length===1&&typeof T.paramCore(n[0])==="string"){if(g)this.b.tsOnly(()=>this.b.emit("("));if(this.emitParam(n[0]),S)this.b.tsOnly(()=>this.b.emit("?"));if(g)this.b.tsOnly(()=>this.b.emit(")"))}else this.b.emit("("),this.emitParams(n,null,!d),this.b.emit(")")}),this.tsReturnAnnotation(e,h,o,u),this.b.emit(" "),this.mark(e,"kind",()=>this.b.emit("=>")),this.b.emit(" "),!o&&l.length===1&&c.length===0&&!T.statementOnly(l[0])&&!(E(l[0])&&(g1(l[0][0])||["return","if","while","block"].includes(l[0][0]))))this.mark(e,"body",()=>{let R=T.needsGrouping(l[0],"operand")||O1(l[0]);if(R)this.b.emit("(");if(this.expr(l[0]),R)this.b.emit(")")});else this.funcBlock(e,i,l,a,c,o)}})),this.scopes.pop(),this.rframes.pop(),this.ind=a}funcBlock(e,t,r,i,n,s=!1){let a=g1(e[0])?e[2]:e[1],{extractions:o}=T.expansionSplit(Array.isArray(a)?a:[]),l=this.sideEffectOnly,c=this.voidReason;this.sideEffectOnly=s,this.voidReason=null,this.mark(e,"body",()=>{this.mark(t,"$self",()=>{if(this.b.emit(`{ `),n.length)this.b.emit(" ".repeat(i+1)),this.hoistLine(n," ".repeat(i+1)),this.b.emit(` -`);for(let f of o){let h=E(f.name)&&f.name[0]==="default",u=h?T.paramCore(f.name[1]):f.name,m=h?f.name[1]:f.node;if(E(u)&&u[0]==="rest")throw this.positionedError(f.node,"emitter: a rest parameter cannot follow the '...' gap — the gap already binds every argument between the head and the tail, so a second rest has nothing left to collect; name the tail parameter instead");if(this.b.emit(" ".repeat(i+1)+"const "),typeof u==="string")this.mark(f.node,"$self",()=>this.emitPrimitive(u));else this.withPattern(()=>this.expr(u),!0);let S=this.ts?this.annotationText(m):null;if(S!==null)this.tsAnnotate(m,"annotation",S);if(this.b.emit(" = "),h)this.b.emit(`${f.slot} === undefined ? `),this.withExpression(()=>this.expr(f.name[2])),this.b.emit(` : ${f.slot}`);else this.b.emit(f.slot);this.b.emit(`; +`);for(let f of o){let h=E(f.name)&&f.name[0]==="default",u=h?T.paramCore(f.name[1]):f.name,d=h?f.name[1]:f.node;if(E(u)&&u[0]==="rest")throw this.positionedError(f.node,"emitter: a rest parameter cannot follow the '...' gap — the gap already binds every argument between the head and the tail, so a second rest has nothing left to collect; name the tail parameter instead");if(this.b.emit(" ".repeat(i+1)+"const "),typeof u==="string")this.mark(f.node,"$self",()=>this.emitPrimitive(u));else this.withPattern(()=>this.expr(u),!0);let S=this.ts?this.annotationText(d):null;if(S!==null)this.tsAnnotate(d,"annotation",S);if(this.b.emit(" = "),h)this.b.emit(`${f.slot} === undefined ? `),this.withExpression(()=>this.expr(f.name[2])),this.b.emit(` : ${f.slot}`);else this.b.emit(f.slot);this.b.emit(`; `)}this.emitTsTypeDecls(u1(t)?t.slice(1):[t]," ".repeat(i+1)),this.mark(t,"statements",()=>{r.forEach((f,h)=>{if(this.b.emit(" ".repeat(i+1)),!s&&h===r.length-1)this.implicitReturn(f,i+1);else this.statement(f,i+1,!0);this.b.emit(` `)})}),this.voidTailReturn(r,i),this.b.emit(" ".repeat(i)+"}")})}),this.sideEffectOnly=l,this.voidReason=c}voidTailReturn(e,t){if(!this.sideEffectOnly||e.length===0)return;let r=e[e.length-1],i=E(r)?r[0]:null;if(["return","throw","break","continue"].includes(i))return;this.b.emit(" ".repeat(t+1)+`return; `)}implicitReturn(e,t){this.withTsDirectives(e," ".repeat(t),()=>this.implicitReturnCore(e,t))}implicitReturnCore(e,t){if(E(e)&&(e[0]==="return"||e[0]==="throw"))return this.statement(e,t);if(typeof e==="string"&&(e==="break"||e==="continue"||e==="debugger"))return this.statement(e,t);if(this.ind=t,E(e)){let r=e[0];if(r==="if"&&e.length>=3&&e.length<=4){if(T.ifIsSimple(e))this.b.emit("return ("),this.mark(e,"$self",()=>this.ifTernary(e)),this.b.emit(");");else this.mark(e,"$self",()=>this.returnifyIf(e,t));return}if(r==="try"){this.b.emit("return "),this.withTailReturn(()=>this.valueTry(e)),this.b.emit(";");return}if(r==="switch"&&e.length===4){this.b.emit("return "),this.withTailReturn(()=>this.valueSwitch(e)),this.b.emit(";");return}if(r==="while"&&(e.length===3||e.length===4)||r==="loop"&&e.length===2)return this.statement(e,t);if(T.returnGuard(e)||T.stmtGuard(e)||r==="="&&e.length===3&&(T.returnGuard(e[2])||T.stmtGuard(e[2])))return this.statement(e,t);if(r===".="&&e.length===3)return this.statement(e,t);if(r==="="&&e.length===3&&T.sliceTarget(e[1])!==null)return this.statement(e,t);if(r==="enum")return this.statement(e,t);if(this.isReactiveDecl(e)||this.isReadonlyDecl(e))return this.statement(e,t);if(this.isEffectDecl(e)&&e[1]!==null)return this.statement(e,t);if((r==="for-in"||r==="for-of"||r==="for-as")&&e.length===6)return this.returnifyLoop(e,t);if(g1(r))throw this.positionedError(e,"emitter: implicit return of a 'def' body is not supported yet")}this.b.emit("return "),this.withTailReturn(()=>{let r=T.needsGrouping(e,"return");if(r)this.b.emit("(");if(this.expr(e),r)this.b.emit(")")}),this.b.emit(";")}update(e){if(typeof e[1]==="string"&&this.isComputedName(e[1]))throw this.positionedError(e,`emitter: cannot assign to computed '${e[1]}' — a '~=' binding derives from its dependencies; write to those instead`);if(typeof e[1]==="string"&&this.isAmbientReadonly(e[1]))throw this.positionedError(e,`emitter: cannot assign to readonly '${e[1]}' — a '=!' binding never changes after its declaration`);if(this.checkExportedConstWrite(e,e[1]),this.checkMemberWrite(e,e[1]),E(e[1])&&T.optionalGuard(e[1])!==null)throw this.positionedError(e,"emitter: an optional chain cannot be an update target — no reference exists for `obj?.x++`; "+"guard it explicitly (`obj.x++ if obj?`)");this.mark(e,"$self",()=>{let[t,r,i]=e;if(i)this.mark(e,"target",()=>this.withTarget(()=>this.expr(r))),this.mark(e,"operator",()=>this.b.emit(t));else this.mark(e,"operator",()=>this.b.emit(t)),this.mark(e,"target",()=>this.withTarget(()=>this.expr(r)))})}relation(e){let[t,r,i]=e,n=t[0]==="!",s=n?t.slice(1):t;this.mark(e,"$self",()=>{if(n)this.b.emit("!(");if(s==="instanceof"){if(this.operand(e,"left",r),this.b.emit(" instanceof "),this.operand(e,"right",i),n)this.b.emit(")");return}if(s==="of"||s==="in"&&O1(i))this.operand(e,"left",r),this.b.emit(" in "),this.operand(e,"right",i);else if(E(i))this.b.emit(T.MEMBER_IN+"("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(", "),this.mark(e,"right",()=>this.expr(i)),this.b.emit(")");else this.b.emit("Array.isArray("),this.expr(i),this.b.emit(") || typeof "),this.expr(i),this.b.emit(" === 'string' ? "),this.expr(i),this.b.emit(".includes("),this.mark(e,"left",()=>this.expr(r)),this.b.emit(") : ("),this.expr(r),this.b.emit(" in "),this.mark(e,"right",()=>this.expr(i)),this.b.emit(")");if(n)this.b.emit(")")})}static ternaryHoists(e){let t=e;while(E(t[2])&&t[2][0]==="?:"&&t[2].length===4&&!t[2].parenthesized)t=t[2];let r=t[2];return E(r)&&r[0]==="="&&r.length===3&&typeof r[1]==="string"&&!r.parenthesized}ternary(e){let t=[e];while(!0){let a=t[t.length-1][2];if(E(a)&&a[0]==="?:"&&a.length===4&&!a.parenthesized)t.push(a);else break}let r=t[t.length-1],i=T.ternaryHoists(r),n=(a,o,l)=>{this.grouped(a,o,l,T.needsGrouping(l,"operand")||W1(l))},s=(a)=>this.grouped(a,"condition",a[1],E(a[1])&&a[1][0]==="?:");this.mark(e,"$self",()=>{if(i)this.expr(r[2][1]),this.b.emit(" = (");s(r),this.b.emit(" ? "),n(r,"then",i?r[2][2]:r[2]);for(let a=t.length-2;a>=0;a--)this.b.emit(" : ("),s(t[a]),this.b.emit(" ? "),n(t[a+1],"else",t[a+1][3]);if(this.b.emit(" : "),n(t[0],"else",t[0][3]),this.b.emit(")".repeat(t.length-1)),i)this.b.emit(")")})}strTemplate(e){this.mark(e,"$self",()=>{this.b.emit("`"),this.templateChunks(e.slice(1)),this.b.emit("`")})}templateChunks(e){for(let t of e){if(t==="")continue;if(E(t)){if(t.length!==1)throw this.positionedError(t,"emitter: multi-statement interpolations are not supported yet");this.b.emit("${"),this.mark(t,"$self",()=>{let r=T.needsGrouping(t[0],"operand")||W1(t[0]);if(r)this.b.emit("(");if(this.expr(t[0]),r)this.b.emit(")")}),this.b.emit("}")}else{let r=t.slice(1,-1);if(r!=="")this.b.emit(T.escapeTemplate(r))}}}heregex(e){let[,t,...r]=e;this.mark(e,"$self",()=>{if(this.b.emit("RegExp(`"),this.templateChunks(r),this.b.emit("`"),t!=="")this.b.emit(`, '${t}'`);this.b.emit(")")})}call(e){if(this.browserModule&&e[0]==="import"&&this.lockedHead(e,"dynimport")){let t=this.positionedError(e,"emitter: dynamic import is not supported in a browser App module — use a static import so Rip can publish and resolve the dependency");if(typeof t.start!=="number"&&this.b.currentMark)t.start=this.b.currentMark.sourceStart,t.end=this.b.currentMark.sourceEnd;throw t}if(this.repl&&e[0]==="import"&&(e.length===2||e.length===3)&&this.lockedHead(e,"dynimport")){this.mark(e,"$self",()=>{this.b.emit(`import(${this.replResolver()}(`),this.mark(e,"args",()=>{if(this.callArg(e[1]),this.b.emit(")"),e.length===3)this.b.emit(", "),this.callArg(e[2])}),this.b.emit(")")});return}if(e[0]==="rest"&&this.inPattern)throw this.positionedError(e,this.bindingPattern?"emitter: a `rest` element is only legal at an array pattern's tail":"emitter: Cannot use 'rest' expression as a destructuring target (destructuring rest is spelled '...name')");if(E(e[0])&&e[0][0]==="dammit!"){if(e[0].parenthesized){this.mark(e,"$self",()=>{this.b.emit("("),this.dammit(e[0]),this.b.emit(")"),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((i,n)=>{if(n>0)this.b.emit(", ");this.callArg(i)}),this.b.emit(")")})});return}let t=e[0][1],r=wn(t);this.mark(e,"$self",()=>{this.b.emit(r?"await new ":"await "),this.mark(e[0],"$self",()=>{if(r)this.mark(e[0],"target",()=>this.rubyNewTarget(t));else this.head(e[0],"target",t)}),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((i,n)=>{if(n>0)this.b.emit(", ");this.callArg(i)}),this.b.emit(")")})});return}if(E(e[0])&&e[0][0]==="."&&e[0].length===3&&e[0][2]==="new"){this.mark(e,"$self",()=>{this.b.emit("new "),this.rubyNewTarget(e[0]),this.mark(e,"args",()=>{this.b.emit("("),e.slice(1).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.callArg(t)}),this.b.emit(")")})});return}this.chain(e)}rubyNewTarget(e){let t=e[1];this.mark(e,"object",()=>{if(E(t))this.b.emit("("),this.expr(t),this.b.emit(T.optionalGuard(t)?" ?? undefined)":")");else this.expr(t)})}static MODULO="((n, d) => { n = +n; d = +d; return (n % d + d) % d; })";static LITERAL_WORDS=new Set(["true","false","null","undefined","NaN","Infinity"]);static ownKeyText(e,t){return t==="__proto__"?'["__proto__"]':e}static MEMBER_IN="((k, c) => Array.isArray(c) || typeof c === 'string' ? c.includes(k) : k in c)";floorDiv(e){this.mark(e,"$self",()=>{this.b.emit("Math.floor("),this.operand(e,"left",e[1]),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("/")),this.b.emit(" "),this.operand(e,"right",e[2]),this.b.emit(")")})}returnGuardStatement(e,t){let r=e[2],i=typeof r==="string"?r:r[0];if(i==="return"&&this.scopes.length<=1)throw this.positionedError(r,"emitter: 'return' outside a function");if((i==="break"||i==="continue")&&this.ctrlDepth===0)throw this.positionedError(e,`emitter: '${i}' outside a loop${i==="break"?" or switch":""}`);let n=e[0],s=()=>{let a=()=>{if(t!==null)this.mark(t,"$self",()=>{this.mark(t,"target",()=>this.b.emit(t[1])),this.b.emit(" "),this.mark(t,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(t,"value",()=>this.expr(e[1]))});else this.mark(e,"left",()=>this.expr(e[1]))},o=t!==null||T.jsTier(e[1])!=="primary";if(n==="||")if(this.b.emit("!"),o)this.b.emit("("),a(),this.b.emit(")");else a();else if(n==="??"){if(o)this.b.emit("("),a(),this.b.emit(")");else a();this.b.emit(" == null")}else if(o&&t!==null)this.b.emit("("),a(),this.b.emit(")");else a()};this.mark(e,"$self",()=>{this.b.emit("if ("),s(),this.b.emit(") ");let a=()=>{if(this.b.emit(i),E(r)&&r.length>1)this.b.emit(" "),this.mark(r,"value",()=>{if(r[0]==="return"&&T.needsGrouping(r[1],"return"))this.b.emit("("),this.expr(r[1]),this.b.emit(")");else this.expr(r[1])})};if(typeof r==="string")a();else this.mark(r,"$self",a);this.b.emit(";")})}compoundTarget(e,t,r){if(this.checkExportedConstWrite(e,t),this.repeatSafeValue(t))return this.mark(e,"target",()=>this.withTarget(()=>this.expr(t))),t;if(E(t)&&(t[0]==="."||t[0]==="[]")&&t.length===3){let i=t[1];if(!this.repeatSafeValue(i))i=this.loopTempName("_ref"),this.temps.used.add(i),this.b.emit(`const ${i} = `),this.expr(t[1]),this.b.emit(`; ${" ".repeat(r)}`);let n;if(t[0]==="[]"){let s=t[2];if(!this.repeatSafeValue(s)){let a=this.loopTempName("_key");this.temps.used.add(a),this.b.emit(`const ${a} = `),this.expr(s),this.b.emit(`; -${" ".repeat(r)}`),s=a}n=["[]",i,s]}else n=[".",i,t[2]];return this.mark(e,"target",()=>this.expr(n)),n}throw this.positionedError(e,`emitter: ${e[0]} needs a stable target — a plain name or member/index chain (an optional chain has no reference to write back to)`)}static sliceTarget(e){return E(e)&&e[0]==="[]"&&e.length===3&&E(e[2])&&(e[2][0]===".."||e[2][0]==="...")&&e[2].length===3?e:null}sliceAssignStatement(e){let[,t,r]=e,[,i,n]=t,[s,a,o]=n,l=(h)=>T.isIntegerLiteral(h)?parseInt(h.replace(/_/g,""),10):null,c=(h)=>typeof h==="string";for(let h of[a,o])if(E(h)&&h[0]==="-"&&h.length===2&&T.isIntegerLiteral(h[1]))throw this.positionedError(e,"emitter: a slice assignment cannot count from the end — `splice` takes a count, not a negative index; open the range instead (`a[i..] = v`) or compute the bound from `a.length`");let f=(h)=>{if(c(h))this.expr(h);else this.b.emit("("),this.expr(h),this.b.emit(")")};this.mark(e,"$self",()=>{this.mark(e,"target",()=>this.mark(t,"$self",()=>{this.head(t,"object",i),this.b.emit(".splice("),this.mark(t,"key",()=>{if(a===null)this.b.emit("0");else f(a);if(this.b.emit(", "),o===null)this.b.emit("Infinity");else if(l(o)!==null&&(a===null||l(a)!==null))this.b.emit(String(l(o)-(a===null?0:l(a))+(s===".."?1:0)));else{if(f(o),a!==null)this.b.emit(" - "),f(a);if(s==="..")this.b.emit(" + 1")}})})),this.mark(e,"operator",()=>{});let h=E(r)&&r[0]==="array"&&r.slice(1).every((u)=>!(E(u)&&u[0]==="...")&&u!==",");this.mark(e,"value",()=>{if(h)r.slice(1).forEach((u)=>{this.b.emit(", "),this.callArg(u)});else this.b.emit(", ...[].concat("),this.expr(r),this.b.emit(")")}),this.b.emit(")")})}methodAssignStatement(e,t){let[,r,i]=e,n=i;while(E(n)){let l=T.chainHeadSlot(n);if(l===null)break;n=n[l]}let s=E(n)?this.stores.idOf(n):null,a=s!==null?this.stores.node(s)?.semanticKind:null;if(!(E(n)&&typeof n[0]==="string"&&/^[A-Za-z_$][\w$]*$/.test(n[0])&&(a==="call"||a==null&&T.jsTier(n)==="primary")))throw this.positionedError(e,"emitter: `.=` re-binds its target to a METHOD CALL on itself — the right side must be a call chain (`x .= trim()`)");this.mark(e,"$self",()=>{let l=this.compoundTarget(e,r,t),c=(h)=>{if(h===n)return[[".",l,n[0]],...n.slice(1)];let u=T.chainHeadSlot(h),m=h.slice();return m[u]=c(h[u]),m};this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let f=typeof l==="string"?this.bindingNameSpan(e,"target",l):null;if(f!==null)this.primitiveReuse={name:l,span:f.span};this.mark(e,"value",()=>this.expr(c(i))),this.primitiveReuse=null})}taggedTemplate(e){this.mark(e,"$self",()=>{let t=e[1];this.mark(e,"tag",()=>{if(T.needsGrouping(t,"head"))this.b.emit("("),this.expr(t),this.b.emit(")");else this.expr(t)});let r=e[2];this.mark(e,"str",()=>{if(typeof r==="string")if(r[0]==="`")this.b.emit(r);else this.b.emit("`"+T.escapeTemplate(r.slice(1,-1).replace(/\\"/g,'"'))+"`");else this.expr(r)})})}mapLiteral(e){this.mark(e,"$self",()=>{let t=e.slice(1);if(t.length===0){this.b.emit("new Map()");return}this.b.emit("new Map(["),t.forEach((r,i)=>{if(i>0)this.b.emit(", ");if(E(r)&&r[0]==="..."&&r.length===2){this.mark(r,"$self",()=>{this.b.emit("..."),this.expr(r[1])});return}if(!E(r)||r[0]!==":"||r.length!==3)throw this.positionedError(E(r)?r:e,"emitter: a map literal takes explicit `key: value` pairs — shorthand has no Map reading");this.mark(r,"$self",()=>{this.b.emit("[");let n=r[1];this.mark(r,"key",()=>{if(typeof n==="string"&&/^[A-Za-z_$][\w$]*$/.test(n)&&n!=="true"&&n!=="false"&&n!=="null"&&n!=="undefined")this.b.emit('"'),this.emitPrimitive(n),this.b.emit('"');else if(E(n)&&n[0]==="dynamicKey")this.expr(n[1]);else this.expr(n)}),this.b.emit(", "),this.mark(r,"value",()=>this.expr(r[2])),this.b.emit("]")})}),this.b.emit("])")})}matchReceiverClose(){this.b.emit(")"),this.b.emit(".match(")}regexIndex(e,t,r,i){this.mark(e,"$self",()=>{if(this.b.emit(`((_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"object",()=>this.expr(t)),this.matchReceiverClose(),this.mark(e,"key",()=>this.b.emit(r)),this.b.emit(")) && _["),i===null)this.b.emit("0");else this.mark(e,"capture",()=>this.expr(i));this.b.emit("])")})}static isMatchWrite(e){if(!E(e))return!1;if(e[0]==="=~"&&e.length===3)return!0;if(e[0]==="regex-index"&&e.length===4)return!0;return e[0]==="[]"&&e.length===3&&typeof e[2]==="string"&&e[2][0]==="/"}static paramMatchWrite(e){if(!E(e)||T1(e)||g1(e[0]))return null;if(T.isMatchWrite(e))return e;for(let t of e){let r=T.paramMatchWrite(t);if(r!==null)return r}return null}matchOp(e){if(E(e[1])&&e[1][0]==="=~"&&!e[1].parenthesized)throw this.positionedError(e,"emitter: `=~` does not chain — `a =~ b =~ c` would match the first match RESULT against the second pattern (parenthesize: `(a =~ b) =~ c`, or split the matches)");let t=e[2];this.mark(e,"$self",()=>{this.b.emit(`(_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"left",()=>this.expr(e[1])),this.matchReceiverClose(),this.mark(e,"right",()=>this.expr(t)),this.b.emit("))")})}modulo(e){this.mark(e,"$self",()=>{this.b.emit(T.MODULO+"("),this.mark(e,"left",()=>this.expr(e[1])),this.b.emit(", "),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")})}synthCompound(e,t,r,i){let n=e[1];if(this.checkExportedConstWrite(e,n),E(n)&&(n[0]==="."||n[0]==="[]")&&n.length===3){let s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.obj===null&&!this.repeatSafeValue(n[1]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure object — a capture site the planner walk did not reach");if(s.key===null&&n[0]==="[]"&&!this.repeatSafeValue(n[2]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure key — a capture site the planner walk did not reach");this.mark(e,"$self",()=>{let a=s.obj!==null||s.key!==null;if(a)this.b.emit("(");if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(n,"object",()=>this.withExpression(()=>this.expr(n[1]))),this.b.emit(", ");if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(n,"key",()=>this.withExpression(()=>this.expr(n[2]))),this.b.emit(", ");let o=this.stores.alias([n[0],s.obj??n[1],s.key??n[2]],n),l=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(o)));if(l(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),l(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(i)}),a)this.b.emit(")")});return}this.mark(e,"$self",()=>{let s=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(e[1])));s(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),s(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(i)})})}floorDivAssign(e){this.synthCompound(e,"Math.floor("," / ",")")}moduloAssign(e){this.synthCompound(e,T.MODULO+"(",", ",")")}awaitExpr(e){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.operand(e,"value",e[1])})}doIife(e){let[,t]=e;this.mark(e,"$self",()=>{if(this.b.emit("("),this.mark(e,"func",()=>this.expr(t)),this.b.emit(")("),T1(t)){let r=t[1],i=r.map((s)=>{let a=T.paramCore(s);if(typeof a==="string")return()=>this.expr(a);if(E(a)&&a[0]==="default"&&typeof T.paramCore(a[1])==="string")return()=>this.expr(a[2]);throw this.positionedError(s,"emitter: do-IIFE parameters must be plain names or defaulted names — patterns and rests have no capture argument",e)}),n=r.length;while(n>0&&E(r[n-1])&&r[n-1][0]==="default")n--;i.slice(0,n).forEach((s,a)=>{if(a>0)this.b.emit(", ");s()})}this.b.emit(")")})}dammit(e){if(wn(e[1])){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" new "),this.mark(e,"target",()=>this.rubyNewTarget(e[1])),this.b.emit("()")});return}this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"target",e[1]),this.b.emit("()")})}maybeDammit(e){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"callee",e[1]),this.mark(e,"operator",()=>this.b.emit("?.")),this.mark(e,"args",()=>{this.b.emit("("),e.slice(2).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.expr(t)}),this.b.emit(")")})})}yieldExpr(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'yield' outside a function");this.mark(e,"$self",()=>{this.b.emit(e[0]==="yield-from"?"yield*":"yield");let t=e[0]==="yield-from"?e[1]:e[1];if(e.length>1)this.b.emit(" "),this.operand(e,"value",t)})}}var ea=(e)=>{if(!E(e))return!1;if(e[0]==="schema"&&e.length===2&&typeof e[1]==="object")return!0;return e.some(ea)},ta=(e)=>{if(!E(e))return!1;if(e[0]==="schema"&&e.length===2&&e[1]&&typeof e[1]==="object"&&e[1].kind==="model")return!0;return e.some(ta)},ra=(e,t)=>{if(!E(e))return!1;if(t(e))return!0;return e.some((r)=>ra(r,t))},na=(e,t)=>{if(!E(e))return!1;if(t(e))return!0;return e.some((r)=>na(r,t))},ia=(e)=>{if(!E(e))return!1;if(e[0]==="object"&&T.objectComprehension(e)!==null)return!0;return e.some(ia)},sa=(e)=>{if(!E(e))return!1;if(T.isMatchWrite(e))return!0;return e.some(sa)},ft=[{key:"intrinsics",names:["__toPropertyKey","__defineOwnDataProperty"],generatedNames:["__toPropertyKey","__defineOwnDataProperty"],url:new URL("./runtime/intrinsics.js",import.meta.url),triggers:(e,t)=>ia(e)},{key:"vocab",names:[],url:new URL("./runtime/vocab.js",import.meta.url),triggers:()=>!1},{key:"schema",names:["__schema","SchemaError","registerCoercer"],url:new URL("./runtime/schema.js",import.meta.url),requires:["vocab"],triggers:(e,t)=>ea(e)},{key:"duckdb",names:[],url:new URL("./runtime/duckdb.js",import.meta.url),triggers:()=>!1},{key:"orm",names:["schema","__schemaSetAdapter"],url:new URL("./runtime/orm.js",import.meta.url),requires:["schema","duckdb","vocab"],triggers:(e,t)=>ta(e)},{key:"reactive",names:["__state","__computed","__effect","__batch","__readonly","__setErrorHandler","__handleError","__catchErrors","getEffectSignal"],generatedNames:["__state","__computed","__effect","__batch"],url:new URL("./runtime/reactive.js",import.meta.url),triggers:(e,t)=>ra(e,t.isTrigger),types:{__state:"(value: T | { value: T; read(): T }) => { value: T; read(): T; touch(): void }",__computed:"(fn: () => T) => { readonly value: T; read(): T }",__effect:"(fn: () => void | (() => void)) => () => void",__batch:"(fn: () => T) => T",__readonly:"(value: T) => T",__setErrorHandler:"(handler: ((error: any, source?: string) => void) | null) => void",__handleError:"(error: any, source?: string) => void",__catchErrors:"(fn: () => T, onError?: (e: any) => void) => T | undefined",getEffectSignal:"() => AbortSignal | null"}},{key:"stdlib",names:["abort","assert","exit","kind","noop","p","pp","pj","pr","raise","rand","sleep","toMatchable","todo","warn","zip"],generatedNames:["toMatchable"],url:new URL("./runtime/stdlib.js",import.meta.url),triggers:(e,t)=>sa(e),types:{abort:"(msg?: string) => never",assert:"(v: any, msg?: string) => void",exit:"(code?: number) => never",kind:"(v: any) => string",noop:"() => void",p:"(...args: any[]) => void",pp:"(v: T) => T",pj:"(v: T) => T",pr:"(v: T) => T",raise:"(a: any, b?: any) => never",rand:"(a?: number, b?: number) => number",sleep:"(ms: number) => Promise",toMatchable:"(v: any) => string",todo:"(msg?: string) => never",warn:"(...args: any[]) => void",zip:"(...arrays: any[][]) => any[][]"}},{key:"components",names:["setContext","getContext","hasContext","__Component","__pushComponent","__popComponent","__clsx","__style","__lis","__reconcile","__transition","__handleComponentError","__gateBind","__detach","__ownerFrame","__pushOwner","__popOwner","__detachRef"],generatedNames:["setContext","getContext","__Component","__pushComponent","__popComponent","__clsx","__style","__reconcile","__transition","__gateBind","__detach","__ownerFrame","__pushOwner","__popOwner","__detachRef"],types:{__clsx:ys,__style:Es},url:new URL("./runtime/components.js",import.meta.url),requires:"reactive",triggers:(e,t)=>na(e,t.isComponent)}],An=new Map,Xs=(e)=>{if(!An.has(e.key)){let r=ps(e.url,"utf8").replace(/^export \{[^}]*\};\s*$/gm,"").replace(/^import \{[^}]*\} from '\.\/[a-z-]+\.js';\s*$/gm,"").trimEnd(),i=/^[ \t]*(import|export)\b.*$/m.exec(r);if(i)throw Error(`emitter: runtime '${e.key}' carries a top-level ${i[1]} that inline delivery cannot strip — `+`${JSON.stringify(i[0].trim())}. Inline bodies share one IIFE scope, so it would emit unparseable output. Use the './name.js' import form, or move the dependency into RUNTIME_TABLE 'requires'.`);An.set(e.key,r)}return An.get(e.key)},vn=(e)=>e.requires==null?[]:Array.isArray(e.requires)?e.requires:[e.requires],$e=(e,t,r=()=>!1)=>{if(t.size===0)return!1;let i=(o)=>typeof o==="string"&&t.has(o),n=(o)=>E(o)&&o.some(s),s=(o)=>{if(!E(o))return!1;let[l]=o;if(l==="object"||l==="array")return o.slice(1).some(s);if(l===null&&o.length===3)return!1;if(l===":"&&o.length===3)return E(o[1])&&a(o[1])||s(o[2]);if(l==="="&&o.length===3)return s(o[1])||a(o[2]);if((l==="rest"||l==="..."||l==="expansion")&&o.length===2)return s(o[1]);if(l==="typed-var"&&o.length===3)return s(o[1]);return a(o)},a=(o)=>{if(i(o))return!0;if(!E(o))return!1;let[l]=o;if(l==="schema"&&o.length===2&&o[1]&&typeof o[1]==="object"&&Array.isArray(o[1].entries))return!1;if(l==="."||l==="?.")return a(o[1]);if((l===":"||l==="void-pair")&&o.length===3)return E(o[1])&&a(o[1])||a(o[2]);if(T1(o))return n(o[1])||a(o[2]);if(g1(l)&&o.length===4)return n(o[2])||a(o[3]);if(r(o))return a(o[2]);if(M1.has(l)&&o.length===3)return E(o[1])&&s(o[1])||a(o[2]);if(l==="for-in"||l==="for-of"||l==="for-as")return E(o[1])&&o[1].some(s)||o.slice(2).some(a);if(l==="try")return o.slice(1).some((c)=>{if(!E(c))return!1;if(c[0]==="block")return a(c);return s(c[0])||a(c[1])});if(l==="class"&&o.length>=2)return o.slice(2).some(a);if(l==="typed-var"&&o.length===3)return E(o[1])&&a(o[1]);if(l==="cast"&&o.length===3)return a(o[1]);if(l==="import"||l==="type-decl")return!1;return o.some(a)};return a(e)},g3=(e,t)=>{let r=[],i=(n,s,a=[])=>{let o=(h)=>T.isReactiveDeclIn(s,h)||T.isEffectDeclIn(s,h)||T.isReadonlyDeclIn(s,h)||T.isGateDeclIn(s,h),l=(h)=>T.isReactiveDeclIn(s,h)||T.isEffectDeclIn(s,h),c=(h)=>T.isComponentDeclIn(s,h);r.push({tree:n,atoms:a,isDecl:o,isTrigger:l,isComponent:c});let f=(h)=>{if(!E(h))return;if(h[0]==="schema"&&h.length===2&&h[1]&&typeof h[1]==="object"&&Array.isArray(h[1].entries)){for(let{entry:u,tokens:m,value:S}of T.schemaBodies(h[1])){let g=e.subParse(m);if(g.stmts.length)i(["program",...g.stmts],g.stores,S?[]:e.schemaBodyParams(u).map((d)=>d.name))}return}h.forEach(f)};f(n)};return i(t,e.stores),r},b3=(e,t)=>{let r=new Set,i=(s)=>{for(let a of e.patternNames(s,[],!0))r.add(a)},n=(s,a)=>{if(!E(s))return;let[o]=s;if(e.isModuleImport(s)){for(let l of T.importedNames([s]))r.add(l);return}if(T1(s)){if(E(s[1]))for(let l of s[1])i(l);n(s[2],a);return}if(g1(o)&&s.length===4){if(typeof s[1]==="string")r.add(s[1]);if(E(s[2]))for(let l of s[2])i(l);n(s[3],a);return}if(o==="class"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2)){let c=E(l)&&l[0]==="block"?l.slice(1):[l];for(let f of c)if(E(f)&&g1(f[0])&&f.length===4){if(E(f[2]))for(let h of f[2])i(h);n(f[3],a)}else n(f,a)}return}if(o==="enum"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2))n(l,a);return}if(a(s)){if(typeof s[1]==="string")r.add(s[1]);else if(E(s[1]))i(s[1]);n(s[2],a);return}if((M1.has(o)||o==="void-assign")&&s.length>=2){if(typeof s[1]==="string")r.add(s[1]);else if(T.isPattern(s[1]))i(s[1])}if((o==="for-in"||o==="for-of"||o==="for-as")&&E(s[1]))for(let l of s[1])i(l);if(o==="try"){for(let l of s.slice(2))if(E(l)&&l.length===2&&T.isPattern(l[0]))i(l[0])}for(let l of s)n(l,a)};for(let{tree:s,atoms:a,isDecl:o}of t){n(s,o);for(let l of a)i(l)}return r},y3=(e,t)=>{let r=t.slice(1),i=new Set(e.hoistTargets(r).map(([a])=>a)),n=r.filter((a)=>e.isModuleImport(a));for(let a of T.importedNames(n))i.add(a);for(let a of e.collectReactiveNames(r))i.add(a);for(let a of e.collectEffectHandles(r))i.add(a);for(let a of e.collectReadonlyNames(r))i.add(a);let s=(a)=>{if(!E(a))return;if(a[0]==="enum"&&typeof a[1]==="string")i.add(a[1]);if(a[0]==="class"&&typeof a[1]==="string")i.add(a[1]);if(g1(a[0])&&a.length===4&&typeof a[1]==="string")i.add(a[1]);if((a[0]==="="||a[0]==="void-assign")&&typeof a[1]==="string")i.add(a[1])};for(let a of r)if(s(a),E(a)&&a[0]==="export"&&E(a[1]))s(a[1]);return i},Js=new Set(["plain","state","computed","effect","readonly","import","class","def","enum"]),S3=(e)=>{if(e==null)return[];if(!Array.isArray(e))throw Error(`emitter: ambientBindings must be an array of {name, kind}; got ${typeof e}`);let t=new Set;for(let r of e){if(r===null||typeof r!=="object"||!X1(r.name))throw Error(`emitter: ambientBindings entries are {name, kind} with an identifier name; got ${JSON.stringify(r)}`);if(!Js.has(r.kind))throw Error(`emitter: ambientBindings kind '${r.kind}' for '${r.name}' is not a binding kind — expected one of ${[...Js].join(", ")}`);if(t.has(r.name))throw Error(`emitter: ambientBindings names '${r.name}' twice — one binding per name`);t.add(r.name)}return e},R3=(e,t,r)=>{let i=t.slice(1),n=new Map,s=(c,f)=>{if(typeof c==="string"&&!n.has(c))n.set(c,f)},a=(c)=>{if(!r.has(c))s(c,"plain")};for(let c of i)if(e.isModuleImport(c))for(let f of T.importedNames([c]))s(f,"import");let o=e.collectComputedNames(i);for(let c of e.collectReactiveNames(i))s(c,o.has(c)?"computed":"state");for(let c of e.collectEffectHandles(i))s(c,"effect");for(let c of e.collectReadonlyNames(i))s(c,"readonly");let l=(c,f)=>{if(!E(c))return;if(c[0]==="enum"&&typeof c[1]==="string")s(c[1],"enum");if(c[0]==="class"&&typeof c[1]==="string")s(c[1],"class");if(g1(c[0])&&c.length===4&&typeof c[1]==="string")s(c[1],"def");if((c[0]==="="||c[0]==="void-assign")&&typeof c[1]==="string")if(f)s(c[1],"plain");else a(c[1])};for(let c of i)if(l(c,!1),E(c)&&c[0]==="export"&&E(c[1]))l(c[1],!0);for(let[c,,f]of e.hoistTargets(i))if(f==="target")a(c);return[...n].map(([c,f])=>({name:c,kind:f}))},On={field:"field",computed:"computed",derived:"derived",method:"method"};function E3(e,t,r,i){let n=[],s=(l)=>l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let l of t.story?.decl?.descriptor?.entries??[]){let c=l.tag==="union-member"?{name:l.name,start:l.start}:l.tag==="directive"&&l.name==="mixin"&&l.argTokens?.[0]?.kind==="IDENTIFIER"?{name:l.argTokens[0].value,start:l.argTokens[0].start}:null;if(c!==null&&typeof c.start==="number"){let h=new RegExp(`(= |\\| |& )(${s(c.name)})(?= \\||;| &)`).exec(r);if(h!==null)n.push({at:h.index+h[1].length,len:c.name.length,start:c.start,end:c.start+c.name.length});continue}if((On[l.tag]??null)===null||typeof l.start!=="number")continue;let f=new RegExp(`([{;] )((?:readonly )?)(${s(l.name)})(\\??: )`).exec(r);if(f===null)continue;if(n.push({at:f.index+f[1].length+f[2].length,len:l.name.length,start:l.start,end:l.start+l.name.length}),l.tag==="field"&&Array.isArray(l.typeSpan)&&e.b.source!==null){let h=/[A-Za-z_$][\w$]*/.exec(e.b.source.slice(l.typeSpan[0],l.typeSpan[1]));if(h!==null){let u=f.index+f[0].length,m=r.indexOf(";",u)<0?r.length:r.indexOf(";",u)+1,S=new RegExp(`(?u[1]))];for(let u of f){if(c.has(u))continue;let m=a[0]+1,S=-1;while(m>0){let g=l.lastIndexOf(u,m-1);if(g<0)break;if(!/[\w$]/.test(l[g-1]??" ")&&!/[\w$]/.test(l[g+u.length]??" ")){S=g;break}m=g}if(S>=0)c.set(u,[S,S+u.length])}let h=(u,m)=>n.some((S)=>ul.at-c.at);let o=0;for(let l of n){if(l.ate.b.emit(r.slice(l.at,l.at+l.len)));else e.b.emit(r.slice(l.at,l.at+l.len));o=l.at+l.len}e.b.emit(r.slice(o))}function k3(e,t,r,i){let n=t.story?.decl?.descriptor?.entries??null;if(n===null)return;let s=(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let a of n){let o=a.tag==="union-member"?{name:a.name,start:a.start}:a.tag==="directive"&&a.name==="mixin"&&a.argTokens?.[0]?.kind==="IDENTIFIER"?{name:a.argTokens[0].value,start:a.argTokens[0].start}:null;if(o===null||typeof o.start!=="number")continue;let l=new RegExp(`(= |\\| |& )(${s(o.name)})(?= \\||;| &)`).exec(r);if(l===null)continue;e.intrinsics.push({start:o.start,end:o.start+o.name.length,kind:"schema",label:null,name:o.name,gen:i+l.index+l[1].length})}for(let a of n){let o=On[a.tag]??null;if(o===null||typeof a.start!=="number")continue;let l=s(a.name),c=new RegExp(`([{;] )((?:readonly )?)(${l})(\\??: )`).exec(r);if(c===null)continue;let f=i+c.index+c[1].length+c[2].length;if(e.intrinsics.push({start:a.start,end:a.start+a.name.length,kind:"schema",label:o,name:a.name,gen:f,optional:c[4].startsWith("?")}),a.tag==="field"&&a.typeSpan!==null&&a.typeSpan!==void 0)e.intrinsics.push({start:a.typeSpan[0],end:a.typeSpan[1],kind:"schema",label:null,name:a.name,gen:f+c[3].length+c[4].length})}}function aa(e,{source:t="",runtimeDelivery:r="none",face:i="js",pins:n=null,strict:s=!1,script:a=!1,browserModule:o=!1,dataPayload:l=null,ambientBindings:c=null,repl:f=!1,hmr:h=!1,tolerant:u=!1,modulePath:m=null,appStashSpec:S=null,routesUnion:g=null,routeParams:d=null}={}){if(!e.sexpr)throw Error("emitter: cannot emit a failed parse");if(i!=="js"&&i!=="ts")throw Error(`emitter: unknown face '${i}' — expected 'js' (the shipping emission) or 'ts' (the editor face)`);let R=S3(c),b=new Qt(e.stores),_=new ge(b,{source:t,primitives:i==="ts"}),y=new T(b,_,{face:i,pins:n,strict:s,script:a,browserModule:o,repl:f,hmr:h,tolerant:u,modulePath:m,appStashSpec:S,routesUnion:g,routeParams:d});if(y.dataPayload=l,r!=="none"&&r!=="import"&&r!=="inline")throw Error(`emitter: unknown runtimeDelivery '${r}' — expected 'none', 'import', or 'inline'`);if(y.collectTsDirectives(e.sexpr,e.trivia??[],t),y.collectTypeOnlyImports(e.sexpr,t),y.collectAppAccessors(e.sexpr),y.tsNocheck!==null){let W=b.idOf(e.sexpr),j=y.tsNocheck;_.tsOnly(()=>{let q=()=>_.emit("//"+j.text.slice(1));if(W!==null)_.markSpan(W,"tsDirective",j.start,j.end,q);else q();_.emit(` -`)})}let p=g3(y,e.sexpr),k=(W)=>{if(typeof W==="string")y.temps.used.add(W);else if(E(W))for(let j of W)k(j)};for(let{tree:W,atoms:j}of p)k(W),k(j);for(let{name:W}of R)y.temps.used.add(W);let I=b3(y,p);for(let{name:W}of R)I.add(W);let A=[...I];for(let W of ft)for(let j of W.generatedNames??[])y.runtimeAliases.set(j,T.mintName(j,I));let x=y3(y,e.sexpr),O=R3(y,e.sexpr,new Set(R.map(({name:W})=>W)));for(let{name:W}of R)x.add(W);let G=new Set;for(let W of ft){let j=new Set(W.names.filter((q)=>!x.has(q)));if(p.some(({tree:q,isDecl:t1,isTrigger:M,isComponent:N})=>W.triggers?.(q,{isTrigger:M,isComponent:N})||$e(q,j,t1)))G.add(W.key)}for(let W=!0;W;){W=!1;for(let j of ft){if(!G.has(j.key))continue;for(let q of vn(j))if(!G.has(q))G.add(q),W=!0}}if(r!=="none"){let W=ft.filter((t1)=>G.has(t1.key)),j=[];if(r==="import")for(let t1 of W)j.push({runtimes:[t1],names:t1.names,imp:t1.url.pathname});else{let t1=new Set(W.flatMap((M)=>vn(M)));for(let M of W){if(t1.has(M.key))continue;let N=[],C=(D)=>{if(N.includes(D))return;for(let B of vn(D)){let a1=ft.find((h1)=>h1.key===B);if(a1)C(a1)}N.push(D)};if(C(M),N.length===1){j.push({runtimes:[M],names:M.names,body:Xs(M),types:M.types});continue}let w=N.some((D)=>D.types)?Object.assign({},...N.map((D)=>D.types)):void 0;j.push({runtimes:N,names:N.flatMap((D)=>D.names),body:N.map((D)=>Xs(D)).join(` +${" ".repeat(r)}`),s=a}n=["[]",i,s]}else n=[".",i,t[2]];return this.mark(e,"target",()=>this.expr(n)),n}throw this.positionedError(e,`emitter: ${e[0]} needs a stable target — a plain name or member/index chain (an optional chain has no reference to write back to)`)}static sliceTarget(e){return E(e)&&e[0]==="[]"&&e.length===3&&E(e[2])&&(e[2][0]===".."||e[2][0]==="...")&&e[2].length===3?e:null}sliceAssignStatement(e){let[,t,r]=e,[,i,n]=t,[s,a,o]=n,l=(h)=>T.isIntegerLiteral(h)?parseInt(h.replace(/_/g,""),10):null,c=(h)=>typeof h==="string";for(let h of[a,o])if(E(h)&&h[0]==="-"&&h.length===2&&T.isIntegerLiteral(h[1]))throw this.positionedError(e,"emitter: a slice assignment cannot count from the end — `splice` takes a count, not a negative index; open the range instead (`a[i..] = v`) or compute the bound from `a.length`");let f=(h)=>{if(c(h))this.expr(h);else this.b.emit("("),this.expr(h),this.b.emit(")")};this.mark(e,"$self",()=>{this.mark(e,"target",()=>this.mark(t,"$self",()=>{this.head(t,"object",i),this.b.emit(".splice("),this.mark(t,"key",()=>{if(a===null)this.b.emit("0");else f(a);if(this.b.emit(", "),o===null)this.b.emit("Infinity");else if(l(o)!==null&&(a===null||l(a)!==null))this.b.emit(String(l(o)-(a===null?0:l(a))+(s===".."?1:0)));else{if(f(o),a!==null)this.b.emit(" - "),f(a);if(s==="..")this.b.emit(" + 1")}})})),this.mark(e,"operator",()=>{});let h=E(r)&&r[0]==="array"&&r.slice(1).every((u)=>!(E(u)&&u[0]==="...")&&u!==",");this.mark(e,"value",()=>{if(h)r.slice(1).forEach((u)=>{this.b.emit(", "),this.callArg(u)});else this.b.emit(", ...[].concat("),this.expr(r),this.b.emit(")")}),this.b.emit(")")})}methodAssignStatement(e,t){let[,r,i]=e,n=i;while(E(n)){let l=T.chainHeadSlot(n);if(l===null)break;n=n[l]}let s=E(n)?this.stores.idOf(n):null,a=s!==null?this.stores.node(s)?.semanticKind:null;if(!(E(n)&&typeof n[0]==="string"&&/^[A-Za-z_$][\w$]*$/.test(n[0])&&(a==="call"||a==null&&T.jsTier(n)==="primary")))throw this.positionedError(e,"emitter: `.=` re-binds its target to a METHOD CALL on itself — the right side must be a call chain (`x .= trim()`)");this.mark(e,"$self",()=>{let l=this.compoundTarget(e,r,t),c=(h)=>{if(h===n)return[[".",l,n[0]],...n.slice(1)];let u=T.chainHeadSlot(h),d=h.slice();return d[u]=c(h[u]),d};this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" ");let f=typeof l==="string"?this.bindingNameSpan(e,"target",l):null;if(f!==null)this.primitiveReuse={name:l,span:f.span};this.mark(e,"value",()=>this.expr(c(i))),this.primitiveReuse=null})}taggedTemplate(e){this.mark(e,"$self",()=>{let t=e[1];this.mark(e,"tag",()=>{if(T.needsGrouping(t,"head"))this.b.emit("("),this.expr(t),this.b.emit(")");else this.expr(t)});let r=e[2];this.mark(e,"str",()=>{if(typeof r==="string")if(r[0]==="`")this.b.emit(r);else this.b.emit("`"+T.escapeTemplate(r.slice(1,-1).replace(/\\"/g,'"'))+"`");else this.expr(r)})})}mapLiteral(e){this.mark(e,"$self",()=>{let t=e.slice(1);if(t.length===0){this.b.emit("new Map()");return}this.b.emit("new Map(["),t.forEach((r,i)=>{if(i>0)this.b.emit(", ");if(E(r)&&r[0]==="..."&&r.length===2){this.mark(r,"$self",()=>{this.b.emit("..."),this.expr(r[1])});return}if(!E(r)||r[0]!==":"||r.length!==3)throw this.positionedError(E(r)?r:e,"emitter: a map literal takes explicit `key: value` pairs — shorthand has no Map reading");this.mark(r,"$self",()=>{this.b.emit("[");let n=r[1];this.mark(r,"key",()=>{if(typeof n==="string"&&/^[A-Za-z_$][\w$]*$/.test(n)&&n!=="true"&&n!=="false"&&n!=="null"&&n!=="undefined")this.b.emit('"'),this.emitPrimitive(n),this.b.emit('"');else if(E(n)&&n[0]==="dynamicKey")this.expr(n[1]);else this.expr(n)}),this.b.emit(", "),this.mark(r,"value",()=>this.expr(r[2])),this.b.emit("]")})}),this.b.emit("])")})}matchReceiverClose(){this.b.emit(")"),this.b.emit(".match(")}regexIndex(e,t,r,i){this.mark(e,"$self",()=>{if(this.b.emit(`((_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"object",()=>this.expr(t)),this.matchReceiverClose(),this.mark(e,"key",()=>this.b.emit(r)),this.b.emit(")) && _["),i===null)this.b.emit("0");else this.mark(e,"capture",()=>this.expr(i));this.b.emit("])")})}static isMatchWrite(e){if(!E(e))return!1;if(e[0]==="=~"&&e.length===3)return!0;if(e[0]==="regex-index"&&e.length===4)return!0;return e[0]==="[]"&&e.length===3&&typeof e[2]==="string"&&e[2][0]==="/"}static paramMatchWrite(e){if(!E(e)||T1(e)||g1(e[0]))return null;if(T.isMatchWrite(e))return e;for(let t of e){let r=T.paramMatchWrite(t);if(r!==null)return r}return null}matchOp(e){if(E(e[1])&&e[1][0]==="=~"&&!e[1].parenthesized)throw this.positionedError(e,"emitter: `=~` does not chain — `a =~ b =~ c` would match the first match RESULT against the second pattern (parenthesize: `(a =~ b) =~ c`, or split the matches)");let t=e[2];this.mark(e,"$self",()=>{this.b.emit(`(_ = ${this.runtimeName("toMatchable")}(`),this.mark(e,"left",()=>this.expr(e[1])),this.matchReceiverClose(),this.mark(e,"right",()=>this.expr(t)),this.b.emit("))")})}modulo(e){this.mark(e,"$self",()=>{this.b.emit(T.MODULO+"("),this.mark(e,"left",()=>this.expr(e[1])),this.b.emit(", "),this.mark(e,"right",()=>this.expr(e[2])),this.b.emit(")")})}synthCompound(e,t,r,i){let n=e[1];if(this.checkExportedConstWrite(e,n),E(n)&&(n[0]==="."||n[0]==="[]")&&n.length===3){let s=this.refPlans.get(e)??{recv:null,obj:null,key:null};if(s.obj===null&&!this.repeatSafeValue(n[1]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure object — a capture site the planner walk did not reach");if(s.key===null&&n[0]==="[]"&&!this.repeatSafeValue(n[2]))throw this.positionedError(e,"emitter: reference plan missing for a compound target with an impure key — a capture site the planner walk did not reach");this.mark(e,"$self",()=>{let a=s.obj!==null||s.key!==null;if(a)this.b.emit("(");if(s.obj!==null)this.b.emit(`${s.obj} = `),this.mark(n,"object",()=>this.withExpression(()=>this.expr(n[1]))),this.b.emit(", ");if(s.key!==null)this.b.emit(`${s.key} = `),this.mark(n,"key",()=>this.withExpression(()=>this.expr(n[2]))),this.b.emit(", ");let o=this.stores.alias([n[0],s.obj??n[1],s.key??n[2]],n),l=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(o)));if(l(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),l(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(i)}),a)this.b.emit(")")});return}this.mark(e,"$self",()=>{let s=()=>this.mark(e,"target",()=>this.withTarget(()=>this.expr(e[1])));s(),this.b.emit(" "),this.mark(e,"operator",()=>this.b.emit("=")),this.b.emit(" "),this.mark(e,"operator",()=>{this.b.emit(t),s(),this.b.emit(r),this.operand(e,"value",e[2]),this.b.emit(i)})})}floorDivAssign(e){this.synthCompound(e,"Math.floor("," / ",")")}moduloAssign(e){this.synthCompound(e,T.MODULO+"(",", ",")")}awaitExpr(e){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.operand(e,"value",e[1])})}doIife(e){let[,t]=e;this.mark(e,"$self",()=>{if(this.b.emit("("),this.mark(e,"func",()=>this.expr(t)),this.b.emit(")("),T1(t)){let r=t[1],i=r.map((s)=>{let a=T.paramCore(s);if(typeof a==="string")return()=>this.expr(a);if(E(a)&&a[0]==="default"&&typeof T.paramCore(a[1])==="string")return()=>this.expr(a[2]);throw this.positionedError(s,"emitter: do-IIFE parameters must be plain names or defaulted names — patterns and rests have no capture argument",e)}),n=r.length;while(n>0&&E(r[n-1])&&r[n-1][0]==="default")n--;i.slice(0,n).forEach((s,a)=>{if(a>0)this.b.emit(", ");s()})}this.b.emit(")")})}dammit(e){if(wn(e[1])){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" new "),this.mark(e,"target",()=>this.rubyNewTarget(e[1])),this.b.emit("()")});return}this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"target",e[1]),this.b.emit("()")})}maybeDammit(e){this.mark(e,"$self",()=>{this.mark(e,"operator",()=>this.b.emit("await")),this.b.emit(" "),this.head(e,"callee",e[1]),this.mark(e,"operator",()=>this.b.emit("?.")),this.mark(e,"args",()=>{this.b.emit("("),e.slice(2).forEach((t,r)=>{if(r>0)this.b.emit(", ");this.expr(t)}),this.b.emit(")")})})}yieldExpr(e){if(this.scopes.length<=1)throw this.positionedError(e,"emitter: 'yield' outside a function");this.mark(e,"$self",()=>{this.b.emit(e[0]==="yield-from"?"yield*":"yield");let t=e[0]==="yield-from"?e[1]:e[1];if(e.length>1)this.b.emit(" "),this.operand(e,"value",t)})}}var ea=(e)=>{if(!E(e))return!1;if(e[0]==="schema"&&e.length===2&&typeof e[1]==="object")return!0;return e.some(ea)},ta=(e)=>{if(!E(e))return!1;if(e[0]==="schema"&&e.length===2&&e[1]&&typeof e[1]==="object"&&e[1].kind==="model")return!0;return e.some(ta)},ra=(e,t)=>{if(!E(e))return!1;if(t(e))return!0;return e.some((r)=>ra(r,t))},na=(e,t)=>{if(!E(e))return!1;if(t(e))return!0;return e.some((r)=>na(r,t))},ia=(e)=>{if(!E(e))return!1;if(e[0]==="object"&&T.objectComprehension(e)!==null)return!0;return e.some(ia)},sa=(e)=>{if(!E(e))return!1;if(T.isMatchWrite(e))return!0;return e.some(sa)},ft=[{key:"intrinsics",names:["__toPropertyKey","__defineOwnDataProperty"],generatedNames:["__toPropertyKey","__defineOwnDataProperty"],url:new URL("./runtime/intrinsics.js",import.meta.url),triggers:(e,t)=>ia(e)},{key:"vocab",names:[],url:new URL("./runtime/vocab.js",import.meta.url),triggers:()=>!1},{key:"schema",names:["__schema","SchemaError","registerCoercer"],url:new URL("./runtime/schema.js",import.meta.url),requires:["vocab"],triggers:(e,t)=>ea(e)},{key:"duckdb",names:[],url:new URL("./runtime/duckdb.js",import.meta.url),triggers:()=>!1},{key:"orm",names:["schema","__schemaSetAdapter"],url:new URL("./runtime/orm.js",import.meta.url),requires:["schema","duckdb","vocab"],triggers:(e,t)=>ta(e)},{key:"reactive",names:["__state","__computed","__effect","__batch","__readonly","__setErrorHandler","__handleError","__catchErrors","getEffectSignal"],generatedNames:["__state","__computed","__effect","__batch"],url:new URL("./runtime/reactive.js",import.meta.url),triggers:(e,t)=>ra(e,t.isTrigger),types:{__state:"(value: T | { value: T; read(): T }) => { value: T; read(): T; touch(): void }",__computed:"(fn: () => T) => { readonly value: T; read(): T }",__effect:"(fn: () => void | (() => void)) => () => void",__batch:"(fn: () => T) => T",__readonly:"(value: T) => T",__setErrorHandler:"(handler: ((error: any, source?: string) => void) | null) => void",__handleError:"(error: any, source?: string) => void",__catchErrors:"(fn: () => T, onError?: (e: any) => void) => T | undefined",getEffectSignal:"() => AbortSignal | null"}},{key:"stdlib",names:["abort","assert","exit","kind","noop","p","pp","pj","pr","raise","rand","sleep","toMatchable","todo","warn","zip"],generatedNames:["toMatchable"],url:new URL("./runtime/stdlib.js",import.meta.url),triggers:(e,t)=>sa(e),types:{abort:"(msg?: string) => never",assert:"(v: any, msg?: string) => void",exit:"(code?: number) => never",kind:"(v: any) => string",noop:"() => void",p:"(...args: any[]) => void",pp:"(v: T) => T",pj:"(v: T) => T",pr:"(v: T) => T",raise:"(a: any, b?: any) => never",rand:"(a?: number, b?: number) => number",sleep:"(ms: number) => Promise",toMatchable:"(v: any) => string",todo:"(msg?: string) => never",warn:"(...args: any[]) => void",zip:"(...arrays: any[][]) => any[][]"}},{key:"components",names:["setContext","getContext","hasContext","__Component","__pushComponent","__popComponent","__clsx","__style","__lis","__reconcile","__transition","__handleComponentError","__gateBind","__detach","__ownerFrame","__pushOwner","__popOwner","__detachRef"],generatedNames:["setContext","getContext","__Component","__pushComponent","__popComponent","__clsx","__style","__reconcile","__transition","__gateBind","__detach","__ownerFrame","__pushOwner","__popOwner","__detachRef"],types:{__clsx:ys,__style:Es},url:new URL("./runtime/components.js",import.meta.url),requires:"reactive",triggers:(e,t)=>na(e,t.isComponent)}],An=new Map,Xs=(e)=>{if(!An.has(e.key)){let r=ps(e.url,"utf8").replace(/^export \{[^}]*\};\s*$/gm,"").replace(/^import \{[^}]*\} from '\.\/[a-z-]+\.js';\s*$/gm,"").trimEnd(),i=/^[ \t]*(import|export)\b.*$/m.exec(r);if(i)throw Error(`emitter: runtime '${e.key}' carries a top-level ${i[1]} that inline delivery cannot strip — `+`${JSON.stringify(i[0].trim())}. Inline bodies share one IIFE scope, so it would emit unparseable output. Use the './name.js' import form, or move the dependency into RUNTIME_TABLE 'requires'.`);An.set(e.key,r)}return An.get(e.key)},vn=(e)=>e.requires==null?[]:Array.isArray(e.requires)?e.requires:[e.requires],Ie=(e,t,r=()=>!1)=>{if(t.size===0)return!1;let i=(o)=>typeof o==="string"&&t.has(o),n=(o)=>E(o)&&o.some(s),s=(o)=>{if(!E(o))return!1;let[l]=o;if(l==="object"||l==="array")return o.slice(1).some(s);if(l===null&&o.length===3)return!1;if(l===":"&&o.length===3)return E(o[1])&&a(o[1])||s(o[2]);if(l==="="&&o.length===3)return s(o[1])||a(o[2]);if((l==="rest"||l==="..."||l==="expansion")&&o.length===2)return s(o[1]);if(l==="typed-var"&&o.length===3)return s(o[1]);return a(o)},a=(o)=>{if(i(o))return!0;if(!E(o))return!1;let[l]=o;if(l==="schema"&&o.length===2&&o[1]&&typeof o[1]==="object"&&Array.isArray(o[1].entries))return!1;if(l==="."||l==="?.")return a(o[1]);if((l===":"||l==="void-pair")&&o.length===3)return E(o[1])&&a(o[1])||a(o[2]);if(T1(o))return n(o[1])||a(o[2]);if(g1(l)&&o.length===4)return n(o[2])||a(o[3]);if(r(o))return a(o[2]);if(M1.has(l)&&o.length===3)return E(o[1])&&s(o[1])||a(o[2]);if(l==="for-in"||l==="for-of"||l==="for-as")return E(o[1])&&o[1].some(s)||o.slice(2).some(a);if(l==="try")return o.slice(1).some((c)=>{if(!E(c))return!1;if(c[0]==="block")return a(c);return s(c[0])||a(c[1])});if(l==="class"&&o.length>=2)return o.slice(2).some(a);if(l==="typed-var"&&o.length===3)return E(o[1])&&a(o[1]);if(l==="cast"&&o.length===3)return a(o[1]);if(l==="import"||l==="type-decl")return!1;return o.some(a)};return a(e)},g3=(e,t)=>{let r=[],i=(n,s,a=[])=>{let o=(h)=>T.isReactiveDeclIn(s,h)||T.isEffectDeclIn(s,h)||T.isReadonlyDeclIn(s,h)||T.isGateDeclIn(s,h),l=(h)=>T.isReactiveDeclIn(s,h)||T.isEffectDeclIn(s,h),c=(h)=>T.isComponentDeclIn(s,h);r.push({tree:n,atoms:a,isDecl:o,isTrigger:l,isComponent:c});let f=(h)=>{if(!E(h))return;if(h[0]==="schema"&&h.length===2&&h[1]&&typeof h[1]==="object"&&Array.isArray(h[1].entries)){for(let{entry:u,tokens:d,value:S}of T.schemaBodies(h[1])){let g=e.subParse(d);if(g.stmts.length)i(["program",...g.stmts],g.stores,S?[]:e.schemaBodyParams(u).map((p)=>p.name))}return}h.forEach(f)};f(n)};return i(t,e.stores),r},b3=(e,t)=>{let r=new Set,i=(s)=>{for(let a of e.patternNames(s,[],!0))r.add(a)},n=(s,a)=>{if(!E(s))return;let[o]=s;if(e.isModuleImport(s)){for(let l of T.importedNames([s]))r.add(l);return}if(T1(s)){if(E(s[1]))for(let l of s[1])i(l);n(s[2],a);return}if(g1(o)&&s.length===4){if(typeof s[1]==="string")r.add(s[1]);if(E(s[2]))for(let l of s[2])i(l);n(s[3],a);return}if(o==="class"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2)){let c=E(l)&&l[0]==="block"?l.slice(1):[l];for(let f of c)if(E(f)&&g1(f[0])&&f.length===4){if(E(f[2]))for(let h of f[2])i(h);n(f[3],a)}else n(f,a)}return}if(o==="enum"){if(typeof s[1]==="string")r.add(s[1]);for(let l of s.slice(2))n(l,a);return}if(a(s)){if(typeof s[1]==="string")r.add(s[1]);else if(E(s[1]))i(s[1]);n(s[2],a);return}if((M1.has(o)||o==="void-assign")&&s.length>=2){if(typeof s[1]==="string")r.add(s[1]);else if(T.isPattern(s[1]))i(s[1])}if((o==="for-in"||o==="for-of"||o==="for-as")&&E(s[1]))for(let l of s[1])i(l);if(o==="try"){for(let l of s.slice(2))if(E(l)&&l.length===2&&T.isPattern(l[0]))i(l[0])}for(let l of s)n(l,a)};for(let{tree:s,atoms:a,isDecl:o}of t){n(s,o);for(let l of a)i(l)}return r},y3=(e,t)=>{let r=t.slice(1),i=new Set(e.hoistTargets(r).map(([a])=>a)),n=r.filter((a)=>e.isModuleImport(a));for(let a of T.importedNames(n))i.add(a);for(let a of e.collectReactiveNames(r))i.add(a);for(let a of e.collectEffectHandles(r))i.add(a);for(let a of e.collectReadonlyNames(r))i.add(a);let s=(a)=>{if(!E(a))return;if(a[0]==="enum"&&typeof a[1]==="string")i.add(a[1]);if(a[0]==="class"&&typeof a[1]==="string")i.add(a[1]);if(g1(a[0])&&a.length===4&&typeof a[1]==="string")i.add(a[1]);if((a[0]==="="||a[0]==="void-assign")&&typeof a[1]==="string")i.add(a[1])};for(let a of r)if(s(a),E(a)&&a[0]==="export"&&E(a[1]))s(a[1]);return i},Js=new Set(["plain","state","computed","effect","readonly","import","class","def","enum"]),S3=(e)=>{if(e==null)return[];if(!Array.isArray(e))throw Error(`emitter: ambientBindings must be an array of {name, kind}; got ${typeof e}`);let t=new Set;for(let r of e){if(r===null||typeof r!=="object"||!X1(r.name))throw Error(`emitter: ambientBindings entries are {name, kind} with an identifier name; got ${JSON.stringify(r)}`);if(!Js.has(r.kind))throw Error(`emitter: ambientBindings kind '${r.kind}' for '${r.name}' is not a binding kind — expected one of ${[...Js].join(", ")}`);if(t.has(r.name))throw Error(`emitter: ambientBindings names '${r.name}' twice — one binding per name`);t.add(r.name)}return e},R3=(e,t,r)=>{let i=t.slice(1),n=new Map,s=(c,f)=>{if(typeof c==="string"&&!n.has(c))n.set(c,f)},a=(c)=>{if(!r.has(c))s(c,"plain")};for(let c of i)if(e.isModuleImport(c))for(let f of T.importedNames([c]))s(f,"import");let o=e.collectComputedNames(i);for(let c of e.collectReactiveNames(i))s(c,o.has(c)?"computed":"state");for(let c of e.collectEffectHandles(i))s(c,"effect");for(let c of e.collectReadonlyNames(i))s(c,"readonly");let l=(c,f)=>{if(!E(c))return;if(c[0]==="enum"&&typeof c[1]==="string")s(c[1],"enum");if(c[0]==="class"&&typeof c[1]==="string")s(c[1],"class");if(g1(c[0])&&c.length===4&&typeof c[1]==="string")s(c[1],"def");if((c[0]==="="||c[0]==="void-assign")&&typeof c[1]==="string")if(f)s(c[1],"plain");else a(c[1])};for(let c of i)if(l(c,!1),E(c)&&c[0]==="export"&&E(c[1]))l(c[1],!0);for(let[c,,f]of e.hoistTargets(i))if(f==="target")a(c);return[...n].map(([c,f])=>({name:c,kind:f}))},On={field:"field",computed:"computed",derived:"derived",method:"method"};function E3(e,t,r,i){let n=[],s=(l)=>l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let l of t.story?.decl?.descriptor?.entries??[]){let c=l.tag==="union-member"?{name:l.name,start:l.start}:l.tag==="directive"&&l.name==="mixin"&&l.argTokens?.[0]?.kind==="IDENTIFIER"?{name:l.argTokens[0].value,start:l.argTokens[0].start}:null;if(c!==null&&typeof c.start==="number"){let h=new RegExp(`(= |\\| |& )(${s(c.name)})(?= \\||;| &)`).exec(r);if(h!==null)n.push({at:h.index+h[1].length,len:c.name.length,start:c.start,end:c.start+c.name.length});continue}if((On[l.tag]??null)===null||typeof l.start!=="number")continue;let f=new RegExp(`([{;] )((?:readonly )?)(${s(l.name)})(\\??: )`).exec(r);if(f===null)continue;if(n.push({at:f.index+f[1].length+f[2].length,len:l.name.length,start:l.start,end:l.start+l.name.length}),l.tag==="field"&&Array.isArray(l.typeSpan)&&e.b.source!==null){let h=/[A-Za-z_$][\w$]*/.exec(e.b.source.slice(l.typeSpan[0],l.typeSpan[1]));if(h!==null){let u=f.index+f[0].length,d=r.indexOf(";",u)<0?r.length:r.indexOf(";",u)+1,S=new RegExp(`(?u[1]))];for(let u of f){if(c.has(u))continue;let d=a[0]+1,S=-1;while(d>0){let g=l.lastIndexOf(u,d-1);if(g<0)break;if(!/[\w$]/.test(l[g-1]??" ")&&!/[\w$]/.test(l[g+u.length]??" ")){S=g;break}d=g}if(S>=0)c.set(u,[S,S+u.length])}let h=(u,d)=>n.some((S)=>ul.at-c.at);let o=0;for(let l of n){if(l.ate.b.emit(r.slice(l.at,l.at+l.len)));else e.b.emit(r.slice(l.at,l.at+l.len));o=l.at+l.len}e.b.emit(r.slice(o))}function k3(e,t,r,i){let n=t.story?.decl?.descriptor?.entries??null;if(n===null)return;let s=(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let a of n){let o=a.tag==="union-member"?{name:a.name,start:a.start}:a.tag==="directive"&&a.name==="mixin"&&a.argTokens?.[0]?.kind==="IDENTIFIER"?{name:a.argTokens[0].value,start:a.argTokens[0].start}:null;if(o===null||typeof o.start!=="number")continue;let l=new RegExp(`(= |\\| |& )(${s(o.name)})(?= \\||;| &)`).exec(r);if(l===null)continue;e.intrinsics.push({start:o.start,end:o.start+o.name.length,kind:"schema",label:null,name:o.name,gen:i+l.index+l[1].length})}for(let a of n){let o=On[a.tag]??null;if(o===null||typeof a.start!=="number")continue;let l=s(a.name),c=new RegExp(`([{;] )((?:readonly )?)(${l})(\\??: )`).exec(r);if(c===null)continue;let f=i+c.index+c[1].length+c[2].length;if(e.intrinsics.push({start:a.start,end:a.start+a.name.length,kind:"schema",label:o,name:a.name,gen:f,optional:c[4].startsWith("?")}),a.tag==="field"&&a.typeSpan!==null&&a.typeSpan!==void 0)e.intrinsics.push({start:a.typeSpan[0],end:a.typeSpan[1],kind:"schema",label:null,name:a.name,gen:f+c[3].length+c[4].length})}}function aa(e,{source:t="",runtimeDelivery:r="none",face:i="js",pins:n=null,strict:s=!1,script:a=!1,browserModule:o=!1,dataPayload:l=null,ambientBindings:c=null,repl:f=!1,hmr:h=!1,tolerant:u=!1,modulePath:d=null,appStashSpec:S=null,routesUnion:g=null,routeParams:p=null}={}){if(!e.sexpr)throw Error("emitter: cannot emit a failed parse");if(i!=="js"&&i!=="ts")throw Error(`emitter: unknown face '${i}' — expected 'js' (the shipping emission) or 'ts' (the editor face)`);let R=S3(c),b=new Qt(e.stores),_=new ge(b,{source:t,primitives:i==="ts"}),y=new T(b,_,{face:i,pins:n,strict:s,script:a,browserModule:o,repl:f,hmr:h,tolerant:u,modulePath:d,appStashSpec:S,routesUnion:g,routeParams:p});if(y.dataPayload=l,r!=="none"&&r!=="import"&&r!=="inline")throw Error(`emitter: unknown runtimeDelivery '${r}' — expected 'none', 'import', or 'inline'`);if(y.collectTsDirectives(e.sexpr,e.trivia??[],t),y.collectTypeOnlyImports(e.sexpr,t),y.collectAppAccessors(e.sexpr),y.tsNocheck!==null){let V=b.idOf(e.sexpr),j=y.tsNocheck;_.tsOnly(()=>{let q=()=>_.emit("//"+j.text.slice(1));if(V!==null)_.markSpan(V,"tsDirective",j.start,j.end,q);else q();_.emit(` +`)})}let m=g3(y,e.sexpr),k=(V)=>{if(typeof V==="string")y.temps.used.add(V);else if(E(V))for(let j of V)k(j)};for(let{tree:V,atoms:j}of m)k(V),k(j);for(let{name:V}of R)y.temps.used.add(V);let O=b3(y,m);for(let{name:V}of R)O.add(V);let A=[...O];for(let V of ft)for(let j of V.generatedNames??[])y.runtimeAliases.set(j,T.mintName(j,O));let x=y3(y,e.sexpr),I=R3(y,e.sexpr,new Set(R.map(({name:V})=>V)));for(let{name:V}of R)x.add(V);let H=new Set;for(let V of ft){let j=new Set(V.names.filter((q)=>!x.has(q)));if(m.some(({tree:q,isDecl:t1,isTrigger:M,isComponent:N})=>V.triggers?.(q,{isTrigger:M,isComponent:N})||Ie(q,j,t1)))H.add(V.key)}for(let V=!0;V;){V=!1;for(let j of ft){if(!H.has(j.key))continue;for(let q of vn(j))if(!H.has(q))H.add(q),V=!0}}if(r!=="none"){let V=ft.filter((t1)=>H.has(t1.key)),j=[];if(r==="import")for(let t1 of V)j.push({runtimes:[t1],names:t1.names,imp:t1.url.pathname});else{let t1=new Set(V.flatMap((M)=>vn(M)));for(let M of V){if(t1.has(M.key))continue;let N=[],C=(D)=>{if(N.includes(D))return;for(let B of vn(D)){let a1=ft.find((h1)=>h1.key===B);if(a1)C(a1)}N.push(D)};if(C(M),N.length===1){j.push({runtimes:[M],names:M.names,body:Xs(M),types:M.types});continue}let w=N.some((D)=>D.types)?Object.assign({},...N.map((D)=>D.types)):void 0;j.push({runtimes:N,names:N.flatMap((D)=>D.names),body:N.map((D)=>Xs(D)).join(` `),types:w})}}let q=b.idOf(e.sexpr);for(let t1 of j){let M=new Set(t1.runtimes.flatMap((w)=>w.generatedNames??[])),N=t1.names.filter((w)=>M.has(w)||!x.has(w)).map((w)=>({name:w,local:M.has(w)?y.runtimeAliases.get(w):w}));if(N.length===0)continue;let C=_.offset;if(t1.imp){_.emit(`import { ${N.map(({name:D,local:B})=>D===B?D:`${D} as ${B}`).join(", ")} } from `);let w=_.offset;_.emit(JSON.stringify(t1.imp)),y.importSpans.push({start:w,end:_.offset,specifier:JSON.stringify(t1.imp)}),_.emit(`; `)}else{_.emit(`const { ${N.map(({name:D,local:B})=>D===B?D:`${D}: ${B}`).join(", ")} }`);let w=i==="ts"&&t1.types?`{ ${N.map(({name:D})=>`${D}: ${t1.types[D]??"any"}`).join("; ")} }`:null;if(w!==null&&w.includes("__RipClassValue"))y._needsClassValue=!0;if(w!==null&&w.includes("__RipCSSProperties"))y._needsCssProperties=!0;if(_.emit(" = "),w)_.tsOnly(()=>_.emit("("));if(_.emit(`(() => { ${t1.body} return { ${t1.names.join(", ")} }; })()`),w)_.tsOnly(()=>_.emit(` as ${w})`));_.emit(`; -`)}if(q!==null)_.rows.push({nodeId:q,role:"runtime",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:C,generatedEnd:_.offset,fileId:0})}}let K=null;if(i==="ts"){let W=null;try{W=gs(e.sexpr,_.source,T.importedNames(e.sexpr.slice(1).filter((j)=>y.isModuleImport(j))))}catch(j){if(j instanceof mn){let q=Error(`emitter: ${j.message}`),t1=j.node!==null?b.idOf(j.node):null,M=t1!==null?b.selfSpan(t1):null;if(M)q.start=M[0],q.end=M[1];else if(j.start!==null)q.start=j.start,q.end=j.start;throw q}throw j}if(K=W,W!==null){let j=b.idOf(e.sexpr),q=_.offset;if(_.tsOnly(()=>_.emit(W.intrinsicLines.join(` +`)}if(q!==null)_.rows.push({nodeId:q,role:"runtime",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:C,generatedEnd:_.offset,fileId:0})}}let G=null;if(i==="ts"){let V=null;try{V=gs(e.sexpr,_.source,T.importedNames(e.sexpr.slice(1).filter((j)=>y.isModuleImport(j))))}catch(j){if(j instanceof dn){let q=Error(`emitter: ${j.message}`),t1=j.node!==null?b.idOf(j.node):null,M=t1!==null?b.selfSpan(t1):null;if(M)q.start=M[0],q.end=M[1];else if(j.start!==null)q.start=j.start,q.end=j.start;throw q}throw j}if(G=V,V!==null){let j=b.idOf(e.sexpr),q=_.offset;if(_.tsOnly(()=>_.emit(V.intrinsicLines.join(` `)+` -`)),j!==null)_.rows.push({nodeId:j,role:"schemaTypes",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:q,generatedEnd:_.offset,fileId:0});y.schemaStories=new Map;let t1=[...W.stories.map((M)=>({node:M.decl.node,exported:M.decl.exported,story:M,lines:M.faceAliasLines??M.aliasLines})),...W.derivations.map((M)=>({node:M.decl.node,exported:M.decl.exported,story:null,lines:M.aliasLines}))];t1.forEach((M,N)=>{if(M.story!==null)y.schemaStories.set(M.node,M.story);let C=M.exported?"export ":"",w=b.idOf(M.node),D=N===t1.length-1?` +`)),j!==null)_.rows.push({nodeId:j,role:"schemaTypes",mappingKind:"synthetic",sourceStart:0,sourceEnd:0,generatedStart:q,generatedEnd:_.offset,fileId:0});y.schemaStories=new Map;let t1=[...V.stories.map((M)=>({node:M.decl.node,exported:M.decl.exported,story:M,lines:M.faceAliasLines??M.aliasLines})),...V.derivations.map((M)=>({node:M.decl.node,exported:M.decl.exported,story:null,lines:M.aliasLines}))];t1.forEach((M,N)=>{if(M.story!==null)y.schemaStories.set(M.node,M.story);let C=M.exported?"export ":"",w=b.idOf(M.node),D=N===t1.length-1?` `:` `;_.tsOnly(()=>{let B=()=>{let a1=_.offset,h1=M.lines.map((f1)=>`${C}${f1}`).join(` -`);E3(y,M,h1,w),k3(y,M,h1,a1)};if(w!==null)_.mark(w,"$self",B);else B();_.emit(D)})})}}if(y.tsDirectivesArmed=!0,R.length>0){let W=new Set,j=new Set,q=new Set,t1=new Set;for(let{name:M,kind:N}of R){if(N==="state"||N==="computed")W.add(M);else t1.add(M);if(N==="computed")j.add(M);if(N==="readonly")q.add(M)}y.rframes.push({reactive:W,computed:j,bound:t1,ambientReadonly:q}),y.scopes.push(new Set(R.map(({name:M})=>M)))}if(y.program(e.sexpr),R.length>0)y.rframes.pop(),y.scopes.pop();if(i==="ts"&&Array.isArray(e.sexpr)){let W=(()=>{for(let j of e.sexpr){if(!Array.isArray(j)||j[0]!=="export"||!Array.isArray(j[1]))continue;let q=j[1];if(q[0]==="="){if(q[1]==="stash")return"stash";continue}if(!q.every((M)=>typeof M==="string"&&/^[A-Za-z_$][\w$]*$/.test(M)||Array.isArray(M)&&M.length===2&&typeof M[0]==="string"&&typeof M[1]==="string"))continue;for(let M of q){if(M==="stash")return"stash";if(Array.isArray(M)&&M[1]==="stash")return M[0]}}return null})();if(W!==null)y.stashKeys=T.stashKeysOf(e.sexpr,W),_.tsOnly(()=>{let j=/^(?:export\s+)?(stash)\s*=/m.exec(_.source??""),q=j!==null?b.idOf(e.sexpr):null;if(_.emit(` -export type __RipStash = typeof `),q!==null)_.markSpan(q,"identifier",j.index+j[0].indexOf("stash"),j.index+j[0].indexOf("stash")+5,()=>_.emit(W));else _.emit(W);_.emit(`; -`)})}if(i==="ts"&&y.routesUnion!==null){let W=_.code;if(/\bRoutePath\b/.test(W)&&!/\b(?:type|interface)\s+RoutePath\b/.test(W)&&!/\bimport\b[^;\n]*\bRoutePath\b/.test(W))_.tsOnly(()=>_.emit(` +`);E3(y,M,h1,w),k3(y,M,h1,a1)};if(w!==null)_.mark(w,"$self",B);else B();_.emit(D)})})}}if(y.tsDirectivesArmed=!0,R.length>0){let V=new Set,j=new Set,q=new Set,t1=new Set;for(let{name:M,kind:N}of R){if(N==="state"||N==="computed")V.add(M);else t1.add(M);if(N==="computed")j.add(M);if(N==="readonly")q.add(M)}y.rframes.push({reactive:V,computed:j,bound:t1,ambientReadonly:q}),y.scopes.push(new Set(R.map(({name:M})=>M)))}if(y.program(e.sexpr),R.length>0)y.rframes.pop(),y.scopes.pop();if(i==="ts"&&Array.isArray(e.sexpr)){let V=(()=>{for(let j of e.sexpr){if(!Array.isArray(j)||j[0]!=="export"||!Array.isArray(j[1]))continue;let q=j[1];if(q[0]==="="){if(q[1]==="stash")return"stash";continue}if(!q.every((M)=>typeof M==="string"&&/^[A-Za-z_$][\w$]*$/.test(M)||Array.isArray(M)&&M.length===2&&typeof M[0]==="string"&&typeof M[1]==="string"))continue;for(let M of q){if(M==="stash")return"stash";if(Array.isArray(M)&&M[1]==="stash")return M[0]}}return null})();if(V!==null)y.stashKeys=T.stashKeysOf(e.sexpr,V),_.tsOnly(()=>{let j=/^(?:export\s+)?(stash)\s*=/m.exec(_.source??""),q=j!==null?b.idOf(e.sexpr):null;if(_.emit(` +export type __RipStash = typeof `),q!==null)_.markSpan(q,"identifier",j.index+j[0].indexOf("stash"),j.index+j[0].indexOf("stash")+5,()=>_.emit(V));else _.emit(V);_.emit(`; +`)})}if(i==="ts"&&y.routesUnion!==null){let V=_.code;if(/\bRoutePath\b/.test(V)&&!/\b(?:type|interface)\s+RoutePath\b/.test(V)&&!/\bimport\b[^;\n]*\bRoutePath\b/.test(V))_.tsOnly(()=>_.emit(` type RoutePath = ${y.routesUnion}; `))}if(y._needsAmbienceHelper===!0)_.tsOnly(()=>_.emit(` declare function __ripAmbientStash(v: T): T; `));if(y._needsRouteHelper===!0)_.tsOnly(()=>_.emit(` declare function __ripRoute(s: ${Ls(y.routesUnion,"T")}): T; -`));if(i==="ts"&&(y.domSurfaces.size>0||y._needsClassValue===!0||y._needsCssProperties===!0||y._needsRefCellHelper===!0||y._needsChildren===!0||y._restTags.size>0)){let W=ws(y.domSurfaces.values(),{needsClassValue:y._needsClassValue===!0,needsCssProperties:y._needsCssProperties===!0,needsRefCell:y._needsRefCellHelper===!0,needsChildren:y._needsChildren===!0,extra:[...y._restTags].sort().map((j)=>`type ${En(j)} = ${Vs(j,"face")};`)});if(W!=="")_.tsOnly(()=>_.emit(W))}if(y._needsSourceKeyHelper===!0){let W=`keyof import(${JSON.stringify(y.appStashSpec)}).__RipStash & string`;_.tsOnly(()=>_.emit(` -declare function __ripSourceKey(s: T): T; +`));if(i==="ts"&&(y.domSurfaces.size>0||y._needsClassValue===!0||y._needsCssProperties===!0||y._needsRefCellHelper===!0||y._needsChildren===!0||y._restTags.size>0)){let V=ws(y.domSurfaces.values(),{needsClassValue:y._needsClassValue===!0,needsCssProperties:y._needsCssProperties===!0,needsRefCell:y._needsRefCellHelper===!0,needsChildren:y._needsChildren===!0,extra:[...y._restTags].sort().map((j)=>`type ${En(j)} = ${Vs(j,"face")};`)});if(V!=="")_.tsOnly(()=>_.emit(V))}if(y._needsSourceKeyHelper===!0){let V=`keyof import(${JSON.stringify(y.appStashSpec)}).__RipStash & string`;_.tsOnly(()=>_.emit(` +declare function __ripSourceKey(s: T): T; `))}if(y._needsNarrowHelper===!0)_.tsOnly(()=>_.emit(` declare function __ripNarrow(v: T): asserts v is NonNullable; -`));let V=[];if(i==="ts"&&E(e.sexpr)&&e.sexpr[0]==="program"){let W=/^[A-Za-z_$][A-Za-z0-9_$]*$/;for(let j of e.sexpr.slice(1)){if(!E(j)||j[0]!=="??="||j.length!==3)continue;let q=j[1];if(!E(q)||q[0]!=="."||q[1]!=="globalThis")continue;if(typeof q[2]!=="string"||!W.test(q[2]))continue;let t1=new Set(["null","undefined","true","false","this"]),M=j[2];V.push({name:q[2],anchor:typeof M==="string"&&W.test(M)&&!t1.has(M)?M:null})}if(V.length)_.tsOnly(()=>{for(let j of V)if(j.anchor!==null)_.emit(` +`));let K=[];if(i==="ts"&&E(e.sexpr)&&e.sexpr[0]==="program"){let V=/^[A-Za-z_$][A-Za-z0-9_$]*$/;for(let j of e.sexpr.slice(1)){if(!E(j)||j[0]!=="??="||j.length!==3)continue;let q=j[1];if(!E(q)||q[0]!=="."||q[1]!=="globalThis")continue;if(typeof q[2]!=="string"||!V.test(q[2]))continue;let t1=new Set(["null","undefined","true","false","this"]),M=j[2];K.push({name:q[2],anchor:typeof M==="string"&&V.test(M)&&!t1.has(M)?M:null})}if(K.length)_.tsOnly(()=>{for(let j of K)if(j.anchor!==null)_.emit(` type __ripGlobal_${j.name} = typeof ${j.anchor};`);_.emit(` -declare global {`);for(let j of V)_.emit(` +declare global {`);for(let j of K)_.emit(` var ${j.name}: ${j.anchor===null?"any":`__ripGlobal_${j.name}`};`);_.emit(` } -`)})}if(i==="ts"&&!bs(e.sexpr,(W)=>y.isModuleImport(W)))_.tsOnly(()=>_.emit(` +`)})}if(i==="ts"&&!bs(e.sexpr,(V)=>y.isModuleImport(V)))_.tsOnly(()=>_.emit(` export {}; -`));let Z=[];for(let{name:W,node:j,path:q,key:t1}of y.pinnables){if(t1===null)continue;let M=b.idOf(j);if(M===null)continue;let N=_.rows.find((w)=>w.nodeId===M&&w.role==="$self"),C=_.rows.find((w)=>w.nodeId===M&&w.role==="value");if(!N||!C)continue;Z.push({name:W,key:t1,path:q??"",stmtGen:[N.generatedStart,N.generatedEnd],valueGen:[C.generatedStart,C.generatedEnd]})}return{code:_.code,mappings:_.rows,vocabulary:y.vocabulary,silences:y.silences,memberDecls:y.memberDecls,enums:y.enums,importedRefs:y.importedRefs,stores:b,runtimes:G,bindings:O,bindingNames:A,replResultName:y.replResultName,replImportResolver:y.replImportResolver,tsRegions:_.tsRegions,echoSpans:_.echoSpans,globalDecls:V.map((W)=>W.name),pinnables:Z,mutables:y.mutables,classDecls:y.classDecls,pinSpans:y.pinSpans,loopVars:y.loopVars,attrNames:y.attrNames,routeWraps:y.routeWrapSpans,sourceKeys:y.sourceKeySpans,stashMembers:y.stashMemberSpans,stashKeys:y.stashKeys??null,memberInits:y.memberInitSites,imports:y.importSpans,intrinsics:y.intrinsics,renderPairs:y.renderPairs,kinds:y.kinds}}var oa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",V4=new Map([...oa].map((e,t)=>[e,t])),T3=/^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u;function ut(e){let t=e<0?-e<<1|1:e<<1,r="";do{let i=t&31;if(t>>>=5,t>0)i|=32;r+=oa[i]}while(t>0);return r}function la({code:e,mappings:t},{source:r,file:i="output.js",sourcePath:n="input.rip"}={}){let s=new de(r,n),a=new de(e,i),l=(t instanceof pe?t:new pe(t)).serializableRows(),c=[],f=new Map,h=[],u=0,m=0,S=0;for(let g of l){let d=a.lineColAt(g.generatedStart),R=s.lineColAt(g.sourceStart);while(h.length<=d.line)h.push([]);let b=h[d.line],_=b.length?b[b.length-1].genCol:0,y=ut(d.col-_)+ut(0)+ut(R.line-u)+ut(R.col-m);u=R.line,m=R.col;let p=e.slice(g.generatedStart,g.generatedEnd);if(g.mappingKind==="exact"&&T3.test(p)){let k=f.get(p);if(k===void 0)k=c.length,c.push(p),f.set(p,k);y+=ut(k-S),S=k}b.push({genCol:d.col,seg:y})}return{version:3,file:i,sources:[n],sourcesContent:[r],names:c,mappings:h.map((g)=>g.map((d)=>d.seg).join(",")).join(";")}}var ca=()=>{throw Error("rip: declaration emission is unavailable in the browser")};class Fe extends Error{constructor(e,{path:t,start:r=null,end:i=null,line:n=null,col:s=null}={}){super(e);this.name="CompileError",this.path=t,this.start=r,this.end=i,this.line=n,this.col=s}}var w3=(e,t)=>{let{line:r,col:i}=e.lineColAt(t),n=e.lineStarts[r],s=r+1c==="\t"?"\t":" ").join("");return` ${o} | ${a} +`));let Z=[];for(let{name:V,node:j,path:q,key:t1}of y.pinnables){if(t1===null)continue;let M=b.idOf(j);if(M===null)continue;let N=_.rows.find((w)=>w.nodeId===M&&w.role==="$self"),C=_.rows.find((w)=>w.nodeId===M&&w.role==="value");if(!N||!C)continue;Z.push({name:V,key:t1,path:q??"",stmtGen:[N.generatedStart,N.generatedEnd],valueGen:[C.generatedStart,C.generatedEnd]})}return{code:_.code,mappings:_.rows,vocabulary:y.vocabulary,silences:y.silences,memberDecls:y.memberDecls,enums:y.enums,importedRefs:y.importedRefs,stores:b,runtimes:H,bindings:I,bindingNames:A,replResultName:y.replResultName,replImportResolver:y.replImportResolver,tsRegions:_.tsRegions,echoSpans:_.echoSpans,globalDecls:K.map((V)=>V.name),pinnables:Z,mutables:y.mutables,classDecls:y.classDecls,pinSpans:y.pinSpans,loopVars:y.loopVars,attrNames:y.attrNames,routeWraps:y.routeWrapSpans,sourceKeys:y.sourceKeySpans,stashMembers:y.stashMemberSpans,stashKeys:y.stashKeys??null,memberInits:y.memberInitSites,imports:y.importSpans,intrinsics:y.intrinsics,renderPairs:y.renderPairs,kinds:y.kinds}}var oa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",V4=new Map([...oa].map((e,t)=>[e,t])),T3=/^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u;function ut(e){let t=e<0?-e<<1|1:e<<1,r="";do{let i=t&31;if(t>>>=5,t>0)i|=32;r+=oa[i]}while(t>0);return r}function la({code:e,mappings:t},{source:r,file:i="output.js",sourcePath:n="input.rip"}={}){let s=new me(r,n),a=new me(e,i),l=(t instanceof pe?t:new pe(t)).serializableRows(),c=[],f=new Map,h=[],u=0,d=0,S=0;for(let g of l){let p=a.lineColAt(g.generatedStart),R=s.lineColAt(g.sourceStart);while(h.length<=p.line)h.push([]);let b=h[p.line],_=b.length?b[b.length-1].genCol:0,y=ut(p.col-_)+ut(0)+ut(R.line-u)+ut(R.col-d);u=R.line,d=R.col;let m=e.slice(g.generatedStart,g.generatedEnd);if(g.mappingKind==="exact"&&T3.test(m)){let k=f.get(m);if(k===void 0)k=c.length,c.push(m),f.set(m,k);y+=ut(k-S),S=k}b.push({genCol:p.col,seg:y})}return{version:3,file:i,sources:[n],sourcesContent:[r],names:c,mappings:h.map((g)=>g.map((p)=>p.seg).join(",")).join(";")}}var ca=()=>{throw Error("rip: declaration emission is unavailable in the browser")};class Fe extends Error{constructor(e,{path:t,start:r=null,end:i=null,line:n=null,col:s=null}={}){super(e);this.name="CompileError",this.path=t,this.start=r,this.end=i,this.line=n,this.col=s}}var w3=(e,t)=>{let{line:r,col:i}=e.lineColAt(t),n=e.lineStarts[r],s=r+1c==="\t"?"\t":" ").join("");return` ${o} | ${a} ${" ".repeat(o.length)} | ${l}^`},In=(e,t,r,i,n)=>{let{line:s,col:a}=e.lineColAt(i),o=`${t}:${s+1}:${a+1}: ${r} ${w3(e,i)}`;return new Fe(o,{path:t,start:i,end:n,line:s+1,col:a+1})},_3=(e,t)=>{let r=e.text,i=r.slice(0,t.start),n=r.slice(t.start),s=i.slice(i.lastIndexOf(` `)+1);if(t.expected?.[0]===":"||/\?[ \t]*$/.test(i))return"a two-operand '?' is incomplete — a default for null/undefined is spelled x ?? y";if(/^\.\.\.[^\n]*\)\s*[-=]>/.test(n)&&/[(,]\s*[A-Za-z_$][\w$]*\s*$/.test(i))return"a rest parameter is spelled `...name` — the dots lead the name";if(/^for\b/.test(n)&&/^\s*return\b/.test(s))return"`return` takes one expression — parenthesize the comprehension: `return (v for v in list)`";if(/^!/.test(n)&&/\bimport\s*$/.test(i))return"an awaited dynamic import is spelled `import!('mod')` — the call parens are required";if(/^!/.test(n)&&/\)\s*$/.test(i))return"the await bang goes on the callee — `fn!()`, not `fn()!`";if(/^if\b[^\n]*\n[ \t]*then\b/.test(n))return"`then` belongs on the `if` line (`if c then …`) — or indent the body beneath the condition";return null},N3=(e,t,r)=>{let i=_3(e,r),n=i!==null?`${r.message} - (${i})`:r.message;return In(e,t,n,r.start,r.end)};function fa(e,{path:t="",runtimeDelivery:r="inline",face:i="js",pins:n=null,strict:s=!1,script:a=!1,browserModule:o=!1,foldProjections:l=!1,ambientBindings:c=null,repl:f=!1,tolerant:h=!1,hmr:u=!1,appStashSpec:m=null,routesUnion:S=null,routeParams:g=null}={}){if(typeof e!=="string"){let A=e===null?"null":Array.isArray(e)?"an array":`a ${typeof e}`;throw new Fe(`compile: source must be a string; got ${A}`,{path:t})}let d=new de(e,t),R=null,b=e;{let A=e.split(` -`),x=A.findIndex((O)=>O==="__DATA__");if(x!==-1){let O=A.slice(x+1);R=O.length>0?O.join(` + (${i})`:r.message;return In(e,t,n,r.start,r.end)};function fa(e,{path:t="",runtimeDelivery:r="inline",face:i="js",pins:n=null,strict:s=!1,script:a=!1,browserModule:o=!1,foldProjections:l=!1,ambientBindings:c=null,repl:f=!1,tolerant:h=!1,hmr:u=!1,appStashSpec:d=null,routesUnion:S=null,routeParams:g=null}={}){if(typeof e!=="string"){let A=e===null?"null":Array.isArray(e)?"an array":`a ${typeof e}`;throw new Fe(`compile: source must be a string; got ${A}`,{path:t})}let p=new me(e,t),R=null,b=e;{let A=e.split(` +`),x=A.findIndex((I)=>I==="__DATA__");if(x!==-1){let I=A.slice(x+1);R=I.length>0?I.join(` `)+` `:"",b=A.slice(0,x).join(` -`)}}let _=Jt();_.lexer=us(t,{tolerant:h});let y;try{y=_.parse(b,{primitives:i==="ts",tolerant:h})}catch(A){if(typeof A.start!=="number")throw A;throw In(d,t,A.reason??A.message,A.start,A.end)}if(y.diagnostics.length>0&&!(h&&y.sexpr!=null))throw N3(d,t,y.diagnostics[0]);if(l)ji(y.sexpr);let p;try{p=aa(y,{source:e,runtimeDelivery:r,face:i,pins:n,strict:s,script:a,browserModule:o,dataPayload:R,ambientBindings:c,repl:f,hmr:u,tolerant:h,modulePath:t,appStashSpec:m,routesUnion:S,routeParams:g})}catch(A){if(typeof A.start==="number")throw In(d,t,A.message,A.start,A.end);if(A instanceof RangeError)throw new Fe(`${t}: emitter: the program nests too deeply to emit (the engine stack was exhausted) — restructure the deepest expression or block`,{path:t});throw new Fe(`${t}: ${A.message}`,{path:t})}let k=la(p,{source:e,sourcePath:t,file:`${t}.js`}),I=null;return{parseDiagnostics:y.diagnostics,code:p.code,map:k,stores:p.stores,tokens:y.tokens??null,mappings:new pe(p.mappings),vocabulary:p.vocabulary??[],silences:p.silences??[],memberDecls:p.memberDecls??[],runtimes:p.runtimes,bindings:p.bindings,bindingNames:p.bindingNames,replResultName:p.replResultName,replImportResolver:p.replImportResolver,tsRegions:p.tsRegions,echoSpans:p.echoSpans??[],globalDecls:p.globalDecls??[],pinnables:p.pinnables,pinSpans:p.pinSpans??[],mutables:p.mutables,enums:p.enums,classDecls:p.classDecls,loopVars:p.loopVars,attrNames:p.attrNames,routeWraps:p.routeWraps,memberInits:p.memberInits,sourceKeys:p.sourceKeys,stashMembers:p.stashMembers,stashKeys:p.stashKeys,renderPairs:p.renderPairs,kinds:p.kinds,intrinsics:p.intrinsics??[],importedRefs:p.importedRefs,imports:p.imports,trivia:y.trivia??[],get declarations(){if(I===null)try{I=ca({sexpr:y.sexpr,stores:p.stores,source:e})}catch(A){throw new Fe(`${t}: ${A.message}`,{path:t})}return I}}}var ir={};Ce(ir,{__defineOwnDataProperty:()=>$3,__toPropertyKey:()=>I3});var{defineProperty:A3,getOwnPropertyNames:v3,getOwnPropertySymbols:O3}={}.constructor,I3=(e)=>{let t={[e]:0},r=v3(t);return r.length===1?r[0]:O3(t)[0]},$3=(e,t,r)=>A3(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});var sr={};Ce(sr,{abort:()=>ha,assert:()=>ua,exit:()=>ma,kind:()=>da,noop:()=>pa,p:()=>ga,pj:()=>ya,pp:()=>ba,pr:()=>Sa,raise:()=>Ra,rand:()=>Ea,sleep:()=>ka,toMatchable:()=>Na,todo:()=>Ta,warn:()=>wa,zip:()=>_a});var ha=(e)=>{if(e)console.error(e);if(typeof process<"u")process.exit(1);throw Error(e||"abort")},ua=(e,t)=>{if(!e)throw Error(t||"Assertion failed")},ma=(e)=>{if(typeof process<"u")process.exit(e||0);throw Error(`exit(${e||0}) outside a process`)},da=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e),pa=()=>{},ga=(...e)=>console.log(...e),ba=(e)=>(console.dir(e,{depth:null,colors:!0}),e),ya=(e)=>(console.log(JSON.stringify(e,null,2)),e),Sa=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,t=(s,a)=>s.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),r=(s)=>!s.includes("'")?"'"+t(s,"'")+"'":!s.includes('"')?'"'+t(s,'"').split("#{").join("\\#{")+'"':"'"+t(s,"'")+"'",i=(s)=>{if(typeof s==="symbol"){let a=Symbol.keyFor(s);return a&&e.test(a)?":"+a:r(String(s))}return e.test(s)?s:r(s)},n=(s,a)=>{if(s===null)return"null";if(s===void 0)return"undefined";let o=typeof s;if(o==="number"||o==="boolean")return String(s);if(o==="string")return r(s);if(o==="symbol"){let l=Symbol.keyFor(s);return l&&e.test(l)?":"+l:null}if(Array.isArray(s)){if(s.length===0)return"[]";let l=" ".repeat(a+1),c=" ".repeat(a),f=s.map((h)=>n(h,a+1));if(f.some((h)=>h===null))return null;return`[ +`)}}let _=Jt();_.lexer=us(t,{tolerant:h});let y;try{y=_.parse(b,{primitives:i==="ts",tolerant:h})}catch(A){if(typeof A.start!=="number")throw A;throw In(p,t,A.reason??A.message,A.start,A.end)}if(y.diagnostics.length>0&&!(h&&y.sexpr!=null))throw N3(p,t,y.diagnostics[0]);if(l)ji(y.sexpr);let m;try{m=aa(y,{source:e,runtimeDelivery:r,face:i,pins:n,strict:s,script:a,browserModule:o,dataPayload:R,ambientBindings:c,repl:f,hmr:u,tolerant:h,modulePath:t,appStashSpec:d,routesUnion:S,routeParams:g})}catch(A){if(typeof A.start==="number")throw In(p,t,A.message,A.start,A.end);if(A instanceof RangeError)throw new Fe(`${t}: emitter: the program nests too deeply to emit (the engine stack was exhausted) — restructure the deepest expression or block`,{path:t});throw new Fe(`${t}: ${A.message}`,{path:t})}let k=la(m,{source:e,sourcePath:t,file:`${t}.js`}),O=null;return{parseDiagnostics:y.diagnostics,code:m.code,map:k,stores:m.stores,tokens:y.tokens??null,mappings:new pe(m.mappings),vocabulary:m.vocabulary??[],silences:m.silences??[],memberDecls:m.memberDecls??[],runtimes:m.runtimes,bindings:m.bindings,bindingNames:m.bindingNames,replResultName:m.replResultName,replImportResolver:m.replImportResolver,tsRegions:m.tsRegions,echoSpans:m.echoSpans??[],globalDecls:m.globalDecls??[],pinnables:m.pinnables,pinSpans:m.pinSpans??[],mutables:m.mutables,enums:m.enums,classDecls:m.classDecls,loopVars:m.loopVars,attrNames:m.attrNames,routeWraps:m.routeWraps,memberInits:m.memberInits,sourceKeys:m.sourceKeys,stashMembers:m.stashMembers,stashKeys:m.stashKeys,renderPairs:m.renderPairs,kinds:m.kinds,intrinsics:m.intrinsics??[],importedRefs:m.importedRefs,imports:m.imports,trivia:y.trivia??[],get declarations(){if(O===null)try{O=ca({sexpr:y.sexpr,stores:m.stores,source:e})}catch(A){throw new Fe(`${t}: ${A.message}`,{path:t})}return O}}}var ir={};xe(ir,{__defineOwnDataProperty:()=>$3,__toPropertyKey:()=>I3});var{defineProperty:A3,getOwnPropertyNames:v3,getOwnPropertySymbols:O3}={}.constructor,I3=(e)=>{let t={[e]:0},r=v3(t);return r.length===1?r[0]:O3(t)[0]},$3=(e,t,r)=>A3(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0});var sr={};xe(sr,{abort:()=>ha,assert:()=>ua,exit:()=>da,kind:()=>ma,noop:()=>pa,p:()=>ga,pj:()=>ya,pp:()=>ba,pr:()=>Sa,raise:()=>Ra,rand:()=>Ea,sleep:()=>ka,toMatchable:()=>Na,todo:()=>Ta,warn:()=>wa,zip:()=>_a});var ha=(e)=>{if(e)console.error(e);if(typeof process<"u")process.exit(1);throw Error(e||"abort")},ua=(e,t)=>{if(!e)throw Error(t||"Assertion failed")},da=(e)=>{if(typeof process<"u")process.exit(e||0);throw Error(`exit(${e||0}) outside a process`)},ma=(e)=>e!=null?(e.constructor?.name||Object.prototype.toString.call(e).slice(8,-1)).toLowerCase():String(e),pa=()=>{},ga=(...e)=>console.log(...e),ba=(e)=>(console.dir(e,{depth:null,colors:!0}),e),ya=(e)=>(console.log(JSON.stringify(e,null,2)),e),Sa=(()=>{let e=/^[A-Za-z_$][A-Za-z0-9_$]*$/,t=(s,a)=>s.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(a,"g"),"\\"+a),r=(s)=>!s.includes("'")?"'"+t(s,"'")+"'":!s.includes('"')?'"'+t(s,'"').split("#{").join("\\#{")+'"':"'"+t(s,"'")+"'",i=(s)=>{if(typeof s==="symbol"){let a=Symbol.keyFor(s);return a&&e.test(a)?":"+a:r(String(s))}return e.test(s)?s:r(s)},n=(s,a)=>{if(s===null)return"null";if(s===void 0)return"undefined";let o=typeof s;if(o==="number"||o==="boolean")return String(s);if(o==="string")return r(s);if(o==="symbol"){let l=Symbol.keyFor(s);return l&&e.test(l)?":"+l:null}if(Array.isArray(s)){if(s.length===0)return"[]";let l=" ".repeat(a+1),c=" ".repeat(a),f=s.map((h)=>n(h,a+1));if(f.some((h)=>h===null))return null;return`[ `+l+f.join(` `+l)+` -`+c+"]"}if(o==="object"){let l=Object.getPrototypeOf(s);if(l!==Object.prototype&&l!==null)return null;let c=Object.keys(s);if(c.length===0)return"{}";let f=" ".repeat(a+1),h=" ".repeat(a),u=c.map((m)=>{let S=n(s[m],a+1);return S===null?null:i(m)+": "+S});if(u.some((m)=>m===null))return null;return`{ +`+c+"]"}if(o==="object"){let l=Object.getPrototypeOf(s);if(l!==Object.prototype&&l!==null)return null;let c=Object.keys(s);if(c.length===0)return"{}";let f=" ".repeat(a+1),h=" ".repeat(a),u=c.map((d)=>{let S=n(s[d],a+1);return S===null?null:i(d)+": "+S});if(u.some((d)=>d===null))return null;return`{ `+f+u.join(` `+f)+` -`+h+"}"}return null};return(s)=>{let a=n(s,0);if(a!==null)console.log(a);else console.dir(s,{depth:null,colors:!0});return s}})(),Ra=(e,t)=>{throw t!==void 0?new e(t):Error(e)},Ea=(e,t)=>t!==void 0?(e>t&&([e,t]=[t,e]),Math.floor(Math.random()*(t-e+1)+e)):e?Math.floor(Math.random()*e):Math.random(),ka=(e)=>new Promise((t)=>setTimeout(t,e)),Ta=(e)=>{throw Error(e||"Not implemented")},wa=(...e)=>console.warn(...e),_a=(...e)=>e[0].map((t,r)=>e.map((i)=>i[r])),Na=(e)=>{if(typeof e==="string")return e;if(e==null)return"";if(typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return String(e);if(typeof e==="symbol")return e.description||"";if(e instanceof Uint8Array||e instanceof ArrayBuffer)return new TextDecoder().decode(e instanceof Uint8Array?e:new Uint8Array(e));if(Array.isArray(e))return e.join(",");if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString)try{return e.toString()}catch{return""}return""};var fr={};Ce(fr,{SchemaDef:()=>gt,SchemaError:()=>v1,SchemaRegistry:()=>ee,__schema:()=>M3,installPersistence:()=>D3,registerCoercer:()=>C3});var $a=Symbol.for("rip.runtime.schema");if(globalThis[$a])throw Error("two copies of the Rip schema runtime loaded in one process — schemas from different copies "+"cannot see each other (separate registries, distinct SchemaError classes). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[$a]=!0;var Se=null;function D3(e){if(Se&&Se!==e)throw Error("the Rip schema persistence runtime is already installed — two different copies met in one process");Se=e}class v1 extends Error{constructor(e,t,r){super(x3(e,t));this.name="SchemaError",this.issues=e,this.schemaName=t||null,this.schemaKind=r||null}}function x3(e,t){if(!e||!e.length)return"SchemaError";return(t?t+": ":"")+e.map((i)=>i.message||i.error||"invalid").join("; ")}var Da={__proto__:null,string:(e)=>typeof e==="string",number:(e)=>typeof e==="number"&&!Number.isNaN(e),integer:(e)=>Number.isInteger(e),boolean:(e)=>typeof e==="boolean",date:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),datetime:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),email:(e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),url:(e)=>typeof e==="string"&&/^https?:\/\/.+/.test(e),uuid:(e)=>typeof e==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e),phone:(e)=>typeof e==="string"&&/^[\d\s\-+()]+$/.test(e),zip:(e)=>typeof e==="string"&&/^\d{5}(-\d{4})?$/.test(e),text:(e)=>typeof e==="string",json:(e)=>e!==void 0,any:()=>!0},cr={integer(e){if(typeof e==="number")return Number.isInteger(e)?{ok:!0,value:e}:{ok:!1};if(typeof e==="string"&&/^[+-]?\d+$/.test(e.trim()))return{ok:!0,value:parseInt(e.trim(),10)};return{ok:!1}},number(e){if(typeof e==="number")return Number.isNaN(e)?{ok:!1}:{ok:!0,value:e};if(typeof e==="string"&&/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e.trim()))return{ok:!0,value:Number(e.trim())};return{ok:!1}},boolean(e){if(typeof e==="boolean")return{ok:!0,value:e};if(e==="true"||e==="1"||e===1)return{ok:!0,value:!0};if(e==="false"||e==="0"||e===0)return{ok:!0,value:!1};return{ok:!1}},date(e){if(e instanceof Date)return Number.isNaN(e.getTime())?{ok:!1}:{ok:!0,value:e};if(typeof e==="number"&&Number.isFinite(e))return{ok:!0,value:new Date(e)};let t=typeof e==="string"?/^(\d{4})-(\d{2})-(\d{2})/.exec(e):null;if(t){let r=+t[2],i=+t[3],n=new Date(Date.UTC(+t[1],r,0)).getUTCDate();if(r<1||r>12||i<1||i>n)return{ok:!1};let s=new Date(e);if(!Number.isNaN(s.getTime()))return{ok:!0,value:s}}return{ok:!1}}};cr.datetime=cr.date;function ar(e){if(e!==null&&typeof e==="object"&&!Array.isArray(e))return null;return{field:"",error:"object",message:"input must be an object; got "+(e===null?"null":Array.isArray(e)?"an array":"a "+typeof e)}}var Dn=new Map;function C3(e,t,r){if(typeof e!=="string"||typeof t!=="function")throw Error("registerCoercer(name, fn, opts?): name string and fn required");let i=Object.prototype.toString.call(t);if(i==="[object AsyncFunction]"||i==="[object GeneratorFunction]"||i==="[object AsyncGeneratorFunction]")throw Error("registerCoercer: coercer '~:"+e+"' must be a plain synchronous function");let n=r?.raw===!0,s=Dn.get(e);if(s){if(s.raw===n&&String(s.fn)===String(t))return t;throw Error("registerCoercer: coercer '~:"+e+"' is already registered")}return Dn.set(e,{fn:t,raw:n}),t}function dt(e){if(Da[e])return null;let t=ee.get(e);return t&&(t.kind==="shape"||t.kind==="input"||t.kind==="model"||t.kind==="union")?t:null}function xn(e,t,r){let i=Da[t];if(i)return i(e)?{value:e}:{errors:[{field:"",error:"type",message:"must be "+t}]};let n=ee.get(t);if(!n)return{value:e};if(n.kind==="enum"){let a=n._validateEnum(e,!0);return a.length?{errors:[{field:"",error:"enum",message:a[0].message}]}:{value:n._materializeEnum(e)}}if(n.kind==="mixin")return{errors:[{field:"",error:"type",message:":mixin "+t+" is not usable as a field type"}]};if(n.kind==="union"){let a=n._unionResolve(e);if(a.issue)return{errors:[a.issue]};let o=r?.existing?a.def._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):a.def._runSync(e,{...r,materialize:!1,materializeNested:!1});if(o.thrown){if(r?.derived==="throw")throw o.thrown;return{errors:[{field:"",error:"derived",message:o.thrown?.message||String(o.thrown)}]}}return o.ok?{value:o.value}:{errors:o.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let s=r?.existing?n._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):n._runSync(e,{...r,materialize:!1,materializeNested:!1});if(s.thrown){if(r?.derived==="throw")throw s.thrown;return{errors:[{field:"",error:"derived",message:s.thrown?.message||String(s.thrown)}]}}return s.ok?{value:s.value}:{errors:s.errors}}async function Aa(e,t,r){let i=dt(t);if(i===null)return xn(e,t,r);if(i.kind==="union"){let s=i._unionResolve(e);if(s.issue)return{errors:[s.issue]};let a=r?.existing?await s.def._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await s.def._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(a.thrown){if(r?.derived==="throw")throw a.thrown;return{errors:[{field:"",error:"derived",message:a.thrown?.message||String(a.thrown)}]}}return a.ok?{value:a.value}:{errors:a.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let n=r?.existing?await i._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await i._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(n.thrown){if(r?.derived==="throw")throw n.thrown;return{errors:[{field:"",error:"derived",message:n.thrown?.message||String(n.thrown)}]}}return n.ok?{value:n.value}:{errors:n.errors}}function pt(e,t){if(!t)return e;return e+(t.startsWith("[")?t:"."+t)}function or(e,t,r){if(!t)return e+" "+r;if(r.startsWith(t))return e+r.slice(t.length);return e+": "+r}var lr=Symbol("schema.materialization-error");function va(e,t){if(e&&e[lr])return{[lr]:!0,error:e.error,field:pt(t,e.field)};return{[lr]:!0,error:e,field:t}}function Be(e){return e&&e[lr]?{thrown:e.error,derivedField:e.field}:{thrown:e,derivedField:""}}var P3=Je;function Oa(e){let t=(i)=>JSON.stringify(i??null,(n,s)=>s instanceof RegExp?String(s):typeof s==="function"?"":s),r=[e.kind];for(let i of e._desc.entries||[])switch(i.tag){case"field":r.push("f:"+i.name+":"+(i.typeName||"")+(i.array?"[]":"")+":"+(i.modifiers||[]).join("")+(i.literals?":"+i.literals.join(","):"")+":"+t(i.constraints)+(i.coerce?":~"+(i.coercer||""):"")+(i.transform?":t":""));break;case"enum-member":r.push("e:"+i.name+"="+String(i.value));break;case"directive":r.push("d:"+i.name+":"+t(i.args));break;case"ensure":r.push("n:"+(i.message||""));break;default:r.push(i.tag+":"+(i.name||""))}return r.join("|")}var ye=0,ee={_entries:new Map,replace:!1,register(e){if(!e.name)return;ye++;let t=this._entries.get(e.name);if(t&&t.def!==e&&!this.replace){if(Oa(t.def)!==Oa(e))throw new v1([{field:e.name,error:"collision",message:"schema name '"+e.name+"' is already registered with a different definition. Schema names are app-global (they resolve nested field types and @mixin references), so two "+"different schemas cannot share one name. Rename one — or, for dev/HMR reload semantics, set "+"SchemaRegistry.replace = true before re-evaluating modules."}],e.name,e.kind)}this._entries.set(e.name,{def:e,kind:e.kind})},get(e){let t=this._entries.get(e);return t?t.def:null},getKind(e,t){let r=this._entries.get(e);return r&&r.kind===t?r.def:null},has(e){return this._entries.has(e)},names(){return[...this._entries.keys()]},reset(){this._entries.clear(),ye++},scope(e){let t=this._entries;this._entries=new Map,ye++;let r=()=>{this._entries=t,ye++};try{let i=e();if(i&&typeof i.then==="function")return i.finally(r);return r(),i}catch(i){throw r(),i}}};class gt{constructor(e){if(e.kind==="model"&&!Se)throw Error("schema: kind 'model' needs the persistence runtime (src/runtime/orm.js), which is not "+"loaded in this process — reference a persistence name (schema.transaction, __schemaSetAdapter) "+"or import the module directly");if(this._desc=e,this.kind=e.kind,this.name=e.name||null,this._norm=null,this._klass=null,this._unionPlanCache=null,this._sourceModel=null,e.kind==="model")Se.decorateDef(this,e)}_normalize(){if(this._norm)return this._norm;let e=new Map,t=new Map,r=new Map,i=new Map,n=new Map,s=new Map,a=null,o=[],l=new Map,c=[],f=(b,_)=>{throw new v1([{field:b,error:"collision",message:b+" collides with "+_}],this.name,this.kind)},h=(b)=>{if(e.has(b))f(b,"field");if(t.has(b))f(b,"method");if(r.has(b))f(b,"computed");if(i.has(b))f(b,"derived");if(n.has(b))f(b,"hook")},u=(b)=>{throw new v1([{field:"",error:"kind",message:b+" is :model-only (this schema is :"+this.kind+")"}],this.name,this.kind)},m=this.kind==="union"?new Set(["on"]):new Set(["mixin"]),S=(b,_)=>{if(!P3(b))throw new v1([{field:b,error:"invalid-name",message:_+" name '"+b+"' is not canonical camelCase. Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters (e.g. 'mdmId' not 'mdmID')."}],this.name,this.kind)};for(let b of this._desc.entries)switch(b.tag){case"field":S(b.name,"field"),h(b.name),e.set(b.name,{name:b.name,required:b.modifiers.includes("!"),optional:b.modifiers.includes("?"),unique:b.unique===!0,primary:b.primary===!0,attrs:b.attrs||null,typeName:b.typeName,literals:b.literals||null,array:b.array===!0,coerce:b.coerce===!0,coercer:b.coercer||null,constraints:b.constraints||null,transform:b.transform||null});break;case"method":h(b.name),t.set(b.name,b.fn);break;case"computed":h(b.name),r.set(b.name,b.fn);break;case"derived":h(b.name),i.set(b.name,b.fn);break;case"hook":if(this.kind!=="model")u("lifecycle hook '"+b.name+"'");if(n.has(b.name))f(b.name,"duplicate hook");n.set(b.name,b.fn);break;case"scope":if(this.kind!=="model")u("query scope '@scope :"+b.name+"'");if(s.has(b.name))f(b.name,"scope");s.set(b.name,b.fn);break;case"defaultScope":if(this.kind!=="model")u("@defaultScope");if(a)throw new v1([{field:"",error:"collision",message:"only one @defaultScope per model"}],this.name,this.kind);a=b.fn;break;case"directive":if(this.kind!=="model"&&!m.has(b.name))throw new v1([{field:"",error:"directive",message:"unknown directive '@"+b.name+"' on :"+this.kind+" — legal here: "+[...m].map((_)=>"@"+_).join(", ")}],this.name,this.kind);o.push({name:b.name,args:b.args||[]});break;case"enum-member":l.set(b.name,b.value!==void 0?b.value:b.name);break;case"union-member":break;case"ensure":c.push({message:b.message,field:b.field||"",async:b.async===!0,fn:b.fn});break;default:throw new v1([{field:"",error:"entry",message:"unknown schema entry tag '"+b.tag+"'"}],this.name,this.kind)}if(this.kind==="shape"||this.kind==="input"||this.kind==="mixin"||this.kind==="model")Pa(this,e,o,{stack:[this.name||""],seen:new Set([this.name||""])});let g=null,d=[];if(this.kind==="union"){for(let b of o)if(b.name==="on"&&b.args?.[0]?.field)g=b.args[0].field;for(let b of this._desc.entries)if(b.tag==="union-member")d.push(b.name)}let R={fields:e,methods:t,computed:r,derived:i,hooks:n,scopes:s,defaultScope:a,directives:o,enumMembers:l,ensures:c,hasAsyncEnsures:c.some((b)=>b.async),unionOn:g,unionMembers:d};if(this.kind==="model")Se.finishModelNorm(this,R);return this._norm=R,this._norm}_unionPlan(){if(this._unionPlanCache&&this._unionPlanCache.gen===ye)return this._unionPlanCache.plan;let e=this._normalize(),t=e.unionOn;if(this.kind!=="union"||!t)throw Error("schema: '"+(this.name||"anon")+"' is not a :union");let r=new Map,i=[];for(let s of e.unionMembers){let a=ee.get(s);if(!a)throw new v1([{field:"",error:"union",message:"unknown union constituent: "+s+" (import the file that declares it)"}],this.name,this.kind);i.push(a);let o=a._normalize().fields.get(t);if(!o||o.typeName!=="literal-union"||!o.literals?.length)throw new v1([{field:t,error:"union",message:s+" must declare '"+t+"' as a string-literal type (e.g. "+t+'! "click") to join union '+(this.name||"")}],this.name,this.kind);for(let l of o.literals){if(r.has(l))throw new v1([{field:t,error:"union",message:"duplicate discriminator value "+JSON.stringify(l)+" in "+(r.get(l).name||"anon")+" and "+s}],this.name,this.kind);r.set(l,a)}}let n={disc:t,map:r,expected:[...r.keys()].join(" | "),hasAsyncEnsures:i.some((s)=>s._normalize().hasAsyncEnsures)};return this._unionPlanCache={gen:ye,plan:n},n}_unionResolve(e){let t=this._unionPlan();if(e===null||typeof e!=="object"||Array.isArray(e))return{issue:{field:t.disc,error:"union",message:"expected an object with "+t.disc}};let r=t.map.get(e[t.disc]);if(!r)return{issue:{field:t.disc,error:"union",message:"expected one of "+t.expected}};return{def:r}}_applyEagerDerived(e){let t=this._normalize();if(!t.derived.size)return;for(let[r,i]of t.derived){let n=i.call(e);Object.defineProperty(e,r,{value:n,enumerable:!0,writable:!0,configurable:!0})}}_materializeValidatedValue(e,t,r){return this._materializeNestedValues(e,t,r),this._materializeOwnValidatedValue(e,t,r)}_materializeNestedValues(e,t,r){let i=this._normalize();for(let[n,s]of i.fields){let a=dt(s.typeName);if(!a)continue;let o=e[n];if(o===void 0||o===null)continue;let l=t==null?void 0:t[n];if(s.array){if(!Array.isArray(o))continue;let c=Array(o.length);for(let f=0;f{let a=()=>({field:n.field||"",error:"ensure",message:n.message||"ensure failed"});if(n.async)i.push((async()=>{let o=!1;try{o=!!await n.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})})());else{let o=!1;try{o=!!n.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})}}),await Promise.all(i),r.sort((n,s)=>n.idx-s.idx),r.map((n)=>n.issue)}_transitiveAsync(){if(this._taGen===ye)return this._taCache;let e=new Set,t=(r)=>{if(e.has(r))return!1;e.add(r);let i=r._normalize();if(i.hasAsyncEnsures)return!0;if(r.kind==="union"){for(let n of i.unionMembers){let s=ee.get(n);if(s&&t(s))return!0}return!1}for(let n of i.fields.values()){let s=dt(n.typeName);if(s&&t(s))return!0}return!1};return this._taCache=t(this),this._taGen=ye,this._taCache}_assertSyncValidatable(e){if(!this._transitiveAsync())return;let t=this.kind!=="union"&&this._normalize().hasAsyncEnsures;throw Error("schema '"+(this.name||"anon")+"' has async refinements (@ensure!"+(t?"":" in a nested or constituent schema")+"); ."+e+"() is sync. Use parseAsync/safeAsync/okAsync instead.")}_getClass(){if(this._klass)return this._klass;let e=this._normalize(),t=this.name||"Schema",r=[...e.fields.keys()],i={[t]:class{constructor(n){if(n&&typeof n==="object"){for(let s of r)if(s in n&&n[s]!==void 0)this[s]=n[s]}}}}[t];for(let[n,s]of e.methods)Object.defineProperty(i.prototype,n,{value:s,writable:!0,enumerable:!1,configurable:!0});for(let[n,s]of e.computed)Object.defineProperty(i.prototype,n,{get:s,enumerable:!1,configurable:!0});return this._klass=i,i}_coerceDates(e){let t=this._normalize(),r=(s)=>typeof s==="string"&&/^\d{4}-\d{2}-\d{2}([T ].*)?$/.test(s),i=(s)=>{let a=/^(\d{4})-(\d{2})-(\d{2})/.exec(s),o=+a[2],l=+a[3];return o>=1&&o<=12&&l>=1&&l<=new Date(Date.UTC(+a[1],o,0)).getUTCDate()},n=(s)=>{if(!i(s))return s;let a=new Date(s);return Number.isNaN(a.getTime())?s:a};for(let[s,a]of t.fields){if(a.typeName!=="date"&&a.typeName!=="datetime")continue;let o=e[s];if(a.array&&Array.isArray(o))e[s]=o.map((l)=>r(l)?n(l):l);else if(r(o))e[s]=n(o)}}_validateFields(e,t,r,i){let n=this._normalize(),s=t?[]:null;for(let[a,o]of n.fields){if(r&&r.has(a))continue;let l=e==null?void 0:e[a];if(l===void 0||l===null){if(o.required){if(!t)return!1;s.push({field:a,error:"required",message:a+" is required"})}continue}if(o.array){if(!Array.isArray(l)){if(!t)return!1;s.push({field:a,error:"type",message:a+" must be an array"});continue}let f=o.constraints;if(f){if(f.min!=null&&l.lengthf.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must have at most "+f.max+" items"})}}if(i?.deferNested&&dt(o.typeName))continue;let h=!1,u=!1,m=Array(l.length);for(let S=0;SJSON.stringify(f)).join(", ")});continue}}else{if(i?.deferNested&&dt(o.typeName))continue;let f=xn(l,o.typeName,i);if(f.errors){if(!t)return!1;for(let h of f.errors){let u=pt(a,h.field);s.push({field:u,error:h.error,message:or(u,h.field,h.message)})}continue}if(f.value!==l)e[a]=f.value}let c=o.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be at most "+c.max+" chars"})}if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l)){if(!t)return!1;s.push({field:a,error:"pattern",message:a+" is invalid"})}}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min})}if(c.max!=null&&l>c.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be <= "+c.max})}}}}return t?s:!0}_applyDefaults(e){let t=this._normalize();for(let[r,i]of t.fields)if((e[r]===void 0||e[r]===null)&&i.constraints?.default!==void 0){let n=i.constraints.default;e[r]=typeof n==="object"&&n!==null&&!(n instanceof RegExp)?structuredClone(n):n}return e}_applyTransforms(e,t){let r=this._normalize(),i=[];for(let[n,s]of r.fields){if(!s.transform)continue;try{t[n]=s.transform(e)}catch(a){i.push({field:n,error:"transform",message:a?.message||String(a)})}}return i}_applyCoercions(e,t){let r=this._normalize(),i=[];for(let[n,s]of r.fields){if(!s.coerce)continue;let a=e[n];if(a===void 0||a===null)continue;if(s.coercer){let l=Dn.get(s.coercer);if(!l)throw Error("schema: no coercer registered for '~:"+s.coercer+"' (field '"+n+"' on "+(this.name||"anon")+"). Register it with registerCoercer('"+s.coercer+"', fn).");let c=l.raw?a:String(a).trim(),f;try{f=l.fn(c)}catch{f=null}if(f===null||f===void 0)i.push({field:n,error:"coerce",message:n+" is not a valid "+s.coercer}),t.add(n);else e[n]=f;continue}let o=cr[s.typeName]?cr[s.typeName](a):{ok:!1};if(o.ok)e[n]=o.value;else i.push({field:n,error:"coerce",message:n+" cannot be coerced to "+s.typeName}),t.add(n)}return i}_orderFieldErrors(...e){let t=new Map,r=0;for(let[i]of this._normalize().fields)t.set(i,r++);return e.flat().map((i,n)=>{let s=String(i.field||"").split(/[.[]/,1)[0];return{issue:i,seq:n,rank:t.has(s)?t.get(s):r}}).sort((i,n)=>i.rank-n.rank||i.seq-n.seq).map((i)=>i.issue)}_validateEnum(e,t){let r=this._normalize();for(let[n,s]of r.enumMembers)if(e===n||e===s)return t?[]:!0;if(!t)return!1;let i=[...r.enumMembers.keys()].join(", ");return[{field:"",error:"enum",message:(this.name||"enum")+" expected one of: "+i}]}_materializeEnum(e){let t=this._normalize();for(let[r,i]of t.enumMembers)if(e===r||e===i)return i;return e}_runSync(e,t){if(this.kind==="union"){let f=this._unionResolve(e);if(f.issue)return{ok:!1,errors:[f.issue]};let h=f.def._runSync(e,t);return h.ok?h:{...h,from:h.from||f.def}}if(this.kind==="enum"){let f=this._validateEnum(e,!0);return f.length?{ok:!1,errors:f}:{ok:!0,value:this._materializeEnum(e)}}let r=ar(e);if(r)return{ok:!1,errors:[r]};let i=e,n={...i},s=new Set,a=this._applyTransforms(i,n),o=this._applyCoercions(n,s);this._applyDefaults(n),this._coerceDates(n);let l=this._orderFieldErrors(a,o,this._validateFields(n,!0,s,t));if(l.length)return{ok:!1,errors:l};let c=t?.skipEnsures?[]:this._applyEnsures(n);if(c.length)return{ok:!1,errors:c};if(t?.materializeNested)try{this._materializeNestedValues(n,null,!1)}catch(f){return{ok:!1,errors:null,...Be(f)}}if(!t?.materialize)return{ok:!0,value:n};try{return{ok:!0,value:this._materializeOwnValidatedValue(n,null,!1)}}catch(f){return{ok:!1,errors:null,...Be(f)}}}async _runAsync(e,t){if(this.kind==="union"){let h=this._unionResolve(e);if(h.issue)return{ok:!1,errors:[h.issue]};let u=await h.def._runAsync(e,t);return u.ok?u:{...u,from:u.from||h.def}}if(this.kind==="enum")return this._runSync(e,t);let r=ar(e);if(r)return{ok:!1,errors:[r]};let i=e,n={...i},s=new Set,a=this._applyTransforms(i,n),o=this._applyCoercions(n,s);this._applyDefaults(n),this._coerceDates(n);let l=await this._validateFieldsAsync(n,s,t),c=this._orderFieldErrors(a,o,l);if(c.length)return{ok:!1,errors:c};let f=t?.skipEnsures?[]:await this._applyEnsuresAsync(n);if(f.length)return{ok:!1,errors:f};if(t?.materializeNested)try{this._materializeNestedValues(n,null,!1)}catch(h){return{ok:!1,errors:null,...Be(h)}}if(!t?.materialize)return{ok:!0,value:n};try{return{ok:!0,value:this._materializeOwnValidatedValue(n,null,!1)}}catch(h){return{ok:!1,errors:null,...Be(h)}}}async _validateFieldsAsync(e,t,r){let i=this._normalize(),n=[];for(let[s,a]of i.fields){if(t&&t.has(s))continue;let o=e[s];if(o===void 0||o===null){if(a.required)n.push({field:s,error:"required",message:s+" is required"});continue}if(a.array){if(!Array.isArray(o)){n.push({field:s,error:"type",message:s+" must be an array"});continue}let f=a.constraints;if(f?.min!=null&&o.lengthf.max)n.push({field:s,error:"max",message:s+" must have at most "+f.max+" items"});let h=Array(o.length),u=!1;for(let m=0;mJSON.stringify(f)).join(", ")})}else{let f=await Aa(o,a.typeName,r);if(f.errors)for(let h of f.errors){let u=pt(s,h.field);n.push({field:u,error:h.error,message:or(u,h.field,h.message)})}else e[s]=f.value}let l=e[s],c=a.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max)n.push({field:s,error:"max",message:s+" must be at most "+c.max+" chars"});if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l))n.push({field:s,error:"pattern",message:s+" is invalid"})}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min});if(c.max!=null&&l>c.max)n.push({field:s,error:"max",message:s+" must be <= "+c.max})}}}return n}_runExistingSync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=a.def._runExistingSync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=ar(e);if(r)return{ok:!1,errors:[r]};let i={...e},n=this._validateFields(i,!0,null,{...t,existing:!0});if(n.length)return{ok:!1,errors:n};let s=t?.skipEnsures?[]:this._applyEnsures(i);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(i,e,!0)}catch(a){return{ok:!1,errors:null,...Be(a)}}return this._finishExistingValue(e,i,t)}async _runExistingAsync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=await a.def._runExistingAsync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=ar(e);if(r)return{ok:!1,errors:[r]};let i={...e},n=await this._validateFieldsAsync(i,null,{...t,existing:!0});if(n.length)return{ok:!1,errors:n};let s=t?.skipEnsures?[]:await this._applyEnsuresAsync(i);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(i,e,!0)}catch(a){return{ok:!1,errors:null,...Be(a)}}return this._finishExistingValue(e,i,t)}_finishExistingValue(e,t,r){if(!r?.materialize)return{ok:!0,value:t};let i=this._getClass(),n=!0;for(let[a]of this._normalize().fields)if(t[a]!==e[a]){n=!1;break}if(n)return{ok:!0,value:e};let s=new i(t);try{this._applyEagerDerived(s)}catch(a){return{ok:!1,errors:null,thrown:a}}return{ok:!0,value:s}}parse(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");this._assertSyncValidatable("parse");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new v1(t.errors,r.name,r.kind)}get array(){let e=this,t=(s)=>({field:"",error:"not_array",message:"expected an array, received "+(s===null?"null":s===void 0?"undefined":typeof s==="object"?"an object with keys ["+Object.keys(s).join(", ")+"]":typeof s)}),r=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{if(l.ok)a.push(l.value);else for(let f of l.errors)o.push({...f,field:"["+c+"]"+(f.field?"."+f.field:"")})}),{value:a,errors:o}},i=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{try{a.push(e.parse(l))}catch(f){if(!(f instanceof v1))throw f;for(let h of f.issues)o.push({...h,field:"["+c+"]"+(h.field?"."+h.field:"")})}}),{value:a,errors:o}},n=async(s)=>{let a=[],o=[];for(let l=0;le.safe(l)));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},ok(s){return Array.isArray(s)&&s.every((a)=>e.ok(a))},async parseAsync(s){if(!Array.isArray(s))throw new v1([t(s)],e.name,e.kind);let{value:a,errors:o}=await n(s);if(o.length)throw new v1(o,e.name,e.kind);return a},async safeAsync(s){if(!Array.isArray(s))return{ok:!1,value:null,errors:[t(s)]};let{value:a,errors:o}=r(await Promise.all(s.map((l)=>e.safeAsync(l))));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},async okAsync(s){return Array.isArray(s)&&(await Promise.all(s.map((a)=>e.okAsync(a)))).every(Boolean)},toJSONSchema(){return{type:"array",items:e.toJSONSchema()}}}}safe(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};this._assertSyncValidatable("safe");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}ok(e){if(this.kind==="mixin")return!1;return this._assertSyncValidatable("ok"),this._runSync(e,{materialize:!1,materializeNested:!1,derived:"issue"}).ok}async parseAsync(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new v1(t.errors,r.name,r.kind)}async safeAsync(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}async okAsync(e){if(this.kind==="mixin")return!1;return(await this._runAsync(e,{materialize:!1,materializeNested:!1,derived:"issue"})).ok}pick(...e){return mt(this,(t)=>{let r=$n(e),i=new Map;for(let n of r){if(!t.has(n))throw Error("pick: unknown field '"+n+"' on "+(this.name||"schema"));i.set(n,t.get(n))}return i})}omit(...e){return mt(this,(t)=>{let r=new Set($n(e)),i=new Map;for(let[n,s]of t)if(!r.has(n))i.set(n,s);return i})}partial(){return mt(this,(e)=>{let t=new Map;for(let[r,i]of e)t.set(r,{...i,required:!1});return t})}required(...e){return mt(this,(t)=>{let r=new Set($n(e)),i=new Map;for(let[n,s]of t)i.set(n,{...s,required:r.has(n)?!0:s.required});return i})}extend(e){if(!(e instanceof gt))throw Error("extend(): argument must be a schema value");if(e.kind==="union")throw Error("extend(): :union schemas have no fields to merge");return mt(this,(t)=>{let r=new Map(t),i=e._normalize().fields;for(let[n,s]of i){if(r.has(n))throw Error("extend(): field '"+n+"' collides between "+(this.name||"schema")+" and "+(e.name||"other"));r.set(n,s)}return r})}toJSONSchema(){let e={defs:new Map,expanding:new Set},t=Ca(this,e);if(t.$schema="https://json-schema.org/draft/2020-12/schema",this.name)t.title=this.name;if(e.defs.size){t.$defs={};for(let[r,i]of e.defs)t.$defs[r]=i}return t}}var Ia={__proto__:null,string:()=>({type:"string"}),text:()=>({type:"string"}),email:()=>({type:"string",format:"email"}),url:()=>({type:"string",format:"uri"}),uuid:()=>({type:"string",format:"uuid"}),phone:()=>({type:"string",pattern:"^[\\d\\s\\-+()]+$"}),zip:()=>({type:"string",pattern:"^\\d{5}(-\\d{4})?$"}),number:()=>({type:"number"}),integer:()=>({type:"integer"}),boolean:()=>({type:"boolean"}),date:()=>({type:"string",format:"date"}),datetime:()=>({type:"string",format:"date-time"}),json:()=>({}),any:()=>({})};function L3(e,t){let r;if(e.typeName==="literal-union"&&e.literals?.length)r=e.literals.length===1?{const:e.literals[0]}:{enum:[...e.literals]};else if(Ia[e.typeName])r=Ia[e.typeName]();else{let n=ee.get(e.typeName);r=n?xa(n,t):{}}let i=e.constraints;if(i&&!e.array){if(r.type==="string"){if(i.min!=null)r.minLength=i.min;if(i.max!=null)r.maxLength=i.max;if(i.regex)r.pattern=i.regex.source}else if(r.type==="number"||r.type==="integer"){if(i.min!=null)r.minimum=i.min;if(i.max!=null)r.maximum=i.max}}if(e.array){if(r={type:"array",items:r},i){if(i.min!=null)r.minItems=i.min;if(i.max!=null)r.maxItems=i.max}}if(i&&i.default!==void 0)r.default=i.default;if(e.coerce)r.description=((r.description?r.description+" ":"")+"Coerced from wire data ("+(e.coercer?"~:"+e.coercer:"~"+e.typeName)+").").trim();if(e.transform)r.description=((r.description?r.description+" ":"")+"Derived via transform; the raw input may use different keys.").trim();return r}function xa(e,t){let r=e.name||"Anon";if(!t.defs.has(r)&&!t.expanding.has(r))t.expanding.add(r),t.defs.set(r,null),t.defs.set(r,Ca(e,t)),t.expanding.delete(r);return{$ref:"#/$defs/"+r}}function Ca(e,t){let r=e._normalize();if(e.kind==="enum")return{enum:[...new Set(r.enumMembers.values())]};if(e.kind==="union"){let a=e._unionPlan();return{oneOf:r.unionMembers.map((l)=>{let c=ee.get(l);return c?xa(c,t):{}}),discriminator:{propertyName:a.disc}}}let i={},n=[];for(let[a,o]of r.fields)if(i[a]=L3(o,t),o.required&&o.constraints?.default===void 0)n.push(a);if(e.kind==="model")Se.jsonSchemaModelColumns(e,i);let s={type:"object",properties:i};if(n.length)s.required=n;if(r.ensures.length)s.description="Refinements (not expressible in JSON Schema): "+r.ensures.map((a)=>a.message).join("; ")+".";return s}function $n(e){let t=[];for(let r of e)if(Array.isArray(r))for(let i of r)t.push(i);else t.push(r);return t}function mt(e,t){if(e.kind==="union")throw Error("schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead");if(e.kind==="enum")throw Error("schema algebra is not supported on :enum — an enum has no field set");let r=e.kind==="model"?Se.projectableFields(e):e._normalize().fields,i=t(r),n=[];for(let[,o]of i){let l=[];if(o.required)l.push("!");if(o.optional&&!o.required)l.push("?");n.push({tag:"field",name:o.name,modifiers:l,unique:o.unique===!0,primary:o.primary===!0,attrs:o.attrs||null,typeName:o.typeName,array:o.array,literals:o.literals||null,coerce:o.coerce===!0,coercer:o.coercer||null,constraints:o.constraints,transform:o.transform||null})}let s=(e.name||"Schema")+"Derived",a=new gt({kind:"shape",name:s,entries:n});return a._sourceModel=e._sourceModel||(e.kind==="model"?e:null),a}function Pa(e,t,r,i){for(let n of r){if(n.name!=="mixin"||!n.args||!n.args[0])continue;let s=n.args[0].target;if(!s)continue;if(i.stack.includes(s))throw new v1([{field:"",error:"mixin-cycle",message:"mixin cycle: "+i.stack.concat(s).join(" -> ")}],e.name,e.kind);if(i.seen.has(s))continue;let a=ee.getKind(s,"mixin");if(!a)throw new v1([{field:"",error:"mixin-missing",message:"unknown mixin: "+s}],e.name,e.kind);i.seen.add(s),i.stack.push(s);let o=a._desc.entries.filter((l)=>l.tag==="directive"&&l.name==="mixin").map((l)=>({name:l.name,args:l.args||[]}));Pa(e,t,o,i);for(let l of a._desc.entries){if(l.tag!=="field")continue;if(t.has(l.name))throw new v1([{field:l.name,error:"mixin-collision",message:l.name+" from mixin "+s+" collides with existing field"}],e.name,e.kind);if(e.kind!=="model"&&(l.unique===!0||l.attrs))throw new v1([{field:l.name,error:"mixin-persistence",message:l.name+" from mixin "+s+" carries persistence metadata (@unique/attrs) — :model-only; a :"+e.kind+" cannot include it"}],e.name,e.kind);t.set(l.name,{name:l.name,required:l.modifiers.includes("!"),optional:l.modifiers.includes("?"),unique:l.unique===!0,attrs:l.attrs||null,typeName:l.typeName,literals:l.literals||null,array:l.array===!0,coerce:l.coerce===!0,coercer:l.coercer||null,constraints:l.constraints||null,transform:l.transform||null})}i.stack.pop()}}function M3(e){let t=new gt(e);if(t.name)ee.register(t);return t}if(typeof globalThis<"u")globalThis.__ripSchema=globalThis.__ripSchema||{},globalThis.__ripSchema.SchemaRegistry=ee;var gr={};Ce(gr,{__batch:()=>L1,__catchErrors:()=>ue,__computed:()=>H1,__detachRef:()=>Cn,__effect:()=>$1,__handleError:()=>te,__ownerFrame:()=>yt,__popOwner:()=>Y1,__pushOwner:()=>le,__readonly:()=>fe,__setEffectErrorReporter:()=>j3,__setErrorHandler:()=>he,__state:()=>_1,getEffectSignal:()=>ce});var Ma=Symbol.for("rip.runtime.reactive");if(globalThis[Ma])throw Error("two copies of the Rip reactive runtime loaded in one process — states from different copies "+"cannot notify each other (separate dependency graphs, separate effect queues). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ma]=!0;var N1=null,dr=[],Ue={buckets:[],size:0,low:0,add(e){let t=e.depth,r=this.buckets[t];if(r===void 0)r=this.buckets[t]=new Set;if(r.has(e))return;if(r.add(e),this.size++,tconsole.error(e,t);function j3(e){let t=bt;return bt=e,t}function ja(){try{while(Ue.size>0){let e=Ue.shift();if(!e._disposed)e.run()}}catch(e){throw Ue.clear(),e}}var Fa={valueOf(){return this.value},toString(){return String(this.value)},[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}};function _1(e){if(e!=null&&typeof e==="object"&&typeof e.read==="function")return e;let t=e,r=new Set,i=!1,n=!1,s=!1,a=()=>{if(N1&&typeof N1.markDirty==="function"&&N1.dependencies.has(r))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency")},o=()=>{for(let f of dr)f.writtenSignals.add(r)},l=()=>{i=!0;try{for(let f of r)if(f.markDirty)f.markDirty(!0);else f._hard=!0,Ue.add(f);if(!mr)ja()}finally{i=!1}},c={get value(){if(s)return t;if(N1?.writtenSignals&&dr.some((f)=>f.writtenSignals.has(r)))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");if(N1)r.add(N1),N1.dependencies.add(r);return t},set value(f){if(s||n||f===t)return;if(a(),i)return;o(),t=f,l()},read(){return t},touch(){if(s)return;if(a(),i)return;o(),l()},lock(){return n=!0,c},free(){return r.clear(),c},kill(){return s=!0,r.clear(),t},...Fa};return c}var hr=0,La=1,ur=2;function Ba(e){let t=N1;N1=null;try{for(let[r,i]of e.computedDeps)if(r.value,r.version!==i)return!0;return!1}finally{N1=t}}function H1(e){let t,r=ur,i=new Set,n=!1,s=!1,a=!1,o={dependencies:new Set,computedDeps:new Map,writtenSignals:new Set,version:0,markDirty(l){if(s||n)return;if(a)throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");let c=r;if(l)r=ur;else if(r===hr)r=La;if(c!==hr)return;for(let f of i)if(f.markDirty)f.markDirty(!1);else Ue.add(f)},get value(){if(s)return t;if(N1&&N1!==o)i.add(N1),N1.dependencies.add(i),N1.computedDeps.set(o,-1);if(a)throw Error("reactive runtime: computed value read during its own evaluation — "+"recursive computed reads are not supported");if(r===La&&!n)r=Ba(o)?ur:hr;if(r===ur&&!n){for(let c of o.dependencies)c.delete(o);o.dependencies.clear(),o.computedDeps.clear();let l=N1;o.writtenSignals.clear(),N1=o,dr.push(o),a=!0;try{let c=e();if(c!==t)o.version++;t=c,r=hr}finally{a=!1,dr.pop(),o.writtenSignals.clear(),N1=l}}if(N1&&N1!==o)N1.computedDeps.set(o,o.version);return t},read(){return t},lock(){return n=!0,o.value,o},free(){for(let l of o.dependencies)l.delete(o);return o.dependencies.clear(),o.computedDeps.clear(),i.clear(),o},kill(){s=!0;let l=t;return o.free(),l},...Fa};return o}function $1(e){let t=null,r=0,i=j1,n={depth:i?i.depth+1:0,dependencies:new Set,computedDeps:new Map,_hard:!0,_disposed:!1,signal:null,run(){if(n._disposed)return;let a=n._hard;if(n._hard=!1,!a&&!Ba(n))return;if(t)try{t.abort()}catch{}t=typeof AbortController<"u"?new AbortController:null,n.signal=t?t.signal:null;let o=++r;if(n._cleanup)n._cleanup(),n._cleanup=null;for(let f of n.dependencies)f.delete(n);n.dependencies.clear(),n.computedDeps.clear();let l=N1;N1=n;let c=j1;j1=i;try{let f=e();if(typeof f==="function")n._cleanup=f;else if(f&&typeof f.then==="function")f.then((h)=>{if(o!==r||n._disposed){if(typeof h==="function")try{h()}catch(u){bt("[Rip] superseded async cleanup error:",u)}return}if(typeof h==="function")n._cleanup=h},(h)=>{if(h&&h.name==="AbortError")return;if(o!==r||n._disposed)return;bt("[Rip] async effect error:",h)})}finally{N1=l,j1=c}},dispose(){if(n._disposed)return;if(n._disposed=!0,Ue.delete(n),t)try{t.abort()}catch{}if(n._cleanup)n._cleanup(),n._cleanup=null;for(let a of n.dependencies)a.delete(n);n.dependencies.clear()}};try{n.run()}catch(a){throw n.dispose(),a}let s=()=>n.dispose();if(j1)j1.add(s);return s}function L1(e){if(mr)return e();mr=!0;try{return e()}finally{mr=!1,ja()}}function yt({nested:e=!0}={}){let t=[],r=null,n={depth:j1?j1.depth+1:0,get disposed(){return t===null},get size(){return t===null?0:t.length},add(s){if(t===null)s();else t.push(s)},remove(s){if(t===null)return;let a=t.indexOf(s);if(a>=0)t.splice(a,1)},dispose(){if(t===null)return;let s=t;if(t=null,r!==null){let a=r;r=null,a()}for(let a of s)try{a()}catch(o){bt("[Rip] effect disposer error:",o)}}};if(e&&j1){let s=j1;s.add(n.dispose),r=()=>s.remove(n.dispose)}return n}function le(e){let t={frame:e,prev:j1};return j1=e,t}function Y1(e){if(!e||typeof e!=="object"||!("frame"in e))throw Error("reactive runtime: __popOwner takes the token the matching __pushOwner returned");if(j1!==e.frame)throw Error("reactive runtime: __popOwner out of order — the frame being popped is not the current owner "+"(an inner push was not popped, or this token was already popped)");j1=e.prev}function ce(){return N1?N1.signal:null}function fe(e){return Object.freeze({value:e})}function Cn(e,t){if(e&&typeof e.read==="function"&&e.read()===t)e.value=null}var pr=null;function he(e){let t=pr;return pr=e,t}function te(e){if(pr)try{pr(e)}catch(t){console.error("Error in error handler:",t),console.error("Original error:",e)}else throw e}function ue(e){return function(...t){try{return e.apply(this,t)}catch(r){te(r)}}}var Et={};Ce(Et,{__Component:()=>ro,__claimGateConstructor:()=>Un,__clsx:()=>Er,__detach:()=>Rr,__detachRef:()=>Cn,__gateBind:()=>rc,__handleComponentError:()=>Mn,__hmrClassify:()=>Rt,__hmrEmit:()=>ke,__hmrEntries:()=>jn,__hmrEvents:()=>W3,__hmrLookup:()=>F3,__hmrMigrateDiff:()=>qa,__hmrMigrateRemount:()=>Y3,__hmrPatch:()=>Bn,__hmrPreserveState:()=>kr,__hmrRegisterDefinition:()=>St,__hmrRegistry:()=>Ee,__hmrRestoreUi:()=>Tr,__hmrSnapshotUi:()=>Fn,__lis:()=>eo,__ownerFrame:()=>yt,__popComponent:()=>Re,__popOwner:()=>Y1,__pushComponent:()=>Ve,__pushOwner:()=>le,__reconcile:()=>J3,__style:()=>to,__transition:()=>Q3,getContext:()=>q3,hasContext:()=>X3,setContext:()=>z3});var Ka=Symbol.for("rip.runtime.components");if(globalThis[Ka])throw Error("two copies of the Rip component runtime loaded in one process — components from different "+"copies cannot see each other (separate component stacks: context, parent chains, and error boundaries silently break across copies). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ka]=!0;var re=null,Ya={},yr=null,za=new WeakMap,Ua=!1,Ee=new Map;function Pn(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;rn.has(c)),o=i.filter((c)=>!n.has(c)),l=r.filter((c)=>!s.has(c));return{kept:a,added:o,removed:l}}var Sr=[],V3=64;function ke(e,t={}){let r={type:e,at:Date.now(),...t};if(Sr.push(r),Sr.length>V3)Sr.shift();if(typeof window<"u"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function")try{window.dispatchEvent(new CustomEvent("rip:hmr",{detail:r}))}catch{}return r}function W3(){return Sr.slice()}function kr(e,t){let r=e?.constructor?.__hmrSig,i=t?.constructor?.__hmrSig,n=r?.state,s=i?.state,a=qa(r,i);if(!Array.isArray(n)||!Array.isArray(s))return ke("migrate",{id:t?.constructor?.__hmrId??null,...a,copied:[]}),a;let o=new Set(n),l=[];for(let f of s){if(!o.has(f))continue;let h=e[f],u=t[f];if(h!=null&&u!=null&&typeof h==="object"&&typeof u==="object"&&"value"in h&&"value"in u)u.value=h.value,l.push(f)}let c=t?.constructor?.__hmrId??e?.constructor?.__hmrId??null;return ke("migrate",{id:c,...a,copied:l}),{...a,copied:l}}var Xa=["name","type","placeholder"];function Ja(e){let t=(i)=>typeof e[i]==="string"&&e[i]?e[i]:null,r={tag:e.tagName??null};for(let i of Xa)r[i]=t(i);return r.label=typeof e.getAttribute==="function"?e.getAttribute("aria-label"):null,r.value=typeof e.value==="string"?e.value:null,r}function Ln(e,t,r){if(!e||!t)return!1;let i=Ja(e);for(let n of["tag",...Xa,"label"])if(i[n]!==t[n])return!1;return!r||t.value==null||i.value===t.value}function H3(e){let t=Ja(e),r=typeof e.id==="string"&&e.id?e.id:null,i=[],n=e;while(n&&n!==document.body){let s=n.parentElement??n.parentNode??null;if(!s||!s.children)return{identity:t,id:r,path:null};i.unshift(Array.prototype.indexOf.call(s.children,n)),n=s}return{identity:t,id:r,path:n===document.body?i:null}}function G3(e){let t=e.active;if(t&&t.isConnected!==!1&&typeof document.contains==="function"&&document.contains(t))return t;let r=e.locator;if(!r)return null;if(r.id&&typeof document.getElementById==="function"){let o=document.getElementById(r.id);if(Ln(o,r.identity,!1))return o}if(!Array.isArray(r.path)||r.path.length===0)return null;let i=document.body;for(let o of r.path.slice(0,-1))if(i=i?.children?.[o]??null,!i)return null;let n=Array.from(i.children??[]),s=n[r.path[r.path.length-1]]??null;if(Ln(s,r.identity,!0))return s;let a=n.filter((o)=>Ln(o,r.identity,!0));return a.length===1?a[0]:null}function Fn(){if(typeof document>"u")return null;let e=document.activeElement,t=e&&e!==document.body&&e!==document.documentElement?e:null,r=null;if(t&&typeof t.selectionStart==="number")r={start:t.selectionStart,end:t.selectionEnd,direction:t.selectionDirection};return{active:t,locator:t?H3(t):null,selection:r,scrollX:typeof window<"u"?window.scrollX:0,scrollY:typeof window<"u"?window.scrollY:0}}function Tr(e){if(!e||typeof document>"u")return;if(typeof window<"u")window.scrollTo(e.scrollX??0,e.scrollY??0);let t=G3(e);if(!t||typeof t.focus!=="function")return;try{if(t.focus({preventScroll:!0}),e.selection&&typeof t.setSelectionRange==="function")t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??"none")}catch{}}function Za(e,t){let r=e.constructor?.__hmrId;if(typeof r==="string"&&r)Ee.get(r)?.instances.delete(e);Object.setPrototypeOf(e,t.prototype),Object.defineProperty(e,"constructor",{value:t,writable:!0,configurable:!0}),St(t),Ee.get(t.__hmrId)?.instances.add(e)}function Bn(e,t){if(!e||!t)throw Error("__hmrPatch requires a living instance and a replacement constructor");let r=e.constructor?.__hmrId;return Za(e,t),e._hmrRerender(),ke("patch",{id:t.__hmrId??r??null}),e}function Qa(e){return Object.keys(e).sort().join(",")}function K3(e,t){let r=re?._hmrOrphans;if(!r||r.length===0)return null;let i=e.__hmrId;if(typeof i!=="string")return null;let n=Qa(t),s=null;for(let a of r){if(a._state!=="mounted"||a.constructor.__hmrId!==i||a._hmrPropKeys!==n)continue;if(s)return null;s=a}if(!s||Rt(s.constructor,e)!=="patch")return null;if(r.splice(r.indexOf(s),1),s.constructor!==e)Za(s,e);s._hmrRelease();try{s._hmrApplyProps(t)}catch(a){throw s._teardown({state:"failed",hooks:!1,removeDOM:!0}),a}if(!s._hmrRebind())return null;return s}function Y3(e,t,r={}){let i=new t(r);return kr(e,i),i}function Un(){if(Ua)throw Error("[Rip] the render-gate construction capability is already claimed");return Ua=!0,(e,t)=>{let r=yr;yr={brand:Ya,component:e,gates:t.gates,parent:t.parent??null,stash:t.stash??null,router:t.router??null,used:!1};try{return new e({})}finally{yr=r}}}function Rr(e){if(!e||e.nodeType===11)return;if(typeof e.remove==="function")e.remove();else if(e.parentNode)e.parentNode.removeChild(e)}function Ve(e){let t=re;if(e&&e._parent==null&&t&&t!==e)e._parent=t;return re=e,t}function Re(e){re=e}function z3(e,t){if(!re)throw Error("setContext must be called during component initialization");if(!re._context)re._context=new Map;re._context.set(e,t)}function q3(e){let t=re,r=new Set;while(t&&!r.has(t)){if(r.add(t),t._context&&t._context.has(e))return t._context.get(e);t=t._parent}throw Error(`getContext: no provider for context ${JSON.stringify(e)} in this component's parent chain — `+"offer it from an ancestor, or probe with hasContext(key) where absence is legal")}function X3(e){let t=re,r=new Set;while(t&&!r.has(t)){if(r.add(t),t._context&&t._context.has(e))return!0;t=t._parent}return!1}function Er(...e){let t="";for(let r of e){if(!r)continue;if(typeof r==="string")t&&(t+=" "),t+=r;else if(typeof r==="object"){if(Array.isArray(r)){let i=Er(...r);i&&(t&&(t+=" "),t+=i)}else for(let i in r)if(r[i])t&&(t+=" "),t+=i}}return t}function eo(e){let t=e.length;if(t===0)return[];let r=[],i=[],n=Array(t).fill(-1);for(let o=0;o>1;if(r[f]0)n[o]=i[l-1]}let s=[],a=i[r.length-1];for(let o=r.length-1;o>=0;o--)s.push(a),a=n[a];return s.reverse(),s}function J3(e,t,r,i,n,s,...a){let o=e.parentNode;if(!o)return;let l=t.keys,c=t.items||[],f=t.blocks,h=l.length,u=r.length,m=Array(u),S=s!=null,g=S?r.map((y,p)=>s(y,p)):r;if(S){let y=new Set;for(let p of g){if(y.has(p))throw Error(`__reconcile: duplicate key ${JSON.stringify(String(p))} — keyed rows need unique keys `+"(the key function must be injective over the items)");y.add(p)}}if(h===0){if(u>0){let y=document.createDocumentFragment();for(let p=0;p=d&&_>=d&&l[b]===g[_]){let y=f[b];if(!y._s)y.p(i,r[_],_,...a);m[_]=y,b--,_--}if(d>_)for(let y=d;y<=b;y++)f[y].d(!0);else if(d>b){let y=_+1=d;x--){let O=m[x];if(!I.has(x-d))O.m(o,A);A=O._first}}t.keys=S?g:r.slice(),t.items=r.slice(),t.blocks=m}var Va=!1;function Z3(){if(Va)return;Va=!0;let e=document.createElement("style");e.textContent=[".fade-enter-active,.fade-leave-active{transition:opacity .2s ease}",".fade-enter-from,.fade-leave-to{opacity:0}",".slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}",".slide-enter-from{opacity:0;transform:translateY(-8px)}",".slide-leave-to{opacity:0;transform:translateY(8px)}",".scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}",".scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}",".blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}",".blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}",".fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}",".fly-enter-from{opacity:0;transform:translateY(-20px)}",".fly-leave-to{opacity:0;transform:translateY(20px)}"].join(""),document.head.appendChild(e)}function Q3(e,t,r,i){Z3();let n=e.classList,s=t+"-"+r+"-from",a=t+"-"+r+"-active",o=t+"-"+r+"-to",l=!1,c=null;n.add(s,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{n.remove(s),n.add(o);let f=(u)=>{if(l||u&&u.target!==e)return;if(l=!0,clearTimeout(c),e.removeEventListener("transitionend",f),e.removeEventListener("transitioncancel",f),n.remove(a,o),i)i()};e.addEventListener("transitionend",f),e.addEventListener("transitioncancel",f);let h=0;try{let u=getComputedStyle(e),m=(S)=>Math.max(0,...String(S).split(",").map((g)=>(parseFloat(g)||0)*(/ms\s*$/.test(g.trim())?1:1000)));h=m(u.transitionDuration)+m(u.transitionDelay)}catch{}c=setTimeout(()=>f(),h+50)})})}function ec(e){let t=e!=null&&typeof e==="object"?e.name:null;if(t==="GateFailure"||t==="ComponentFailure")return e;let r=Error(e!=null&&e.message!==void 0?e.message:String(e));r.name="ComponentFailure";let i=e!=null?e.status??e.response?.status:void 0;if(i!==void 0)r.status=i;return r.error=e,r}function Mn(e,t){let r=ec(e),i=t,n=new Set;while(i&&!n.has(i)){if(n.add(i),i.onError){let s=Ve(i),a=le(i._frame);try{i.onError(r,t);return}catch(o){}finally{Y1(a),Re(s)}}i=i._parent}throw e}var Wa=new WeakSet;function tc(e,t){if(Wa.has(e))return;let r=e.__props??[];if(!Array.isArray(r))throw Error(`${e.name||"component"}: static __props must be an array of declared prop names`);for(let i of r){if(typeof i!=="string"||i.length===0)throw Error(`${e.name||"component"}: static __props entries must be non-empty strings`);if(i.startsWith("_"))throw Error(`${e.name||"component"}: declared prop '${i}' collides with component internals — `+"underscore-prefixed names are reserved for the runtime");if(i in t)throw Error(`${e.name||"component"}: declared prop '${i}' collides with a component member (a method or lifecycle slot already answers '${i}')`)}Wa.add(e)}function rc(e,t){let i=za.get(e)?.gates?.[t];if(!i?.cell)throw Error(`[Rip] render gate ${t} has no renderer-resolved source binding — `+"gated components may only be constructed by rip/app createRenderer()");let n=i.value,s=!0;return H1(()=>{if(s)return s=!1,i.cell.read(),n;let a=i.cell.read();for(let o of i.tail){if(a==null)break;a=a[o]}if(a!=null)n=a;return n})}var br=new WeakMap;function Ha(e,t,r){if(t.startsWith("--")&&typeof e.setProperty==="function")if(r==null||r==="")e.removeProperty(t);else e.setProperty(t,String(r));else e[t]=r}function to(e,t){let r=br.get(e);if(t==null){e.removeAttribute("style"),br.delete(e);return}if(typeof t!=="object"){e.setAttribute("style",String(t)),br.delete(e);return}if(r){for(let i of r)if(!(i in t))Ha(e.style,i,"")}br.set(e,Object.keys(t));for(let i of Object.keys(t))Ha(e.style,i,t[i])}function Ga(e,t){let r=e.__props??[],i=e.__extends??null,n=null;for(let s of Object.keys(t)){if(s==="children")continue;if(s.startsWith("__bind_")&&s.endsWith("__")){let a=s.slice(7,-2);if(r.includes(a))continue;throw Error(`${e.name||"component"}: cannot bind unknown prop '${a}' — declared `+`props are [${r.join(", ")}]`)}if(r.includes(s))continue;if(i!==null){(n??={})[s]=t[s];continue}throw Error(`${e.name||"component"}: unknown prop '${s}' — declared props are `+`[${r.join(", ")}]`)}return n}class ro{constructor(e={}){let t=K3(this.constructor,e);if(t)return t;this._state="new",tc(this.constructor,this);let r=this.constructor.__gates,i=yr,n=i?.brand===Ya&&i.component===this.constructor&&i.used!==!0;if(n)i.used=!0;if(r?.length&&!n)throw Error("[Rip] component declares render gates (<~) and cannot be constructed directly or as an embedded child; render gates are honored only by rip/app createRenderer()");if(n){if(za.set(this,i),i.parent)this._parent=i.parent;if(i.stash!=null)this.stash=i.stash;if(i.router!=null)this.router=i.router,Object.defineProperty(this,"params",{get:()=>i.router.params,configurable:!0}),Object.defineProperty(this,"query",{get:()=>i.router.query,configurable:!0})}if(this.stash==null&&globalThis.__ripStash!=null)this.stash=globalThis.__ripStash;if(this.router==null&&globalThis.__ripRouter!=null)this.router=globalThis.__ripRouter;let s=Ga(this.constructor,e);if("children"in e)this.children=e.children;if(this.constructor.__hmrId)this._hmrPropKeys=Qa(e);if(this.constructor.__extends!=null)this._rest=s??{},this.rest=_1(this._rest);this._frame=yt({nested:!1});let a=Ve(this),o=le(this._frame);try{this._init(e)}catch(l){Y1(o),Re(a),this._teardown({state:"failed",hooks:!1,removeDOM:!0}),this._initFailed=!0,Mn(l,this);return}if(Y1(o),Re(a),this.constructor.__hmrId)B3(this)}_init(e){}_updateProp(e,t){if(this._state==="failed"||this._state==="unmounted")return;let r=this.constructor.__props??[];if(!r.includes(e)){if(this.constructor.__extends){this._setRestProp(e,t);return}throw Error(`${this.constructor.name||"component"}: cannot update unknown prop '${e}' — declared `+`props are [${r.join(", ")}]`)}let i=this[e];if(i&&typeof i==="object"&&"value"in i){i.value=t;return}throw Error(`${this.constructor.name||"component"}: prop '${e}' is non-reactive — parent updates `+"cannot reach it (declare it with ':=' to receive updates)")}_setRestProp(e,t){if(e.startsWith("__bind_"))return;if(this._state==="failed"||this._state==="unmounted")return;if(this._rest||(this._rest={}),t==null)delete this._rest[e];else this._rest[e]=t;this.rest.touch();let r=le(this._frame);try{this._applyInheritedProp(this._inheritedEl,e,t)}finally{Y1(r)}}_applyRestToInheritedEl(){if(this._state==="failed"||this._state==="unmounted")return;if(!this._inheritedEl||!this._rest)return;for(let e in this._rest)this._applyInheritedProp(this._inheritedEl,e,this._rest[e])}_applyInheritedProp(e,t,r){if(this._state==="failed"||this._state==="unmounted")return;if(!e||t==="key"||t==="ref"||t==="children"||t.startsWith("__bind_"))return;let i=this._restWriters?.[t];if(i){if(i(),this._frame)this._frame.remove(i);delete this._restWriters[t]}if(r!=null&&typeof r==="object"&&typeof r.read==="function"){(this._restWriters??={})[t]=$1(()=>{this._applyPlainInheritedProp(e,t,r.value)});return}this._applyPlainInheritedProp(e,t,r)}_applyPlainInheritedProp(e,t,r){if(t[0]==="@"){let i=t.slice(1).split(".")[0];this._restHandlers||(this._restHandlers={});let n=this._restHandlers[t];if(n)e.removeEventListener(i,n);if(typeof r==="function"){let s=(a)=>L1(()=>r(a));this._restHandlers[t]=s,e.addEventListener(i,s)}else delete this._restHandlers[t];return}if(t==="class"||t==="className"){if(e instanceof SVGElement)e.setAttribute("class",Er(r));else e.className=Er(r);return}if(t==="style"){to(e,r);return}if(t==="innerHTML"||t==="textContent"||t==="innerText"){e[t]=r??"";return}if(t in e&&!t.includes("-")){e[t]=r;return}if(r==null||r===!1){e.removeAttribute(t);return}if(r===!0){e.setAttribute(t,"");return}e.setAttribute(t,r)}_beginMount(){if(this._state==="new"){this._state="mounting";return}let e=this.constructor.name||"component";if(this._state==="mounting")throw Error(`${e}: cannot mount an instance whose mount is already in progress`);if(this._state==="mounted")throw Error(`${e}: cannot mount an already-mounted instance — construct a new instance for another target`);if(this._state==="failed")throw Error(`${e}: cannot mount a failed instance — its mount rolled back; construct a new instance`);throw Error(`${e}: cannot mount an unmounted instance — its effects were disposed on unmount; construct a new instance`)}_mountCreate(){this._beginMount();let e=Ve(this),t=le(this._frame),r=null,i=!1;try{this._root=this._create()}catch(n){r=n,i=!0}finally{Y1(t),Re(e)}if(i)return this._failMount(r),!1;return!0}_mountSetup(e=null){if(this._state!=="mounting")return this._nodes?.[0]??this._root;let t=Ve(this),r=le(this._frame),i=null,n=!1;try{if(e){let s=this._nodes?.[0]??this._root;if(s?.parentNode)s.parentNode.insertBefore(e,s)}if(this.beforeMount)this.beforeMount();if(this._setup)this._setup();if(this.mounted)this.mounted();this._state="mounted",Rr(e),this._hmrDrainOrphans((s,a)=>console.error(`[Rip] ${s} error:`,a))}catch(s){i=s,n=!0}finally{Y1(r),Re(t)}if(n)return this._failMount(i),e;return this._nodes?.[0]??this._root}_failMount(e){this._teardown({state:"failed",hooks:!1,removeDOM:!0}),Mn(e,this)}_dispose(e,t){if(this._children){for(let r of this._children)try{t(r)}catch(i){e("child teardown",i)}this._children=null}try{this._frame?.dispose()}catch(r){e("owner disposal",r)}if(this._restWriters){for(let r of Object.values(this._restWriters))try{r()}catch(i){e("rest writer cleanup",i)}this._restWriters=null}if(this._restHandlers){if(this._inheritedEl)for(let[r,i]of Object.entries(this._restHandlers))try{this._inheritedEl.removeEventListener(r.slice(1).split(".")[0],i)}catch(n){e("rest handler cleanup",n)}this._restHandlers=null}if(this._refCleanups){let r=this._refCleanups;this._refCleanups=null;try{L1(()=>{for(let i of r)try{i()}catch(n){e("ref cleanup",n)}})}catch(i){e("ref cleanup batch flush",i)}}this._children=null,this._refCleanups=null,this._restWriters=null,this._restHandlers=null}_detachDOM(e,t){if(t)if(this._nodes)for(let r of this._nodes)try{Rr(r)}catch(i){e("DOM detach",i)}else try{Rr(this._root)}catch(r){e("DOM detach",r)}this._root=null,this._nodes=null,this._inheritedEl=null}_teardown({state:e,hooks:t,removeDOM:r}){if(this._state==="failed"||this._state==="unmounted")return;if(this.constructor.__hmrId)U3(this);this._state=e;let i=(n,s)=>console.error(`[Rip] ${n} error:`,s);if(this._hmrDrainOrphans(i),t)try{if(this.beforeUnmount)this.beforeUnmount()}catch(n){i("beforeUnmount",n)}if(this._dispose(i,(n)=>{if(t)n.unmount({removeDOM:r});else n._teardown({state:n._state==="mounted"?"unmounted":"failed",hooks:!1,removeDOM:!0})}),t)try{if(this.unmounted)this.unmounted()}catch(n){i("unmounted",n)}this._detachDOM(i,r),this._target=null}_hmrRelease(){let e=(t,r)=>console.error(`[Rip] ${t} error:`,r);try{if(this.beforeUnmount)this.beforeUnmount()}catch(t){e("beforeUnmount",t)}this._hmrOrphans=[],this._hmrReleasing=!0;try{this._dispose(e,(t)=>t.unmount({removeDOM:!0}))}finally{this._hmrReleasing=!1}this._detachDOM(e,!0),this._frame=yt({nested:!1}),this._state="new"}_hmrRebind(){let e=(i,n)=>console.error(`[Rip] ${i} error:`,n),t=Ve(this),r=le(this._frame);try{if(typeof this._hmrRefreshComputeds==="function")this._hmrRefreshComputeds();if(typeof this._hmrBindEffects==="function")this._hmrBindEffects()}catch(i){return Y1(r),Re(t),e("hmr rebind",i),this._failMount(i),!1}return Y1(r),Re(t),!0}_hmrApplyProps(e){let t=Ga(this.constructor,e);if("children"in e)this.children=e.children;for(let r of this.constructor.__props??[]){let i=`__bind_${r}__`;if(i in e){this[r]=e[i];continue}if(!(r in e))continue;let n=e[r];if(n!=null&&typeof n==="object"&&typeof n.read==="function")this[r]=n;else this._updateProp(r,n)}if(this.constructor.__extends!=null)this._rest=t??{},this.rest.value=this._rest}_hmrDrainOrphans(e){let t=this._hmrOrphans;if(!t)return;this._hmrOrphans=null;for(let r of t)try{r.unmount({removeDOM:!0})}catch(i){e("orphan teardown",i)}}_hmrRerender(){let e=this.constructor.name||"component";if(this._state!=="mounted")throw Error(`${e}: _hmrRerender requires a mounted instance`);let t=this._target,r=this._nodes,n=(r?.[0]??this._root)?.parentNode??null,s=r?.length?r[r.length-1].nextSibling:this._root?this._root.nextSibling:null;if(this._hmrRelease(),!this._hmrRebind())return this;if(typeof this._create!=="function")return this._state="mounted",this._hmrDrainOrphans((a,o)=>console.error(`[Rip] ${a} error:`,o)),this;if(!this._mountCreate())return this;try{let a=n&&n.nodeType!==11?n:null;if(a&&a.isConnected===!1)a=null;if(!a&&typeof t==="string"&&typeof document<"u")a=document.querySelector(t);else if(!a&&t&&t.nodeType!==11&&t.isConnected!==!1)a=t;else if(!a&&typeof document<"u")a=document.querySelector("#content")||document.querySelector("#app");if(a){let o=s&&(typeof a.contains!=="function"||a.contains(s))?s:null;if(this._nodes)for(let l of this._nodes)a.insertBefore(l,o);else if(this._root)a.insertBefore(this._root,o);this._target=a.nodeType===11?null:a}}catch(a){return this._failMount(a),this}return this._mountSetup(),this}mount(e){if(!this._mountCreate())return this;try{if(typeof e==="string")e=document.querySelector(e);if(this._target=e,this._root)e.appendChild(this._root)}catch(t){return this._failMount(t),this}return this._mountSetup(),this}unmount({removeDOM:e=!0}={}){if(this._state==="failed"||this._state==="unmounted")return;if(this._state==="mounted"&&this._parent?._hmrReleasing){this._parent._hmrOrphans.push(this);return}if(this._state==="mounting")throw Error(`${this.constructor.name||"component"}: cannot unmount while mounting`);this._teardown({state:"unmounted",hooks:this._state==="mounted",removeDOM:e})}emit(e,t){if(this._state!=="mounted"||!this._root)throw Error(`${this.constructor.name||"component"}: emit('${e}') outside the mounted window — `+"emit dispatches on the live root; call after mount and before unmount");(this._nodes?.[0]??this._root).dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0}))}static mount(e="body"){return new this().mount(e)}}var Hr={};Ce(Hr,{ariaCurrent:()=>Cr,browserAdapter:()=>$r,buildRoutes:()=>Ot,check:()=>Wr,connectFeed:()=>Ur,createApply:()=>Vr,createComponents:()=>vr,createMutation:()=>uo,createRenderer:()=>Dr,createRouter:()=>Ir,createStash:()=>Nr,createWorkspace:()=>Fr,currentRouter:()=>Rc,currentStash:()=>Sc,debounce:()=>mo,delay:()=>Ar,hold:()=>go,interceptClicks:()=>Pr,launch:()=>Mr,ownsAnchor:()=>$t,parseQuery:()=>ze,persistStash:()=>xr,preloadLinks:()=>Lr,rash:()=>Dt,source:()=>so,throttle:()=>po,unwrapStash:()=>Te,validatePrepared:()=>ai});var wr,Vn,no,io=Symbol.for("rip.source"),Wn=Symbol.for("rip.source.family"),nc=64,ic=30000,sc=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/;function D1(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[io]===!0||e[Wn]===!0)}function me(e){return e!=null&&typeof e==="function"&&e[Wn]===!0}no=function(e){let t,r;if(e==null)return 0;if(typeof e==="number"){if(!(Number.isFinite(e)&&e>=0))throw TypeError('Rip App: source staleTime must be a non-negative finite number, a duration string, or "forever"');return e}if(typeof e==="string"){if(e==="forever")return 1/0;if(r=e.match(sc),r)return t=parseFloat(r[1]),(()=>{switch(r[2][0]){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000}})()}throw TypeError('Rip App: source staleTime must be a non-negative number, a duration such as "5 min", or "forever"')};wr=function(e,t,r=null){let i=_1(null),n=_1(!1),s=_1(null),a=0,o=null,l=null,c=!1,f=!1,h=!1,u=0,m=0,S=async function(b=!1,_=!1){let y,p;o?.abort(),o=typeof AbortController<"u"?new AbortController:null;let k=++a;if(!b)n.value=!0;let I=h;return await(async()=>{try{if(y=e(o?.signal),!(y!=null&&typeof y.then==="function"))throw TypeError("Rip App: source fetch must return a Promise");if(p=await y,k!==a)return p;return s.value=null,i.value=p,h=!0,u=Date.now(),m=_&&!f?u+ic:0,p}catch(A){if(k!==a)return;if(A?.name==="AbortError")return;if(s.value=A,!I)throw h=!1,u=0,A;return}finally{if(k===a)n.value=!1,l=null,c=!1,f=!1,r?.()}})()},g=function(b=!1,_=!1){let y=S(b,_);return l=y,c=_,f=!1,y},d=function(){return t===1/0||Date.now()-unc){o=!1;for(let[l,c]of r){if(l===a)continue;if(c.loading)continue;r.delete(l),c.reset(),o=!0;break}if(!o)break}return},n=function(a){if(a==null)throw TypeError("Rip App: keyed source requires a key");let o=ac(a),l=r.get(o);if(l)return r.delete(o),r.set(o,l),l;return l=wr(function(c){return e(a,c)},t,i),r.set(o,l),i(o),l},s=function(a){return n(a).read()};return s[Wn]=!0,s.cellFor=n,s.reset=function(){let a=Array.from(r.values());r.clear();for(let o of a)o.reset();return},s};function so(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip App: source expects an options object");if(typeof e.fetch!=="function")throw TypeError("Rip App: source options require a fetch function");let t=no(e.staleTime);if(Object.prototype.hasOwnProperty.call(e,"kind")){if(!(e.kind==="singleton"||e.kind==="keyed"))throw TypeError("Rip App: source kind must be 'singleton' or 'keyed'");if(e.kind==="singleton"){if(e.fetch.length>1)throw TypeError("Rip App: singleton source fetch accepts at most one AbortSignal parameter");return wr(e.fetch,t)}if(e.fetch.length<1||e.fetch.length>2)throw TypeError("Rip App: keyed source fetch requires a key parameter and accepts one optional AbortSignal parameter");return Vn(e.fetch,t)}if(e.fetch.length>1)throw TypeError("Rip App: inferred source fetch accepts no parameters for a singleton or one key parameter for a keyed family");return e.fetch.length===1?Vn(e.fetch,t):wr(e.fetch,t)}var zn,_t,Hn,Tt,I1=Symbol("rip.app.stash.raw"),We=Symbol("rip.app.stash.signals"),oc=Symbol("rip.app.stash.keys"),lo=Symbol("rip.app.stash.defaults"),lc=Symbol.for("rip.app.stash.purge"),co=new WeakMap,cc=0,qn=_1(0),Gn=function(){return qn.value++},fo=function(e,t){let r=e[We];if(!r)r=new Map,Object.defineProperty(e,We,{value:r});let i=r.get(t);if(!i)i=_1(e[t]),r.set(t,i);return i},wt=function(e){return fo(e,oc)},Kn=function(e){wt(e).value=++cc;return};_t=function(e){if(!(e!=null&&typeof e==="object"))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Array.isArray(e)};var ao=function(e){if(!_t(e))return e;let t=co.get(e);if(t)return t;return zn(e)},He=function(e,t){let r=e?.[I1];if(!r)return e[t];let i=r[t];if(D1(i)){if(me(i))return i;return ao(i.read())}return ao(fo(r,t).value)},Yn=function(e,t,r){let i,n,s,a,o=e?.[I1];if(!o)return e[t]=r,r;if(Array.isArray(o)&&t==="length"){if(a=o.length,s=+r,o.length=s,s!==a){if(o[We]){for(let h=Math.min(a,s),u=Math.max(a,s);h0))throw TypeError("Rip App: stash path must be a non-empty string");let s=[],a=0;if(e[0]!=="["){n=a;while(a=e.length||a===n)throw TypeError(`Rip App: malformed stash path '${e}'`);if(r=e.slice(n,a),a++,e[a]!=="]")throw TypeError(`Rip App: malformed stash path '${e}'`);a++,s.push(r)}else{n=a;while(a{let i=[];for(let n in r){if(!Object.hasOwn(r,n))continue;let s=r[n];i.push(Hn(s,t))}return i})()};Tt=function(e){if(!_t(e))return e;let t=e[I1]?e[I1]:e;if(Array.isArray(t))return(()=>{let i=[];for(let n of t)if(!D1(n))i.push(Tt(n));return i})();let r={};for(let i in t){if(!Object.hasOwn(t,i))continue;let n=t[i];if(D1(n))continue;r[i]=Tt(n)}return r};function ho(e){let t=e?.[I1]?e[I1]:e;if(!(t!=null&&typeof t==="object"))return;Object.defineProperty(t,lo,{value:Tt(t),configurable:!0});return}function _r(e){if(D1(e))return e;if(!_t(e))return e;let t=e[I1]?e[I1]:e;if(Array.isArray(t))return(()=>{let i=[];for(let n of t)i.push(_r(n));return i})();let r={};for(let i in t){if(!Object.hasOwn(t,i))continue;let n=t[i];Object.defineProperty(r,i,{value:_r(n),writable:!0,enumerable:!0,configurable:!0})}return r}function Ye(e,t){let r,i,n;if(!(e!=null&&typeof e==="object"))return;if(!(t!=null&&typeof t==="object"))return;let s=e[I1]?e[I1]:e;for(let a in t){if(!Object.hasOwn(t,a))continue;let o=t[a];if(r=Object.prototype.hasOwnProperty.call(s,a)?s[a]:void 0,D1(r))continue;if(Array.isArray(r)&&r.some(function(l){return D1(l)}))continue;if(i=r!=null&&typeof r==="object"&&!Array.isArray(r),n=o!=null&&typeof o==="object"&&!Array.isArray(o),i&&n)Ye(e[a],o);else e[a]=Tt(o)}return}var uc=function(e,t){let r,i=t[lo];if(!i)return;r=function(n,s,a){let o;for(let l in s){if(!Object.hasOwn(s,l))continue;if(o=s[l],D1(o))continue;if(!(a!=null&&Object.prototype.hasOwnProperty.call(a,l))){delete n[l];continue}if(o!=null&&typeof o==="object"&&!Array.isArray(o))r(n[l],o,a[l])}return},r(e,t,i),Ye(e,i);return},mc={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0},dc=function(e,t,r){if(r==="inc")return function(i,n=1){let s=(De(e,i)??0)+n;return kt(e,i,s),s};if(r==="dec")return function(i,n=1){let s=(De(e,i)??0)-n;return kt(e,i,s),s};if(r==="flip")return function(i){let n=!(De(e,i)??!1);return kt(e,i,n),n};if(r==="join")return function(i,n){if(!(n!=null&&typeof n==="object"&&!Array.isArray(n)))throw TypeError("Rip App: join expects a plain object");L1(function(){let s=De(e,i);if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))kt(e,i,{}),s=De(e,i);return(()=>{let a=[];for(let o in n){if(!Object.hasOwn(n,o))continue;let l=n[o];a.push(s[o]=l)}return a})()});return};if(r==="keys")return function(i){let n=i!=null?De(e,i):e;if(!(n!=null&&typeof n==="object"))return[];let s=n[I1]?n[I1]:n;return wt(s).value,Object.keys(s)};if(r==="has")return function(i){let n,s,a=Ge(i);if(!(a.length>0))return!1;let o=e;for(let l=0;l0))return;let a=e;for(let o=0;o{try{return i.value=!0,await t.onSuccess?.(l),l}finally{if(c===s)r.value=!1}})()};return Object.defineProperty(a,"pending",{get(){return r.value}}),Object.defineProperty(a,"succeeded",{get(){return i.value}}),Object.defineProperty(a,"error",{get(){return n.value}}),a}var Nt,At;Nt=function(e){return typeof e==="function"?e:function(){return e.value}};At=function(e,t,r){let i={read(){return e.read()}},n={get(){return e.value}};if(typeof t!=="function")n.set=function(s){return t.value=s};return Object.defineProperty(i,"value",n),i.dispose=function(){return r?.()},i};function Ar(e,t){let r=Nt(t),i=_1(!!r()),n=$1(function(){let s;if(r()){if(i.read())return;return s=setTimeout(function(){return i.value=!0},e),function(){return clearTimeout(s)}}i.value=!1;return});return At(i,t,n)}function mo(e,t){let r=Nt(t),i=_1(r()),n=$1(function(){let s=r(),a=setTimeout(function(){return i.value=s},e);return function(){return clearTimeout(a)}});return At(i,t,n)}function po(e,t){let r=Nt(t),i=_1(r()),n=0,s=$1(function(){let a=r(),o=Date.now(),l=e-(o-n);if(l<=0){i.value=a,n=o;return}let c=setTimeout(function(){return i.value=r(),n=Date.now()},l);return function(){return clearTimeout(c)}});return At(i,t,s)}function go(e,t){let r=Nt(t),i=_1(!!r()),n=$1(function(){if(r()){i.value=!0;return}if(!i.read())return;let s=setTimeout(function(){return i.value=!1},e);return function(){return clearTimeout(s)}});return At(i,t,n)}var Xn,Jn,we;we=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip App: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."}),i=t.at(-1),n=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||r||n||i===".rip"||!i.endsWith(".rip"))throw TypeError(`Rip App: invalid component path '${e}'`);return e};Xn=function(e){if(typeof e!=="string")throw TypeError("Rip App: component source must be a string");return e};Jn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip App: component directory must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid component directory '${e}'`);return e};function vr(){let e=new Map,t=new Map,r=new Set,i=function(s,a){let o=[];for(let l of Array.from(r))o.push((()=>{try{return l(s,a)}catch(c){return console.error("[Rip] component watcher error:",c)}})());return o};return{read(s){return e.get(we(s))},write(s,a){s=we(s),a=Xn(a);let o=e.has(s)?"change":"create";e.set(s,a),t.delete(s),i(o,s);return},del(s){s=we(s),e.delete(s),t.delete(s),i("delete",s);return},exists(s){return e.has(we(s))},size(){return e.size},list(s=""){let a;s=Jn(s);let o=s?s+"/":"",l=[];for(let[c]of e)if(c.startsWith(o)){if(a=c.slice(o.length),!a.includes("/"))l.push(c)}return l},listAll(s=""){s=Jn(s);let a=s?s+"/":"",o=[];for(let[l]of e)if(l.startsWith(a))o.push(l);return o},load(s){let a,o;if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))throw TypeError("Rip App: component load expects a source object");for(let l in s){if(!Object.hasOwn(s,l))continue;let c=s[l];l=we(l),c=Xn(c),e.set(l,c),t.delete(l)}return},watch(s){if(typeof s!=="function")throw TypeError("Rip App: component watch expects a function");r.add(s);let a=!1;return function(){if(a)return;a=!0,r.delete(s);return}},getCompiled(s){return t.get(we(s))},setCompiled(s,a){if(s=we(s),!(a!=null&&typeof a==="object"&&!Array.isArray(a)))throw TypeError("Rip App: compiled component module must be an object");t.set(s,a);return}}}var yo,So,C1,Qn,Ro,Eo,ko,Zn=/^\w+$/,To={static:0,dynamic:1,optional:2,catchall:3},bo=8;C1=function(e){throw Error(`Rip App: ${e}`)};var vt=function(e){return(()=>{try{return decodeURIComponent(e)}catch(t){return null}})()};ko=function(e){if(e==="")return"";if(typeof e!=="string")throw TypeError("Rip App: route root must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid route root '${e}'`);return e};var wo=function(e,t){let r;if(r=/^\[\[(.+)\]\]$/.exec(e)){if(!Zn.test(r[1]))C1(`invalid optional segment '${e}' in '${t}'`);return{kind:"optional",name:r[1]}}else if(r=/^\[\.\.\.(.+)\]$/.exec(e)){if(!Zn.test(r[1]))C1(`invalid catch-all segment '${e}' in '${t}'`);return{kind:"catchall",name:r[1]}}else if(e.startsWith("[..."))return C1(`invalid catch-all segment '${e}' in '${t}'`);else if(r=/^\[(.+)\]$/.exec(e)){if(!Zn.test(r[1]))C1(`invalid dynamic segment '${e}' in '${t}'`);return{kind:"dynamic",name:r[1]}}else if(/^\(.+\)$/.test(e))return{kind:"group"};else if(e.includes("[")||e.includes("]"))return C1(`invalid segment '${e}' in '${t}': markers claim a whole segment`);else return{kind:"static",text:e}};yo=function(e){let t,r=(()=>{let h=[];for(let u of e.slice(0,-4).split("/"))h.push(wo(u,e));return h})();if(r[r.length-1].kind==="group")C1(`route file name cannot be a group segment: '${e}'`);let i=r.filter(function(h){return h.kind!=="group"});for(let h=0;hbo)C1(`more than ${bo} optional segments in '${e}'`);let o="",l=[],c=[{shape:"",display:""}];for(let h of i)switch(l.push(To[h.kind]),h.kind){case"static":t="/"+h.text,o+=t,c=c.map(function(u){return{shape:u.shape+t,display:u.display+t}});break;case"dynamic":o+=`/:${h.name}`,c=c.map(function(u){return{shape:u.shape+"/:",display:`${u.display}/:${h.name}`}});break;case"optional":o+=`/:${h.name}?`,c=c.flatMap(function(u){return[u,{shape:u.shape+"/:",display:`${u.display}/:${h.name}`}]});break;case"catchall":o+=`/*${h.name}`,c=c.map(function(u){return{shape:u.shape+"/*",display:`${u.display}/*${h.name}`}});break}if(o==="")o="/";if(new Set(c.map(function(h){return h.shape||"/"})).size{let l=[];for(let c of e)l.push(wo(c,t));return l})().filter(function(l){return l.kind!=="group"});for(let l of i)if(l.kind==="optional"||l.kind==="catchall")C1(`not-found page under an optional or catch-all segment: '${t}'`);let n=[];for(let l of i)if(l.name!=null){if(n.includes(l.name))C1(`duplicate parameter name '${l.name}' in '${t}'`);n.push(l.name)}let s="",a="",o=[];for(let l of i)if(o.push(To[l.kind]),l.kind==="static")s+="/"+l.text,a+="/"+l.text;else s+=`/:${l.name}`,a+="/:";return{pattern:s+"/*",shape:a+"/*",parts:i,ranks:o}};Ro=function(e,t){let r;return r=function(i,n){let s,a,o,l;if(i===e.length)return n===t.length?[]:null;let c=e[i];return(()=>{switch(c.kind){case"static":if(!(nf.length))continue;if(a=p.slice(f.length),l=a.split("/"),s=l.some(function(k){return!k||k==="."||k===".."}),a.includes("\\")||s||l.at(-1)===".rip")throw TypeError(`Rip App: invalid route file path '${p}'`);if(l.at(-1)==="_layout.rip"){h.set(l.slice(0,-1).join("/"),p);continue}if(l.at(-1)==="_404.rip"){if(l.slice(0,-1).some(function(k){return k.startsWith("_")}))continue;u.push({...So(l.slice(0,-1),a),rel:a,file:p});continue}if(l.some(function(k){return k.startsWith("_")}))continue;if(!a.endsWith(".rip"))throw TypeError(`Rip App: route files must be .rip sources: '${p}'`);m.push({...yo(a),rel:a,file:p})}let S=new Map;for(let p of[...m].sort(function(k,I){return k.relk.pattern)return 1;return 0});let g=new Map;for(let p of[...u].sort(function(k,I){return k.relk.pattern)return 1;return 0});let d=m.map(function(p){return{route:Object.freeze({pattern:p.pattern,file:p.file,layouts:Object.freeze(Qn(p.rel,h))}),parts:p.parts}}),R=u.map(function(p){return{route:Object.freeze({pattern:p.pattern,file:p.file,layouts:Object.freeze(Qn(p.rel,h))}),parts:p.parts}}),b=function(p){if(typeof p!=="string")throw TypeError("Rip App: route match expects a path string");if(!p.startsWith("/"))return null;while(p.length>1&&p.endsWith("/"))p=p.slice(0,-1);return p==="/"?[]:p.slice(1).split("/")},_=function(p){let k;if(l=b(p),!l)return null;for(let I of d){if(k=Ro(I.parts,l),!k)continue;return{route:I.route,params:Object.fromEntries(k)}}return null},y=function(p){let k;if(l=b(p),!l)return null;for(let I of R){if(k=Eo(I.parts,l),!k)continue;return{route:I.route,params:Object.fromEntries(k)}}return null};return Object.freeze({routes:Object.freeze(d.map(function(p){return p.route})),match:_,notFound:y})}function ze(e){if(typeof e!=="string")throw TypeError("Rip App: parseQuery expects a query string");return Object.fromEntries(new URLSearchParams(e))}var G1,ei,_o,Or;G1=function(e){let t=e.indexOf("#"),r=t>=0?e.slice(t+1):"",i=t>=0?e.slice(0,t):e,n=i.indexOf("?"),s=n>=0?i.slice(n+1):"";return{path:n>=0?i.slice(0,n):i,query:s,hash:r}};ei=function(e,t){let r=Object.keys(t);return r.length===Object.keys(e).length&&r.every(function(n){return e[n]===t[n]})?e:t};Or=function(e){if(!(e!=null&&typeof e.match==="function"&&Array.isArray(e.routes)))throw TypeError("Rip App: createRouter requires a route manifest");return e};_o=function(e){if(e===""||e==null)return"";if(!(typeof e==="string"&&e.startsWith("/")&&!e.endsWith("/")))throw TypeError(`Rip App: invalid router base '${e}'`);return e};function Ir(e){let t,{routes:r,adapter:i,onError:n}=e??{};if(!(r!=null&&(typeof r==="function"||typeof r.match==="function"&&Array.isArray(r.routes))))throw TypeError("Rip App: createRouter requires a route manifest or manifest thunk");for(let j of["read","push","replace","go","listen"])if(typeof i?.[j]!=="function")throw TypeError(`Rip App: router adapter requires a ${j} function`);let s=_o(e?.base),a=e?.hash===!0;if(s&&a)throw TypeError("Rip App: a base path does not apply in hash mode");let o=typeof r==="function"?Or(r()):Or(r),l=new Set,c=null,f=_1(null),h=_1(null),u=_1({}),m=_1({}),S=_1(""),g=Ar(100,_1(!1)),d=H1(function(){let j=h.value;if(!j)return null;return{route:j,layouts:j.layouts,params:u.value,query:m.value}}),R=function(j){if(!s)return j;if(j===s)return"/";if(j.startsWith(s+"/"))return j.slice(s.length);return null},b=function(j){if(!s)return j;return j==="/"?s:s+j},_=function(j){return a?i.read().split("#")[0]+"#"+j:b(j)},y=function(j){return n?.({status:404,path:j}),!1},p=0,k=function(j){return typeof j==="string"&&!j.startsWith("//")&&!j.includes("\\")},I=function(j){if(!k(j))return null;return o.match(j)},A=function(j){if(!k(j))return null;return o.match(j)??o.notFound?.(j)??null},x=function(j,q,t1,M){let N=ei(u.value,j.params),C=ei(m.value,ze(t1));L1(function(){return f.value=q,h.value=j.route,u.value=N,m.value=C,S.value=M});let w={path:q,route:j.route,params:N,query:C,hash:M};p+=1;try{for(let D of Array.from(l))try{D(w)}catch(B){console.error("[Rip] router onNavigate error:",B)}}finally{p-=1}return!0},O=function(){if(p>=10)throw Error("Rip App: navigation loop — ten nested navigations from onNavigate")},G=function(){let j,q,t1,M,N,C=i.read();if(a){if(j=C.indexOf("#"),t1=j>=0?C.slice(j+1):"/",t1==="")t1="/";({path:M,query:N,hash:q}=G1(t1))}else if({path:M,query:N,hash:q}=G1(C),M=R(M),M==null)return y(G1(C).path);let w=A(M);if(!w)return y(M);return x(w,M,N,q)},K=null,V=null,Z=function(){K=null;let j=i.readState?.()??{};return i.replace(i.read(),{...j,__ripScroll:i.scroll?.save?.()??null})},W=function(){return!K?K=setTimeout(Z,100):void 0};return t={init(){if(c)return t;return G(),c=i.listen(function(){if(!G())return;let j=i.readState?.();return i.scroll?.restore?.(j?.__ripScroll??null)}),V=i.scroll?.watch?.(W)??null,t},push(j,q={}){O();let{path:t1,query:M,hash:N}=G1(j),C=A(t1);if(!C)return y(t1);let w=i.scroll?.save?.()??null,D=i.readState?.()??{};if(i.replace(i.read(),{...D,__ripScroll:w}),i.push(_(j),null),x(C,t1,M,N),!q.noScroll)i.scroll?.top?.();return!0},replace(j,q={}){O();let{path:t1,query:M,hash:N}=G1(j),C=A(t1);if(!C)return y(t1);let w=i.readState?.()??{};if(i.replace(_(j),{...w,__ripScroll:null}),x(C,t1,M,N),!q.noScroll)i.scroll?.top?.();return!0},back(){return i.go(-1)},forward(){return i.go(1)},match(j){let{path:q,query:t1,hash:M}=G1(j),N=I(q);if(!N)return null;return{route:N.route,params:N.params,query:ze(t1),hash:M}},claims(j){let q,t1,M,N,C;if(!(typeof j==="string"&&j.length>0))return null;if(a){if(q=j.indexOf("#"),q<0)return null;if(M=j.slice(q+1),M==="")M="/";({path:N,query:C,hash:t1}=G1(M))}else{if(!j.startsWith("/"))return null;if({path:N,query:C,hash:t1}=G1(j),N=R(N),N==null)return null}let w=I(N);if(!w)return null;let D=N+(C?"?"+C:"")+(t1?"#"+t1:"");return{path:N,url:D,route:w.route,params:w.params,query:ze(C),hash:t1}},onNavigate(j){if(typeof j!=="function")throw TypeError("Rip App: onNavigate expects a function");return l.add(j),function(){return l.delete(j)}},rebuild(){let j,q,t1,M,N;if(o=typeof r==="function"?Or(r()):o,!c)return;let C=i.read();if(a){if(j=C.indexOf("#"),t1=j>=0?C.slice(j+1):"/",t1==="")t1="/";({path:M,query:N,hash:q}=G1(t1))}else if({path:M,query:N,hash:q}=G1(C),M=R(M),M==null)return y(G1(C).path);let w=A(M);if(!w)return y(M);let D=h.value,B=D?.layouts??[],a1=w.route.layouts??[],h1=B.length===a1.length&&B.every(function(f1,z){return f1===a1[z]});if(D?.file===w.route.file&&h1&&f.value===M)return;x(w,M,N,q);return},destroy(){if(c?.(),c=null,V?.(),V=null,K)clearTimeout(K);K=null;return}},Object.defineProperty(t,"current",{get(){return d.value}}),Object.defineProperty(t,"path",{get(){return f.value}}),Object.defineProperty(t,"hash",{get(){return S.value}}),Object.defineProperty(t,"params",{get(){return u.value}}),Object.defineProperty(t,"query",{get(){return m.value}}),Object.defineProperty(t,"navigating",{get(){return g.value},set(j){return g.value=j}}),t}function $r(){if(typeof window>"u"||window.history==null||window.location==null)throw Error("Rip App: browserAdapter requires a browser environment");window.history.scrollRestoration="manual";let e=function(r){return window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,16)},t=0;return{read(){return window.location.pathname+window.location.search+window.location.hash},readState(){return window.history.state},push(r,i){return window.history.pushState(i,"",r)},replace(r,i){return window.history.replaceState(i,"",r)},go(r){return window.history.go(r)},listen(r){return window.addEventListener("popstate",r),function(){return window.removeEventListener("popstate",r)}},scroll:{save(){return{x:window.scrollX,y:window.scrollY}},restore(r){let i;if(r==null)return;let n=++t,s=r.x||0,a=r.y||0,o=0;i=function(){if(n!==t)return;let l=Math.max(0,(window.document?.documentElement?.scrollHeight||0)-window.innerHeight);return window.scrollTo(s,Math.min(a,l)),o+=1,a>l&&o<20?e(i):void 0},e(i);return},top(){return t+=1,window.scrollTo(0,0)},watch(r){return window.addEventListener("scroll",r,{passive:!0}),function(){return window.removeEventListener("scroll",r)}}}}}var ti,No,xe;No=Un();xe=function(e,t,r,i=null){let n=i??r?.message??String(r),s=Error(n);return s.name="GateFailure",s.status=r?.status??r?.response?.status??500,s.path=e,s.file=t,s.error=r,s};ti=function(e,t){let r=e.getCompiled(t);if(!(r!=null&&typeof r==="object"))throw Error(`Rip App: no precompiled component module for '${t}'`);let i=function(s){return typeof s==="function"&&typeof s.prototype?.mount==="function"};if(i(r.default))return r.default;let n=[];for(let s in r){let a=r[s];if(s==="default")continue;if(i(a))n.push(a)}if(n.length!==1)throw Error(`Rip App: precompiled module '${t}' must export exactly one component class`);return n[0]};function Dr(e){let t;if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createRenderer expects an options object");let{router:r,stash:i,components:n,target:s,onError:a}=e;if(!(r!=null&&typeof r==="object"))throw TypeError("Rip App: createRenderer requires a router object");if(!(i!=null&&Te(i)!==i))throw TypeError("Rip App: createRenderer requires a stash built by createStash");if(!(n!=null&&typeof n.getCompiled==="function"))throw TypeError("Rip App: createRenderer requires a component registry");if(!(s!=null&&typeof s.appendChild==="function"))throw TypeError("Rip App: createRenderer requires a target with appendChild()");if(a!=null&&typeof a!=="function")throw TypeError("Rip App: createRenderer onError must be a function");let o=[],l=null,c=0,f=null,h=[],u=null,m=null,S=null,g=!1,d=function(z,i1){let X=Object.keys(z);return X.length===Object.keys(i1).length&&X.every(function(r1){return z[r1]===i1[r1]})},R=function(z,i1){return z.length===i1.length&&z.every(function(X,r1){return i1[r1]===X})},b=function(z){let i1=Te(i),X=z.split(".");for(let r1=0;r1",P.file,`Rip App: ${P.file} static __gates must be an array`);for(let H=0;H0))throw _(String(J),P.file,`Rip App: ${P.file} has a malformed render gate path`);if(F!=null&&typeof F!=="function")throw _(J,P.file,`Rip App: gate '${J}' has a non-function key`);if(o1=b(J),!o1)throw _(J,P.file,`Rip App: gate '${J}' does not resolve to a source`);if(r1=o1.cell,me(r1)){if(!F)throw _(J,P.file,`Rip App: gate '${J}' is keyed and requires a key function`);try{c1=F(i1,X),r1=r1.cellFor(c1)}catch(L){throw Q=L,xe(J,P.file,Q,`Rip App: gate '${J}' key failed: ${Q.message}`)}}else if(F)throw _(J,P.file,`Rip App: gate '${J}' is a singleton and does not accept a key function`);if(P.bindings[H]={cell:r1,tail:o1.tail,path:J,file:P.file},!n1.has(r1))n1.set(r1,{cell:r1,path:J,file:P.file,entryIndex:v})}}return Array.from(n1.values())},k=async function(z,i1,X,r1){let Q,l1,c1=p(z,i1,X),F=await Promise.allSettled((()=>{let n1=[];for(let v of c1)n1.push(v.cell.ensure());return n1})());if(r1!==c)return!1;let J=null,o1=function(n1,v){if(n1.entryIndex=v,J==null||v=J.entryIndex)break;for(let P of v.bindings){l1=P.cell.peek();for(let H of P.tail){if(l1==null)break;l1=l1[H]}if(l1==null){o1(_(P.path,P.file,`Rip App: gate '${P.path}' resolved to ${l1}; every gated subpath must exist and be non-null`),n1);break}P.value=l1}}if(J!=null)throw J;return!0},I=function(z,i1){return No(z.cls,{gates:z.bindings,parent:i1,stash:i,router:r})},A=function(z){let i1=[];for(let X=z.length-1;X>=0;X--){let r1=z[X];try{r1.unmount?.()}catch(Q){i1.push(Q);try{r1._teardown?.({state:"unmounted",hooks:!1,removeDOM:!0})}catch(l1){i1.push(l1)}}}return i1},x=function(){let z=o;o=[],l=null,h=[],u=null,m=null;let i1=A(z);if(i1.length)throw i1[0];return},O=null,G=function(){O?.remove?.(),O=null;return},K=function(z){let i1,X;G();let r1=z.error?.stack??z.stack??z.message??String(z);O=(()=>{if(typeof document<"u"&&typeof document.createElement==="function")return i1=document.createElement("pre"),i1.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",i1.textContent=r1,i1;else return X={nodeName:"PRE",textContent:r1,parentNode:null,remove(){let Q=X.parentNode?.children,l1=Q?.indexOf(X)??-1;if(l1>=0)Q.splice(l1,1);X.parentNode=null;return}},X})(),s.appendChild(O);return},V=function(){if(typeof document<"u"&&typeof document.createDocumentFragment==="function")return document.createDocumentFragment();let z=[];return{children:z,appendChild(i1){return z.push(i1),i1}}},Z=function(z,i1=s){if(G(),z.nodeType===11)i1.appendChild(z);else for(let X of z.children)i1.appendChild(X);return},W=function(z,i1){let X,r1=z._nodes??[z._root];for(let Q of r1){if(!Q)continue;if(Q.matches?.("#content"))return Q;if(X=Q.querySelector?.("#content"),X)return X}return r1.find(function(Q){return Q!=null})??i1},j=function(z){return z?.childNodes??z?.children??[]},q=function(z,i1){z.slot=i1,z.slotOwned=j(i1).length;return},t1=function(){let z,i1,X=s;for(let r1=0;r10&&Q.slot!=null&&Q.slot!==X){i1=Array.from(j(Q.slot)).slice(Q.slotOwned??0),q(Q,X);for(let l1 of i1)X.appendChild(l1);z._target=X}if(r1===h.length-1)break;X=W(z,X)}if(h.length>1)u=X;return},M=function(z,i1,X){let r1,Q,l1;if(!z.some(function(n1){return typeof n1.cls.prototype?.onError==="function"}))return!1;let c1=V(),F=c1,J=[];try{for(let n1=0;n10)q(v,F);if(Q.mount?.(F),Q._state==="failed")return A(J),!1;F=W(Q,F)}if(X!==c)return A(J),!1;r1=null;for(let n1=J.length-1;n1>=0;n1--){let v=J[n1];if(typeof v.onError==="function"){r1=v;break}}Z(c1)}catch(n1){return console.error("[Rip] boundary chain failed to mount:",n1),A(J),!1}let o1=o;o=J,l=J[J.length-1]??null,h=z,u=F,m=null;try{r1.onError(i1)}catch(n1){console.error("[Rip] boundary onError error:",n1)}for(let n1 of A(o1))console.error("[Rip] boundary teardown error:",n1);return!0},N=function(z,i1){let X=null;for(let Q=z.length-1;Q>=0;Q--){let l1=z[Q];if(typeof l1.instance?.onError==="function"){X=l1.instance;break}}if(!X)return!1;let r1=o.slice(z.length);o=z.map(function(Q){return Q.instance}),l=o[o.length-1]??null,h=z,m=null;try{X.onError(i1)}catch(Q){console.error("[Rip] boundary onError error:",Q)}for(let Q of A(r1))console.error("[Rip] boundary teardown error:",Q);return!0},C=async function(z,i1,X=n){let r1,Q,l1,c1,F,J,o1=z?.route;if(!o1?.file)throw Error("Rip App: renderer route state requires route.file");let n1=z.params??{},v=z.query??{},P=z.layouts??[];if(!Array.isArray(P))throw Error("Rip App: renderer route state layouts must be an array");let H=h.map(function(S1){return S1.file}),s1=S;if(S=null,s1==null&&l!=null&&m!=null&&o1.file===m.file){if(R([...P,o1.file],H)&&d(n1,m.params)){if(!(d(v,m.query)||y(h,n1,v))){if(typeof l.load==="function")await l.load(n1,v);if(i1!==c)return null;return m={file:o1.file,params:n1,query:v},l}}}let L=[...P,o1.file],U=m!=null&&P.length>0&&h.length===P.length+1&&R(P,H.slice(0,-1))&&!y(h.slice(0,-1),n1,v),e1=s1!=null?Math.max(0,Math.min(s1,L.length-1)):U?P.length:0;if(s1!=null&&e1>0){if(!(h.length===L.length&&R(L.slice(0,e1),H.slice(0,e1))))e1=0}let d1=[];for(let S1=0;S10){if(l1=U?N(d1.slice(0,r1),Q):M(d1.slice(0,r1),Q,i1),l1)return null}}throw Q}let m1=V(),R1=m1,E1=[],A1=e1>0?d1[e1-1].instance:null,k1=e1>0,w1=k1?W(A1,s):s;try{for(let S1=d1.slice(e1),q1=0;q10)q(xt,R1);if(c1.mount?.(R1),c1._state==="failed")throw Error(`Rip App: component '${xt.file}' failed during mount`);if(e1+q11?R1:w1,h=d1,m={file:o1.file,params:n1,query:v};let y1=A(p1);if(g=y1.length>0,y1.length)for(let S1 of y1)if(Q=xe("","",S1),a!=null)try{a(Q)}catch(q1){console.error("[Rip] renderer teardown reporter failed:",q1)}else console.error("[Rip] renderer teardown error:",Q);return l},w=function(z){let i1,X,r1=z?.route;if(!r1?.file)return;let Q=z.params??{},l1=z.query??{},c1=z.layouts??r1.layouts??[],F=h.map(function(n1){return n1.file}),J=m!=null&&R(c1,F.slice(0,-1));if(J&&r1.file===m.file&&d(Q,m.params))return;let o1=J?[r1.file]:[...c1,r1.file];try{i1=(()=>{let n1=[];for(let v of o1)n1.push({file:v,cls:ti(n,v)});return n1})(),X=p(i1,Q,l1)}catch(n1){return}for(let n1 of X)n1.cell.preload().catch(function(){return null});return},D=function(z,i1){if(!(z!=null&&typeof z==="object"&&typeof i1==="string"))return null;let X=function(r1){return typeof r1==="function"&&r1.__hmrId===i1};if(X(z.default))return z.default;for(let r1 in z){let Q=z[r1];if(X(Q))return Q}return null},B=function(z){let i1=z+"#",X=[];for(let Q of h)if(Q.file===z&&Q.instance!=null)X.push(Q.instance);for(let[Q,l1]of jn())if(typeof Q==="string"&&Q.startsWith(i1)){for(let c1 of l1.instances)if(!X.includes(c1))X.push(c1)}let r1=[];for(let Q of X)r1.push({instance:Q,entry:h.find(function(l1){return l1.instance===Q})??null});return r1},a1=function(z,i1){let X,r1,Q,l1,c1=(()=>{let n1=[];for(let v of z)if(typeof v==="string"&&v.endsWith(".rip"))n1.push(v);return n1})();if(!(c1.length>0))return"unknown";let F=0,J=!1,o1=new Set;for(let n1 of c1){if(l1=i1.getCompiled(n1),Q=B(n1),l1==null){if(typeof i1.exists==="function"&&!i1.exists(n1)){if(Q.some(function(v){return v.instance._state!=="unmounted"}))return"fallback"}else J=!0;continue}for(let{instance:v,entry:P}of Q){if(o1.has(v))continue;if(v._state==="unmounted")continue;if(v._state!=="mounted")return"fallback";if(r1=v.constructor?.__hmrId,X=typeof r1==="string"?D(l1,r1):null,X==null)return"fallback";if(St(X),Rt(v.constructor,X)!=="patch")return"fallback";if(Bn(v,X),o1.add(v),F+=1,P!=null){if(P.cls=X,P!==h[h.length-1])t1()}}}if(F>0)return"done";return J?"unknown":"idle"},h1=async function(z,i1=n){let X,r1,Q,l1,c1;if(!(Array.isArray(z)&&z.length>0))return"noop";for(let U of z)if(U==="stash.rip"||U.startsWith("stash/")||U==="seed.rip")return"escape";let F=r.current;if(!(F?.route?.file&&h.length>0))return"noop";let o1=[...F.layouts??F.route.layouts??[],F.route.file],n1=R(o1,h.map(function(U){return U.file})),v=Fn();try{if(c1=a1(z,i1),c1==="done")return Tr(v),"narrow";if(c1==="idle"&&n1)return ke("noop",{paths:[...z]}),"noop"}catch(U){console.error("[Rip] HMR patch failed; falling back to remount:",U),ke("reject",{reason:"patch-failed",paths:[...z],message:U?.message?String(U.message):String(U)})}let P=new Set(z),H=-1;for(let U=0;U{try{return await C(z,l1,i1)}catch(c1){if(X=c1,l1!==c)return null;if(r1=(()=>{if(X?.name==="GateFailure")return X;else return Q=z?.route?.file??"",xe(X?.path??Q,Q,X)})(),a?.(r1),l==null)K(r1);throw r1}finally{if(l1===c&&(Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r)))r.navigating=!1}})()};let f1=null;return f1={current:null,mount:t,preload:w,remountDirty:h1,start(){if(f)return f1;return r.init?.(),f=$1(function(){let z=r.current;if(z?.route)t(z).catch(function(){return null});return}),f1},stop(){let z,i1;if(c++,f?.(),f=null,Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r))r.navigating=!1;try{x()}catch(X){throw z=X,i1=xe("","",z),a?.(i1),i1}return}},Object.defineProperty(f1,"current",{get(){return l}}),f1}var vo,Oo,ri=Symbol.for("rip.app.stash.persisted"),Ao=Symbol.for("rip.app.stash.purge");Oo=function(e,t){return D1(t)?void 0:t};vo=function(e){if(e.storage!=null)return e.storage;if(!(typeof window<"u"&&window.localStorage!=null))throw Error("Rip App: persistStash requires a browser or an injected storage");return e.local?window.localStorage:window.sessionStorage};function xr(e,t={}){let r,i=Te(e)||e;if(i[ri])return function(){return null};i[ri]=!0;let n=vo(t),s=t.key||"__rip_app",a=t.debounce??2000;try{if(r=n.getItem(s),r)Ye(e,JSON.parse(r))}catch(u){}let o=null,l=function(){o=null;try{n.setItem(s,JSON.stringify(Te(e),Oo))}catch(u){}return},c=!1,f=$1(function(){if(qn.value,!c){c=!0;return}if(o!=null)clearTimeout(o);return o=setTimeout(l,a),function(){return o!=null?clearTimeout(o):void 0}});if(typeof window<"u")window.addEventListener("beforeunload",l);Object.defineProperty(i,Ao,{value(){if(o!=null)clearTimeout(o),o=null;try{n.removeItem(s)}catch(u){}return},configurable:!0,writable:!0});let h=!1;return function(){if(h)return;if(h=!0,f?.(),typeof window<"u")window.removeEventListener("beforeunload",l);l(),i[Ao]=null,i[ri]=!1;return}}var Io,ni;ni=function(e){if(e.hasAttribute?.("data-router-ignore"))return!0;if(e.hasAttribute?.("download"))return!0;let t=e.getAttribute?.("target");if(t&&t.toLowerCase()!=="_self")return!0;return!1};function It(e){let t,r=e.getAttribute?.("href")??e.href;if(!(typeof r==="string"&&r.length>0))return null;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){if(t=typeof location<"u"?location.origin:null,!(t!=null&&r.startsWith(t)))return null;r=r.slice(t.length)}if(r.startsWith("//")||r.includes("\\"))return null;return r}function $t(e,t){if(t==null)return!1;if(ni(t))return!1;let r=It(t);if(r==null)return!1;return e.claims(r)!=null}Io=function(){if(!(typeof document<"u"&&typeof document.querySelectorAll==="function"))throw Error("Rip App: ariaCurrent requires a browser or an injected host");return{anchors(){return Array.from(document.querySelectorAll("a[href]"))},observe(e){if(typeof MutationObserver>"u")return null;let t=!1,r=new MutationObserver(function(){if(t)return;return t=!0,requestAnimationFrame(function(){return t=!1,e()})});return r.observe(document.documentElement??document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["href","target","download","data-router-ignore"]}),function(){return r.disconnect()}}}};function Cr(e,t=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: ariaCurrent requires a router");t=t??Io();let r=new WeakMap,i=function(){let l,c,f,h,u=e.path;for(let m of t.anchors()){if(l=ni(m)?null:e.claims(It(m)??""),f=l==null||u==null?null:l.path===u?"page":l.path!=="/"&&u.startsWith(l.path+"/")?"true":null,c=m.getAttribute?.("aria-current")??null,h=r.get(m),h!==void 0&&c!==h){if(r.delete(m),c!=null)continue;h=void 0}if(f!=null){if(h===void 0&&c!=null)continue;if(c!==f)m.setAttribute("aria-current",f);r.set(m,f)}else if(h!==void 0)m.removeAttribute("aria-current"),r.delete(m)}return},n=function(){try{i()}catch(l){console.error("[Rip] aria-current walk failed:",l)}return},s=$1(function(){return e.path,n()}),a=t.observe?.(n)??null,o=!1;return function(){if(o)return;o=!0,s(),a?.();try{for(let l of t.anchors())if(r.has(l)){if((l.getAttribute?.("aria-current")??null)===r.get(l))l.removeAttribute("aria-current");r.delete(l)}}catch(l){}return}}var $o,Do,ii,si;Do=50;$o=3000;si=function(){if(!(typeof document<"u"&&typeof document.addEventListener==="function"))throw Error("Rip App: link listeners require a browser or an injected host");return{listen(e,t,r=null){return document.addEventListener(e,t,r??!1),function(){return document.removeEventListener(e,t,r??!1)}}}};ii=function(e){while(e!=null&&e.tagName!=="A")e=e.parentElement;return e??null};function Pr(e,t=null){if(!(e!=null&&typeof e.claims==="function"&&typeof e.push==="function"))throw TypeError("Rip App: interceptClicks requires a router");t=t??si();let r=function(s){if(s.defaultPrevented)return;if(s.button!==0||s.metaKey||s.ctrlKey||s.shiftKey||s.altKey)return;let a=ii(s.target);if(!(a!=null&&$t(e,a)))return;let o=e.claims(It(a));if(o==null)return;s.preventDefault(),e.push(o.url,{noScroll:a.hasAttribute?.("data-router-noscroll")===!0});return},i=t.listen("click",r),n=!1;return function(){if(n)return;n=!0,i();return}}function Lr(e,t,r=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: preloadLinks requires a router");if(!(t!=null&&typeof t.preload==="function"))throw TypeError("Rip App: preloadLinks requires a renderer with preload()");r=r??si();let i=null,n=null,s={href:null,at:0},a=function(){if(i!=null)clearTimeout(i);i=null,n=null;return},o=function(h){let u=ii(h.target);if(!(u!=null&&$t(e,u)))return;if(u===n)return;a(),n=u;let m=It(u);i=setTimeout(function(){i=null,n=null;let S=Date.now();if(m===s.href&&S-s.at<$o)return;s.href=m,s.at=S;let g=e.claims(m);return g!=null?t.preload(g):void 0},Do);return},l=function(h){if(n==null)return;let u=h.relatedTarget;if(!(u!=null&&n.contains?.(u)))a();return},c=[r.listen("pointerover",o,{passive:!0}),r.listen("focusin",o,{passive:!0}),r.listen("pointerout",l,{passive:!0}),r.listen("focusout",l,{passive:!0})],f=!1;return function(){if(f)return;f=!0,a();for(let h of c)h();return}}var qe,xo,z1,Co;qe="routes";z1=function(e){throw Error(`Rip App: ${e}`)};var pc=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))z1("launch requires a bundle object");for(let r of["modules","compiled"]){if(t=e[r],t==null)continue;if(!(typeof t==="object"&&!Array.isArray(t)))z1(`launch bundle ${r} must be an object of store paths`)}if(e.seed!=null&&(typeof e.seed!=="object"||Array.isArray(e.seed)))z1("launch bundle seed must be an object");return e},gc=["read","write","del","exists","size","list","listAll","load","watch","getCompiled","setCompiled"];Co=function(e){if(!(typeof e==="object"&&!Array.isArray(e)))z1("launch components must be an object");for(let t of gc)if(typeof e[t]!=="function")z1(`launch components store is missing '${t}'`);return e};var ai=function(e,t=null){let r=pc(e),n=[...new Set([...Object.keys(r.modules??{}),...Object.keys(r.compiled??{})])].filter(function(o){return o.startsWith(qe+"/")});Ot(n,qe);let s=r.compiled?.["stash.rip"],a=t??s?.stash;if(a==null&&s!=null)z1("the bundle's 'stash.rip' module must export 'stash'");if(a!=null&&(typeof a!=="object"||Array.isArray(a)))z1("the application stash must be a plain object");return{bundle:r,declaration:a}};xo=function(){if(!(typeof document<"u"&&typeof document.querySelector==="function"))z1("launch requires a target outside the browser");let e=document.querySelector("#app");if(!e)e=document.createElement("div"),e.id="app",document.body.appendChild(e);return e};function Mr(e){let t,r;if(!(e!=null&&typeof e==="object"))z1("launch requires an options object");if(globalThis.__ripStash!=null)z1("an application is already launched; destroy it first");let i=ai(e.bundle,e.declaration),n=i.bundle,s=e.target??xo(),a=e.adapter??$r(),o=i.declaration,l=Nr(_r(o??{}));Ye(l,n.seed??{}),ho(l);let c=e.components!=null?Co(e.components):vr();if(n.modules!=null)c.load(n.modules);if(n.compiled!=null){let b=n.compiled;for(let _ in b){if(!Object.hasOwn(b,_))continue;let y=b[_];if(!c.exists(_))c.write(_,"");c.setCompiled(_,y)}}let f=Ir({routes(){return Ot(c.listAll(qe),qe)},adapter:a,base:e.base,hash:e.hash,onError:e.onError}),h=Dr({router:f,stash:l,components:c,target:s,onError:e.onError}),u=c.watch(function(b,_){return _.startsWith(qe+"/")?f.rebuild():void 0}),m=null;if(e.links!=null||typeof document<"u"&&typeof document.addEventListener==="function")t=Pr(f,e.links),r=Lr(f,h,e.links),m=function(){t(),r();return};let S=null;if(typeof document<"u"&&typeof document.querySelectorAll==="function")S=Cr(f);let g=null;if(e.persist)g=xr(l,{local:e.persist==="local",key:"__rip_app",storage:e.storage});let d=!1,R=function(){if(d)return;d=!0;let b=[],_=function(y){try{y()}catch(p){b.push(p)}return};if(_(function(){return S?.()}),_(function(){return m?.()}),_(function(){return h.stop()}),_(function(){return f.destroy()}),_(function(){return u()}),_(function(){return g?.()}),globalThis.__ripStash===l)delete globalThis.__ripStash;if(globalThis.__ripRouter===f)delete globalThis.__ripRouter;if(b.length===1)throw b[0];if(b.length>1)throw AggregateError(b,"Rip App: launch.destroy failed");return};globalThis.__ripStash=l,globalThis.__ripRouter=f;try{if(typeof s.replaceChildren==="function")s.replaceChildren();else if(Array.isArray(s.children))s.children.length=0;h.start()}catch(b){throw R(),b}return{stash:l,components:c,router:f,renderer:h,destroy:R}}var oi,jr,li,ci,fi,B1;B1=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip Workspace: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."||s.startsWith(".")}),i=t.at(-1),n=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||e.startsWith("/")||r||n||i===".rip"||!i.endsWith(".rip"))throw TypeError(`Rip Workspace: invalid component path '${e}'`);return e};jr=function(e){if(typeof e!=="string")throw TypeError("Rip Workspace: component source must be a string");return e};li=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip Workspace: component directory must be a string");let t=e.split("/");if(e.includes("\\")||e.startsWith("/")||t.some(function(r){return!r||r==="."||r===".."||r.startsWith(".")}))throw TypeError(`Rip Workspace: invalid component directory '${e}'`);return e};ci=function(e){if(!(typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)))throw TypeError("Rip Workspace: publication hash must be six Base64URL-folded characters");return e};fi=function(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: compiled component module must be an object");return e};oi=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: prepared state must be an object");let r=ci(e.hash);if(!(e.sources!=null&&typeof e.sources==="object"&&!Array.isArray(e.sources)))throw TypeError("Rip Workspace: prepared sources must be an object");if(!(e.compiled!=null&&typeof e.compiled==="object"&&!Array.isArray(e.compiled)))throw TypeError("Rip Workspace: prepared compiled modules must be an object");let i=new Map,n=new Map,s=e.sources;for(let o in s){if(!Object.hasOwn(s,o))continue;let l=s[o];i.set(B1(o),jr(l))}let a=e.compiled;for(let o in a){if(!Object.hasOwn(a,o))continue;let l=a[o];if(o=B1(o),!i.has(o))throw Error(`Rip Workspace: compiled module '${o}' has no source`);n.set(o,fi(l))}return{hash:r,sources:i,compiled:n}};function Fr(){let e,t=new Map,r=new Map,i=new Set,n=null,s=!1,a=function(l,c){for(let f of Array.from(i))try{f(l,c)}catch(h){console.error("[Rip] workspace watcher error:",h)}return},o=function(l){t=l.sources,r=l.compiled,n=l.hash;return};return e={read(l){return t.get(B1(l))},write(l,c){if(s)throw Error("Rip Workspace: cannot write during a publication transition");l=B1(l),c=jr(c);let f=t.has(l)?"change":"create";t.set(l,c),r.delete(l),a(f,l);return},del(l){if(s)throw Error("Rip Workspace: cannot delete during a publication transition");l=B1(l),t.delete(l),r.delete(l),a("delete",l);return},exists(l){return t.has(B1(l))},size(){return t.size},list(l=""){let c;l=li(l);let f=l?l+"/":"",h=[];for(let[u]of t)if(u.startsWith(f)){if(c=u.slice(f.length),!c.includes("/"))h.push(u)}return h},listAll(l=""){l=li(l);let c=l?l+"/":"",f=[];for(let[h]of t)if(h.startsWith(c))f.push(h);return f},load(l){if(s)throw Error("Rip Workspace: cannot load during a publication transition");if(!(l!=null&&typeof l==="object"&&!Array.isArray(l)))throw TypeError("Rip Workspace: component load expects a source object");let c=[];for(let f in l){if(!Object.hasOwn(l,f))continue;let h=l[f];c.push([B1(f),jr(h)])}for(let[f,h]of c)t.set(f,h),r.delete(f);return},watch(l){if(typeof l!=="function")throw TypeError("Rip Workspace: component watch expects a function");i.add(l);let c=!1;return function(){if(c)return;c=!0,i.delete(l);return}},getCompiled(l){return r.get(B1(l))},setCompiled(l,c){if(s)throw Error("Rip Workspace: cannot compile during a publication transition");if(l=B1(l),!t.has(l))throw Error(`Rip Workspace: setCompiled for unknown component path '${l}'`);r.set(l,fi(c));return},hash(){return n},activate(l){if(n!=null)throw Error("Rip Workspace: a publication is already active");if(s)throw Error("Rip Workspace: a publication transition is already staged");o(oi(l));return},stage(l,c,f){if(s)throw Error("Rip Workspace: a publication transition is already staged");if(l=ci(l),n!==l)throw Error(`Rip Workspace: change starts at ${l}, not ${n}`);if(!Array.isArray(f))throw TypeError("Rip Workspace: changed paths must be an array");let h=f.map(function(d){return B1(d)});if(new Set(h).size!==h.length)throw Error("Rip Workspace: changed paths must be unique");let u=oi(c),m={sources:t,compiled:r,hash:n};s=!0;let S=!1,g=function(d){let R;if(S)throw Error("Rip Workspace: publication transition is already finished");if(S=!0,s=!1,!d)return;o(u);for(let b of h)R=!u.sources.has(b)?"delete":m.sources.has(b)?"change":"create",a(R,b);return};return{components:{getCompiled(d){return u.compiled.get(B1(d))},exists(d){return u.sources.has(B1(d))}},commit(){return g(!0)},rollback(){return g(!1)}}},commit(l,c,f){e.stage(l,c,f).commit();return}},e}var Po,Lo,Mo,jo,Fo,Bo,Uo,Br;Mo=250;Lo=8000;Po=5000;Uo=0;Br=function(e){return typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)};Fo=function(){if(typeof location>"u")throw Error("Rip App: connectFeed needs a hub URL (no location to derive one from)");return`${location.protocol==="https:"?"wss":"ws"}://${location.host}/hub`};Bo=function(){if(typeof WebSocket>"u")throw Error("Rip App: connectFeed needs a socket factory (no global WebSocket)");return function(e){return new WebSocket(e)}};jo=function(){if(typeof fetch>"u")throw Error("Rip App: connectFeed needs a fetch (no global fetch)");return function(e,t){return fetch(e,t)}};function Ur(e,t={}){let r;if(!(e!=null&&typeof e.hash==="function"&&typeof e.apply==="function"&&typeof e.reload==="function"))throw TypeError("Rip App: connectFeed expects hash, apply, and reload callbacks");if(!Br(e.hash()))throw TypeError("Rip App: connectFeed client hash must be six Base64URL-folded characters");let i=t.hub??Fo(),n=t.latestUrl??"/latest.json",s=t.makeSocket??Bo(),a=t.fetch??jo(),o=t.report??function(...M){return console.error(...M)},l=t.backoff?.min??Mo,c=t.backoff?.max??Lo,f=t.ackTimeout??Po,h=!1,u=!1,m=!1,S=!1,g=null,d=0,R=null,b=null,_=0,y=null,p=[],k=Promise.resolve(),I=new Map,A=null,x=function(M){if(u||h)return;u=!0,e.reload(M);return},O=async function(M){let N;if(u||h)return!1;return await(async()=>{try{if(N=await e.apply(M),N==="rejected"){if(Br(M?.hash))A=M?.hash;return!1}if(N==="reload"||!N)return x("change could not be applied"),!1;return A=null,!0}catch(C){return o("[Rip] publication change failed:",C),x("change failed"),!1}})()},G=function(M,N){k=k.then(async function(){if(N!==_)return!0;return await O(M)}),k=k.catch(function(C){return o("[Rip] publication queue failed:",C),x("change queue failed"),!1});return},K=async function(M){let N,C;if(h||u||M!==_)return;let w=e.hash(),D=await a(n,{cache:"no-store"});if(!D?.ok)throw Error(`latest.json fetch failed (${D?.status})`);let B=await D.json();if(!(B!=null&&typeof B==="object"&&!Array.isArray(B)&&Object.keys(B).length===1&&Object.hasOwn(B,"hash")&&Br(B.hash)))throw Error("latest.json is malformed");if(h||u||M!==_)return;if(A!=null){if(B.hash!==A){x(`a newer App generation followed rejected ${A}`);return}p=[],S=!0,d=0;return}let a1=new Set([w]),h1=0;while(h1{try{return g?.close()}catch{}})()}),k=C.then(function(){return!0},function(){return!1}),I.set(M,C),C.finally(function(){return I.get(M)===C?I.delete(M):void 0}),C},Z=function(M,N){if(N!==_)return;let C=null;try{C=JSON.parse(M)}catch{o("[Rip] publication feed received invalid JSON:",M),x("malformed publication frame");return}let w=Array.isArray(C)?C:[C];for(let D of w){if(!(D!=null&&typeof D==="object"))continue;if(Object.keys(D).length===1&&Object.hasOwn(D,"!")&&D["!"]===y&&b!=null){if(b!=null)clearTimeout(b),b=null;V(_)}else if(D.change!==void 0&&!Object.hasOwn(D,"<"))if(A!=null){if(D.change?.hash===A)continue;if(S)G(D.change,N);else p.push(D.change)}else if(S)G(D.change,N);else p.push(D.change);else if(D.reload!==void 0&&!Object.hasOwn(D,"<"))if(A!=null)V(N,!0);else x("server generation changed")}return},W=function(){if(h||u||R!=null)return;let M=Math.min(l*2**d,c);d+=1,R=setTimeout(function(){return R=null,r()},M);return};r=function(){if(h||u)return;_+=1;let M=_;S=!1,p=[],y=`rip-${++Uo}`;try{g=s(i)}catch(N){o("[Rip] publication socket open failed:",N),W();return}g.onmessage=function(N){Z(String(N.data),M);return},g.onopen=function(){if(M!==_||h)return;m=!0;try{g.send(JSON.stringify({"+":["/hub"],"?":y}))}catch(N){o("[Rip] publication subscription failed:",N);try{g.close()}catch{}return}b=setTimeout(function(){if(h||u||M!==_||S)return;return o("[Rip] publication subscription acknowledgement timed out"),(()=>{try{return g.close()}catch{}})()},f);return},g.onclose=function(){if(M!==_)return;if(m=!1,S=!1,b!=null)clearTimeout(b),b=null;W();return},g.onerror=function(){return};return};let j=function(){if(h||u)return;if(g!=null)try{g.close()}catch{}else W();return},q=[],t1=function(M,N,C){if(typeof M?.addEventListener!=="function")return;M.addEventListener(N,C),q.push(function(){return M.removeEventListener(N,C)});return};if(t1(globalThis,"online",function(){return j()}),t1(globalThis,"pageshow",function(M){return M.persisted===!0?j():void 0}),typeof document<"u")t1(document,"visibilitychange",function(){return document.visibilityState==="visible"?j():void 0});return r(),{close(){if(h)return;if(h=!0,_+=1,R!=null)clearTimeout(R);if(b!=null)clearTimeout(b);for(let M of q)M();try{g?.close()}catch{}return},connected(){return m&&S&&!h&&!u},resync(){return j()}}}function Vr(e){if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createApply expects an options object");if(typeof e.renderer?.remountDirty!=="function")throw TypeError("Rip App: createApply requires renderer.remountDirty");if(typeof e.escape!=="function")throw TypeError("Rip App: createApply requires an escape remount");let t=e.report??function(...i){return console.log(...i)};return{absorb:async function(i,n=null){if(!(Array.isArray(i)&&i.length>0))return"ignore";let s=(()=>{let f=[];for(let h of i)if(typeof h==="string"&&h.endsWith(".css"))f.push(h);return f})(),a=(()=>{let f=[];for(let h of i)if(typeof h==="string"&&h.endsWith(".rip"))f.push(h);return f})(),o=(()=>{let f=[];for(let h of i)if(typeof h==="string"&&!h.endsWith(".rip")&&!h.endsWith(".css"))f.push(h);return f})();if(a.length===0){if(o.length>0)return"reload";if(s.length>0)return"css";return"ignore"}let l=await e.renderer.remountDirty(a,n);if(l==="narrow")return t(`[Rip] applied ${a.join(", ")} — update`),"update";if(l==="reload")return t(`[Rip] applied ${a.join(", ")} — reload`),"reload";if(l==="noop")return"ignore";if(await e.escape(a,n)==="reload")return"reload";return t(`[Rip] applied ${a.join(", ")} — update`),"update"}}}var bc=function(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError("Rip App: rash expects bytes")},yc=function(e){let t,r,i,n,s,a,o,l,c,f,h,u,m,S,g,d,R=bc(e);if(typeof Bun<"u"&&Bun.CryptoHasher!=null)return new Uint8Array(new Bun.CryptoHasher("sha256").update(R).digest());let b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],_=R.length*8,y=new Uint8Array(R.length+9+63&-64);y.set(R),y[R.length]=128;let p=new DataView(y.buffer);p.setUint32(y.length-4,_>>>0,!1),p.setUint32(y.length-8,Math.floor(_/4294967296)>>>0,!1);let k=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],I=function(K,V){return K>>>V|K<<32-V},A=new Uint32Array(64),x=0;while(xArray.from({length:Math.max(0,Math.abs(Z-V))},(W,j)=>V+j*(V<=Z?1:-1)))(0,16))A[K]=p.getUint32(x+K*4,!1);for(let K=16;K<64;K++)m=I(A[K-15],7)^I(A[K-15],18)^A[K-15]>>>3,S=I(A[K-2],17)^I(A[K-2],19)^A[K-2]>>>10,A[K]=A[K-16]+m+A[K-7]+S>>>0;[i,n,s,o,l,c,f,h]=k;for(let K=0;K<64;K++)r=I(l,6)^I(l,11)^I(l,25),a=l&c^~l&f,g=h+r+a+b[K]+A[K]>>>0,t=I(i,2)^I(i,13)^I(i,22),u=i&n^i&s^n&s,d=t+u>>>0,h=f,f=c,c=l,l=o+g>>>0,o=s,s=n,n=i,i=g+d>>>0;k[0]=k[0]+i>>>0,k[1]=k[1]+n>>>0,k[2]=k[2]+s>>>0,k[3]=k[3]+o>>>0,k[4]=k[4]+l>>>0,k[5]=k[5]+c>>>0,k[6]=k[6]+f>>>0,k[7]=k[7]+h>>>0,x+=64}let O=new Uint8Array(32),G=new DataView(O.buffer);for(let K of((V,Z)=>Array.from({length:Math.max(0,Math.abs(Z-V))},(W,j)=>V+j*(V<=Z?1:-1)))(0,8))G.setUint32(K*4,k[K],!1);return O},Dt=function(e){let t=yc(e),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";return(r[t[0]>>2]+r[(t[0]&3)<<4|t[1]>>4]+r[(t[1]&15)<<2|t[2]>>6]+r[t[2]&63]+r[t[3]>>2]+r[(t[3]&3)<<4|t[4]>>4]).replaceAll("-","_")},Wr=function(e){let t=JSON.stringify(e.map(function(r){return[r.id,r.hash]}));return Dt(new TextEncoder().encode(t))};var Sc=function(){return globalThis.__ripStash},Rc=function(){return globalThis.__ripRouter};(()=>{if(typeof document>"u"||typeof WebSocket>"u")return;let e=document.currentScript;if(!(e?/\bwatch\.js\b/.test(e.src||""):!!document.querySelector("script[watch]"))||globalThis.__ripWatch)return;globalThis.__ripWatch=!0;let r=location.pathname,i=(f)=>Array.isArray(f)&&(f.includes(r)||r.endsWith("/")&&f.includes(r+"index.html")),n=(f)=>f.headers.get("etag")||f.headers.get("last-modified")||"",s=null;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((f)=>{s=n(f)}).catch(()=>{});let a=()=>{if(s===null)return;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((f)=>{if(n(f)!==s)location.reload()}).catch(()=>{})},o=!1,l=0,c=()=>{let f=location.protocol==="https:"?"wss://":"ws://",h=new WebSocket(f+location.host+"/hub");h.onopen=()=>h.send('{"+":["/assets"],"?":"observe"}'),h.onmessage=(u)=>{let m;try{m=JSON.parse(u.data)}catch{return}for(let S of Array.isArray(m)?m:[m]){if(!S||typeof S!=="object"||"<"in S)continue;if("!"in S){if(o)a();o=!0,l=0}if(i(S.touched))location.reload()}},h.onclose=()=>{if(l+=1,!o&&l>=6)return;setTimeout(c,Math.min(8000,500*2**(l-1)))},h.onerror=()=>{}};c()})();var{__hmrEmit:Ec}=Et;function ui(e,t={}){if(t.face==="ts")throw Error("rip: TypeScript face is unavailable in the browser");return fa(e,{...t,face:"js"})}var Yo={intrinsics:ir,stdlib:sr,schema:fr,reactive:gr,components:Et},zo=Object.freeze({...ir,...sr,...fr,...gr,...Et}),kc=Object.freeze({rash:Dt,check:Wr}),qo=Object.freeze({"rip/app":Hr,"rip/app/rash":kc});var Tc=new Map(Object.keys(Yo).map((e)=>[new URL(`./runtime/${e}.js`,import.meta.url).pathname,e])),wc=/(?:^|\/)src\/runtime\/(intrinsics|stdlib|schema|reactive|components)\.js$/,Gr="__ripModuleBridge",_c=(e)=>e.slice(1,-1),Vo=(e,t)=>{let r=e.split("/").slice(0,-1);for(let i of t.split("/")){if(i===""||i===".")continue;if(i===".."){if(!r.length)return null;r.pop()}else r.push(i)}return r.join("/")},Wo=(e)=>{if(typeof URL<"u"&&typeof URL.createObjectURL==="function"&&typeof Blob<"u")return URL.createObjectURL(new Blob([e],{type:"text/javascript"}));return`data:text/javascript;base64,${btoa(unescape(encodeURIComponent(e)))}`};function Xo({components:e,embeddedPackages:t={},debug:r=!1,hmr:i=!1}={}){if(!e||typeof e.read!=="function")throw TypeError("rip: createModuleLoader requires a component registry");let n=new Map,s=new Map,a=new Map,o=new Map,l=new Map,c=new Set,f=(g)=>{if(typeof g==="string"&&g.startsWith("blob:")&&typeof URL?.revokeObjectURL==="function")URL.revokeObjectURL(g)},h=async()=>{let g=[...c];c.clear(),await Promise.allSettled(g.map(async(d)=>f(await d)))},u=(g,d)=>{if(a.has(g))return a.get(g);globalThis[Gr]??={};let R=globalThis[Gr][g];if(R&&R!==d)throw Error(`rip: two copies of embedded module '${g}' are active on one page`);globalThis[Gr][g]=d;let b=[`const ns = globalThis['${Gr}'][${JSON.stringify(g)}];`];for(let y of Object.keys(d))if(y==="default")b.push("export default ns['default'];");else if(/^[A-Za-z_$][\w$]*$/.test(y))b.push(`export const ${y} = ns[${JSON.stringify(y)}];`);else throw Error(`rip: embedded module '${g}' exports '${y}', which cannot cross the module bridge`);let _=Wo(b.join(` -`));return a.set(g,_),_},m=(g,d)=>{let R=_c(g),b=Tc.get(R)??R.match(wc)?.[1];if(b)return{bridge:`runtime:${b}`,namespace:Yo[b]};let _=(k)=>{try{return e.exists(k)}catch{return!1}},y=R.endsWith(".rip")?"":` — did you mean '${R}.rip'?`;if(R.startsWith("./")||R.startsWith("../")){let k=Vo(d,R);if(k&&_(k))return{path:k};if(!d.startsWith("rip/")){let I=Vo(`app/${d}`,R),A=I?.startsWith("app/")?I.slice(4):I;if(A&&_(A))return{path:A}}throw Error(`rip: '${d}' imports '${R}', which is not in the bundle${y}`)}let p=R.match(/^rip\/([\w-]+)(?:\/(.+))?$/);if(p){if(_(R))return{path:R};let k=`rip/${p[1]}`,I=t[R];if(I)return{bridge:`package:${R}`,namespace:I};if(t[k])throw Error(`rip: '${d}' imports '${R}', which '${k}' does not export in the browser`);let A=p[2]?p[2].endsWith(".rip")?p[2]:`${p[2]}.rip`:"index.rip",x=`${k}/${A}`;if(!_(x))throw Error(`rip: '${d}' imports '${R}', but '${x}' is not in the bundle — `+"only packages declaring browser safety travel to the browser");return{path:x}}throw Error(`rip: '${d}' imports '${R}', which is not loadable in a browser — `+"server-only and unknown modules never travel to the browser")},S=(g,d)=>{if(d.includes(g))throw Error(`rip: import cycle through '${g}' (${d.join(" -> ")} -> ${g})`);if(n.has(g))return n.get(g);let R=(async()=>{let b=e.read(g);if(b===void 0)throw Error(`rip: '${g}' is not in the bundle`);let _=ui(b,{path:g,runtimeDelivery:"import",browserModule:!0,...i?{hmr:!0}:null}),y=_.code;for(let p of[..._.imports].reverse()){let k=m(p.specifier,g);if(k.path){let A=o.get(k.path);if(!A)o.set(k.path,A=new Set);A.add(g);let x=l.get(g);if(!x)l.set(g,x=new Set);x.add(k.path)}let I=k.bridge?u(k.bridge,k.namespace):await S(k.path,[...d,g]);y=`${y.slice(0,p.start)}${JSON.stringify(I)}${y.slice(p.end)}`}if(r){let p=btoa(unescape(encodeURIComponent(JSON.stringify(_.map))));y+=` -//# sourceMappingURL=data:application/json;charset=utf-8;base64,${p}`}return Wo(y)})();return n.set(g,R),R.catch(()=>n.delete(g)),R};return{async import(g){if(s.has(g))return s.get(g);let R=await import(await S(g,[]));return s.set(g,R),e.setCompiled(g,{...R}),R},invalidate(g){let d=[g],R=new Set;while(d.length){let b=d.pop();if(R.has(b))continue;if(R.add(b),n.has(b))c.add(n.get(b));n.delete(b),s.delete(b);for(let _ of o.get(b)??[])d.push(_);o.delete(b);for(let _ of l.get(b)??[]){let y=o.get(_);if(y?.delete(b),y?.size===0)o.delete(_)}l.delete(b)}return R},collect:h,dispose(){for(let g of n.values())c.add(g);n.clear(),s.clear(),o.clear(),l.clear();for(let g of a.values())f(g);a.clear(),h()}}}var Jo=Object.keys(zo),Nc=Jo.map((e)=>zo[e]),Ac=()=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")throw Error("rip: processRipScripts requires a browser or an injected host");return{scripts(){return Array.from(document.querySelectorAll('script[type="text/rip"]')).map((e)=>({src:e.getAttribute("src"),text:e.textContent??""}))},async fetchText(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.text()},prepare(e,t){return Function(...t,e)},async ready(){if(document.readyState==="loading")await new Promise((e)=>document.addEventListener("DOMContentLoaded",e,{once:!0}))},report(e){console.error("[Rip]",String(e))}}},vc=(e)=>{let t=e.split(` +`+h+"}"}return null};return(s)=>{let a=n(s,0);if(a!==null)console.log(a);else console.dir(s,{depth:null,colors:!0});return s}})(),Ra=(e,t)=>{throw t!==void 0?new e(t):Error(e)},Ea=(e,t)=>t!==void 0?(e>t&&([e,t]=[t,e]),Math.floor(Math.random()*(t-e+1)+e)):e?Math.floor(Math.random()*e):Math.random(),ka=(e)=>new Promise((t)=>setTimeout(t,e)),Ta=(e)=>{throw Error(e||"Not implemented")},wa=(...e)=>console.warn(...e),_a=(...e)=>e[0].map((t,r)=>e.map((i)=>i[r])),Na=(e)=>{if(typeof e==="string")return e;if(e==null)return"";if(typeof e==="number"||typeof e==="bigint"||typeof e==="boolean")return String(e);if(typeof e==="symbol")return e.description||"";if(e instanceof Uint8Array||e instanceof ArrayBuffer)return new TextDecoder().decode(e instanceof Uint8Array?e:new Uint8Array(e));if(Array.isArray(e))return e.join(",");if(typeof e.toString==="function"&&e.toString!==Object.prototype.toString)try{return e.toString()}catch{return""}return""};var fr={};xe(fr,{SchemaDef:()=>gt,SchemaError:()=>v1,SchemaRegistry:()=>ee,__schema:()=>M3,installPersistence:()=>D3,registerCoercer:()=>C3});var $a=Symbol.for("rip.runtime.schema");if(globalThis[$a])throw Error("two copies of the Rip schema runtime loaded in one process — schemas from different copies "+"cannot see each other (separate registries, distinct SchemaError classes). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[$a]=!0;var Se=null;function D3(e){if(Se&&Se!==e)throw Error("the Rip schema persistence runtime is already installed — two different copies met in one process");Se=e}class v1 extends Error{constructor(e,t,r){super(x3(e,t));this.name="SchemaError",this.issues=e,this.schemaName=t||null,this.schemaKind=r||null}}function x3(e,t){if(!e||!e.length)return"SchemaError";return(t?t+": ":"")+e.map((i)=>i.message||i.error||"invalid").join("; ")}var Da={__proto__:null,string:(e)=>typeof e==="string",number:(e)=>typeof e==="number"&&!Number.isNaN(e),integer:(e)=>Number.isInteger(e),boolean:(e)=>typeof e==="boolean",date:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),datetime:(e)=>e instanceof Date&&!Number.isNaN(e.getTime()),email:(e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),url:(e)=>typeof e==="string"&&/^https?:\/\/.+/.test(e),uuid:(e)=>typeof e==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e),phone:(e)=>typeof e==="string"&&/^[\d\s\-+()]+$/.test(e),zip:(e)=>typeof e==="string"&&/^\d{5}(-\d{4})?$/.test(e),text:(e)=>typeof e==="string",json:(e)=>e!==void 0,any:()=>!0},cr={integer(e){if(typeof e==="number")return Number.isInteger(e)?{ok:!0,value:e}:{ok:!1};if(typeof e==="string"&&/^[+-]?\d+$/.test(e.trim()))return{ok:!0,value:parseInt(e.trim(),10)};return{ok:!1}},number(e){if(typeof e==="number")return Number.isNaN(e)?{ok:!1}:{ok:!0,value:e};if(typeof e==="string"&&/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e.trim()))return{ok:!0,value:Number(e.trim())};return{ok:!1}},boolean(e){if(typeof e==="boolean")return{ok:!0,value:e};if(e==="true"||e==="1"||e===1)return{ok:!0,value:!0};if(e==="false"||e==="0"||e===0)return{ok:!0,value:!1};return{ok:!1}},date(e){if(e instanceof Date)return Number.isNaN(e.getTime())?{ok:!1}:{ok:!0,value:e};if(typeof e==="number"&&Number.isFinite(e))return{ok:!0,value:new Date(e)};let t=typeof e==="string"?/^(\d{4})-(\d{2})-(\d{2})/.exec(e):null;if(t){let r=+t[2],i=+t[3],n=new Date(Date.UTC(+t[1],r,0)).getUTCDate();if(r<1||r>12||i<1||i>n)return{ok:!1};let s=new Date(e);if(!Number.isNaN(s.getTime()))return{ok:!0,value:s}}return{ok:!1}}};cr.datetime=cr.date;function ar(e){if(e!==null&&typeof e==="object"&&!Array.isArray(e))return null;return{field:"",error:"object",message:"input must be an object; got "+(e===null?"null":Array.isArray(e)?"an array":"a "+typeof e)}}var Dn=new Map;function C3(e,t,r){if(typeof e!=="string"||typeof t!=="function")throw Error("registerCoercer(name, fn, opts?): name string and fn required");let i=Object.prototype.toString.call(t);if(i==="[object AsyncFunction]"||i==="[object GeneratorFunction]"||i==="[object AsyncGeneratorFunction]")throw Error("registerCoercer: coercer '~:"+e+"' must be a plain synchronous function");let n=r?.raw===!0,s=Dn.get(e);if(s){if(s.raw===n&&String(s.fn)===String(t))return t;throw Error("registerCoercer: coercer '~:"+e+"' is already registered")}return Dn.set(e,{fn:t,raw:n}),t}function mt(e){if(Da[e])return null;let t=ee.get(e);return t&&(t.kind==="shape"||t.kind==="input"||t.kind==="model"||t.kind==="union")?t:null}function xn(e,t,r){let i=Da[t];if(i)return i(e)?{value:e}:{errors:[{field:"",error:"type",message:"must be "+t}]};let n=ee.get(t);if(!n)return{value:e};if(n.kind==="enum"){let a=n._validateEnum(e,!0);return a.length?{errors:[{field:"",error:"enum",message:a[0].message}]}:{value:n._materializeEnum(e)}}if(n.kind==="mixin")return{errors:[{field:"",error:"type",message:":mixin "+t+" is not usable as a field type"}]};if(n.kind==="union"){let a=n._unionResolve(e);if(a.issue)return{errors:[a.issue]};let o=r?.existing?a.def._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):a.def._runSync(e,{...r,materialize:!1,materializeNested:!1});if(o.thrown){if(r?.derived==="throw")throw o.thrown;return{errors:[{field:"",error:"derived",message:o.thrown?.message||String(o.thrown)}]}}return o.ok?{value:o.value}:{errors:o.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let s=r?.existing?n._runExistingSync(e,{...r,materialize:!1,materializeNested:!1}):n._runSync(e,{...r,materialize:!1,materializeNested:!1});if(s.thrown){if(r?.derived==="throw")throw s.thrown;return{errors:[{field:"",error:"derived",message:s.thrown?.message||String(s.thrown)}]}}return s.ok?{value:s.value}:{errors:s.errors}}async function Aa(e,t,r){let i=mt(t);if(i===null)return xn(e,t,r);if(i.kind==="union"){let s=i._unionResolve(e);if(s.issue)return{errors:[s.issue]};let a=r?.existing?await s.def._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await s.def._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(a.thrown){if(r?.derived==="throw")throw a.thrown;return{errors:[{field:"",error:"derived",message:a.thrown?.message||String(a.thrown)}]}}return a.ok?{value:a.value}:{errors:a.errors}}if(e===null||typeof e!=="object"||Array.isArray(e))return{errors:[{field:"",error:"type",message:"must be a "+t+" object"}]};let n=r?.existing?await i._runExistingAsync(e,{...r,materialize:!1,materializeNested:!1}):await i._runAsync(e,{...r,materialize:!1,materializeNested:!1});if(n.thrown){if(r?.derived==="throw")throw n.thrown;return{errors:[{field:"",error:"derived",message:n.thrown?.message||String(n.thrown)}]}}return n.ok?{value:n.value}:{errors:n.errors}}function pt(e,t){if(!t)return e;return e+(t.startsWith("[")?t:"."+t)}function or(e,t,r){if(!t)return e+" "+r;if(r.startsWith(t))return e+r.slice(t.length);return e+": "+r}var lr=Symbol("schema.materialization-error");function va(e,t){if(e&&e[lr])return{[lr]:!0,error:e.error,field:pt(t,e.field)};return{[lr]:!0,error:e,field:t}}function Be(e){return e&&e[lr]?{thrown:e.error,derivedField:e.field}:{thrown:e,derivedField:""}}var P3=Je;function Oa(e){let t=(i)=>JSON.stringify(i??null,(n,s)=>s instanceof RegExp?String(s):typeof s==="function"?"":s),r=[e.kind];for(let i of e._desc.entries||[])switch(i.tag){case"field":r.push("f:"+i.name+":"+(i.typeName||"")+(i.array?"[]":"")+":"+(i.modifiers||[]).join("")+(i.literals?":"+i.literals.join(","):"")+":"+t(i.constraints)+(i.coerce?":~"+(i.coercer||""):"")+(i.transform?":t":""));break;case"enum-member":r.push("e:"+i.name+"="+String(i.value));break;case"directive":r.push("d:"+i.name+":"+t(i.args));break;case"ensure":r.push("n:"+(i.message||""));break;default:r.push(i.tag+":"+(i.name||""))}return r.join("|")}var ye=0,ee={_entries:new Map,replace:!1,register(e){if(!e.name)return;ye++;let t=this._entries.get(e.name);if(t&&t.def!==e&&!this.replace){if(Oa(t.def)!==Oa(e))throw new v1([{field:e.name,error:"collision",message:"schema name '"+e.name+"' is already registered with a different definition. Schema names are app-global (they resolve nested field types and @mixin references), so two "+"different schemas cannot share one name. Rename one — or, for dev/HMR reload semantics, set "+"SchemaRegistry.replace = true before re-evaluating modules."}],e.name,e.kind)}this._entries.set(e.name,{def:e,kind:e.kind})},get(e){let t=this._entries.get(e);return t?t.def:null},getKind(e,t){let r=this._entries.get(e);return r&&r.kind===t?r.def:null},has(e){return this._entries.has(e)},names(){return[...this._entries.keys()]},reset(){this._entries.clear(),ye++},scope(e){let t=this._entries;this._entries=new Map,ye++;let r=()=>{this._entries=t,ye++};try{let i=e();if(i&&typeof i.then==="function")return i.finally(r);return r(),i}catch(i){throw r(),i}}};class gt{constructor(e){if(e.kind==="model"&&!Se)throw Error("schema: kind 'model' needs the persistence runtime (src/runtime/orm.js), which is not "+"loaded in this process — reference a persistence name (schema.transaction, __schemaSetAdapter) "+"or import the module directly");if(this._desc=e,this.kind=e.kind,this.name=e.name||null,this._norm=null,this._klass=null,this._unionPlanCache=null,this._sourceModel=null,e.kind==="model")Se.decorateDef(this,e)}_normalize(){if(this._norm)return this._norm;let e=new Map,t=new Map,r=new Map,i=new Map,n=new Map,s=new Map,a=null,o=[],l=new Map,c=[],f=(b,_)=>{throw new v1([{field:b,error:"collision",message:b+" collides with "+_}],this.name,this.kind)},h=(b)=>{if(e.has(b))f(b,"field");if(t.has(b))f(b,"method");if(r.has(b))f(b,"computed");if(i.has(b))f(b,"derived");if(n.has(b))f(b,"hook")},u=(b)=>{throw new v1([{field:"",error:"kind",message:b+" is :model-only (this schema is :"+this.kind+")"}],this.name,this.kind)},d=this.kind==="union"?new Set(["on"]):new Set(["mixin"]),S=(b,_)=>{if(!P3(b))throw new v1([{field:b,error:"invalid-name",message:_+" name '"+b+"' is not canonical camelCase. Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters (e.g. 'mdmId' not 'mdmID')."}],this.name,this.kind)};for(let b of this._desc.entries)switch(b.tag){case"field":S(b.name,"field"),h(b.name),e.set(b.name,{name:b.name,required:b.modifiers.includes("!"),optional:b.modifiers.includes("?"),unique:b.unique===!0,primary:b.primary===!0,attrs:b.attrs||null,typeName:b.typeName,literals:b.literals||null,array:b.array===!0,coerce:b.coerce===!0,coercer:b.coercer||null,constraints:b.constraints||null,transform:b.transform||null});break;case"method":h(b.name),t.set(b.name,b.fn);break;case"computed":h(b.name),r.set(b.name,b.fn);break;case"derived":h(b.name),i.set(b.name,b.fn);break;case"hook":if(this.kind!=="model")u("lifecycle hook '"+b.name+"'");if(n.has(b.name))f(b.name,"duplicate hook");n.set(b.name,b.fn);break;case"scope":if(this.kind!=="model")u("query scope '@scope :"+b.name+"'");if(s.has(b.name))f(b.name,"scope");s.set(b.name,b.fn);break;case"defaultScope":if(this.kind!=="model")u("@defaultScope");if(a)throw new v1([{field:"",error:"collision",message:"only one @defaultScope per model"}],this.name,this.kind);a=b.fn;break;case"directive":if(this.kind!=="model"&&!d.has(b.name))throw new v1([{field:"",error:"directive",message:"unknown directive '@"+b.name+"' on :"+this.kind+" — legal here: "+[...d].map((_)=>"@"+_).join(", ")}],this.name,this.kind);o.push({name:b.name,args:b.args||[]});break;case"enum-member":l.set(b.name,b.value!==void 0?b.value:b.name);break;case"union-member":break;case"ensure":c.push({message:b.message,field:b.field||"",async:b.async===!0,fn:b.fn});break;default:throw new v1([{field:"",error:"entry",message:"unknown schema entry tag '"+b.tag+"'"}],this.name,this.kind)}if(this.kind==="shape"||this.kind==="input"||this.kind==="mixin"||this.kind==="model")Pa(this,e,o,{stack:[this.name||""],seen:new Set([this.name||""])});let g=null,p=[];if(this.kind==="union"){for(let b of o)if(b.name==="on"&&b.args?.[0]?.field)g=b.args[0].field;for(let b of this._desc.entries)if(b.tag==="union-member")p.push(b.name)}let R={fields:e,methods:t,computed:r,derived:i,hooks:n,scopes:s,defaultScope:a,directives:o,enumMembers:l,ensures:c,hasAsyncEnsures:c.some((b)=>b.async),unionOn:g,unionMembers:p};if(this.kind==="model")Se.finishModelNorm(this,R);return this._norm=R,this._norm}_unionPlan(){if(this._unionPlanCache&&this._unionPlanCache.gen===ye)return this._unionPlanCache.plan;let e=this._normalize(),t=e.unionOn;if(this.kind!=="union"||!t)throw Error("schema: '"+(this.name||"anon")+"' is not a :union");let r=new Map,i=[];for(let s of e.unionMembers){let a=ee.get(s);if(!a)throw new v1([{field:"",error:"union",message:"unknown union constituent: "+s+" (import the file that declares it)"}],this.name,this.kind);i.push(a);let o=a._normalize().fields.get(t);if(!o||o.typeName!=="literal-union"||!o.literals?.length)throw new v1([{field:t,error:"union",message:s+" must declare '"+t+"' as a string-literal type (e.g. "+t+'! "click") to join union '+(this.name||"")}],this.name,this.kind);for(let l of o.literals){if(r.has(l))throw new v1([{field:t,error:"union",message:"duplicate discriminator value "+JSON.stringify(l)+" in "+(r.get(l).name||"anon")+" and "+s}],this.name,this.kind);r.set(l,a)}}let n={disc:t,map:r,expected:[...r.keys()].join(" | "),hasAsyncEnsures:i.some((s)=>s._normalize().hasAsyncEnsures)};return this._unionPlanCache={gen:ye,plan:n},n}_unionResolve(e){let t=this._unionPlan();if(e===null||typeof e!=="object"||Array.isArray(e))return{issue:{field:t.disc,error:"union",message:"expected an object with "+t.disc}};let r=t.map.get(e[t.disc]);if(!r)return{issue:{field:t.disc,error:"union",message:"expected one of "+t.expected}};return{def:r}}_applyEagerDerived(e){let t=this._normalize();if(!t.derived.size)return;for(let[r,i]of t.derived){let n=i.call(e);Object.defineProperty(e,r,{value:n,enumerable:!0,writable:!0,configurable:!0})}}_materializeValidatedValue(e,t,r){return this._materializeNestedValues(e,t,r),this._materializeOwnValidatedValue(e,t,r)}_materializeNestedValues(e,t,r){let i=this._normalize();for(let[n,s]of i.fields){let a=mt(s.typeName);if(!a)continue;let o=e[n];if(o===void 0||o===null)continue;let l=t==null?void 0:t[n];if(s.array){if(!Array.isArray(o))continue;let c=Array(o.length);for(let f=0;f{let a=()=>({field:n.field||"",error:"ensure",message:n.message||"ensure failed"});if(n.async)i.push((async()=>{let o=!1;try{o=!!await n.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})})());else{let o=!1;try{o=!!n.fn(e)}catch{o=!1}if(!o)r.push({idx:s,issue:a()})}}),await Promise.all(i),r.sort((n,s)=>n.idx-s.idx),r.map((n)=>n.issue)}_transitiveAsync(){if(this._taGen===ye)return this._taCache;let e=new Set,t=(r)=>{if(e.has(r))return!1;e.add(r);let i=r._normalize();if(i.hasAsyncEnsures)return!0;if(r.kind==="union"){for(let n of i.unionMembers){let s=ee.get(n);if(s&&t(s))return!0}return!1}for(let n of i.fields.values()){let s=mt(n.typeName);if(s&&t(s))return!0}return!1};return this._taCache=t(this),this._taGen=ye,this._taCache}_assertSyncValidatable(e){if(!this._transitiveAsync())return;let t=this.kind!=="union"&&this._normalize().hasAsyncEnsures;throw Error("schema '"+(this.name||"anon")+"' has async refinements (@ensure!"+(t?"":" in a nested or constituent schema")+"); ."+e+"() is sync. Use parseAsync/safeAsync/okAsync instead.")}_getClass(){if(this._klass)return this._klass;let e=this._normalize(),t=this.name||"Schema",r=[...e.fields.keys()],i={[t]:class{constructor(n){if(n&&typeof n==="object"){for(let s of r)if(s in n&&n[s]!==void 0)this[s]=n[s]}}}}[t];for(let[n,s]of e.methods)Object.defineProperty(i.prototype,n,{value:s,writable:!0,enumerable:!1,configurable:!0});for(let[n,s]of e.computed)Object.defineProperty(i.prototype,n,{get:s,enumerable:!1,configurable:!0});return this._klass=i,i}_coerceDates(e){let t=this._normalize(),r=(s)=>typeof s==="string"&&/^\d{4}-\d{2}-\d{2}([T ].*)?$/.test(s),i=(s)=>{let a=/^(\d{4})-(\d{2})-(\d{2})/.exec(s),o=+a[2],l=+a[3];return o>=1&&o<=12&&l>=1&&l<=new Date(Date.UTC(+a[1],o,0)).getUTCDate()},n=(s)=>{if(!i(s))return s;let a=new Date(s);return Number.isNaN(a.getTime())?s:a};for(let[s,a]of t.fields){if(a.typeName!=="date"&&a.typeName!=="datetime")continue;let o=e[s];if(a.array&&Array.isArray(o))e[s]=o.map((l)=>r(l)?n(l):l);else if(r(o))e[s]=n(o)}}_validateFields(e,t,r,i){let n=this._normalize(),s=t?[]:null;for(let[a,o]of n.fields){if(r&&r.has(a))continue;let l=e==null?void 0:e[a];if(l===void 0||l===null){if(o.required){if(!t)return!1;s.push({field:a,error:"required",message:a+" is required"})}continue}if(o.array){if(!Array.isArray(l)){if(!t)return!1;s.push({field:a,error:"type",message:a+" must be an array"});continue}let f=o.constraints;if(f){if(f.min!=null&&l.lengthf.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must have at most "+f.max+" items"})}}if(i?.deferNested&&mt(o.typeName))continue;let h=!1,u=!1,d=Array(l.length);for(let S=0;SJSON.stringify(f)).join(", ")});continue}}else{if(i?.deferNested&&mt(o.typeName))continue;let f=xn(l,o.typeName,i);if(f.errors){if(!t)return!1;for(let h of f.errors){let u=pt(a,h.field);s.push({field:u,error:h.error,message:or(u,h.field,h.message)})}continue}if(f.value!==l)e[a]=f.value}let c=o.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be at most "+c.max+" chars"})}if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l)){if(!t)return!1;s.push({field:a,error:"pattern",message:a+" is invalid"})}}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min})}if(c.max!=null&&l>c.max){if(!t)return!1;s.push({field:a,error:"max",message:a+" must be <= "+c.max})}}}}return t?s:!0}_applyDefaults(e){let t=this._normalize();for(let[r,i]of t.fields)if((e[r]===void 0||e[r]===null)&&i.constraints?.default!==void 0){let n=i.constraints.default;e[r]=typeof n==="object"&&n!==null&&!(n instanceof RegExp)?structuredClone(n):n}return e}_applyTransforms(e,t){let r=this._normalize(),i=[];for(let[n,s]of r.fields){if(!s.transform)continue;try{t[n]=s.transform(e)}catch(a){i.push({field:n,error:"transform",message:a?.message||String(a)})}}return i}_applyCoercions(e,t){let r=this._normalize(),i=[];for(let[n,s]of r.fields){if(!s.coerce)continue;let a=e[n];if(a===void 0||a===null)continue;if(s.coercer){let l=Dn.get(s.coercer);if(!l)throw Error("schema: no coercer registered for '~:"+s.coercer+"' (field '"+n+"' on "+(this.name||"anon")+"). Register it with registerCoercer('"+s.coercer+"', fn).");let c=l.raw?a:String(a).trim(),f;try{f=l.fn(c)}catch{f=null}if(f===null||f===void 0)i.push({field:n,error:"coerce",message:n+" is not a valid "+s.coercer}),t.add(n);else e[n]=f;continue}let o=cr[s.typeName]?cr[s.typeName](a):{ok:!1};if(o.ok)e[n]=o.value;else i.push({field:n,error:"coerce",message:n+" cannot be coerced to "+s.typeName}),t.add(n)}return i}_orderFieldErrors(...e){let t=new Map,r=0;for(let[i]of this._normalize().fields)t.set(i,r++);return e.flat().map((i,n)=>{let s=String(i.field||"").split(/[.[]/,1)[0];return{issue:i,seq:n,rank:t.has(s)?t.get(s):r}}).sort((i,n)=>i.rank-n.rank||i.seq-n.seq).map((i)=>i.issue)}_validateEnum(e,t){let r=this._normalize();for(let[n,s]of r.enumMembers)if(e===n||e===s)return t?[]:!0;if(!t)return!1;let i=[...r.enumMembers.keys()].join(", ");return[{field:"",error:"enum",message:(this.name||"enum")+" expected one of: "+i}]}_materializeEnum(e){let t=this._normalize();for(let[r,i]of t.enumMembers)if(e===r||e===i)return i;return e}_runSync(e,t){if(this.kind==="union"){let f=this._unionResolve(e);if(f.issue)return{ok:!1,errors:[f.issue]};let h=f.def._runSync(e,t);return h.ok?h:{...h,from:h.from||f.def}}if(this.kind==="enum"){let f=this._validateEnum(e,!0);return f.length?{ok:!1,errors:f}:{ok:!0,value:this._materializeEnum(e)}}let r=ar(e);if(r)return{ok:!1,errors:[r]};let i=e,n={...i},s=new Set,a=this._applyTransforms(i,n),o=this._applyCoercions(n,s);this._applyDefaults(n),this._coerceDates(n);let l=this._orderFieldErrors(a,o,this._validateFields(n,!0,s,t));if(l.length)return{ok:!1,errors:l};let c=t?.skipEnsures?[]:this._applyEnsures(n);if(c.length)return{ok:!1,errors:c};if(t?.materializeNested)try{this._materializeNestedValues(n,null,!1)}catch(f){return{ok:!1,errors:null,...Be(f)}}if(!t?.materialize)return{ok:!0,value:n};try{return{ok:!0,value:this._materializeOwnValidatedValue(n,null,!1)}}catch(f){return{ok:!1,errors:null,...Be(f)}}}async _runAsync(e,t){if(this.kind==="union"){let h=this._unionResolve(e);if(h.issue)return{ok:!1,errors:[h.issue]};let u=await h.def._runAsync(e,t);return u.ok?u:{...u,from:u.from||h.def}}if(this.kind==="enum")return this._runSync(e,t);let r=ar(e);if(r)return{ok:!1,errors:[r]};let i=e,n={...i},s=new Set,a=this._applyTransforms(i,n),o=this._applyCoercions(n,s);this._applyDefaults(n),this._coerceDates(n);let l=await this._validateFieldsAsync(n,s,t),c=this._orderFieldErrors(a,o,l);if(c.length)return{ok:!1,errors:c};let f=t?.skipEnsures?[]:await this._applyEnsuresAsync(n);if(f.length)return{ok:!1,errors:f};if(t?.materializeNested)try{this._materializeNestedValues(n,null,!1)}catch(h){return{ok:!1,errors:null,...Be(h)}}if(!t?.materialize)return{ok:!0,value:n};try{return{ok:!0,value:this._materializeOwnValidatedValue(n,null,!1)}}catch(h){return{ok:!1,errors:null,...Be(h)}}}async _validateFieldsAsync(e,t,r){let i=this._normalize(),n=[];for(let[s,a]of i.fields){if(t&&t.has(s))continue;let o=e[s];if(o===void 0||o===null){if(a.required)n.push({field:s,error:"required",message:s+" is required"});continue}if(a.array){if(!Array.isArray(o)){n.push({field:s,error:"type",message:s+" must be an array"});continue}let f=a.constraints;if(f?.min!=null&&o.lengthf.max)n.push({field:s,error:"max",message:s+" must have at most "+f.max+" items"});let h=Array(o.length),u=!1;for(let d=0;dJSON.stringify(f)).join(", ")})}else{let f=await Aa(o,a.typeName,r);if(f.errors)for(let h of f.errors){let u=pt(s,h.field);n.push({field:u,error:h.error,message:or(u,h.field,h.message)})}else e[s]=f.value}let l=e[s],c=a.constraints;if(c){if(typeof l==="string"){if(c.min!=null&&l.lengthc.max)n.push({field:s,error:"max",message:s+" must be at most "+c.max+" chars"});if(c.regex){if(c.regex.global||c.regex.sticky)c.regex.lastIndex=0;if(!c.regex.test(l))n.push({field:s,error:"pattern",message:s+" is invalid"})}}else if(typeof l==="number"){if(c.min!=null&&l= "+c.min});if(c.max!=null&&l>c.max)n.push({field:s,error:"max",message:s+" must be <= "+c.max})}}}return n}_runExistingSync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=a.def._runExistingSync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=ar(e);if(r)return{ok:!1,errors:[r]};let i={...e},n=this._validateFields(i,!0,null,{...t,existing:!0});if(n.length)return{ok:!1,errors:n};let s=t?.skipEnsures?[]:this._applyEnsures(i);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(i,e,!0)}catch(a){return{ok:!1,errors:null,...Be(a)}}return this._finishExistingValue(e,i,t)}async _runExistingAsync(e,t){if(this.kind==="union"){let a=this._unionResolve(e);if(a.issue)return{ok:!1,errors:[a.issue]};let o=await a.def._runExistingAsync(e,t);return o.ok?o:{...o,from:o.from||a.def}}if(this.kind==="enum")return this._runSync(e,t);let r=ar(e);if(r)return{ok:!1,errors:[r]};let i={...e},n=await this._validateFieldsAsync(i,null,{...t,existing:!0});if(n.length)return{ok:!1,errors:n};let s=t?.skipEnsures?[]:await this._applyEnsuresAsync(i);if(s.length)return{ok:!1,errors:s};if(t?.materializeNested)try{this._materializeNestedValues(i,e,!0)}catch(a){return{ok:!1,errors:null,...Be(a)}}return this._finishExistingValue(e,i,t)}_finishExistingValue(e,t,r){if(!r?.materialize)return{ok:!0,value:t};let i=this._getClass(),n=!0;for(let[a]of this._normalize().fields)if(t[a]!==e[a]){n=!1;break}if(n)return{ok:!0,value:e};let s=new i(t);try{this._applyEagerDerived(s)}catch(a){return{ok:!1,errors:null,thrown:a}}return{ok:!0,value:s}}parse(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");this._assertSyncValidatable("parse");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new v1(t.errors,r.name,r.kind)}get array(){let e=this,t=(s)=>({field:"",error:"not_array",message:"expected an array, received "+(s===null?"null":s===void 0?"undefined":typeof s==="object"?"an object with keys ["+Object.keys(s).join(", ")+"]":typeof s)}),r=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{if(l.ok)a.push(l.value);else for(let f of l.errors)o.push({...f,field:"["+c+"]"+(f.field?"."+f.field:"")})}),{value:a,errors:o}},i=(s)=>{let a=[],o=[];return s.forEach((l,c)=>{try{a.push(e.parse(l))}catch(f){if(!(f instanceof v1))throw f;for(let h of f.issues)o.push({...h,field:"["+c+"]"+(h.field?"."+h.field:"")})}}),{value:a,errors:o}},n=async(s)=>{let a=[],o=[];for(let l=0;le.safe(l)));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},ok(s){return Array.isArray(s)&&s.every((a)=>e.ok(a))},async parseAsync(s){if(!Array.isArray(s))throw new v1([t(s)],e.name,e.kind);let{value:a,errors:o}=await n(s);if(o.length)throw new v1(o,e.name,e.kind);return a},async safeAsync(s){if(!Array.isArray(s))return{ok:!1,value:null,errors:[t(s)]};let{value:a,errors:o}=r(await Promise.all(s.map((l)=>e.safeAsync(l))));return o.length?{ok:!1,value:null,errors:o}:{ok:!0,value:a,errors:null}},async okAsync(s){return Array.isArray(s)&&(await Promise.all(s.map((a)=>e.okAsync(a)))).every(Boolean)},toJSONSchema(){return{type:"array",items:e.toJSONSchema()}}}}safe(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};this._assertSyncValidatable("safe");let t=this._runSync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}ok(e){if(this.kind==="mixin")return!1;return this._assertSyncValidatable("ok"),this._runSync(e,{materialize:!1,materializeNested:!1,derived:"issue"}).ok}async parseAsync(e){if(this.kind==="mixin")throw Error(":mixin schema '"+(this.name||"anon")+"' is not instantiable");let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"throw"});if(t.ok)return t.value;if(t.thrown)throw t.thrown;let r=t.from||this;throw new v1(t.errors,r.name,r.kind)}async safeAsync(e){if(this.kind==="mixin")return{ok:!1,value:null,errors:[{field:"",error:"mixin",message:"not instantiable"}]};let t=await this._runAsync(e,{materialize:!0,materializeNested:!0,derived:"issue"});if(t.ok)return{ok:!0,value:t.value,errors:null};if(t.thrown)return{ok:!1,value:null,errors:[{field:t.derivedField||"",error:"derived",message:t.thrown?.message||String(t.thrown)}]};return{ok:!1,value:null,errors:t.errors}}async okAsync(e){if(this.kind==="mixin")return!1;return(await this._runAsync(e,{materialize:!1,materializeNested:!1,derived:"issue"})).ok}pick(...e){return dt(this,(t)=>{let r=$n(e),i=new Map;for(let n of r){if(!t.has(n))throw Error("pick: unknown field '"+n+"' on "+(this.name||"schema"));i.set(n,t.get(n))}return i})}omit(...e){return dt(this,(t)=>{let r=new Set($n(e)),i=new Map;for(let[n,s]of t)if(!r.has(n))i.set(n,s);return i})}partial(){return dt(this,(e)=>{let t=new Map;for(let[r,i]of e)t.set(r,{...i,required:!1});return t})}required(...e){return dt(this,(t)=>{let r=new Set($n(e)),i=new Map;for(let[n,s]of t)i.set(n,{...s,required:r.has(n)?!0:s.required});return i})}extend(e){if(!(e instanceof gt))throw Error("extend(): argument must be a schema value");if(e.kind==="union")throw Error("extend(): :union schemas have no fields to merge");return dt(this,(t)=>{let r=new Map(t),i=e._normalize().fields;for(let[n,s]of i){if(r.has(n))throw Error("extend(): field '"+n+"' collides between "+(this.name||"schema")+" and "+(e.name||"other"));r.set(n,s)}return r})}toJSONSchema(){let e={defs:new Map,expanding:new Set},t=Ca(this,e);if(t.$schema="https://json-schema.org/draft/2020-12/schema",this.name)t.title=this.name;if(e.defs.size){t.$defs={};for(let[r,i]of e.defs)t.$defs[r]=i}return t}}var Ia={__proto__:null,string:()=>({type:"string"}),text:()=>({type:"string"}),email:()=>({type:"string",format:"email"}),url:()=>({type:"string",format:"uri"}),uuid:()=>({type:"string",format:"uuid"}),phone:()=>({type:"string",pattern:"^[\\d\\s\\-+()]+$"}),zip:()=>({type:"string",pattern:"^\\d{5}(-\\d{4})?$"}),number:()=>({type:"number"}),integer:()=>({type:"integer"}),boolean:()=>({type:"boolean"}),date:()=>({type:"string",format:"date"}),datetime:()=>({type:"string",format:"date-time"}),json:()=>({}),any:()=>({})};function L3(e,t){let r;if(e.typeName==="literal-union"&&e.literals?.length)r=e.literals.length===1?{const:e.literals[0]}:{enum:[...e.literals]};else if(Ia[e.typeName])r=Ia[e.typeName]();else{let n=ee.get(e.typeName);r=n?xa(n,t):{}}let i=e.constraints;if(i&&!e.array){if(r.type==="string"){if(i.min!=null)r.minLength=i.min;if(i.max!=null)r.maxLength=i.max;if(i.regex)r.pattern=i.regex.source}else if(r.type==="number"||r.type==="integer"){if(i.min!=null)r.minimum=i.min;if(i.max!=null)r.maximum=i.max}}if(e.array){if(r={type:"array",items:r},i){if(i.min!=null)r.minItems=i.min;if(i.max!=null)r.maxItems=i.max}}if(i&&i.default!==void 0)r.default=i.default;if(e.coerce)r.description=((r.description?r.description+" ":"")+"Coerced from wire data ("+(e.coercer?"~:"+e.coercer:"~"+e.typeName)+").").trim();if(e.transform)r.description=((r.description?r.description+" ":"")+"Derived via transform; the raw input may use different keys.").trim();return r}function xa(e,t){let r=e.name||"Anon";if(!t.defs.has(r)&&!t.expanding.has(r))t.expanding.add(r),t.defs.set(r,null),t.defs.set(r,Ca(e,t)),t.expanding.delete(r);return{$ref:"#/$defs/"+r}}function Ca(e,t){let r=e._normalize();if(e.kind==="enum")return{enum:[...new Set(r.enumMembers.values())]};if(e.kind==="union"){let a=e._unionPlan();return{oneOf:r.unionMembers.map((l)=>{let c=ee.get(l);return c?xa(c,t):{}}),discriminator:{propertyName:a.disc}}}let i={},n=[];for(let[a,o]of r.fields)if(i[a]=L3(o,t),o.required&&o.constraints?.default===void 0)n.push(a);if(e.kind==="model")Se.jsonSchemaModelColumns(e,i);let s={type:"object",properties:i};if(n.length)s.required=n;if(r.ensures.length)s.description="Refinements (not expressible in JSON Schema): "+r.ensures.map((a)=>a.message).join("; ")+".";return s}function $n(e){let t=[];for(let r of e)if(Array.isArray(r))for(let i of r)t.push(i);else t.push(r);return t}function dt(e,t){if(e.kind==="union")throw Error("schema algebra (.pick/.omit/.partial/.required/.extend) is not supported on :union — derive from a constituent schema instead");if(e.kind==="enum")throw Error("schema algebra is not supported on :enum — an enum has no field set");let r=e.kind==="model"?Se.projectableFields(e):e._normalize().fields,i=t(r),n=[];for(let[,o]of i){let l=[];if(o.required)l.push("!");if(o.optional&&!o.required)l.push("?");n.push({tag:"field",name:o.name,modifiers:l,unique:o.unique===!0,primary:o.primary===!0,attrs:o.attrs||null,typeName:o.typeName,array:o.array,literals:o.literals||null,coerce:o.coerce===!0,coercer:o.coercer||null,constraints:o.constraints,transform:o.transform||null})}let s=(e.name||"Schema")+"Derived",a=new gt({kind:"shape",name:s,entries:n});return a._sourceModel=e._sourceModel||(e.kind==="model"?e:null),a}function Pa(e,t,r,i){for(let n of r){if(n.name!=="mixin"||!n.args||!n.args[0])continue;let s=n.args[0].target;if(!s)continue;if(i.stack.includes(s))throw new v1([{field:"",error:"mixin-cycle",message:"mixin cycle: "+i.stack.concat(s).join(" -> ")}],e.name,e.kind);if(i.seen.has(s))continue;let a=ee.getKind(s,"mixin");if(!a)throw new v1([{field:"",error:"mixin-missing",message:"unknown mixin: "+s}],e.name,e.kind);i.seen.add(s),i.stack.push(s);let o=a._desc.entries.filter((l)=>l.tag==="directive"&&l.name==="mixin").map((l)=>({name:l.name,args:l.args||[]}));Pa(e,t,o,i);for(let l of a._desc.entries){if(l.tag!=="field")continue;if(t.has(l.name))throw new v1([{field:l.name,error:"mixin-collision",message:l.name+" from mixin "+s+" collides with existing field"}],e.name,e.kind);if(e.kind!=="model"&&(l.unique===!0||l.attrs))throw new v1([{field:l.name,error:"mixin-persistence",message:l.name+" from mixin "+s+" carries persistence metadata (@unique/attrs) — :model-only; a :"+e.kind+" cannot include it"}],e.name,e.kind);t.set(l.name,{name:l.name,required:l.modifiers.includes("!"),optional:l.modifiers.includes("?"),unique:l.unique===!0,attrs:l.attrs||null,typeName:l.typeName,literals:l.literals||null,array:l.array===!0,coerce:l.coerce===!0,coercer:l.coercer||null,constraints:l.constraints||null,transform:l.transform||null})}i.stack.pop()}}function M3(e){let t=new gt(e);if(t.name)ee.register(t);return t}if(typeof globalThis<"u")globalThis.__ripSchema=globalThis.__ripSchema||{},globalThis.__ripSchema.SchemaRegistry=ee;var gr={};xe(gr,{__batch:()=>L1,__catchErrors:()=>ue,__computed:()=>H1,__detachRef:()=>Cn,__effect:()=>$1,__handleError:()=>te,__ownerFrame:()=>yt,__popOwner:()=>Y1,__pushOwner:()=>le,__readonly:()=>fe,__setEffectErrorReporter:()=>j3,__setErrorHandler:()=>he,__state:()=>_1,getEffectSignal:()=>ce});var Ma=Symbol.for("rip.runtime.reactive");if(globalThis[Ma])throw Error("two copies of the Rip reactive runtime loaded in one process — states from different copies "+"cannot notify each other (separate dependency graphs, separate effect queues). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ma]=!0;var N1=null,mr=[],Ue={buckets:[],size:0,low:0,add(e){let t=e.depth,r=this.buckets[t];if(r===void 0)r=this.buckets[t]=new Set;if(r.has(e))return;if(r.add(e),this.size++,tconsole.error(e,t);function j3(e){let t=bt;return bt=e,t}function ja(){try{while(Ue.size>0){let e=Ue.shift();if(!e._disposed)e.run()}}catch(e){throw Ue.clear(),e}}var Fa={valueOf(){return this.value},toString(){return String(this.value)},[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}};function _1(e){if(e!=null&&typeof e==="object"&&typeof e.read==="function")return e;let t=e,r=new Set,i=!1,n=!1,s=!1,a=()=>{if(N1&&typeof N1.markDirty==="function"&&N1.dependencies.has(r))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency")},o=()=>{for(let f of mr)f.writtenSignals.add(r)},l=()=>{i=!0;try{for(let f of r)if(f.markDirty)f.markDirty(!0);else f._hard=!0,Ue.add(f);if(!dr)ja()}finally{i=!1}},c={get value(){if(s)return t;if(N1?.writtenSignals&&mr.some((f)=>f.writtenSignals.has(r)))throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");if(N1)r.add(N1),N1.dependencies.add(r);return t},set value(f){if(s||n||f===t)return;if(a(),i)return;o(),t=f,l()},read(){return t},touch(){if(s)return;if(a(),i)return;o(),l()},lock(){return n=!0,c},free(){return r.clear(),c},kill(){return s=!0,r.clear(),t},...Fa};return c}var hr=0,La=1,ur=2;function Ba(e){let t=N1;N1=null;try{for(let[r,i]of e.computedDeps)if(r.value,r.version!==i)return!0;return!1}finally{N1=t}}function H1(e){let t,r=ur,i=new Set,n=!1,s=!1,a=!1,o={dependencies:new Set,computedDeps:new Map,writtenSignals:new Set,version:0,markDirty(l){if(s||n)return;if(a)throw Error("reactive runtime: computed dependency changed during evaluation — "+"computed functions must derive without writing or touching a dependency");let c=r;if(l)r=ur;else if(r===hr)r=La;if(c!==hr)return;for(let f of i)if(f.markDirty)f.markDirty(!1);else Ue.add(f)},get value(){if(s)return t;if(N1&&N1!==o)i.add(N1),N1.dependencies.add(i),N1.computedDeps.set(o,-1);if(a)throw Error("reactive runtime: computed value read during its own evaluation — "+"recursive computed reads are not supported");if(r===La&&!n)r=Ba(o)?ur:hr;if(r===ur&&!n){for(let c of o.dependencies)c.delete(o);o.dependencies.clear(),o.computedDeps.clear();let l=N1;o.writtenSignals.clear(),N1=o,mr.push(o),a=!0;try{let c=e();if(c!==t)o.version++;t=c,r=hr}finally{a=!1,mr.pop(),o.writtenSignals.clear(),N1=l}}if(N1&&N1!==o)N1.computedDeps.set(o,o.version);return t},read(){return t},lock(){return n=!0,o.value,o},free(){for(let l of o.dependencies)l.delete(o);return o.dependencies.clear(),o.computedDeps.clear(),i.clear(),o},kill(){s=!0;let l=t;return o.free(),l},...Fa};return o}function $1(e){let t=null,r=0,i=j1,n={depth:i?i.depth+1:0,dependencies:new Set,computedDeps:new Map,_hard:!0,_disposed:!1,signal:null,run(){if(n._disposed)return;let a=n._hard;if(n._hard=!1,!a&&!Ba(n))return;if(t)try{t.abort()}catch{}t=typeof AbortController<"u"?new AbortController:null,n.signal=t?t.signal:null;let o=++r;if(n._cleanup)n._cleanup(),n._cleanup=null;for(let f of n.dependencies)f.delete(n);n.dependencies.clear(),n.computedDeps.clear();let l=N1;N1=n;let c=j1;j1=i;try{let f=e();if(typeof f==="function")n._cleanup=f;else if(f&&typeof f.then==="function")f.then((h)=>{if(o!==r||n._disposed){if(typeof h==="function")try{h()}catch(u){bt("[Rip] superseded async cleanup error:",u)}return}if(typeof h==="function")n._cleanup=h},(h)=>{if(h&&h.name==="AbortError")return;if(o!==r||n._disposed)return;bt("[Rip] async effect error:",h)})}finally{N1=l,j1=c}},dispose(){if(n._disposed)return;if(n._disposed=!0,Ue.delete(n),t)try{t.abort()}catch{}if(n._cleanup)n._cleanup(),n._cleanup=null;for(let a of n.dependencies)a.delete(n);n.dependencies.clear()}};try{n.run()}catch(a){throw n.dispose(),a}let s=()=>n.dispose();if(j1)j1.add(s);return s}function L1(e){if(dr)return e();dr=!0;try{return e()}finally{dr=!1,ja()}}function yt({nested:e=!0}={}){let t=[],r=null,n={depth:j1?j1.depth+1:0,get disposed(){return t===null},get size(){return t===null?0:t.length},add(s){if(t===null)s();else t.push(s)},remove(s){if(t===null)return;let a=t.indexOf(s);if(a>=0)t.splice(a,1)},dispose(){if(t===null)return;let s=t;if(t=null,r!==null){let a=r;r=null,a()}for(let a of s)try{a()}catch(o){bt("[Rip] effect disposer error:",o)}}};if(e&&j1){let s=j1;s.add(n.dispose),r=()=>s.remove(n.dispose)}return n}function le(e){let t={frame:e,prev:j1};return j1=e,t}function Y1(e){if(!e||typeof e!=="object"||!("frame"in e))throw Error("reactive runtime: __popOwner takes the token the matching __pushOwner returned");if(j1!==e.frame)throw Error("reactive runtime: __popOwner out of order — the frame being popped is not the current owner "+"(an inner push was not popped, or this token was already popped)");j1=e.prev}function ce(){return N1?N1.signal:null}function fe(e){return Object.freeze({value:e})}function Cn(e,t){if(e&&typeof e.read==="function"&&e.read()===t)e.value=null}var pr=null;function he(e){let t=pr;return pr=e,t}function te(e){if(pr)try{pr(e)}catch(t){console.error("Error in error handler:",t),console.error("Original error:",e)}else throw e}function ue(e){return function(...t){try{return e.apply(this,t)}catch(r){te(r)}}}var Et={};xe(Et,{__Component:()=>ro,__claimGateConstructor:()=>Un,__clsx:()=>Er,__detach:()=>Rr,__detachRef:()=>Cn,__gateBind:()=>rc,__handleComponentError:()=>Mn,__hmrClassify:()=>Rt,__hmrEmit:()=>ke,__hmrEntries:()=>jn,__hmrEvents:()=>W3,__hmrLookup:()=>F3,__hmrMigrateDiff:()=>qa,__hmrMigrateRemount:()=>Y3,__hmrPatch:()=>Bn,__hmrPreserveState:()=>kr,__hmrRegisterDefinition:()=>St,__hmrRegistry:()=>Ee,__hmrRestoreUi:()=>Tr,__hmrSnapshotUi:()=>Fn,__lis:()=>eo,__ownerFrame:()=>yt,__popComponent:()=>Re,__popOwner:()=>Y1,__pushComponent:()=>Ve,__pushOwner:()=>le,__reconcile:()=>J3,__style:()=>to,__transition:()=>Q3,getContext:()=>q3,hasContext:()=>X3,setContext:()=>z3});var Ka=Symbol.for("rip.runtime.components");if(globalThis[Ka])throw Error("two copies of the Rip component runtime loaded in one process — components from different "+"copies cannot see each other (separate component stacks: context, parent chains, and error boundaries silently break across copies). Run .rip sources through the rip CLI/loader (one shared runtime module per process), or load only one standalone-compiled file per process.");globalThis[Ka]=!0;var re=null,Ya={},yr=null,za=new WeakMap,Ua=!1,Ee=new Map;function Pn(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;rn.has(c)),o=i.filter((c)=>!n.has(c)),l=r.filter((c)=>!s.has(c));return{kept:a,added:o,removed:l}}var Sr=[],V3=64;function ke(e,t={}){let r={type:e,at:Date.now(),...t};if(Sr.push(r),Sr.length>V3)Sr.shift();if(typeof window<"u"&&typeof window.dispatchEvent==="function"&&typeof CustomEvent==="function")try{window.dispatchEvent(new CustomEvent("rip:hmr",{detail:r}))}catch{}return r}function W3(){return Sr.slice()}function kr(e,t){let r=e?.constructor?.__hmrSig,i=t?.constructor?.__hmrSig,n=r?.state,s=i?.state,a=qa(r,i);if(!Array.isArray(n)||!Array.isArray(s))return ke("migrate",{id:t?.constructor?.__hmrId??null,...a,copied:[]}),a;let o=new Set(n),l=[];for(let f of s){if(!o.has(f))continue;let h=e[f],u=t[f];if(h!=null&&u!=null&&typeof h==="object"&&typeof u==="object"&&"value"in h&&"value"in u)u.value=h.value,l.push(f)}let c=t?.constructor?.__hmrId??e?.constructor?.__hmrId??null;return ke("migrate",{id:c,...a,copied:l}),{...a,copied:l}}var Xa=["name","type","placeholder"];function Ja(e){let t=(i)=>typeof e[i]==="string"&&e[i]?e[i]:null,r={tag:e.tagName??null};for(let i of Xa)r[i]=t(i);return r.label=typeof e.getAttribute==="function"?e.getAttribute("aria-label"):null,r.value=typeof e.value==="string"?e.value:null,r}function Ln(e,t,r){if(!e||!t)return!1;let i=Ja(e);for(let n of["tag",...Xa,"label"])if(i[n]!==t[n])return!1;return!r||t.value==null||i.value===t.value}function H3(e){let t=Ja(e),r=typeof e.id==="string"&&e.id?e.id:null,i=[],n=e;while(n&&n!==document.body){let s=n.parentElement??n.parentNode??null;if(!s||!s.children)return{identity:t,id:r,path:null};i.unshift(Array.prototype.indexOf.call(s.children,n)),n=s}return{identity:t,id:r,path:n===document.body?i:null}}function G3(e){let t=e.active;if(t&&t.isConnected!==!1&&typeof document.contains==="function"&&document.contains(t))return t;let r=e.locator;if(!r)return null;if(r.id&&typeof document.getElementById==="function"){let o=document.getElementById(r.id);if(Ln(o,r.identity,!1))return o}if(!Array.isArray(r.path)||r.path.length===0)return null;let i=document.body;for(let o of r.path.slice(0,-1))if(i=i?.children?.[o]??null,!i)return null;let n=Array.from(i.children??[]),s=n[r.path[r.path.length-1]]??null;if(Ln(s,r.identity,!0))return s;let a=n.filter((o)=>Ln(o,r.identity,!0));return a.length===1?a[0]:null}function Fn(){if(typeof document>"u")return null;let e=document.activeElement,t=e&&e!==document.body&&e!==document.documentElement?e:null,r=null;if(t&&typeof t.selectionStart==="number")r={start:t.selectionStart,end:t.selectionEnd,direction:t.selectionDirection};return{active:t,locator:t?H3(t):null,selection:r,scrollX:typeof window<"u"?window.scrollX:0,scrollY:typeof window<"u"?window.scrollY:0}}function Tr(e){if(!e||typeof document>"u")return;if(typeof window<"u")window.scrollTo(e.scrollX??0,e.scrollY??0);let t=G3(e);if(!t||typeof t.focus!=="function")return;try{if(t.focus({preventScroll:!0}),e.selection&&typeof t.setSelectionRange==="function")t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??"none")}catch{}}function Za(e,t){let r=e.constructor?.__hmrId;if(typeof r==="string"&&r)Ee.get(r)?.instances.delete(e);Object.setPrototypeOf(e,t.prototype),Object.defineProperty(e,"constructor",{value:t,writable:!0,configurable:!0}),St(t),Ee.get(t.__hmrId)?.instances.add(e)}function Bn(e,t){if(!e||!t)throw Error("__hmrPatch requires a living instance and a replacement constructor");let r=e.constructor?.__hmrId;return Za(e,t),e._hmrRerender(),ke("patch",{id:t.__hmrId??r??null}),e}function Qa(e){return Object.keys(e).sort().join(",")}function K3(e,t){let r=re?._hmrOrphans;if(!r||r.length===0)return null;let i=e.__hmrId;if(typeof i!=="string")return null;let n=Qa(t),s=null;for(let a of r){if(a._state!=="mounted"||a.constructor.__hmrId!==i||a._hmrPropKeys!==n)continue;if(s)return null;s=a}if(!s||Rt(s.constructor,e)!=="patch")return null;if(r.splice(r.indexOf(s),1),s.constructor!==e)Za(s,e);s._hmrRelease();try{s._hmrApplyProps(t)}catch(a){throw s._teardown({state:"failed",hooks:!1,removeDOM:!0}),a}if(!s._hmrRebind())return null;return s}function Y3(e,t,r={}){let i=new t(r);return kr(e,i),i}function Un(){if(Ua)throw Error("[Rip] the render-gate construction capability is already claimed");return Ua=!0,(e,t)=>{let r=yr;yr={brand:Ya,component:e,gates:t.gates,parent:t.parent??null,stash:t.stash??null,router:t.router??null,used:!1};try{return new e({})}finally{yr=r}}}function Rr(e){if(!e||e.nodeType===11)return;if(typeof e.remove==="function")e.remove();else if(e.parentNode)e.parentNode.removeChild(e)}function Ve(e){let t=re;if(e&&e._parent==null&&t&&t!==e)e._parent=t;return re=e,t}function Re(e){re=e}function z3(e,t){if(!re)throw Error("setContext must be called during component initialization");if(!re._context)re._context=new Map;re._context.set(e,t)}function q3(e){let t=re,r=new Set;while(t&&!r.has(t)){if(r.add(t),t._context&&t._context.has(e))return t._context.get(e);t=t._parent}throw Error(`getContext: no provider for context ${JSON.stringify(e)} in this component's parent chain — `+"offer it from an ancestor, or probe with hasContext(key) where absence is legal")}function X3(e){let t=re,r=new Set;while(t&&!r.has(t)){if(r.add(t),t._context&&t._context.has(e))return!0;t=t._parent}return!1}function Er(...e){let t="";for(let r of e){if(!r)continue;if(typeof r==="string")t&&(t+=" "),t+=r;else if(typeof r==="object"){if(Array.isArray(r)){let i=Er(...r);i&&(t&&(t+=" "),t+=i)}else for(let i in r)if(r[i])t&&(t+=" "),t+=i}}return t}function eo(e){let t=e.length;if(t===0)return[];let r=[],i=[],n=Array(t).fill(-1);for(let o=0;o>1;if(r[f]0)n[o]=i[l-1]}let s=[],a=i[r.length-1];for(let o=r.length-1;o>=0;o--)s.push(a),a=n[a];return s.reverse(),s}function J3(e,t,r,i,n,s,...a){let o=e.parentNode;if(!o)return;let l=t.keys,c=t.items||[],f=t.blocks,h=l.length,u=r.length,d=Array(u),S=s!=null,g=S?r.map((y,m)=>s(y,m)):r;if(S){let y=new Set;for(let m of g){if(y.has(m))throw Error(`__reconcile: duplicate key ${JSON.stringify(String(m))} — keyed rows need unique keys `+"(the key function must be injective over the items)");y.add(m)}}if(h===0){if(u>0){let y=document.createDocumentFragment();for(let m=0;m=p&&_>=p&&l[b]===g[_]){let y=f[b];if(!y._s)y.p(i,r[_],_,...a);d[_]=y,b--,_--}if(p>_)for(let y=p;y<=b;y++)f[y].d(!0);else if(p>b){let y=_+1=p;x--){let I=d[x];if(!O.has(x-p))I.m(o,A);A=I._first}}t.keys=S?g:r.slice(),t.items=r.slice(),t.blocks=d}var Va=!1;function Z3(){if(Va)return;Va=!0;let e=document.createElement("style");e.textContent=[".fade-enter-active,.fade-leave-active{transition:opacity .2s ease}",".fade-enter-from,.fade-leave-to{opacity:0}",".slide-enter-active,.slide-leave-active{transition:opacity .2s ease,transform .2s ease}",".slide-enter-from{opacity:0;transform:translateY(-8px)}",".slide-leave-to{opacity:0;transform:translateY(8px)}",".scale-enter-active,.scale-leave-active{transition:opacity .2s ease,transform .2s ease}",".scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}",".blur-enter-active,.blur-leave-active{transition:opacity .2s ease,filter .2s ease}",".blur-enter-from,.blur-leave-to{opacity:0;filter:blur(4px)}",".fly-enter-active,.fly-leave-active{transition:opacity .2s ease,transform .2s ease}",".fly-enter-from{opacity:0;transform:translateY(-20px)}",".fly-leave-to{opacity:0;transform:translateY(20px)}"].join(""),document.head.appendChild(e)}function Q3(e,t,r,i){Z3();let n=e.classList,s=t+"-"+r+"-from",a=t+"-"+r+"-active",o=t+"-"+r+"-to",l=!1,c=null;n.add(s,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{n.remove(s),n.add(o);let f=(u)=>{if(l||u&&u.target!==e)return;if(l=!0,clearTimeout(c),e.removeEventListener("transitionend",f),e.removeEventListener("transitioncancel",f),n.remove(a,o),i)i()};e.addEventListener("transitionend",f),e.addEventListener("transitioncancel",f);let h=0;try{let u=getComputedStyle(e),d=(S)=>Math.max(0,...String(S).split(",").map((g)=>(parseFloat(g)||0)*(/ms\s*$/.test(g.trim())?1:1000)));h=d(u.transitionDuration)+d(u.transitionDelay)}catch{}c=setTimeout(()=>f(),h+50)})})}function ec(e){let t=e!=null&&typeof e==="object"?e.name:null;if(t==="GateFailure"||t==="ComponentFailure")return e;let r=Error(e!=null&&e.message!==void 0?e.message:String(e));r.name="ComponentFailure";let i=e!=null?e.status??e.response?.status:void 0;if(i!==void 0)r.status=i;return r.error=e,r}function Mn(e,t){let r=ec(e),i=t,n=new Set;while(i&&!n.has(i)){if(n.add(i),i.onError){let s=Ve(i),a=le(i._frame);try{i.onError(r,t);return}catch(o){}finally{Y1(a),Re(s)}}i=i._parent}throw e}var Wa=new WeakSet;function tc(e,t){if(Wa.has(e))return;let r=e.__props??[];if(!Array.isArray(r))throw Error(`${e.name||"component"}: static __props must be an array of declared prop names`);for(let i of r){if(typeof i!=="string"||i.length===0)throw Error(`${e.name||"component"}: static __props entries must be non-empty strings`);if(i.startsWith("_"))throw Error(`${e.name||"component"}: declared prop '${i}' collides with component internals — `+"underscore-prefixed names are reserved for the runtime");if(i in t)throw Error(`${e.name||"component"}: declared prop '${i}' collides with a component member (a method or lifecycle slot already answers '${i}')`)}Wa.add(e)}function rc(e,t){let i=za.get(e)?.gates?.[t];if(!i?.cell)throw Error(`[Rip] render gate ${t} has no renderer-resolved source binding — `+"gated components may only be constructed by rip/app createRenderer()");let n=i.value,s=!0;return H1(()=>{if(s)return s=!1,i.cell.read(),n;let a=i.cell.read();for(let o of i.tail){if(a==null)break;a=a[o]}if(a!=null)n=a;return n})}var br=new WeakMap;function Ha(e,t,r){if(t.startsWith("--")&&typeof e.setProperty==="function")if(r==null||r==="")e.removeProperty(t);else e.setProperty(t,String(r));else e[t]=r}function to(e,t){let r=br.get(e);if(t==null){e.removeAttribute("style"),br.delete(e);return}if(typeof t!=="object"){e.setAttribute("style",String(t)),br.delete(e);return}if(r){for(let i of r)if(!(i in t))Ha(e.style,i,"")}br.set(e,Object.keys(t));for(let i of Object.keys(t))Ha(e.style,i,t[i])}function Ga(e,t){let r=e.__props??[],i=e.__extends??null,n=null;for(let s of Object.keys(t)){if(s==="children")continue;if(s.startsWith("__bind_")&&s.endsWith("__")){let a=s.slice(7,-2);if(r.includes(a))continue;throw Error(`${e.name||"component"}: cannot bind unknown prop '${a}' — declared `+`props are [${r.join(", ")}]`)}if(r.includes(s))continue;if(i!==null){(n??={})[s]=t[s];continue}throw Error(`${e.name||"component"}: unknown prop '${s}' — declared props are `+`[${r.join(", ")}]`)}return n}class ro{constructor(e={}){let t=K3(this.constructor,e);if(t)return t;this._state="new",tc(this.constructor,this);let r=this.constructor.__gates,i=yr,n=i?.brand===Ya&&i.component===this.constructor&&i.used!==!0;if(n)i.used=!0;if(r?.length&&!n)throw Error("[Rip] component declares render gates (<~) and cannot be constructed directly or as an embedded child; render gates are honored only by rip/app createRenderer()");if(n){if(za.set(this,i),i.parent)this._parent=i.parent;if(i.stash!=null)this.stash=i.stash;if(i.router!=null)this.router=i.router,Object.defineProperty(this,"params",{get:()=>i.router.params,configurable:!0}),Object.defineProperty(this,"query",{get:()=>i.router.query,configurable:!0})}if(this.stash==null&&globalThis.__ripStash!=null)this.stash=globalThis.__ripStash;if(this.router==null&&globalThis.__ripRouter!=null)this.router=globalThis.__ripRouter;let s=Ga(this.constructor,e);if("children"in e)this.children=e.children;if(this.constructor.__hmrId)this._hmrPropKeys=Qa(e);if(this.constructor.__extends!=null)this._rest=s??{},this.rest=_1(this._rest);this._frame=yt({nested:!1});let a=Ve(this),o=le(this._frame);try{this._init(e)}catch(l){Y1(o),Re(a),this._teardown({state:"failed",hooks:!1,removeDOM:!0}),this._initFailed=!0,Mn(l,this);return}if(Y1(o),Re(a),this.constructor.__hmrId)B3(this)}_init(e){}_updateProp(e,t){if(this._state==="failed"||this._state==="unmounted")return;let r=this.constructor.__props??[];if(!r.includes(e)){if(this.constructor.__extends){this._setRestProp(e,t);return}throw Error(`${this.constructor.name||"component"}: cannot update unknown prop '${e}' — declared `+`props are [${r.join(", ")}]`)}let i=this[e];if(i&&typeof i==="object"&&"value"in i){i.value=t;return}throw Error(`${this.constructor.name||"component"}: prop '${e}' is non-reactive — parent updates `+"cannot reach it (declare it with ':=' to receive updates)")}_setRestProp(e,t){if(e.startsWith("__bind_"))return;if(this._state==="failed"||this._state==="unmounted")return;if(this._rest||(this._rest={}),t==null)delete this._rest[e];else this._rest[e]=t;this.rest.touch();let r=le(this._frame);try{this._applyInheritedProp(this._inheritedEl,e,t)}finally{Y1(r)}}_applyRestToInheritedEl(){if(this._state==="failed"||this._state==="unmounted")return;if(!this._inheritedEl||!this._rest)return;for(let e in this._rest)this._applyInheritedProp(this._inheritedEl,e,this._rest[e])}_applyInheritedProp(e,t,r){if(this._state==="failed"||this._state==="unmounted")return;if(!e||t==="key"||t==="ref"||t==="children"||t.startsWith("__bind_"))return;let i=this._restWriters?.[t];if(i){if(i(),this._frame)this._frame.remove(i);delete this._restWriters[t]}if(r!=null&&typeof r==="object"&&typeof r.read==="function"){(this._restWriters??={})[t]=$1(()=>{this._applyPlainInheritedProp(e,t,r.value)});return}this._applyPlainInheritedProp(e,t,r)}_applyPlainInheritedProp(e,t,r){if(t[0]==="@"){let i=t.slice(1).split(".")[0];this._restHandlers||(this._restHandlers={});let n=this._restHandlers[t];if(n)e.removeEventListener(i,n);if(typeof r==="function"){let s=(a)=>L1(()=>r(a));this._restHandlers[t]=s,e.addEventListener(i,s)}else delete this._restHandlers[t];return}if(t==="class"||t==="className"){if(e instanceof SVGElement)e.setAttribute("class",Er(r));else e.className=Er(r);return}if(t==="style"){to(e,r);return}if(t==="innerHTML"||t==="textContent"||t==="innerText"){e[t]=r??"";return}if(t in e&&!t.includes("-")){e[t]=r;return}if(r==null||r===!1){e.removeAttribute(t);return}if(r===!0){e.setAttribute(t,"");return}e.setAttribute(t,r)}_beginMount(){if(this._state==="new"){this._state="mounting";return}let e=this.constructor.name||"component";if(this._state==="mounting")throw Error(`${e}: cannot mount an instance whose mount is already in progress`);if(this._state==="mounted")throw Error(`${e}: cannot mount an already-mounted instance — construct a new instance for another target`);if(this._state==="failed")throw Error(`${e}: cannot mount a failed instance — its mount rolled back; construct a new instance`);throw Error(`${e}: cannot mount an unmounted instance — its effects were disposed on unmount; construct a new instance`)}_mountCreate(){this._beginMount();let e=Ve(this),t=le(this._frame),r=null,i=!1;try{this._root=this._create()}catch(n){r=n,i=!0}finally{Y1(t),Re(e)}if(i)return this._failMount(r),!1;return!0}_mountSetup(e=null){if(this._state!=="mounting")return this._nodes?.[0]??this._root;let t=Ve(this),r=le(this._frame),i=null,n=!1;try{if(e){let s=this._nodes?.[0]??this._root;if(s?.parentNode)s.parentNode.insertBefore(e,s)}if(this.beforeMount)this.beforeMount();if(this._setup)this._setup();if(this.mounted)this.mounted();this._state="mounted",Rr(e),this._hmrDrainOrphans((s,a)=>console.error(`[Rip] ${s} error:`,a))}catch(s){i=s,n=!0}finally{Y1(r),Re(t)}if(n)return this._failMount(i),e;return this._nodes?.[0]??this._root}_failMount(e){this._teardown({state:"failed",hooks:!1,removeDOM:!0}),Mn(e,this)}_dispose(e,t){if(this._children){for(let r of this._children)try{t(r)}catch(i){e("child teardown",i)}this._children=null}try{this._frame?.dispose()}catch(r){e("owner disposal",r)}if(this._restWriters){for(let r of Object.values(this._restWriters))try{r()}catch(i){e("rest writer cleanup",i)}this._restWriters=null}if(this._restHandlers){if(this._inheritedEl)for(let[r,i]of Object.entries(this._restHandlers))try{this._inheritedEl.removeEventListener(r.slice(1).split(".")[0],i)}catch(n){e("rest handler cleanup",n)}this._restHandlers=null}if(this._refCleanups){let r=this._refCleanups;this._refCleanups=null;try{L1(()=>{for(let i of r)try{i()}catch(n){e("ref cleanup",n)}})}catch(i){e("ref cleanup batch flush",i)}}this._children=null,this._refCleanups=null,this._restWriters=null,this._restHandlers=null}_detachDOM(e,t){if(t)if(this._nodes)for(let r of this._nodes)try{Rr(r)}catch(i){e("DOM detach",i)}else try{Rr(this._root)}catch(r){e("DOM detach",r)}this._root=null,this._nodes=null,this._inheritedEl=null}_teardown({state:e,hooks:t,removeDOM:r}){if(this._state==="failed"||this._state==="unmounted")return;if(this.constructor.__hmrId)U3(this);this._state=e;let i=(n,s)=>console.error(`[Rip] ${n} error:`,s);if(this._hmrDrainOrphans(i),t)try{if(this.beforeUnmount)this.beforeUnmount()}catch(n){i("beforeUnmount",n)}if(this._dispose(i,(n)=>{if(t)n.unmount({removeDOM:r});else n._teardown({state:n._state==="mounted"?"unmounted":"failed",hooks:!1,removeDOM:!0})}),t)try{if(this.unmounted)this.unmounted()}catch(n){i("unmounted",n)}this._detachDOM(i,r),this._target=null}_hmrRelease(){let e=(t,r)=>console.error(`[Rip] ${t} error:`,r);try{if(this.beforeUnmount)this.beforeUnmount()}catch(t){e("beforeUnmount",t)}this._hmrOrphans=[],this._hmrReleasing=!0;try{this._dispose(e,(t)=>t.unmount({removeDOM:!0}))}finally{this._hmrReleasing=!1}this._detachDOM(e,!0),this._frame=yt({nested:!1}),this._state="new"}_hmrRebind(){let e=(i,n)=>console.error(`[Rip] ${i} error:`,n),t=Ve(this),r=le(this._frame);try{if(typeof this._hmrRefreshComputeds==="function")this._hmrRefreshComputeds();if(typeof this._hmrBindEffects==="function")this._hmrBindEffects()}catch(i){return Y1(r),Re(t),e("hmr rebind",i),this._failMount(i),!1}return Y1(r),Re(t),!0}_hmrApplyProps(e){let t=Ga(this.constructor,e);if("children"in e)this.children=e.children;for(let r of this.constructor.__props??[]){let i=`__bind_${r}__`;if(i in e){this[r]=e[i];continue}if(!(r in e))continue;let n=e[r];if(n!=null&&typeof n==="object"&&typeof n.read==="function")this[r]=n;else this._updateProp(r,n)}if(this.constructor.__extends!=null)this._rest=t??{},this.rest.value=this._rest}_hmrDrainOrphans(e){let t=this._hmrOrphans;if(!t)return;this._hmrOrphans=null;for(let r of t)try{r.unmount({removeDOM:!0})}catch(i){e("orphan teardown",i)}}_hmrRerender(){let e=this.constructor.name||"component";if(this._state!=="mounted")throw Error(`${e}: _hmrRerender requires a mounted instance`);let t=this._target,r=this._nodes,n=(r?.[0]??this._root)?.parentNode??null,s=r?.length?r[r.length-1].nextSibling:this._root?this._root.nextSibling:null;if(this._hmrRelease(),!this._hmrRebind())return this;if(typeof this._create!=="function")return this._state="mounted",this._hmrDrainOrphans((a,o)=>console.error(`[Rip] ${a} error:`,o)),this;if(!this._mountCreate())return this;try{let a=n&&n.nodeType!==11?n:null;if(a&&a.isConnected===!1)a=null;if(!a&&typeof t==="string"&&typeof document<"u")a=document.querySelector(t);else if(!a&&t&&t.nodeType!==11&&t.isConnected!==!1)a=t;else if(!a&&typeof document<"u")a=document.querySelector("#content")||document.querySelector("#app");if(a){let o=s&&(typeof a.contains!=="function"||a.contains(s))?s:null;if(this._nodes)for(let l of this._nodes)a.insertBefore(l,o);else if(this._root)a.insertBefore(this._root,o);this._target=a.nodeType===11?null:a}}catch(a){return this._failMount(a),this}return this._mountSetup(),this}mount(e){if(!this._mountCreate())return this;try{if(typeof e==="string")e=document.querySelector(e);if(this._target=e,this._root)e.appendChild(this._root)}catch(t){return this._failMount(t),this}return this._mountSetup(),this}unmount({removeDOM:e=!0}={}){if(this._state==="failed"||this._state==="unmounted")return;if(this._state==="mounted"&&this._parent?._hmrReleasing){this._parent._hmrOrphans.push(this);return}if(this._state==="mounting")throw Error(`${this.constructor.name||"component"}: cannot unmount while mounting`);this._teardown({state:"unmounted",hooks:this._state==="mounted",removeDOM:e})}emit(e,t){if(this._state!=="mounted"||!this._root)throw Error(`${this.constructor.name||"component"}: emit('${e}') outside the mounted window — `+"emit dispatches on the live root; call after mount and before unmount");(this._nodes?.[0]??this._root).dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0}))}static mount(e="body"){return new this().mount(e)}}var Hr={};xe(Hr,{ariaCurrent:()=>Cr,browserAdapter:()=>$r,buildRoutes:()=>Ot,check:()=>Wr,connectFeed:()=>Ur,createApply:()=>Vr,createComponents:()=>vr,createMutation:()=>uo,createRenderer:()=>Dr,createRouter:()=>Ir,createStash:()=>Nr,createWorkspace:()=>Fr,currentRouter:()=>Rc,currentStash:()=>Sc,debounce:()=>mo,delay:()=>Ar,hold:()=>go,interceptClicks:()=>Pr,launch:()=>Mr,ownsAnchor:()=>$t,parseQuery:()=>ze,persistStash:()=>xr,preloadLinks:()=>Lr,rash:()=>Dt,source:()=>so,throttle:()=>po,unwrapStash:()=>Te,validatePrepared:()=>ai});var wr,Vn,no,io=Symbol.for("rip.source"),Wn=Symbol.for("rip.source.family"),nc=64,ic=30000,sc=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*(s|sec|second|seconds|m|min|minute|minutes|h|hr|hour|hours|d|day|days|w|week|weeks|y|year|years)$/;function D1(e){return e!=null&&(typeof e==="object"||typeof e==="function")&&(e[io]===!0||e[Wn]===!0)}function de(e){return e!=null&&typeof e==="function"&&e[Wn]===!0}no=function(e){let t,r;if(e==null)return 0;if(typeof e==="number"){if(!(Number.isFinite(e)&&e>=0))throw TypeError('Rip App: source staleTime must be a non-negative finite number, a duration string, or "forever"');return e}if(typeof e==="string"){if(e==="forever")return 1/0;if(r=e.match(sc),r)return t=parseFloat(r[1]),(()=>{switch(r[2][0]){case"s":return t*1000;case"m":return t*60000;case"h":return t*3600000;case"d":return t*86400000;case"w":return t*604800000;case"y":return t*31536000000}})()}throw TypeError('Rip App: source staleTime must be a non-negative number, a duration such as "5 min", or "forever"')};wr=function(e,t,r=null){let i=_1(null),n=_1(!1),s=_1(null),a=0,o=null,l=null,c=!1,f=!1,h=!1,u=0,d=0,S=async function(b=!1,_=!1){let y,m;o?.abort(),o=typeof AbortController<"u"?new AbortController:null;let k=++a;if(!b)n.value=!0;let O=h;return await(async()=>{try{if(y=e(o?.signal),!(y!=null&&typeof y.then==="function"))throw TypeError("Rip App: source fetch must return a Promise");if(m=await y,k!==a)return m;return s.value=null,i.value=m,h=!0,u=Date.now(),d=_&&!f?u+ic:0,m}catch(A){if(k!==a)return;if(A?.name==="AbortError")return;if(s.value=A,!O)throw h=!1,u=0,A;return}finally{if(k===a)n.value=!1,l=null,c=!1,f=!1,r?.()}})()},g=function(b=!1,_=!1){let y=S(b,_);return l=y,c=_,f=!1,y},p=function(){return t===1/0||Date.now()-unc){o=!1;for(let[l,c]of r){if(l===a)continue;if(c.loading)continue;r.delete(l),c.reset(),o=!0;break}if(!o)break}return},n=function(a){if(a==null)throw TypeError("Rip App: keyed source requires a key");let o=ac(a),l=r.get(o);if(l)return r.delete(o),r.set(o,l),l;return l=wr(function(c){return e(a,c)},t,i),r.set(o,l),i(o),l},s=function(a){return n(a).read()};return s[Wn]=!0,s.cellFor=n,s.reset=function(){let a=Array.from(r.values());r.clear();for(let o of a)o.reset();return},s};function so(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip App: source expects an options object");if(typeof e.fetch!=="function")throw TypeError("Rip App: source options require a fetch function");let t=no(e.staleTime);if(Object.prototype.hasOwnProperty.call(e,"kind")){if(!(e.kind==="singleton"||e.kind==="keyed"))throw TypeError("Rip App: source kind must be 'singleton' or 'keyed'");if(e.kind==="singleton"){if(e.fetch.length>1)throw TypeError("Rip App: singleton source fetch accepts at most one AbortSignal parameter");return wr(e.fetch,t)}if(e.fetch.length<1||e.fetch.length>2)throw TypeError("Rip App: keyed source fetch requires a key parameter and accepts one optional AbortSignal parameter");return Vn(e.fetch,t)}if(e.fetch.length>1)throw TypeError("Rip App: inferred source fetch accepts no parameters for a singleton or one key parameter for a keyed family");return e.fetch.length===1?Vn(e.fetch,t):wr(e.fetch,t)}var zn,_t,Hn,Tt,I1=Symbol("rip.app.stash.raw"),We=Symbol("rip.app.stash.signals"),oc=Symbol("rip.app.stash.keys"),lo=Symbol("rip.app.stash.defaults"),lc=Symbol.for("rip.app.stash.purge"),co=new WeakMap,cc=0,qn=_1(0),Gn=function(){return qn.value++},fo=function(e,t){let r=e[We];if(!r)r=new Map,Object.defineProperty(e,We,{value:r});let i=r.get(t);if(!i)i=_1(e[t]),r.set(t,i);return i},wt=function(e){return fo(e,oc)},Kn=function(e){wt(e).value=++cc;return};_t=function(e){if(!(e!=null&&typeof e==="object"))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Array.isArray(e)};var ao=function(e){if(!_t(e))return e;let t=co.get(e);if(t)return t;return zn(e)},He=function(e,t){let r=e?.[I1];if(!r)return e[t];let i=r[t];if(D1(i)){if(de(i))return i;return ao(i.read())}return ao(fo(r,t).value)},Yn=function(e,t,r){let i,n,s,a,o=e?.[I1];if(!o)return e[t]=r,r;if(Array.isArray(o)&&t==="length"){if(a=o.length,s=+r,o.length=s,s!==a){if(o[We]){for(let h=Math.min(a,s),u=Math.max(a,s);h0))throw TypeError("Rip App: stash path must be a non-empty string");let s=[],a=0;if(e[0]!=="["){n=a;while(a=e.length||a===n)throw TypeError(`Rip App: malformed stash path '${e}'`);if(r=e.slice(n,a),a++,e[a]!=="]")throw TypeError(`Rip App: malformed stash path '${e}'`);a++,s.push(r)}else{n=a;while(a{let i=[];for(let n in r){if(!Object.hasOwn(r,n))continue;let s=r[n];i.push(Hn(s,t))}return i})()};Tt=function(e){if(!_t(e))return e;let t=e[I1]?e[I1]:e;if(Array.isArray(t))return(()=>{let i=[];for(let n of t)if(!D1(n))i.push(Tt(n));return i})();let r={};for(let i in t){if(!Object.hasOwn(t,i))continue;let n=t[i];if(D1(n))continue;r[i]=Tt(n)}return r};function ho(e){let t=e?.[I1]?e[I1]:e;if(!(t!=null&&typeof t==="object"))return;Object.defineProperty(t,lo,{value:Tt(t),configurable:!0});return}function _r(e){if(D1(e))return e;if(!_t(e))return e;let t=e[I1]?e[I1]:e;if(Array.isArray(t))return(()=>{let i=[];for(let n of t)i.push(_r(n));return i})();let r={};for(let i in t){if(!Object.hasOwn(t,i))continue;let n=t[i];Object.defineProperty(r,i,{value:_r(n),writable:!0,enumerable:!0,configurable:!0})}return r}function Ye(e,t){let r,i,n;if(!(e!=null&&typeof e==="object"))return;if(!(t!=null&&typeof t==="object"))return;let s=e[I1]?e[I1]:e;for(let a in t){if(!Object.hasOwn(t,a))continue;let o=t[a];if(r=Object.prototype.hasOwnProperty.call(s,a)?s[a]:void 0,D1(r))continue;if(Array.isArray(r)&&r.some(function(l){return D1(l)}))continue;if(i=r!=null&&typeof r==="object"&&!Array.isArray(r),n=o!=null&&typeof o==="object"&&!Array.isArray(o),i&&n)Ye(e[a],o);else e[a]=Tt(o)}return}var uc=function(e,t){let r,i=t[lo];if(!i)return;r=function(n,s,a){let o;for(let l in s){if(!Object.hasOwn(s,l))continue;if(o=s[l],D1(o))continue;if(!(a!=null&&Object.prototype.hasOwnProperty.call(a,l))){delete n[l];continue}if(o!=null&&typeof o==="object"&&!Array.isArray(o))r(n[l],o,a[l])}return},r(e,t,i),Ye(e,i);return},dc={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0,peek:!0,reset:!0,source:!0},mc=function(e,t,r){if(r==="inc")return function(i,n=1){let s=($e(e,i)??0)+n;return kt(e,i,s),s};if(r==="dec")return function(i,n=1){let s=($e(e,i)??0)-n;return kt(e,i,s),s};if(r==="flip")return function(i){let n=!($e(e,i)??!1);return kt(e,i,n),n};if(r==="join")return function(i,n){if(!(n!=null&&typeof n==="object"&&!Array.isArray(n)))throw TypeError("Rip App: join expects a plain object");L1(function(){let s=$e(e,i);if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))kt(e,i,{}),s=$e(e,i);return(()=>{let a=[];for(let o in n){if(!Object.hasOwn(n,o))continue;let l=n[o];a.push(s[o]=l)}return a})()});return};if(r==="keys")return function(i){let n=i!=null?$e(e,i):e;if(!(n!=null&&typeof n==="object"))return[];let s=n[I1]?n[I1]:n;return wt(s).value,Object.keys(s)};if(r==="has")return function(i){let n,s,a=Ge(i);if(!(a.length>0))return!1;let o=e;for(let l=0;l0))return;let a=e;for(let o=0;o{try{return i.value=!0,await t.onSuccess?.(l),l}finally{if(c===s)r.value=!1}})()};return Object.defineProperty(a,"pending",{get(){return r.value}}),Object.defineProperty(a,"succeeded",{get(){return i.value}}),Object.defineProperty(a,"error",{get(){return n.value}}),a}var Nt,At;Nt=function(e){return typeof e==="function"?e:function(){return e.value}};At=function(e,t,r){let i={read(){return e.read()}},n={get(){return e.value}};if(typeof t!=="function")n.set=function(s){return t.value=s};return Object.defineProperty(i,"value",n),i.dispose=function(){return r?.()},i};function Ar(e,t){let r=Nt(t),i=_1(!!r()),n=$1(function(){let s;if(r()){if(i.read())return;return s=setTimeout(function(){return i.value=!0},e),function(){return clearTimeout(s)}}i.value=!1;return});return At(i,t,n)}function mo(e,t){let r=Nt(t),i=_1(r()),n=$1(function(){let s=r(),a=setTimeout(function(){return i.value=s},e);return function(){return clearTimeout(a)}});return At(i,t,n)}function po(e,t){let r=Nt(t),i=_1(r()),n=0,s=$1(function(){let a=r(),o=Date.now(),l=e-(o-n);if(l<=0){i.value=a,n=o;return}let c=setTimeout(function(){return i.value=r(),n=Date.now()},l);return function(){return clearTimeout(c)}});return At(i,t,s)}function go(e,t){let r=Nt(t),i=_1(!!r()),n=$1(function(){if(r()){i.value=!0;return}if(!i.read())return;let s=setTimeout(function(){return i.value=!1},e);return function(){return clearTimeout(s)}});return At(i,t,n)}var Xn,Jn,we;we=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip App: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."}),i=t.at(-1),n=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||r||n||i===".rip"||!i.endsWith(".rip"))throw TypeError(`Rip App: invalid component path '${e}'`);return e};Xn=function(e){if(typeof e!=="string")throw TypeError("Rip App: component source must be a string");return e};Jn=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip App: component directory must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid component directory '${e}'`);return e};function vr(){let e=new Map,t=new Map,r=new Set,i=function(s,a){let o=[];for(let l of Array.from(r))o.push((()=>{try{return l(s,a)}catch(c){return console.error("[Rip] component watcher error:",c)}})());return o};return{read(s){return e.get(we(s))},write(s,a){s=we(s),a=Xn(a);let o=e.has(s)?"change":"create";e.set(s,a),t.delete(s),i(o,s);return},del(s){s=we(s),e.delete(s),t.delete(s),i("delete",s);return},exists(s){return e.has(we(s))},size(){return e.size},list(s=""){let a;s=Jn(s);let o=s?s+"/":"",l=[];for(let[c]of e)if(c.startsWith(o)){if(a=c.slice(o.length),!a.includes("/"))l.push(c)}return l},listAll(s=""){s=Jn(s);let a=s?s+"/":"",o=[];for(let[l]of e)if(l.startsWith(a))o.push(l);return o},load(s){let a,o;if(!(s!=null&&typeof s==="object"&&!Array.isArray(s)))throw TypeError("Rip App: component load expects a source object");for(let l in s){if(!Object.hasOwn(s,l))continue;let c=s[l];l=we(l),c=Xn(c),e.set(l,c),t.delete(l)}return},watch(s){if(typeof s!=="function")throw TypeError("Rip App: component watch expects a function");r.add(s);let a=!1;return function(){if(a)return;a=!0,r.delete(s);return}},getCompiled(s){return t.get(we(s))},setCompiled(s,a){if(s=we(s),!(a!=null&&typeof a==="object"&&!Array.isArray(a)))throw TypeError("Rip App: compiled component module must be an object");t.set(s,a);return}}}var yo,So,C1,Qn,Ro,Eo,ko,Zn=/^\w+$/,To={static:0,dynamic:1,optional:2,catchall:3},bo=8;C1=function(e){throw Error(`Rip App: ${e}`)};var vt=function(e){return(()=>{try{return decodeURIComponent(e)}catch(t){return null}})()};ko=function(e){if(e==="")return"";if(typeof e!=="string")throw TypeError("Rip App: route root must be a string");let t=e.split("/");if(e.includes("\\")||t.some(function(r){return!r||r==="."||r===".."}))throw TypeError(`Rip App: invalid route root '${e}'`);return e};var wo=function(e,t){let r;if(r=/^\[\[(.+)\]\]$/.exec(e)){if(!Zn.test(r[1]))C1(`invalid optional segment '${e}' in '${t}'`);return{kind:"optional",name:r[1]}}else if(r=/^\[\.\.\.(.+)\]$/.exec(e)){if(!Zn.test(r[1]))C1(`invalid catch-all segment '${e}' in '${t}'`);return{kind:"catchall",name:r[1]}}else if(e.startsWith("[..."))return C1(`invalid catch-all segment '${e}' in '${t}'`);else if(r=/^\[(.+)\]$/.exec(e)){if(!Zn.test(r[1]))C1(`invalid dynamic segment '${e}' in '${t}'`);return{kind:"dynamic",name:r[1]}}else if(/^\(.+\)$/.test(e))return{kind:"group"};else if(e.includes("[")||e.includes("]"))return C1(`invalid segment '${e}' in '${t}': markers claim a whole segment`);else return{kind:"static",text:e}};yo=function(e){let t,r=(()=>{let h=[];for(let u of e.slice(0,-4).split("/"))h.push(wo(u,e));return h})();if(r[r.length-1].kind==="group")C1(`route file name cannot be a group segment: '${e}'`);let i=r.filter(function(h){return h.kind!=="group"});for(let h=0;hbo)C1(`more than ${bo} optional segments in '${e}'`);let o="",l=[],c=[{shape:"",display:""}];for(let h of i)switch(l.push(To[h.kind]),h.kind){case"static":t="/"+h.text,o+=t,c=c.map(function(u){return{shape:u.shape+t,display:u.display+t}});break;case"dynamic":o+=`/:${h.name}`,c=c.map(function(u){return{shape:u.shape+"/:",display:`${u.display}/:${h.name}`}});break;case"optional":o+=`/:${h.name}?`,c=c.flatMap(function(u){return[u,{shape:u.shape+"/:",display:`${u.display}/:${h.name}`}]});break;case"catchall":o+=`/*${h.name}`,c=c.map(function(u){return{shape:u.shape+"/*",display:`${u.display}/*${h.name}`}});break}if(o==="")o="/";if(new Set(c.map(function(h){return h.shape||"/"})).size{let l=[];for(let c of e)l.push(wo(c,t));return l})().filter(function(l){return l.kind!=="group"});for(let l of i)if(l.kind==="optional"||l.kind==="catchall")C1(`not-found page under an optional or catch-all segment: '${t}'`);let n=[];for(let l of i)if(l.name!=null){if(n.includes(l.name))C1(`duplicate parameter name '${l.name}' in '${t}'`);n.push(l.name)}let s="",a="",o=[];for(let l of i)if(o.push(To[l.kind]),l.kind==="static")s+="/"+l.text,a+="/"+l.text;else s+=`/:${l.name}`,a+="/:";return{pattern:s+"/*",shape:a+"/*",parts:i,ranks:o}};Ro=function(e,t){let r;return r=function(i,n){let s,a,o,l;if(i===e.length)return n===t.length?[]:null;let c=e[i];return(()=>{switch(c.kind){case"static":if(!(nf.length))continue;if(a=m.slice(f.length),l=a.split("/"),s=l.some(function(k){return!k||k==="."||k===".."}),a.includes("\\")||s||l.at(-1)===".rip")throw TypeError(`Rip App: invalid route file path '${m}'`);if(l.at(-1)==="_layout.rip"){h.set(l.slice(0,-1).join("/"),m);continue}if(l.at(-1)==="_404.rip"){if(l.slice(0,-1).some(function(k){return k.startsWith("_")}))continue;u.push({...So(l.slice(0,-1),a),rel:a,file:m});continue}if(l.some(function(k){return k.startsWith("_")}))continue;if(!a.endsWith(".rip"))throw TypeError(`Rip App: route files must be .rip sources: '${m}'`);d.push({...yo(a),rel:a,file:m})}let S=new Map;for(let m of[...d].sort(function(k,O){return k.relk.pattern)return 1;return 0});let g=new Map;for(let m of[...u].sort(function(k,O){return k.relk.pattern)return 1;return 0});let p=d.map(function(m){return{route:Object.freeze({pattern:m.pattern,file:m.file,layouts:Object.freeze(Qn(m.rel,h))}),parts:m.parts}}),R=u.map(function(m){return{route:Object.freeze({pattern:m.pattern,file:m.file,layouts:Object.freeze(Qn(m.rel,h))}),parts:m.parts}}),b=function(m){if(typeof m!=="string")throw TypeError("Rip App: route match expects a path string");if(!m.startsWith("/"))return null;while(m.length>1&&m.endsWith("/"))m=m.slice(0,-1);return m==="/"?[]:m.slice(1).split("/")},_=function(m){let k;if(l=b(m),!l)return null;for(let O of p){if(k=Ro(O.parts,l),!k)continue;return{route:O.route,params:Object.fromEntries(k)}}return null},y=function(m){let k;if(l=b(m),!l)return null;for(let O of R){if(k=Eo(O.parts,l),!k)continue;return{route:O.route,params:Object.fromEntries(k)}}return null};return Object.freeze({routes:Object.freeze(p.map(function(m){return m.route})),match:_,notFound:y})}function ze(e){if(typeof e!=="string")throw TypeError("Rip App: parseQuery expects a query string");return Object.fromEntries(new URLSearchParams(e))}var G1,ei,_o,Or;G1=function(e){let t=e.indexOf("#"),r=t>=0?e.slice(t+1):"",i=t>=0?e.slice(0,t):e,n=i.indexOf("?"),s=n>=0?i.slice(n+1):"";return{path:n>=0?i.slice(0,n):i,query:s,hash:r}};ei=function(e,t){let r=Object.keys(t);return r.length===Object.keys(e).length&&r.every(function(n){return e[n]===t[n]})?e:t};Or=function(e){if(!(e!=null&&typeof e.match==="function"&&Array.isArray(e.routes)))throw TypeError("Rip App: createRouter requires a route manifest");return e};_o=function(e){if(e===""||e==null)return"";if(!(typeof e==="string"&&e.startsWith("/")&&!e.endsWith("/")))throw TypeError(`Rip App: invalid router base '${e}'`);return e};function Ir(e){let t,{routes:r,adapter:i,onError:n}=e??{};if(!(r!=null&&(typeof r==="function"||typeof r.match==="function"&&Array.isArray(r.routes))))throw TypeError("Rip App: createRouter requires a route manifest or manifest thunk");for(let j of["read","push","replace","go","listen"])if(typeof i?.[j]!=="function")throw TypeError(`Rip App: router adapter requires a ${j} function`);let s=_o(e?.base),a=e?.hash===!0;if(s&&a)throw TypeError("Rip App: a base path does not apply in hash mode");let o=typeof r==="function"?Or(r()):Or(r),l=new Set,c=null,f=_1(null),h=_1(null),u=_1({}),d=_1({}),S=_1(""),g=Ar(100,_1(!1)),p=H1(function(){let j=h.value;if(!j)return null;return{route:j,layouts:j.layouts,params:u.value,query:d.value}}),R=function(j){if(!s)return j;if(j===s)return"/";if(j.startsWith(s+"/"))return j.slice(s.length);return null},b=function(j){if(!s)return j;return j==="/"?s:s+j},_=function(j){return a?i.read().split("#")[0]+"#"+j:b(j)},y=function(j){return n?.({status:404,path:j}),!1},m=0,k=function(j){return typeof j==="string"&&!j.startsWith("//")&&!j.includes("\\")},O=function(j){if(!k(j))return null;return o.match(j)},A=function(j){if(!k(j))return null;return o.match(j)??o.notFound?.(j)??null},x=function(j,q,t1,M){let N=ei(u.value,j.params),C=ei(d.value,ze(t1));L1(function(){return f.value=q,h.value=j.route,u.value=N,d.value=C,S.value=M});let w={path:q,route:j.route,params:N,query:C,hash:M};m+=1;try{for(let D of Array.from(l))try{D(w)}catch(B){console.error("[Rip] router onNavigate error:",B)}}finally{m-=1}return!0},I=function(){if(m>=10)throw Error("Rip App: navigation loop — ten nested navigations from onNavigate")},H=function(){let j,q,t1,M,N,C=i.read();if(a){if(j=C.indexOf("#"),t1=j>=0?C.slice(j+1):"/",t1==="")t1="/";({path:M,query:N,hash:q}=G1(t1))}else if({path:M,query:N,hash:q}=G1(C),M=R(M),M==null)return y(G1(C).path);let w=A(M);if(!w)return y(M);return x(w,M,N,q)},G=null,K=null,Z=function(){G=null;let j=i.readState?.()??{};return i.replace(i.read(),{...j,__ripScroll:i.scroll?.save?.()??null})},V=function(){return!G?G=setTimeout(Z,100):void 0};return t={init(){if(c)return t;return H(),c=i.listen(function(){if(!H())return;let j=i.readState?.();return i.scroll?.restore?.(j?.__ripScroll??null)}),K=i.scroll?.watch?.(V)??null,t},push(j,q={}){I();let{path:t1,query:M,hash:N}=G1(j),C=A(t1);if(!C)return y(t1);let w=i.scroll?.save?.()??null,D=i.readState?.()??{};if(i.replace(i.read(),{...D,__ripScroll:w}),i.push(_(j),null),x(C,t1,M,N),!q.noScroll)i.scroll?.top?.();return!0},replace(j,q={}){I();let{path:t1,query:M,hash:N}=G1(j),C=A(t1);if(!C)return y(t1);let w=i.readState?.()??{};if(i.replace(_(j),{...w,__ripScroll:null}),x(C,t1,M,N),!q.noScroll)i.scroll?.top?.();return!0},back(){return i.go(-1)},forward(){return i.go(1)},match(j){let{path:q,query:t1,hash:M}=G1(j),N=O(q);if(!N)return null;return{route:N.route,params:N.params,query:ze(t1),hash:M}},claims(j){let q,t1,M,N,C;if(!(typeof j==="string"&&j.length>0))return null;if(a){if(q=j.indexOf("#"),q<0)return null;if(M=j.slice(q+1),M==="")M="/";({path:N,query:C,hash:t1}=G1(M))}else{if(!j.startsWith("/"))return null;if({path:N,query:C,hash:t1}=G1(j),N=R(N),N==null)return null}let w=O(N);if(!w)return null;let D=N+(C?"?"+C:"")+(t1?"#"+t1:"");return{path:N,url:D,route:w.route,params:w.params,query:ze(C),hash:t1}},onNavigate(j){if(typeof j!=="function")throw TypeError("Rip App: onNavigate expects a function");return l.add(j),function(){return l.delete(j)}},rebuild(){let j,q,t1,M,N;if(o=typeof r==="function"?Or(r()):o,!c)return;let C=i.read();if(a){if(j=C.indexOf("#"),t1=j>=0?C.slice(j+1):"/",t1==="")t1="/";({path:M,query:N,hash:q}=G1(t1))}else if({path:M,query:N,hash:q}=G1(C),M=R(M),M==null)return y(G1(C).path);let w=A(M);if(!w)return y(M);let D=h.value,B=D?.layouts??[],a1=w.route.layouts??[],h1=B.length===a1.length&&B.every(function(f1,z){return f1===a1[z]});if(D?.file===w.route.file&&h1&&f.value===M)return;x(w,M,N,q);return},destroy(){if(c?.(),c=null,K?.(),K=null,G)clearTimeout(G);G=null;return}},Object.defineProperty(t,"current",{get(){return p.value}}),Object.defineProperty(t,"path",{get(){return f.value}}),Object.defineProperty(t,"hash",{get(){return S.value}}),Object.defineProperty(t,"params",{get(){return u.value}}),Object.defineProperty(t,"query",{get(){return d.value}}),Object.defineProperty(t,"navigating",{get(){return g.value},set(j){return g.value=j}}),t}function $r(){if(typeof window>"u"||window.history==null||window.location==null)throw Error("Rip App: browserAdapter requires a browser environment");window.history.scrollRestoration="manual";let e=function(r){return window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,16)},t=0;return{read(){return window.location.pathname+window.location.search+window.location.hash},readState(){return window.history.state},push(r,i){return window.history.pushState(i,"",r)},replace(r,i){return window.history.replaceState(i,"",r)},go(r){return window.history.go(r)},listen(r){return window.addEventListener("popstate",r),function(){return window.removeEventListener("popstate",r)}},scroll:{save(){return{x:window.scrollX,y:window.scrollY}},restore(r){let i;if(r==null)return;let n=++t,s=r.x||0,a=r.y||0,o=0;i=function(){if(n!==t)return;let l=Math.max(0,(window.document?.documentElement?.scrollHeight||0)-window.innerHeight);return window.scrollTo(s,Math.min(a,l)),o+=1,a>l&&o<20?e(i):void 0},e(i);return},top(){return t+=1,window.scrollTo(0,0)},watch(r){return window.addEventListener("scroll",r,{passive:!0}),function(){return window.removeEventListener("scroll",r)}}}}}var ti,No,De;No=Un();De=function(e,t,r,i=null){let n=i??r?.message??String(r),s=Error(n);return s.name="GateFailure",s.status=r?.status??r?.response?.status??500,s.path=e,s.file=t,s.error=r,s};ti=function(e,t){let r=e.getCompiled(t);if(!(r!=null&&typeof r==="object"))throw Error(`Rip App: no precompiled component module for '${t}'`);let i=function(s){return typeof s==="function"&&typeof s.prototype?.mount==="function"};if(i(r.default))return r.default;let n=[];for(let s in r){let a=r[s];if(s==="default")continue;if(i(a))n.push(a)}if(n.length!==1)throw Error(`Rip App: precompiled module '${t}' must export exactly one component class`);return n[0]};function Dr(e){let t;if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createRenderer expects an options object");let{router:r,stash:i,components:n,target:s,onError:a}=e;if(!(r!=null&&typeof r==="object"))throw TypeError("Rip App: createRenderer requires a router object");if(!(i!=null&&Te(i)!==i))throw TypeError("Rip App: createRenderer requires a stash built by createStash");if(!(n!=null&&typeof n.getCompiled==="function"))throw TypeError("Rip App: createRenderer requires a component registry");if(!(s!=null&&typeof s.appendChild==="function"))throw TypeError("Rip App: createRenderer requires a target with appendChild()");if(a!=null&&typeof a!=="function")throw TypeError("Rip App: createRenderer onError must be a function");let o=[],l=null,c=0,f=null,h=[],u=null,d=null,S=null,g=!1,p=function(z,i1){let X=Object.keys(z);return X.length===Object.keys(i1).length&&X.every(function(r1){return z[r1]===i1[r1]})},R=function(z,i1){return z.length===i1.length&&z.every(function(X,r1){return i1[r1]===X})},b=function(z){let i1=Te(i),X=z.split(".");for(let r1=0;r1",P.file,`Rip App: ${P.file} static __gates must be an array`);for(let W=0;W0))throw _(String(J),P.file,`Rip App: ${P.file} has a malformed render gate path`);if(F!=null&&typeof F!=="function")throw _(J,P.file,`Rip App: gate '${J}' has a non-function key`);if(o1=b(J),!o1)throw _(J,P.file,`Rip App: gate '${J}' does not resolve to a source`);if(r1=o1.cell,de(r1)){if(!F)throw _(J,P.file,`Rip App: gate '${J}' is keyed and requires a key function`);try{c1=F(i1,X),r1=r1.cellFor(c1)}catch(L){throw Q=L,De(J,P.file,Q,`Rip App: gate '${J}' key failed: ${Q.message}`)}}else if(F)throw _(J,P.file,`Rip App: gate '${J}' is a singleton and does not accept a key function`);if(P.bindings[W]={cell:r1,tail:o1.tail,path:J,file:P.file},!n1.has(r1))n1.set(r1,{cell:r1,path:J,file:P.file,entryIndex:v})}}return Array.from(n1.values())},k=async function(z,i1,X,r1){let Q,l1,c1=m(z,i1,X),F=await Promise.allSettled((()=>{let n1=[];for(let v of c1)n1.push(v.cell.ensure());return n1})());if(r1!==c)return!1;let J=null,o1=function(n1,v){if(n1.entryIndex=v,J==null||v=J.entryIndex)break;for(let P of v.bindings){l1=P.cell.peek();for(let W of P.tail){if(l1==null)break;l1=l1[W]}if(l1==null){o1(_(P.path,P.file,`Rip App: gate '${P.path}' resolved to ${l1}; every gated subpath must exist and be non-null`),n1);break}P.value=l1}}if(J!=null)throw J;return!0},O=function(z,i1){return No(z.cls,{gates:z.bindings,parent:i1,stash:i,router:r})},A=function(z){let i1=[];for(let X=z.length-1;X>=0;X--){let r1=z[X];try{r1.unmount?.()}catch(Q){i1.push(Q);try{r1._teardown?.({state:"unmounted",hooks:!1,removeDOM:!0})}catch(l1){i1.push(l1)}}}return i1},x=function(){let z=o;o=[],l=null,h=[],u=null,d=null;let i1=A(z);if(i1.length)throw i1[0];return},I=null,H=function(){I?.remove?.(),I=null;return},G=function(z){let i1,X;H();let r1=z.error?.stack??z.stack??z.message??String(z);I=(()=>{if(typeof document<"u"&&typeof document.createElement==="function")return i1=document.createElement("pre"),i1.style.cssText="margin:2rem;padding:1rem 1.25rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere",i1.textContent=r1,i1;else return X={nodeName:"PRE",textContent:r1,parentNode:null,remove(){let Q=X.parentNode?.children,l1=Q?.indexOf(X)??-1;if(l1>=0)Q.splice(l1,1);X.parentNode=null;return}},X})(),s.appendChild(I);return},K=function(){if(typeof document<"u"&&typeof document.createDocumentFragment==="function")return document.createDocumentFragment();let z=[];return{children:z,appendChild(i1){return z.push(i1),i1}}},Z=function(z,i1=s){if(H(),z.nodeType===11)i1.appendChild(z);else for(let X of z.children)i1.appendChild(X);return},V=function(z,i1){let X,r1=z._nodes??[z._root];for(let Q of r1){if(!Q)continue;if(Q.matches?.("#content"))return Q;if(X=Q.querySelector?.("#content"),X)return X}return r1.find(function(Q){return Q!=null})??i1},j=function(z){return z?.childNodes??z?.children??[]},q=function(z,i1){z.slot=i1,z.slotOwned=j(i1).length;return},t1=function(){let z,i1,X=s;for(let r1=0;r10&&Q.slot!=null&&Q.slot!==X){i1=Array.from(j(Q.slot)).slice(Q.slotOwned??0),q(Q,X);for(let l1 of i1)X.appendChild(l1);z._target=X}if(r1===h.length-1)break;X=V(z,X)}if(h.length>1)u=X;return},M=function(z,i1,X){let r1,Q,l1;if(!z.some(function(n1){return typeof n1.cls.prototype?.onError==="function"}))return!1;let c1=K(),F=c1,J=[];try{for(let n1=0;n10)q(v,F);if(Q.mount?.(F),Q._state==="failed")return A(J),!1;F=V(Q,F)}if(X!==c)return A(J),!1;r1=null;for(let n1=J.length-1;n1>=0;n1--){let v=J[n1];if(typeof v.onError==="function"){r1=v;break}}Z(c1)}catch(n1){return console.error("[Rip] boundary chain failed to mount:",n1),A(J),!1}let o1=o;o=J,l=J[J.length-1]??null,h=z,u=F,d=null;try{r1.onError(i1)}catch(n1){console.error("[Rip] boundary onError error:",n1)}for(let n1 of A(o1))console.error("[Rip] boundary teardown error:",n1);return!0},N=function(z,i1){let X=null;for(let Q=z.length-1;Q>=0;Q--){let l1=z[Q];if(typeof l1.instance?.onError==="function"){X=l1.instance;break}}if(!X)return!1;let r1=o.slice(z.length);o=z.map(function(Q){return Q.instance}),l=o[o.length-1]??null,h=z,d=null;try{X.onError(i1)}catch(Q){console.error("[Rip] boundary onError error:",Q)}for(let Q of A(r1))console.error("[Rip] boundary teardown error:",Q);return!0},C=async function(z,i1,X=n){let r1,Q,l1,c1,F,J,o1=z?.route;if(!o1?.file)throw Error("Rip App: renderer route state requires route.file");let n1=z.params??{},v=z.query??{},P=z.layouts??[];if(!Array.isArray(P))throw Error("Rip App: renderer route state layouts must be an array");let W=h.map(function(S1){return S1.file}),s1=S;if(S=null,s1==null&&l!=null&&d!=null&&o1.file===d.file){if(R([...P,o1.file],W)&&p(n1,d.params)){if(!(p(v,d.query)||y(h,n1,v))){if(typeof l.load==="function")await l.load(n1,v);if(i1!==c)return null;return d={file:o1.file,params:n1,query:v},l}}}let L=[...P,o1.file],U=d!=null&&P.length>0&&h.length===P.length+1&&R(P,W.slice(0,-1))&&!y(h.slice(0,-1),n1,v),e1=s1!=null?Math.max(0,Math.min(s1,L.length-1)):U?P.length:0;if(s1!=null&&e1>0){if(!(h.length===L.length&&R(L.slice(0,e1),W.slice(0,e1))))e1=0}let m1=[];for(let S1=0;S10){if(l1=U?N(m1.slice(0,r1),Q):M(m1.slice(0,r1),Q,i1),l1)return null}}throw Q}let d1=K(),R1=d1,E1=[],A1=e1>0?m1[e1-1].instance:null,k1=e1>0,w1=k1?V(A1,s):s;try{for(let S1=m1.slice(e1),q1=0;q10)q(xt,R1);if(c1.mount?.(R1),c1._state==="failed")throw Error(`Rip App: component '${xt.file}' failed during mount`);if(e1+q11?R1:w1,h=m1,d={file:o1.file,params:n1,query:v};let y1=A(p1);if(g=y1.length>0,y1.length)for(let S1 of y1)if(Q=De("","",S1),a!=null)try{a(Q)}catch(q1){console.error("[Rip] renderer teardown reporter failed:",q1)}else console.error("[Rip] renderer teardown error:",Q);return l},w=function(z){let i1,X,r1=z?.route;if(!r1?.file)return;let Q=z.params??{},l1=z.query??{},c1=z.layouts??r1.layouts??[],F=h.map(function(n1){return n1.file}),J=d!=null&&R(c1,F.slice(0,-1));if(J&&r1.file===d.file&&p(Q,d.params))return;let o1=J?[r1.file]:[...c1,r1.file];try{i1=(()=>{let n1=[];for(let v of o1)n1.push({file:v,cls:ti(n,v)});return n1})(),X=m(i1,Q,l1)}catch(n1){return}for(let n1 of X)n1.cell.preload().catch(function(){return null});return},D=function(z,i1){if(!(z!=null&&typeof z==="object"&&typeof i1==="string"))return null;let X=function(r1){return typeof r1==="function"&&r1.__hmrId===i1};if(X(z.default))return z.default;for(let r1 in z){let Q=z[r1];if(X(Q))return Q}return null},B=function(z){let i1=z+"#",X=[];for(let Q of h)if(Q.file===z&&Q.instance!=null)X.push(Q.instance);for(let[Q,l1]of jn())if(typeof Q==="string"&&Q.startsWith(i1)){for(let c1 of l1.instances)if(!X.includes(c1))X.push(c1)}let r1=[];for(let Q of X)r1.push({instance:Q,entry:h.find(function(l1){return l1.instance===Q})??null});return r1},a1=function(z,i1){let X,r1,Q,l1,c1=(()=>{let n1=[];for(let v of z)if(typeof v==="string"&&v.endsWith(".rip"))n1.push(v);return n1})();if(!(c1.length>0))return"unknown";let F=0,J=!1,o1=new Set;for(let n1 of c1){if(l1=i1.getCompiled(n1),Q=B(n1),l1==null){if(typeof i1.exists==="function"&&!i1.exists(n1)){if(Q.some(function(v){return v.instance._state!=="unmounted"}))return"fallback"}else J=!0;continue}for(let{instance:v,entry:P}of Q){if(o1.has(v))continue;if(v._state==="unmounted")continue;if(v._state!=="mounted")return"fallback";if(r1=v.constructor?.__hmrId,X=typeof r1==="string"?D(l1,r1):null,X==null)return"fallback";if(St(X),Rt(v.constructor,X)!=="patch")return"fallback";if(Bn(v,X),o1.add(v),F+=1,P!=null){if(P.cls=X,P!==h[h.length-1])t1()}}}if(F>0)return"done";return J?"unknown":"idle"},h1=async function(z,i1=n){let X,r1,Q,l1,c1;if(!(Array.isArray(z)&&z.length>0))return"noop";for(let U of z)if(U==="stash.rip"||U.startsWith("stash/")||U==="seed.rip")return"escape";let F=r.current;if(!(F?.route?.file&&h.length>0))return"noop";let o1=[...F.layouts??F.route.layouts??[],F.route.file],n1=R(o1,h.map(function(U){return U.file})),v=Fn();try{if(c1=a1(z,i1),c1==="done")return Tr(v),"narrow";if(c1==="idle"&&n1)return ke("noop",{paths:[...z]}),"noop"}catch(U){console.error("[Rip] HMR patch failed; falling back to remount:",U),ke("reject",{reason:"patch-failed",paths:[...z],message:U?.message?String(U.message):String(U)})}let P=new Set(z),W=-1;for(let U=0;U{try{return await C(z,l1,i1)}catch(c1){if(X=c1,l1!==c)return null;if(r1=(()=>{if(X?.name==="GateFailure")return X;else return Q=z?.route?.file??"",De(X?.path??Q,Q,X)})(),a?.(r1),l==null)G(r1);throw r1}finally{if(l1===c&&(Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r)))r.navigating=!1}})()};let f1=null;return f1={current:null,mount:t,preload:w,remountDirty:h1,start(){if(f)return f1;return r.init?.(),f=$1(function(){let z=r.current;if(z?.route)t(z).catch(function(){return null});return}),f1},stop(){let z,i1;if(c++,f?.(),f=null,Array.isArray(r)||typeof r==="string"?r.includes("navigating"):("navigating"in r))r.navigating=!1;try{x()}catch(X){throw z=X,i1=De("","",z),a?.(i1),i1}return}},Object.defineProperty(f1,"current",{get(){return l}}),f1}var vo,Oo,ri=Symbol.for("rip.app.stash.persisted"),Ao=Symbol.for("rip.app.stash.purge");Oo=function(e,t){return D1(t)?void 0:t};vo=function(e){if(e.storage!=null)return e.storage;if(!(typeof window<"u"&&window.localStorage!=null))throw Error("Rip App: persistStash requires a browser or an injected storage");return e.local?window.localStorage:window.sessionStorage};function xr(e,t={}){let r,i=Te(e)||e;if(i[ri])return function(){return null};i[ri]=!0;let n=vo(t),s=t.key||"__rip_app",a=t.debounce??2000;try{if(r=n.getItem(s),r)Ye(e,JSON.parse(r))}catch(u){}let o=null,l=function(){o=null;try{n.setItem(s,JSON.stringify(Te(e),Oo))}catch(u){}return},c=!1,f=$1(function(){if(qn.value,!c){c=!0;return}if(o!=null)clearTimeout(o);return o=setTimeout(l,a),function(){return o!=null?clearTimeout(o):void 0}});if(typeof window<"u")window.addEventListener("beforeunload",l);Object.defineProperty(i,Ao,{value(){if(o!=null)clearTimeout(o),o=null;try{n.removeItem(s)}catch(u){}return},configurable:!0,writable:!0});let h=!1;return function(){if(h)return;if(h=!0,f?.(),typeof window<"u")window.removeEventListener("beforeunload",l);l(),i[Ao]=null,i[ri]=!1;return}}var Io,ni;ni=function(e){if(e.hasAttribute?.("data-router-ignore"))return!0;if(e.hasAttribute?.("download"))return!0;let t=e.getAttribute?.("target");if(t&&t.toLowerCase()!=="_self")return!0;return!1};function It(e){let t,r=e.getAttribute?.("href")??e.href;if(!(typeof r==="string"&&r.length>0))return null;if(/^[a-z][a-z0-9+.-]*:/i.test(r)){if(t=typeof location<"u"?location.origin:null,!(t!=null&&r.startsWith(t)))return null;r=r.slice(t.length)}if(r.startsWith("//")||r.includes("\\"))return null;return r}function $t(e,t){if(t==null)return!1;if(ni(t))return!1;let r=It(t);if(r==null)return!1;return e.claims(r)!=null}Io=function(){if(!(typeof document<"u"&&typeof document.querySelectorAll==="function"))throw Error("Rip App: ariaCurrent requires a browser or an injected host");return{anchors(){return Array.from(document.querySelectorAll("a[href]"))},observe(e){if(typeof MutationObserver>"u")return null;let t=!1,r=new MutationObserver(function(){if(t)return;return t=!0,requestAnimationFrame(function(){return t=!1,e()})});return r.observe(document.documentElement??document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["href","target","download","data-router-ignore"]}),function(){return r.disconnect()}}}};function Cr(e,t=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: ariaCurrent requires a router");t=t??Io();let r=new WeakMap,i=function(){let l,c,f,h,u=e.path;for(let d of t.anchors()){if(l=ni(d)?null:e.claims(It(d)??""),f=l==null||u==null?null:l.path===u?"page":l.path!=="/"&&u.startsWith(l.path+"/")?"true":null,c=d.getAttribute?.("aria-current")??null,h=r.get(d),h!==void 0&&c!==h){if(r.delete(d),c!=null)continue;h=void 0}if(f!=null){if(h===void 0&&c!=null)continue;if(c!==f)d.setAttribute("aria-current",f);r.set(d,f)}else if(h!==void 0)d.removeAttribute("aria-current"),r.delete(d)}return},n=function(){try{i()}catch(l){console.error("[Rip] aria-current walk failed:",l)}return},s=$1(function(){return e.path,n()}),a=t.observe?.(n)??null,o=!1;return function(){if(o)return;o=!0,s(),a?.();try{for(let l of t.anchors())if(r.has(l)){if((l.getAttribute?.("aria-current")??null)===r.get(l))l.removeAttribute("aria-current");r.delete(l)}}catch(l){}return}}var $o,Do,ii,si;Do=50;$o=3000;si=function(){if(!(typeof document<"u"&&typeof document.addEventListener==="function"))throw Error("Rip App: link listeners require a browser or an injected host");return{listen(e,t,r=null){return document.addEventListener(e,t,r??!1),function(){return document.removeEventListener(e,t,r??!1)}}}};ii=function(e){while(e!=null&&e.tagName!=="A")e=e.parentElement;return e??null};function Pr(e,t=null){if(!(e!=null&&typeof e.claims==="function"&&typeof e.push==="function"))throw TypeError("Rip App: interceptClicks requires a router");t=t??si();let r=function(s){if(s.defaultPrevented)return;if(s.button!==0||s.metaKey||s.ctrlKey||s.shiftKey||s.altKey)return;let a=ii(s.target);if(!(a!=null&&$t(e,a)))return;let o=e.claims(It(a));if(o==null)return;s.preventDefault(),e.push(o.url,{noScroll:a.hasAttribute?.("data-router-noscroll")===!0});return},i=t.listen("click",r),n=!1;return function(){if(n)return;n=!0,i();return}}function Lr(e,t,r=null){if(!(e!=null&&typeof e.claims==="function"))throw TypeError("Rip App: preloadLinks requires a router");if(!(t!=null&&typeof t.preload==="function"))throw TypeError("Rip App: preloadLinks requires a renderer with preload()");r=r??si();let i=null,n=null,s={href:null,at:0},a=function(){if(i!=null)clearTimeout(i);i=null,n=null;return},o=function(h){let u=ii(h.target);if(!(u!=null&&$t(e,u)))return;if(u===n)return;a(),n=u;let d=It(u);i=setTimeout(function(){i=null,n=null;let S=Date.now();if(d===s.href&&S-s.at<$o)return;s.href=d,s.at=S;let g=e.claims(d);return g!=null?t.preload(g):void 0},Do);return},l=function(h){if(n==null)return;let u=h.relatedTarget;if(!(u!=null&&n.contains?.(u)))a();return},c=[r.listen("pointerover",o,{passive:!0}),r.listen("focusin",o,{passive:!0}),r.listen("pointerout",l,{passive:!0}),r.listen("focusout",l,{passive:!0})],f=!1;return function(){if(f)return;f=!0,a();for(let h of c)h();return}}var qe,xo,z1,Co;qe="routes";z1=function(e){throw Error(`Rip App: ${e}`)};var pc=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))z1("launch requires a bundle object");for(let r of["modules","compiled"]){if(t=e[r],t==null)continue;if(!(typeof t==="object"&&!Array.isArray(t)))z1(`launch bundle ${r} must be an object of store paths`)}if(e.seed!=null&&(typeof e.seed!=="object"||Array.isArray(e.seed)))z1("launch bundle seed must be an object");return e},gc=["read","write","del","exists","size","list","listAll","load","watch","getCompiled","setCompiled"];Co=function(e){if(!(typeof e==="object"&&!Array.isArray(e)))z1("launch components must be an object");for(let t of gc)if(typeof e[t]!=="function")z1(`launch components store is missing '${t}'`);return e};var ai=function(e,t=null){let r=pc(e),n=[...new Set([...Object.keys(r.modules??{}),...Object.keys(r.compiled??{})])].filter(function(o){return o.startsWith(qe+"/")});Ot(n,qe);let s=r.compiled?.["stash.rip"],a=t??s?.stash;if(a==null&&s!=null)z1("the bundle's 'stash.rip' module must export 'stash'");if(a!=null&&(typeof a!=="object"||Array.isArray(a)))z1("the application stash must be a plain object");return{bundle:r,declaration:a}};xo=function(){if(!(typeof document<"u"&&typeof document.querySelector==="function"))z1("launch requires a target outside the browser");let e=document.querySelector("#app");if(!e)e=document.createElement("div"),e.id="app",document.body.appendChild(e);return e};function Mr(e){let t,r;if(!(e!=null&&typeof e==="object"))z1("launch requires an options object");if(globalThis.__ripStash!=null)z1("an application is already launched; destroy it first");let i=ai(e.bundle,e.declaration),n=i.bundle,s=e.target??xo(),a=e.adapter??$r(),o=i.declaration,l=Nr(_r(o??{}));Ye(l,n.seed??{}),ho(l);let c=e.components!=null?Co(e.components):vr();if(n.modules!=null)c.load(n.modules);if(n.compiled!=null){let b=n.compiled;for(let _ in b){if(!Object.hasOwn(b,_))continue;let y=b[_];if(!c.exists(_))c.write(_,"");c.setCompiled(_,y)}}let f=Ir({routes(){return Ot(c.listAll(qe),qe)},adapter:a,base:e.base,hash:e.hash,onError:e.onError}),h=Dr({router:f,stash:l,components:c,target:s,onError:e.onError}),u=c.watch(function(b,_){return _.startsWith(qe+"/")?f.rebuild():void 0}),d=null;if(e.links!=null||typeof document<"u"&&typeof document.addEventListener==="function")t=Pr(f,e.links),r=Lr(f,h,e.links),d=function(){t(),r();return};let S=null;if(typeof document<"u"&&typeof document.querySelectorAll==="function")S=Cr(f);let g=null;if(e.persist)g=xr(l,{local:e.persist==="local",key:"__rip_app",storage:e.storage});let p=!1,R=function(){if(p)return;p=!0;let b=[],_=function(y){try{y()}catch(m){b.push(m)}return};if(_(function(){return S?.()}),_(function(){return d?.()}),_(function(){return h.stop()}),_(function(){return f.destroy()}),_(function(){return u()}),_(function(){return g?.()}),globalThis.__ripStash===l)delete globalThis.__ripStash;if(globalThis.__ripRouter===f)delete globalThis.__ripRouter;if(b.length===1)throw b[0];if(b.length>1)throw AggregateError(b,"Rip App: launch.destroy failed");return};globalThis.__ripStash=l,globalThis.__ripRouter=f;try{if(typeof s.replaceChildren==="function")s.replaceChildren();else if(Array.isArray(s.children))s.children.length=0;h.start()}catch(b){throw R(),b}return{stash:l,components:c,router:f,renderer:h,destroy:R}}var oi,jr,li,ci,fi,B1;B1=function(e){if(!(typeof e==="string"&&e.length>0))throw TypeError("Rip Workspace: component path must be a non-empty string");let t=e.split("/"),r=t.some(function(s){return!s||s==="."||s===".."||s.startsWith(".")}),i=t.at(-1),n=t.slice(0,-1).some(function(s){return s.endsWith(".rip")});if(e.includes("\\")||e.startsWith("/")||r||n||i===".rip"||!i.endsWith(".rip"))throw TypeError(`Rip Workspace: invalid component path '${e}'`);return e};jr=function(e){if(typeof e!=="string")throw TypeError("Rip Workspace: component source must be a string");return e};li=function(e){if(e===""||e==null)return"";if(typeof e!=="string")throw TypeError("Rip Workspace: component directory must be a string");let t=e.split("/");if(e.includes("\\")||e.startsWith("/")||t.some(function(r){return!r||r==="."||r===".."||r.startsWith(".")}))throw TypeError(`Rip Workspace: invalid component directory '${e}'`);return e};ci=function(e){if(!(typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)))throw TypeError("Rip Workspace: publication hash must be six Base64URL-folded characters");return e};fi=function(e){if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: compiled component module must be an object");return e};oi=function(e){let t;if(!(e!=null&&typeof e==="object"&&!Array.isArray(e)))throw TypeError("Rip Workspace: prepared state must be an object");let r=ci(e.hash);if(!(e.sources!=null&&typeof e.sources==="object"&&!Array.isArray(e.sources)))throw TypeError("Rip Workspace: prepared sources must be an object");if(!(e.compiled!=null&&typeof e.compiled==="object"&&!Array.isArray(e.compiled)))throw TypeError("Rip Workspace: prepared compiled modules must be an object");let i=new Map,n=new Map,s=e.sources;for(let o in s){if(!Object.hasOwn(s,o))continue;let l=s[o];i.set(B1(o),jr(l))}let a=e.compiled;for(let o in a){if(!Object.hasOwn(a,o))continue;let l=a[o];if(o=B1(o),!i.has(o))throw Error(`Rip Workspace: compiled module '${o}' has no source`);n.set(o,fi(l))}return{hash:r,sources:i,compiled:n}};function Fr(){let e,t=new Map,r=new Map,i=new Set,n=null,s=!1,a=function(l,c){for(let f of Array.from(i))try{f(l,c)}catch(h){console.error("[Rip] workspace watcher error:",h)}return},o=function(l){t=l.sources,r=l.compiled,n=l.hash;return};return e={read(l){return t.get(B1(l))},write(l,c){if(s)throw Error("Rip Workspace: cannot write during a publication transition");l=B1(l),c=jr(c);let f=t.has(l)?"change":"create";t.set(l,c),r.delete(l),a(f,l);return},del(l){if(s)throw Error("Rip Workspace: cannot delete during a publication transition");l=B1(l),t.delete(l),r.delete(l),a("delete",l);return},exists(l){return t.has(B1(l))},size(){return t.size},list(l=""){let c;l=li(l);let f=l?l+"/":"",h=[];for(let[u]of t)if(u.startsWith(f)){if(c=u.slice(f.length),!c.includes("/"))h.push(u)}return h},listAll(l=""){l=li(l);let c=l?l+"/":"",f=[];for(let[h]of t)if(h.startsWith(c))f.push(h);return f},load(l){if(s)throw Error("Rip Workspace: cannot load during a publication transition");if(!(l!=null&&typeof l==="object"&&!Array.isArray(l)))throw TypeError("Rip Workspace: component load expects a source object");let c=[];for(let f in l){if(!Object.hasOwn(l,f))continue;let h=l[f];c.push([B1(f),jr(h)])}for(let[f,h]of c)t.set(f,h),r.delete(f);return},watch(l){if(typeof l!=="function")throw TypeError("Rip Workspace: component watch expects a function");i.add(l);let c=!1;return function(){if(c)return;c=!0,i.delete(l);return}},getCompiled(l){return r.get(B1(l))},setCompiled(l,c){if(s)throw Error("Rip Workspace: cannot compile during a publication transition");if(l=B1(l),!t.has(l))throw Error(`Rip Workspace: setCompiled for unknown component path '${l}'`);r.set(l,fi(c));return},hash(){return n},activate(l){if(n!=null)throw Error("Rip Workspace: a publication is already active");if(s)throw Error("Rip Workspace: a publication transition is already staged");o(oi(l));return},stage(l,c,f){if(s)throw Error("Rip Workspace: a publication transition is already staged");if(l=ci(l),n!==l)throw Error(`Rip Workspace: change starts at ${l}, not ${n}`);if(!Array.isArray(f))throw TypeError("Rip Workspace: changed paths must be an array");let h=f.map(function(p){return B1(p)});if(new Set(h).size!==h.length)throw Error("Rip Workspace: changed paths must be unique");let u=oi(c),d={sources:t,compiled:r,hash:n};s=!0;let S=!1,g=function(p){let R;if(S)throw Error("Rip Workspace: publication transition is already finished");if(S=!0,s=!1,!p)return;o(u);for(let b of h)R=!u.sources.has(b)?"delete":d.sources.has(b)?"change":"create",a(R,b);return};return{components:{getCompiled(p){return u.compiled.get(B1(p))},exists(p){return u.sources.has(B1(p))}},commit(){return g(!0)},rollback(){return g(!1)}}},commit(l,c,f){e.stage(l,c,f).commit();return}},e}var Po,Lo,Mo,jo,Fo,Bo,Uo,Br;Mo=250;Lo=8000;Po=5000;Uo=0;Br=function(e){return typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e)};Fo=function(){if(typeof location>"u")throw Error("Rip App: connectFeed needs a hub URL (no location to derive one from)");return`${location.protocol==="https:"?"wss":"ws"}://${location.host}/hub`};Bo=function(){if(typeof WebSocket>"u")throw Error("Rip App: connectFeed needs a socket factory (no global WebSocket)");return function(e){return new WebSocket(e)}};jo=function(){if(typeof fetch>"u")throw Error("Rip App: connectFeed needs a fetch (no global fetch)");return function(e,t){return fetch(e,t)}};function Ur(e,t={}){let r;if(!(e!=null&&typeof e.hash==="function"&&typeof e.apply==="function"&&typeof e.reload==="function"))throw TypeError("Rip App: connectFeed expects hash, apply, and reload callbacks");if(!Br(e.hash()))throw TypeError("Rip App: connectFeed client hash must be six Base64URL-folded characters");let i=t.hub??Fo(),n=t.latestUrl??"/latest.json",s=t.makeSocket??Bo(),a=t.fetch??jo(),o=t.report??function(...M){return console.error(...M)},l=t.backoff?.min??Mo,c=t.backoff?.max??Lo,f=t.ackTimeout??Po,h=!1,u=!1,d=!1,S=!1,g=null,p=0,R=null,b=null,_=0,y=null,m=[],k=Promise.resolve(),O=new Map,A=null,x=function(M){if(u||h)return;u=!0,e.reload(M);return},I=async function(M){let N;if(u||h)return!1;return await(async()=>{try{if(N=await e.apply(M),N==="rejected"){if(Br(M?.hash))A=M?.hash;return!1}if(N==="reload"||!N)return x("change could not be applied"),!1;return A=null,!0}catch(C){return o("[Rip] publication change failed:",C),x("change failed"),!1}})()},H=function(M,N){k=k.then(async function(){if(N!==_)return!0;return await I(M)}),k=k.catch(function(C){return o("[Rip] publication queue failed:",C),x("change queue failed"),!1});return},G=async function(M){let N,C;if(h||u||M!==_)return;let w=e.hash(),D=await a(n,{cache:"no-store"});if(!D?.ok)throw Error(`latest.json fetch failed (${D?.status})`);let B=await D.json();if(!(B!=null&&typeof B==="object"&&!Array.isArray(B)&&Object.keys(B).length===1&&Object.hasOwn(B,"hash")&&Br(B.hash)))throw Error("latest.json is malformed");if(h||u||M!==_)return;if(A!=null){if(B.hash!==A){x(`a newer App generation followed rejected ${A}`);return}m=[],S=!0,p=0;return}let a1=new Set([w]),h1=0;while(h1{try{return g?.close()}catch{}})()}),k=C.then(function(){return!0},function(){return!1}),O.set(M,C),C.finally(function(){return O.get(M)===C?O.delete(M):void 0}),C},Z=function(M,N){if(N!==_)return;let C=null;try{C=JSON.parse(M)}catch{o("[Rip] publication feed received invalid JSON:",M),x("malformed publication frame");return}let w=Array.isArray(C)?C:[C];for(let D of w){if(!(D!=null&&typeof D==="object"))continue;if(Object.keys(D).length===1&&Object.hasOwn(D,"!")&&D["!"]===y&&b!=null){if(b!=null)clearTimeout(b),b=null;K(_)}else if(D.change!==void 0&&!Object.hasOwn(D,"<"))if(A!=null){if(D.change?.hash===A)continue;if(S)H(D.change,N);else m.push(D.change)}else if(S)H(D.change,N);else m.push(D.change);else if(D.reload!==void 0&&!Object.hasOwn(D,"<"))if(A!=null)K(N,!0);else x("server generation changed")}return},V=function(){if(h||u||R!=null)return;let M=Math.min(l*2**p,c);p+=1,R=setTimeout(function(){return R=null,r()},M);return};r=function(){if(h||u)return;_+=1;let M=_;S=!1,m=[],y=`rip-${++Uo}`;try{g=s(i)}catch(N){o("[Rip] publication socket open failed:",N),V();return}g.onmessage=function(N){Z(String(N.data),M);return},g.onopen=function(){if(M!==_||h)return;d=!0;try{g.send(JSON.stringify({"+":["/hub"],"?":y}))}catch(N){o("[Rip] publication subscription failed:",N);try{g.close()}catch{}return}b=setTimeout(function(){if(h||u||M!==_||S)return;return o("[Rip] publication subscription acknowledgement timed out"),(()=>{try{return g.close()}catch{}})()},f);return},g.onclose=function(){if(M!==_)return;if(d=!1,S=!1,b!=null)clearTimeout(b),b=null;V();return},g.onerror=function(){return};return};let j=function(){if(h||u)return;if(g!=null)try{g.close()}catch{}else V();return},q=[],t1=function(M,N,C){if(typeof M?.addEventListener!=="function")return;M.addEventListener(N,C),q.push(function(){return M.removeEventListener(N,C)});return};if(t1(globalThis,"online",function(){return j()}),t1(globalThis,"pageshow",function(M){return M.persisted===!0?j():void 0}),typeof document<"u")t1(document,"visibilitychange",function(){return document.visibilityState==="visible"?j():void 0});return r(),{close(){if(h)return;if(h=!0,_+=1,R!=null)clearTimeout(R);if(b!=null)clearTimeout(b);for(let M of q)M();try{g?.close()}catch{}return},connected(){return d&&S&&!h&&!u},resync(){return j()}}}function Vr(e){if(!(e!=null&&typeof e==="object"))throw TypeError("Rip App: createApply expects an options object");if(typeof e.renderer?.remountDirty!=="function")throw TypeError("Rip App: createApply requires renderer.remountDirty");if(typeof e.escape!=="function")throw TypeError("Rip App: createApply requires an escape remount");let t=e.report??function(...i){return console.log(...i)};return{absorb:async function(i,n=null){if(!(Array.isArray(i)&&i.length>0))return"ignore";let s=(()=>{let f=[];for(let h of i)if(typeof h==="string"&&h.endsWith(".css"))f.push(h);return f})(),a=(()=>{let f=[];for(let h of i)if(typeof h==="string"&&h.endsWith(".rip"))f.push(h);return f})(),o=(()=>{let f=[];for(let h of i)if(typeof h==="string"&&!h.endsWith(".rip")&&!h.endsWith(".css"))f.push(h);return f})();if(a.length===0){if(o.length>0)return"reload";if(s.length>0)return"css";return"ignore"}let l=await e.renderer.remountDirty(a,n);if(l==="narrow")return t(`[Rip] applied ${a.join(", ")} — update`),"update";if(l==="reload")return t(`[Rip] applied ${a.join(", ")} — reload`),"reload";if(l==="noop")return"ignore";if(await e.escape(a,n)==="reload")return"reload";return t(`[Rip] applied ${a.join(", ")} — update`),"update"}}}var bc=function(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError("Rip App: rash expects bytes")},yc=function(e){let t,r,i,n,s,a,o,l,c,f,h,u,d,S,g,p,R=bc(e);if(typeof Bun<"u"&&Bun.CryptoHasher!=null)return new Uint8Array(new Bun.CryptoHasher("sha256").update(R).digest());let b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],_=R.length*8,y=new Uint8Array(R.length+9+63&-64);y.set(R),y[R.length]=128;let m=new DataView(y.buffer);m.setUint32(y.length-4,_>>>0,!1),m.setUint32(y.length-8,Math.floor(_/4294967296)>>>0,!1);let k=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],O=function(G,K){return G>>>K|G<<32-K},A=new Uint32Array(64),x=0;while(x>>3,S=O(A[G-2],17)^O(A[G-2],19)^A[G-2]>>>10,A[G]=A[G-16]+d+A[G-7]+S>>>0;[i,n,s,o,l,c,f,h]=k;for(let G=0;G<64;G++)r=O(l,6)^O(l,11)^O(l,25),a=l&c^~l&f,g=h+r+a+b[G]+A[G]>>>0,t=O(i,2)^O(i,13)^O(i,22),u=i&n^i&s^n&s,p=t+u>>>0,h=f,f=c,c=l,l=o+g>>>0,o=s,s=n,n=i,i=g+p>>>0;k[0]=k[0]+i>>>0,k[1]=k[1]+n>>>0,k[2]=k[2]+s>>>0,k[3]=k[3]+o>>>0,k[4]=k[4]+l>>>0,k[5]=k[5]+c>>>0,k[6]=k[6]+f>>>0,k[7]=k[7]+h>>>0,x+=64}let I=new Uint8Array(32),H=new DataView(I.buffer);for(let G=0;G<8;G++)H.setUint32(G*4,k[G],!1);return I},Dt=function(e){let t=yc(e),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";return(r[t[0]>>2]+r[(t[0]&3)<<4|t[1]>>4]+r[(t[1]&15)<<2|t[2]>>6]+r[t[2]&63]+r[t[3]>>2]+r[(t[3]&3)<<4|t[4]>>4]).replaceAll("-","_")},Wr=function(e){let t=JSON.stringify(e.map(function(r){return[r.id,r.hash]}));return Dt(new TextEncoder().encode(t))};var Sc=function(){return globalThis.__ripStash},Rc=function(){return globalThis.__ripRouter};(()=>{if(typeof document>"u"||typeof WebSocket>"u")return;let e=document.currentScript;if(!(e?/\bwatch\.js\b/.test(e.src||""):!!document.querySelector("script[watch]"))||globalThis.__ripWatch)return;globalThis.__ripWatch=!0;let r=location.pathname,i=(f)=>Array.isArray(f)&&(f.includes(r)||r.endsWith("/")&&f.includes(r+"index.html")),n=(f)=>f.headers.get("etag")||f.headers.get("last-modified")||"",s=null;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((f)=>{s=n(f)}).catch(()=>{});let a=()=>{if(s===null)return;fetch(location.href,{method:"HEAD",cache:"no-store"}).then((f)=>{if(n(f)!==s)location.reload()}).catch(()=>{})},o=!1,l=0,c=()=>{let f=location.protocol==="https:"?"wss://":"ws://",h=new WebSocket(f+location.host+"/hub");h.onopen=()=>h.send('{"+":["/assets"],"?":"observe"}'),h.onmessage=(u)=>{let d;try{d=JSON.parse(u.data)}catch{return}for(let S of Array.isArray(d)?d:[d]){if(!S||typeof S!=="object"||"<"in S)continue;if("!"in S){if(o)a();o=!0,l=0}if(i(S.touched))location.reload()}},h.onclose=()=>{if(l+=1,!o&&l>=6)return;setTimeout(c,Math.min(8000,500*2**(l-1)))},h.onerror=()=>{}};c()})();var{__hmrEmit:Ec}=Et;function ui(e,t={}){if(t.face==="ts")throw Error("rip: TypeScript face is unavailable in the browser");return fa(e,{...t,face:"js"})}var Yo={intrinsics:ir,stdlib:sr,schema:fr,reactive:gr,components:Et},zo=Object.freeze({...ir,...sr,...fr,...gr,...Et}),kc=Object.freeze({rash:Dt,check:Wr}),qo=Object.freeze({"rip/app":Hr,"rip/app/rash":kc});var Tc=new Map(Object.keys(Yo).map((e)=>[new URL(`./runtime/${e}.js`,import.meta.url).pathname,e])),wc=/(?:^|\/)src\/runtime\/(intrinsics|stdlib|schema|reactive|components)\.js$/,Gr="__ripModuleBridge",_c=(e)=>e.slice(1,-1),Vo=(e,t)=>{let r=e.split("/").slice(0,-1);for(let i of t.split("/")){if(i===""||i===".")continue;if(i===".."){if(!r.length)return null;r.pop()}else r.push(i)}return r.join("/")},Wo=(e)=>{if(typeof URL<"u"&&typeof URL.createObjectURL==="function"&&typeof Blob<"u")return URL.createObjectURL(new Blob([e],{type:"text/javascript"}));return`data:text/javascript;base64,${btoa(unescape(encodeURIComponent(e)))}`};function Xo({components:e,embeddedPackages:t={},debug:r=!1,hmr:i=!1}={}){if(!e||typeof e.read!=="function")throw TypeError("rip: createModuleLoader requires a component registry");let n=new Map,s=new Map,a=new Map,o=new Map,l=new Map,c=new Set,f=(g)=>{if(typeof g==="string"&&g.startsWith("blob:")&&typeof URL?.revokeObjectURL==="function")URL.revokeObjectURL(g)},h=async()=>{let g=[...c];c.clear(),await Promise.allSettled(g.map(async(p)=>f(await p)))},u=(g,p)=>{if(a.has(g))return a.get(g);globalThis[Gr]??={};let R=globalThis[Gr][g];if(R&&R!==p)throw Error(`rip: two copies of embedded module '${g}' are active on one page`);globalThis[Gr][g]=p;let b=[`const ns = globalThis['${Gr}'][${JSON.stringify(g)}];`];for(let y of Object.keys(p))if(y==="default")b.push("export default ns['default'];");else if(/^[A-Za-z_$][\w$]*$/.test(y))b.push(`export const ${y} = ns[${JSON.stringify(y)}];`);else throw Error(`rip: embedded module '${g}' exports '${y}', which cannot cross the module bridge`);let _=Wo(b.join(` +`));return a.set(g,_),_},d=(g,p)=>{let R=_c(g),b=Tc.get(R)??R.match(wc)?.[1];if(b)return{bridge:`runtime:${b}`,namespace:Yo[b]};let _=(k)=>{try{return e.exists(k)}catch{return!1}},y=R.endsWith(".rip")?"":` — did you mean '${R}.rip'?`;if(R.startsWith("./")||R.startsWith("../")){let k=Vo(p,R);if(k&&_(k))return{path:k};if(!p.startsWith("rip/")){let O=Vo(`app/${p}`,R),A=O?.startsWith("app/")?O.slice(4):O;if(A&&_(A))return{path:A}}throw Error(`rip: '${p}' imports '${R}', which is not in the bundle${y}`)}let m=R.match(/^rip\/([\w-]+)(?:\/(.+))?$/);if(m){if(_(R))return{path:R};let k=`rip/${m[1]}`,O=t[R];if(O)return{bridge:`package:${R}`,namespace:O};if(t[k])throw Error(`rip: '${p}' imports '${R}', which '${k}' does not export in the browser`);let A=m[2]?m[2].endsWith(".rip")?m[2]:`${m[2]}.rip`:"index.rip",x=`${k}/${A}`;if(!_(x))throw Error(`rip: '${p}' imports '${R}', but '${x}' is not in the bundle — `+"only packages declaring browser safety travel to the browser");return{path:x}}throw Error(`rip: '${p}' imports '${R}', which is not loadable in a browser — `+"server-only and unknown modules never travel to the browser")},S=(g,p)=>{if(p.includes(g))throw Error(`rip: import cycle through '${g}' (${p.join(" -> ")} -> ${g})`);if(n.has(g))return n.get(g);let R=(async()=>{let b=e.read(g);if(b===void 0)throw Error(`rip: '${g}' is not in the bundle`);let _=ui(b,{path:g,runtimeDelivery:"import",browserModule:!0,...i?{hmr:!0}:null}),y=_.code;for(let m of[..._.imports].reverse()){let k=d(m.specifier,g);if(k.path){let A=o.get(k.path);if(!A)o.set(k.path,A=new Set);A.add(g);let x=l.get(g);if(!x)l.set(g,x=new Set);x.add(k.path)}let O=k.bridge?u(k.bridge,k.namespace):await S(k.path,[...p,g]);y=`${y.slice(0,m.start)}${JSON.stringify(O)}${y.slice(m.end)}`}if(r){let m=btoa(unescape(encodeURIComponent(JSON.stringify(_.map))));y+=` +//# sourceMappingURL=data:application/json;charset=utf-8;base64,${m}`}return Wo(y)})();return n.set(g,R),R.catch(()=>n.delete(g)),R};return{async import(g){if(s.has(g))return s.get(g);let R=await import(await S(g,[]));return s.set(g,R),e.setCompiled(g,{...R}),R},invalidate(g){let p=[g],R=new Set;while(p.length){let b=p.pop();if(R.has(b))continue;if(R.add(b),n.has(b))c.add(n.get(b));n.delete(b),s.delete(b);for(let _ of o.get(b)??[])p.push(_);o.delete(b);for(let _ of l.get(b)??[]){let y=o.get(_);if(y?.delete(b),y?.size===0)o.delete(_)}l.delete(b)}return R},collect:h,dispose(){for(let g of n.values())c.add(g);n.clear(),s.clear(),o.clear(),l.clear();for(let g of a.values())f(g);a.clear(),h()}}}var Jo=Object.keys(zo),Nc=Jo.map((e)=>zo[e]),Ac=()=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")throw Error("rip: processRipScripts requires a browser or an injected host");return{scripts(){return Array.from(document.querySelectorAll('script[type="text/rip"]')).map((e)=>({src:e.getAttribute("src"),text:e.textContent??""}))},async fetchText(e){let t=await fetch(e);if(!t.ok)throw Error(`${t.status} ${t.statusText}`);return t.text()},prepare(e,t){return Function(...t,e)},async ready(){if(document.readyState==="loading")await new Promise((e)=>document.addEventListener("DOMContentLoaded",e,{once:!0}))},report(e){console.error("[Rip]",String(e))}}},vc=(e)=>{let t=e.split(` `),r=null;for(let i of t){if(!i.trim())continue;let n=i.match(/^[ \t]*/)[0];if(r===null){r=n;continue}let s=0;while(si.trim()?i.slice(r.length):i).join(` -`)},Oc=(e)=>{try{return new URL(e,"https://rip.invalid/").href}catch{return e}};async function ff(e=null){let t=e??Ac();await t.ready?.();let r=[],i=new Set,n=(u)=>{let m=Oc(u);if(i.has(m))throw Error(`rip: script source '${u}' is listed more than once`);i.add(m)};for(let u of t.dataSrc?.()??[])n(u),r.push({label:u,text:null,url:u});let s=0;for(let u of t.scripts?.()??[])if(s+=1,u.src)n(u.src),r.push({label:u.src,text:null,url:u.src});else r.push({label:``,text:vc(u.text??"")});let a=[],o=(u,m)=>{a.push({label:u,error:m}),t.report?.(m)},l=[];for(let u of r){if(u.text!==null){l.push(u);continue}if(typeof t.fetchText!=="function")throw Error("rip: this host loads script sources by URL but provides no fetchText");try{l.push({...u,text:await t.fetchText(u.url)})}catch(m){o(u.label,Error(`rip: failed to load '${u.label}': ${m.message}`))}}let c=l,f=null;while(c.length){let u=[],m=1,S=[];for(let g of c){u.push({source:g,start:m});let d=g.text.endsWith(` -`)?g.text.slice(0,-1):g.text;S.push(d),m+=d.split(` +`)},Oc=(e)=>{try{return new URL(e,"https://rip.invalid/").href}catch{return e}};async function ff(e=null){let t=e??Ac();await t.ready?.();let r=[],i=new Set,n=(u)=>{let d=Oc(u);if(i.has(d))throw Error(`rip: script source '${u}' is listed more than once`);i.add(d)};for(let u of t.dataSrc?.()??[])n(u),r.push({label:u,text:null,url:u});let s=0;for(let u of t.scripts?.()??[])if(s+=1,u.src)n(u.src),r.push({label:u.src,text:null,url:u.src});else r.push({label:``,text:vc(u.text??"")});let a=[],o=(u,d)=>{a.push({label:u,error:d}),t.report?.(d)},l=[];for(let u of r){if(u.text!==null){l.push(u);continue}if(typeof t.fetchText!=="function")throw Error("rip: this host loads script sources by URL but provides no fetchText");try{l.push({...u,text:await t.fetchText(u.url)})}catch(d){o(u.label,Error(`rip: failed to load '${u.label}': ${d.message}`))}}let c=l,f=null;while(c.length){let u=[],d=1,S=[];for(let g of c){u.push({source:g,start:d});let p=g.text.endsWith(` +`)?g.text.slice(0,-1):g.text;S.push(p),d+=p.split(` `).length}try{f=ui(S.join(` -`),{path:"",runtimeDelivery:"none",script:!0});break}catch(g){let d=u[0];for(let _ of u)if(typeof g.line==="number"&&_.start<=g.line)d=_;let R=typeof g.line==="number"?g.line-d.start+1:null,b=Error(`rip: ${d.source.label}${R?`:${R}`:""} failed to compile: ${g.message}`);b.cause=g,b.line=R,b.col=g.col,o(d.source.label,b),c=c.filter((_)=>_!==d.source),f=null}}let h=!1;if(f){let u=`'use strict'; +`),{path:"",runtimeDelivery:"none",script:!0});break}catch(g){let p=u[0];for(let _ of u)if(typeof g.line==="number"&&_.start<=g.line)p=_;let R=typeof g.line==="number"?g.line-p.start+1:null,b=Error(`rip: ${p.source.label}${R?`:${R}`:""} failed to compile: ${g.message}`);b.cause=g,b.line=R,b.col=g.col,o(p.source.label,b),c=c.filter((_)=>_!==p.source),f=null}}let h=!1;if(f){let u=`'use strict'; return (async () => { ${f.code} -})();`,m=null;try{m=t.prepare(u,Jo)}catch(S){let g=Error("rip: script evaluation is blocked by Content Security Policy — running Rip from script tags requires 'unsafe-eval' "+"(script-src). Serve precompiled JavaScript or relax the policy for this page.");g.cause=S,o("",g)}if(m)try{await m(...Nc),h=!0}catch(S){o("",S)}}return{count:c.length,executed:h,failures:a}}var Ic="data-rip-hmr-overlay",Xe=null,Ho=(e)=>{if(e==null)return"Unknown update failure";if(typeof e==="string")return e;return e.message||e.stack||String(e)},Go=(e)=>{if(e==null||typeof e!=="object")return null;if(typeof e.path==="string"&&e.path)return e.path;if(typeof e.file==="string"&&e.file)return e.file;return null};function Ko(e,t){if(typeof document>"u"||typeof document.createElement!=="function")return null;let r=document.body||document.documentElement;if(!r)return null;_e();let i=document.createElement("div");i.setAttribute(Ic,e||"compile"),i.setAttribute("role","alert"),i.style.cssText=["position:fixed","inset:0","z-index:2147483646","display:flex","align-items:flex-start","justify-content:center","padding:2rem 1rem","box-sizing:border-box","background:rgba(15,23,42,0.45)","overflow:auto"].join(";");let n=document.createElement("div");n.style.cssText="position:relative;max-width:52rem;width:100%";let s=document.createElement("pre");s.style.cssText=["margin:0","padding:1rem 1.25rem","color:#b91c1c","background:#fef2f2","border:1px solid #fecaca","border-radius:8px","font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace","white-space:pre-wrap","overflow-wrap:anywhere"].join(";");let a=e==="activate"?"Rip: update failed to activate":"Rip: update failed to compile",o=Go(t),l=o?`${a} +})();`,d=null;try{d=t.prepare(u,Jo)}catch(S){let g=Error("rip: script evaluation is blocked by Content Security Policy — running Rip from script tags requires 'unsafe-eval' "+"(script-src). Serve precompiled JavaScript or relax the policy for this page.");g.cause=S,o("",g)}if(d)try{await d(...Nc),h=!0}catch(S){o("",S)}}return{count:c.length,executed:h,failures:a}}var Ic="data-rip-hmr-overlay",Xe=null,Ho=(e)=>{if(e==null)return"Unknown update failure";if(typeof e==="string")return e;return e.message||e.stack||String(e)},Go=(e)=>{if(e==null||typeof e!=="object")return null;if(typeof e.path==="string"&&e.path)return e.path;if(typeof e.file==="string"&&e.file)return e.file;return null};function Ko(e,t){if(typeof document>"u"||typeof document.createElement!=="function")return null;let r=document.body||document.documentElement;if(!r)return null;_e();let i=document.createElement("div");i.setAttribute(Ic,e||"compile"),i.setAttribute("role","alert"),i.style.cssText=["position:fixed","inset:0","z-index:2147483646","display:flex","align-items:flex-start","justify-content:center","padding:2rem 1rem","box-sizing:border-box","background:rgba(15,23,42,0.45)","overflow:auto"].join(";");let n=document.createElement("div");n.style.cssText="position:relative;max-width:52rem;width:100%";let s=document.createElement("pre");s.style.cssText=["margin:0","padding:1rem 1.25rem","color:#b91c1c","background:#fef2f2","border:1px solid #fecaca","border-radius:8px","font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace","white-space:pre-wrap","overflow-wrap:anywhere"].join(";");let a=e==="activate"?"Rip: update failed to activate":"Rip: update failed to compile",o=Go(t),l=o?`${a} ${o} `:`${a} -`;s.textContent=l+Ho(t);let c=document.createElement("button");c.type="button",c.textContent="Dismiss",c.style.cssText=["position:absolute","top:0.5rem","right:0.5rem","padding:0.4rem 0.75rem","font:12px/1.2 system-ui,sans-serif","color:#0f172a","background:#fff","border:1px solid #cbd5e1","border-radius:6px","cursor:pointer"].join(";"),c.addEventListener("click",()=>_e()),n.appendChild(s),n.appendChild(c),i.appendChild(n),i.addEventListener("click",(h)=>{if(h.target===i)_e()});let f=(h)=>{if(h.key==="Escape")_e()};if(i._ripOnKey=f,typeof document.addEventListener==="function")document.addEventListener("keydown",f);return r.appendChild(i),Xe=i,Ec("reject",{kind:e||"compile",path:Go(t),message:Ho(t).slice(0,500)}),i}function _e(){if(!Xe)return;let e=Xe._ripOnKey;if(e&&typeof document<"u"&&typeof document.removeEventListener==="function")document.removeEventListener("keydown",e);Xe.remove?.(),Xe=null}function hf(){return Xe}var{validatePrepared:$c}=Hr,Zo=(e)=>e!==null&&typeof e==="object"&&!Array.isArray(e),hi=(e)=>typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e),Qo=(e,t=!1)=>{if(typeof e!=="string"||e.length===0||e.startsWith("/")||e.includes("\\"))return!1;let r=e.split("/");if(r.some((i)=>!i||i==="."||i===".."||i.startsWith(".")))return!1;if(t){let i=r.at(-1);if(i===".rip"||!i.endsWith(".rip")||r.slice(0,-1).some((n)=>n.endsWith(".rip")))return!1}return!0},e2=(e,t)=>{let r=Object.keys(e).sort(),i=[...t].sort();return r.length===i.length&&r.every((n,s)=>n===i[s])},Dc=(e)=>{if(!Zo(e)||!e2(e,["hash","list"])||!hi(e.hash)||!Array.isArray(e.list))throw Error("rip: bundle must contain exactly one hash and one source list");let t={},r=null;for(let i of e.list){if(!Array.isArray(i)||i.length!==2||!Qo(i[0],!0)||typeof i[1]!=="string"||r!==null&&r>=i[0])throw Error(`rip: bundle has a malformed or unsorted source entry: ${JSON.stringify(i)}`);if(i[0]==="rip/app"||i[0].startsWith("rip/app/"))throw Error(`rip: bundle source '${i[0]}' collides with embedded package 'rip/app'`);r=i[0],t[i[0]]=i[1]}return t},xc=(e)=>{if(!Zo(e)||!e2(e,["from","hash","list"])||!hi(e.from)||!hi(e.hash)||!Array.isArray(e.list))throw Error("rip: publication change must contain exactly from, hash, and list");let t=null,r=[];for(let i of e.list){if(!Array.isArray(i)||i.length<1||i.length>2||!Qo(i[0])||t!==null&&t>=i[0])throw Error(`rip: publication change has a malformed or unsorted entry: ${JSON.stringify(i)}`);let[n]=i,s=i.length===2&&i[1]===null;if(n.endsWith(".rip")){if(i.length!==2||!s&&typeof i[1]!=="string")throw Error(`rip: Rip change '${n}' must carry source or null`)}else if(i.length===2&&!s)throw Error(`rip: ordinary asset change '${n}' cannot carry content`);t=n,r.push({path:n,source:i[1],deletion:s})}return{from:e.from,hash:e.hash,entries:r}},Cc=async(e)=>{let t=await fetch(e);if(!t.ok)throw Error(`rip: failed to fetch bundle '${e}': ${t.status} ${t.statusText}`);return t.text()};async function Pc(e,{fetchText:t=Cc}={}){if(!e)throw Error("rip: fetchBundle requires a url");let r=await t(e),i=typeof r==="string"?r:r?.text;if(typeof i!=="string")throw Error(`rip: bundle '${e}' fetch did not return text`);try{return JSON.parse(i)}catch(n){throw Error(`rip: bundle '${e}' is not valid JSON: ${n.message}`)}}var Lc=(e,t,{hmr:r=!1}={})=>{let i=new Map(Object.entries(e)),n=new Map,a=Xo({components:{read:(o)=>i.get(o),exists:(o)=>i.has(o),getCompiled:(o)=>n.get(o),setCompiled:(o,l)=>void n.set(o,l)},embeddedPackages:qo,debug:t,hmr:r});return{sources(o){i=new Map(Object.entries(o))},async compile(o=[]){let l=new Set;for(let c of o)for(let f of a.invalidate(c))l.add(f);try{let c={};for(let f of i.keys())if(!f.startsWith("rip/"))c[f]={...await a.import(f)};return{compiled:c,invalidated:[...l]}}finally{await a.collect()}},dispose:()=>a.dispose()}},Mc=(e,t)=>{let r=e.split("?")[0];return`${r.slice(0,r.lastIndexOf("/")+1)}${t}`};async function uf(e={}){if(!e.bundle&&!e.url)throw Error("rip: bootApp requires a bundle or a url");let t=e.bundle??await Pc(e.url,{fetchText:e.fetchText}),r=Dc(t),i=e.debug===!0,n=e.watch===!0||e.feed!=null,s=Lc(r,i,{hmr:n}),a=Fr(),o=(I)=>I["seed.rip"]?.seed,l=(I)=>Mr({bundle:{compiled:I,seed:o(I)},components:a,target:e.target,adapter:e.adapter,base:e.base,hash:e.hash,persist:e.persist,storage:e.storage,onError:e.onError}),c;try{let{compiled:I}=await s.compile();a.activate({hash:t.hash,sources:r,compiled:I}),c=l(I)}catch(I){throw s.dispose(),I}let f=null,h=!1,u={},m=e.feed?.report??((...I)=>console.error(...I)),S=e.feed?.report??((...I)=>console.info(...I)),g=(I)=>{if(_e(),S(`[Rip] reloading${I?` — ${I}`:""}`),typeof e.reload==="function")e.reload(I);else if(typeof location<"u")location.reload()},d=(I)=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")return[];let A=new Set,x=new URL(typeof location>"u"?"http://rip.invalid/":location.href),O=new URL("/",x);O.pathname=`/${I.replaceAll("%","%25")}`;let G=O.pathname;for(let K of document.querySelectorAll('link[rel="stylesheet"]')){let V=K.getAttribute("data-rip-css")===I;if(V)A.add(K);let Z=K.getAttribute("href")||"";if(!Z)continue;let W;try{W=new URL(Z,x)}catch{continue}if(!V&&W.origin===x.origin&&(W.pathname===G||W.pathname.endsWith(G)))A.add(K)}return[...A]},R=(I,A)=>{for(let x of d(I)){let O=x.getAttribute("href")||x.href,G=O.indexOf("#"),K=G<0?"":O.slice(G),Z=(G<0?O:O.slice(0,G)).split("?")[0];x.setAttribute("href",`${Z}?hash=${encodeURIComponent(A)}${K}`),x.disabled=!1}},b=Vr({renderer:{remountDirty:(I,A)=>c.renderer.remountDirty(I,A)},escape:async()=>"reload",report:S}),_=new Set,y=async(I)=>{let A;try{A=xc(I)}catch(C){return m("[Rip] malformed publication change:",C),"reload"}if(a.hash()===A.hash)return _.clear(),_e(),!0;if(_.has(A.hash))return!0;let x=A.from;if(a.hash()!==A.from)if(_.has(A.from))x=a.hash();else return"reload";let O=()=>Object.fromEntries(a.listAll().map((C)=>[C,a.read(C)])),G=O(),K=[];for(let C of A.entries){if(!C.path.endsWith(".rip"))continue;if(K.push(C.path),C.deletion)delete G[C.path];else G[C.path]=C.source}let V,Z;try{s.sources(G);let C=await s.compile(K);V=C.compiled,Z=C.invalidated.filter((w)=>!w.startsWith("rip/")),$c({compiled:V,seed:o(V)})}catch(C){return s.sources(O()),_.add(A.hash),m("[Rip] changed Rip program failed to compile:",C),Ko("compile",C),"rejected"}let W=A.entries.some((C)=>!C.path.endsWith(".rip")&&(!C.path.endsWith(".css")||C.deletion)),j=c.router.current,q=new Set([...j?.layouts??j?.route?.layouts??[],j?.route?.file].filter(Boolean)),t1=A.entries.some((C)=>C.deletion&&C.path.endsWith(".rip")&&q.has(C.path));if(W||t1)return s.sources(O()),"reload";let M=null,N=!1;try{M=a.stage(x,{hash:A.hash,sources:G,compiled:V},K);let C=Z.length?await b.absorb(Z,M.components):"ignore";M.commit(),N=!0,_.clear();for(let w of A.entries)if(w.path.endsWith(".css"))R(w.path,A.hash);if(_e(),C==="reload")return S("[Rip] committed App update requires a document reload"),"reload";return!0}catch(C){if(M&&!N)M.rollback();return s.sources(O()),_.add(A.hash),m("[Rip] changed Rip program failed to activate:",C),Ko("activate",C),"rejected"}};if(n){let I=e.latestUrl??e.feed?.latestUrl??(e.url?Mc(e.url,"latest.json"):"/latest.json");f=Ur({hash:()=>a.hash(),apply:y,reload:g},{...e.feed??{},latestUrl:I,report:m})}return Object.assign(u,c,{workspace:a,feed:f,destroy:()=>{if(h)return;h=!0,_e(),f?.close(),c.destroy(),s.dispose()}})}function mf(e={}){return Xo({...e,embeddedPackages:{...qo,...e.embeddedPackages}})}function df(e,t={}){if(t.runtimeDelivery!==void 0&&t.runtimeDelivery!=="none")throw Error(`rip: browser compilation delivers runtimes by scope; runtimeDelivery '${t.runtimeDelivery}' is not available here`);return ui(e,{...t,runtimeDelivery:"none"})}export{Hr as app,uf as bootApp,_e as clearHmrOverlay,ui as compile,df as compileToJS,mf as createModuleLoader,qo as embeddedPackages,Pc as fetchBundle,hf as hmrOverlayElement,ff as processRipScripts,zo as runtimes,Ko as showHmrOverlay}; +`;s.textContent=l+Ho(t);let c=document.createElement("button");c.type="button",c.textContent="Dismiss",c.style.cssText=["position:absolute","top:0.5rem","right:0.5rem","padding:0.4rem 0.75rem","font:12px/1.2 system-ui,sans-serif","color:#0f172a","background:#fff","border:1px solid #cbd5e1","border-radius:6px","cursor:pointer"].join(";"),c.addEventListener("click",()=>_e()),n.appendChild(s),n.appendChild(c),i.appendChild(n),i.addEventListener("click",(h)=>{if(h.target===i)_e()});let f=(h)=>{if(h.key==="Escape")_e()};if(i._ripOnKey=f,typeof document.addEventListener==="function")document.addEventListener("keydown",f);return r.appendChild(i),Xe=i,Ec("reject",{kind:e||"compile",path:Go(t),message:Ho(t).slice(0,500)}),i}function _e(){if(!Xe)return;let e=Xe._ripOnKey;if(e&&typeof document<"u"&&typeof document.removeEventListener==="function")document.removeEventListener("keydown",e);Xe.remove?.(),Xe=null}function hf(){return Xe}var{validatePrepared:$c}=Hr,Zo=(e)=>e!==null&&typeof e==="object"&&!Array.isArray(e),hi=(e)=>typeof e==="string"&&/^[A-Za-z0-9_]{6}$/.test(e),Qo=(e,t=!1)=>{if(typeof e!=="string"||e.length===0||e.startsWith("/")||e.includes("\\"))return!1;let r=e.split("/");if(r.some((i)=>!i||i==="."||i===".."||i.startsWith(".")))return!1;if(t){let i=r.at(-1);if(i===".rip"||!i.endsWith(".rip")||r.slice(0,-1).some((n)=>n.endsWith(".rip")))return!1}return!0},e2=(e,t)=>{let r=Object.keys(e).sort(),i=[...t].sort();return r.length===i.length&&r.every((n,s)=>n===i[s])},Dc=(e)=>{if(!Zo(e)||!e2(e,["hash","list"])||!hi(e.hash)||!Array.isArray(e.list))throw Error("rip: bundle must contain exactly one hash and one source list");let t={},r=null;for(let i of e.list){if(!Array.isArray(i)||i.length!==2||!Qo(i[0],!0)||typeof i[1]!=="string"||r!==null&&r>=i[0])throw Error(`rip: bundle has a malformed or unsorted source entry: ${JSON.stringify(i)}`);if(i[0]==="rip/app"||i[0].startsWith("rip/app/"))throw Error(`rip: bundle source '${i[0]}' collides with embedded package 'rip/app'`);r=i[0],t[i[0]]=i[1]}return t},xc=(e)=>{if(!Zo(e)||!e2(e,["from","hash","list"])||!hi(e.from)||!hi(e.hash)||!Array.isArray(e.list))throw Error("rip: publication change must contain exactly from, hash, and list");let t=null,r=[];for(let i of e.list){if(!Array.isArray(i)||i.length<1||i.length>2||!Qo(i[0])||t!==null&&t>=i[0])throw Error(`rip: publication change has a malformed or unsorted entry: ${JSON.stringify(i)}`);let[n]=i,s=i.length===2&&i[1]===null;if(n.endsWith(".rip")){if(i.length!==2||!s&&typeof i[1]!=="string")throw Error(`rip: Rip change '${n}' must carry source or null`)}else if(i.length===2&&!s)throw Error(`rip: ordinary asset change '${n}' cannot carry content`);t=n,r.push({path:n,source:i[1],deletion:s})}return{from:e.from,hash:e.hash,entries:r}},Cc=async(e)=>{let t=await fetch(e);if(!t.ok)throw Error(`rip: failed to fetch bundle '${e}': ${t.status} ${t.statusText}`);return t.text()};async function Pc(e,{fetchText:t=Cc}={}){if(!e)throw Error("rip: fetchBundle requires a url");let r=await t(e),i=typeof r==="string"?r:r?.text;if(typeof i!=="string")throw Error(`rip: bundle '${e}' fetch did not return text`);try{return JSON.parse(i)}catch(n){throw Error(`rip: bundle '${e}' is not valid JSON: ${n.message}`)}}var Lc=(e,t,{hmr:r=!1}={})=>{let i=new Map(Object.entries(e)),n=new Map,a=Xo({components:{read:(o)=>i.get(o),exists:(o)=>i.has(o),getCompiled:(o)=>n.get(o),setCompiled:(o,l)=>void n.set(o,l)},embeddedPackages:qo,debug:t,hmr:r});return{sources(o){i=new Map(Object.entries(o))},async compile(o=[]){let l=new Set;for(let c of o)for(let f of a.invalidate(c))l.add(f);try{let c={};for(let f of i.keys())if(!f.startsWith("rip/"))c[f]={...await a.import(f)};return{compiled:c,invalidated:[...l]}}finally{await a.collect()}},dispose:()=>a.dispose()}},Mc=(e,t)=>{let r=e.split("?")[0];return`${r.slice(0,r.lastIndexOf("/")+1)}${t}`};async function uf(e={}){if(!e.bundle&&!e.url)throw Error("rip: bootApp requires a bundle or a url");let t=e.bundle??await Pc(e.url,{fetchText:e.fetchText}),r=Dc(t),i=e.debug===!0,n=e.watch===!0||e.feed!=null,s=Lc(r,i,{hmr:n}),a=Fr(),o=(O)=>O["seed.rip"]?.seed,l=(O)=>Mr({bundle:{compiled:O,seed:o(O)},components:a,target:e.target,adapter:e.adapter,base:e.base,hash:e.hash,persist:e.persist,storage:e.storage,onError:e.onError}),c;try{let{compiled:O}=await s.compile();a.activate({hash:t.hash,sources:r,compiled:O}),c=l(O)}catch(O){throw s.dispose(),O}let f=null,h=!1,u={},d=e.feed?.report??((...O)=>console.error(...O)),S=e.feed?.report??((...O)=>console.info(...O)),g=(O)=>{if(_e(),S(`[Rip] reloading${O?` — ${O}`:""}`),typeof e.reload==="function")e.reload(O);else if(typeof location<"u")location.reload()},p=(O)=>{if(typeof document>"u"||typeof document.querySelectorAll!=="function")return[];let A=new Set,x=new URL(typeof location>"u"?"http://rip.invalid/":location.href),I=new URL("/",x);I.pathname=`/${O.replaceAll("%","%25")}`;let H=I.pathname;for(let G of document.querySelectorAll('link[rel="stylesheet"]')){let K=G.getAttribute("data-rip-css")===O;if(K)A.add(G);let Z=G.getAttribute("href")||"";if(!Z)continue;let V;try{V=new URL(Z,x)}catch{continue}if(!K&&V.origin===x.origin&&(V.pathname===H||V.pathname.endsWith(H)))A.add(G)}return[...A]},R=(O,A)=>{for(let x of p(O)){let I=x.getAttribute("href")||x.href,H=I.indexOf("#"),G=H<0?"":I.slice(H),Z=(H<0?I:I.slice(0,H)).split("?")[0];x.setAttribute("href",`${Z}?hash=${encodeURIComponent(A)}${G}`),x.disabled=!1}},b=Vr({renderer:{remountDirty:(O,A)=>c.renderer.remountDirty(O,A)},escape:async()=>"reload",report:S}),_=new Set,y=async(O)=>{let A;try{A=xc(O)}catch(C){return d("[Rip] malformed publication change:",C),"reload"}if(a.hash()===A.hash)return _.clear(),_e(),!0;if(_.has(A.hash))return!0;let x=A.from;if(a.hash()!==A.from)if(_.has(A.from))x=a.hash();else return"reload";let I=()=>Object.fromEntries(a.listAll().map((C)=>[C,a.read(C)])),H=I(),G=[];for(let C of A.entries){if(!C.path.endsWith(".rip"))continue;if(G.push(C.path),C.deletion)delete H[C.path];else H[C.path]=C.source}let K,Z;try{s.sources(H);let C=await s.compile(G);K=C.compiled,Z=C.invalidated.filter((w)=>!w.startsWith("rip/")),$c({compiled:K,seed:o(K)})}catch(C){return s.sources(I()),_.add(A.hash),d("[Rip] changed Rip program failed to compile:",C),Ko("compile",C),"rejected"}let V=A.entries.some((C)=>!C.path.endsWith(".rip")&&(!C.path.endsWith(".css")||C.deletion)),j=c.router.current,q=new Set([...j?.layouts??j?.route?.layouts??[],j?.route?.file].filter(Boolean)),t1=A.entries.some((C)=>C.deletion&&C.path.endsWith(".rip")&&q.has(C.path));if(V||t1)return s.sources(I()),"reload";let M=null,N=!1;try{M=a.stage(x,{hash:A.hash,sources:H,compiled:K},G);let C=Z.length?await b.absorb(Z,M.components):"ignore";M.commit(),N=!0,_.clear();for(let w of A.entries)if(w.path.endsWith(".css"))R(w.path,A.hash);if(_e(),C==="reload")return S("[Rip] committed App update requires a document reload"),"reload";return!0}catch(C){if(M&&!N)M.rollback();return s.sources(I()),_.add(A.hash),d("[Rip] changed Rip program failed to activate:",C),Ko("activate",C),"rejected"}};if(n){let O=e.latestUrl??e.feed?.latestUrl??(e.url?Mc(e.url,"latest.json"):"/latest.json");f=Ur({hash:()=>a.hash(),apply:y,reload:g},{...e.feed??{},latestUrl:O,report:d})}return Object.assign(u,c,{workspace:a,feed:f,destroy:()=>{if(h)return;h=!0,_e(),f?.close(),c.destroy(),s.dispose()}})}function df(e={}){return Xo({...e,embeddedPackages:{...qo,...e.embeddedPackages}})}function mf(e,t={}){if(t.runtimeDelivery!==void 0&&t.runtimeDelivery!=="none")throw Error(`rip: browser compilation delivers runtimes by scope; runtimeDelivery '${t.runtimeDelivery}' is not available here`);return ui(e,{...t,runtimeDelivery:"none"})}export{Hr as app,uf as bootApp,_e as clearHmrOverlay,ui as compile,mf as compileToJS,df as createModuleLoader,qo as embeddedPackages,Pc as fetchBundle,hf as hmrOverlayElement,ff as processRipScripts,zo as runtimes,Ko as showHmrOverlay}; diff --git a/dist/@rip/rip.min.js.br b/dist/@rip/rip.min.js.br index 3978395de80b95f57adc1cef6dd7cc880d4e4a8e..0cfe1fefcb8b5945c2b27d8d27d2ce5931ac179a 100644 GIT binary patch literal 177491 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 YylU?LpkkxsnYyjRU}17p<&6nhg3 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%0Aq5-C8i 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 at = strings + dv.getUint16(p + 10) continue unless id is 6 s = if plat is 3 - (String.fromCharCode dv.getUint16(at + j * 2) for j in [0...len / 2]).join '' + (String.fromCharCode dv.getUint16(at + j * 2) for j in [0...len >> 1]).join '' else (String.fromCharCode bytes[at + j] for j in [0...len]).join '' s = s.replace /[^A-Za-z0-9+-]/g, '' diff --git a/src/emitter.js b/src/emitter.js index 5bf5ce0b..9a370c9a 100644 --- a/src/emitter.js +++ b/src/emitter.js @@ -6430,53 +6430,68 @@ class Emitter { return names; } - // Ranged for with a BY step. Literal steps take static-direction - // headers (a positive literal ascends toward TO, a negative one - // descends); every other step binds ONCE and the header tests its - // sign, so both directions terminate and a zero step iterates - // nothing (a zero LITERAL rejects — it never advances). Impure - // bounds bind once beside the counter. - rangedByHeader(node, markVar, vars, iter, step) { + // Ranged for, every form. Direction: a literal step's sign decides + // (positive ascends, negative descends, zero rejects — it never + // advances); a variable step binds ONCE and the header tests its + // sign; with no step, two literal bounds decide statically and any + // variable bound ascends (`by -1` descends). Impure bounds bind once + // beside the counter. A second loop variable is the iteration index. + rangedHeader(node, markVar, vars, iter, step) { const [dots, from, to] = iter; const cmpUp = dots === '..' ? '<=' : '<'; const cmpDown = dots === '..' ? '>=' : '>'; const numText = (s) => (typeof s === 'string' && /^[0-9.]/.test(s) ? s : null); - const posLit = numText(step) ?? - (isNode(step) && step[0] === '+' && step.length === 2 ? numText(step[1]) : null); - const negLit = isNode(step) && step[0] === '-' && step.length === 2 ? numText(step[1]) : null; - if ((posLit ?? negLit) !== null && Number((posLit ?? negLit).replace(/_/g, '')) === 0) { + const signedText = (x) => numText(x) ?? + (isNode(x) && (x[0] === '+' || x[0] === '-') && x.length === 2 && numText(x[1]) !== null + ? `${x[0] === '-' ? '-' : ''}${numText(x[1])}` + : null); + const literal = (x) => { + const text = signedText(x); + return text === null ? null : Number(text.replace(/_/g, '')); + }; + const stepLit = step === null ? null : literal(step); + if (stepLit === 0) { throw this.positionedError(node, 'emitter: a BY step of 0 never advances the loop'); } + const fromLit = literal(from); + const toLit = literal(to); + const descends = step === null + ? fromLit !== null && toLit !== null && fromLit > toLit + : stepLit !== null && stepLit < 0; const v = vars[0]; - const toRef = this.singleReadIterable(to) ? null : this.loopTempName('_ref'); - const stepRef = posLit !== null || negLit !== null ? null : this.loopTempName('_step'); + const idx = vars.length === 2 ? vars[1] : null; + const toRef = toLit !== null || this.singleReadIterable(to) ? null : this.loopTempName('_ref'); + const stepRef = step === null || stepLit !== null ? null : this.loopTempName('_step'); this.b.emit('for (let '); markVar(v); this.b.emit(' = '); this.expr(from); if (toRef !== null) { this.b.emit(`, ${toRef} = `); this.expr(to); } if (stepRef !== null) { this.b.emit(`, ${stepRef} = `); this.mark(node, 'step', () => this.expr(step)); } + if (idx !== null) { this.b.emit(', '); markVar(idx); this.b.emit(' = 0'); } const toText = () => { if (toRef !== null) this.b.emit(toRef); else this.expr(to); }; + const advance = () => { + if (stepRef !== null) this.b.emit(`${v} += ${stepRef}`); + else if (step === null) this.b.emit(descends ? `${v}--` : `${v}++`); + else { + this.b.emit(`${v} ${descends ? '-=' : '+='} `); + this.mark(node, 'step', () => this.b.emit(String(Math.abs(stepLit)))); + } + if (idx !== null) this.b.emit(`, ${idx}++`); + }; this.b.emit('; '); if (stepRef !== null) { this.b.emit(`${stepRef} > 0 ? ${v} ${cmpUp} `); toText(); this.b.emit(` : ${v} ${cmpDown} `); toText(); - this.b.emit(`; ${v} += ${stepRef})`); - } else if (negLit !== null) { - this.b.emit(`${v} ${cmpDown} `); - toText(); - this.b.emit(`; ${v} -= `); - this.mark(node, 'step', () => this.b.emit(negLit)); - this.b.emit(')'); } else { - this.b.emit(`${v} ${cmpUp} `); + this.b.emit(`${v} ${descends ? cmpDown : cmpUp} `); toText(); - this.b.emit(`; ${v} += `); - this.mark(node, 'step', () => this.b.emit(posLit)); - this.b.emit(')'); } + this.b.emit('; '); + advance(); + this.b.emit(')'); } forIn(node, ind) { @@ -6497,26 +6512,8 @@ class Emitter { if (isNode(vars[0]) && (isRange(iter) || step !== null)) { throw this.positionedError(node, 'emitter: pattern loop variables with ranges or BY steps are not supported yet'); } - if (isRange(iter) && step === null) { - const [dots, from, to] = iter; - // The condition re-reads TO each iteration: an impure bound - // binds once in the init (a pure one keeps its bytes). - const toRef = this.singleReadIterable(to) ? null : this.loopTempName('_ref'); - this.b.emit('for (let '); - markVar(vars[0]); - this.b.emit(' = '); - this.expr(from); - if (toRef) { - this.b.emit(`, ${toRef} = `); - this.expr(to); - } - this.b.emit(`; ${vars[0]} ${dots === '..' ? '<=' : '<'} `); - if (toRef) this.b.emit(toRef); - else this.expr(to); - this.b.emit(`; ${vars[0]}++) `); - this.guardedBlock(body, guard, ind); - } else if (isRange(iter)) { - this.rangedByHeader(node, markVar, vars, iter, step); + if (isRange(iter)) { + this.rangedHeader(node, markVar, vars, iter, step); this.b.emit(' '); this.guardedBlock(body, guard, ind); } else if (step !== null) { @@ -6859,8 +6856,8 @@ class Emitter { if (isNode(vars[0]) && (isRange(iter) || step !== null)) { throw this.positionedError(node, 'emitter: pattern loop variables with ranges or BY steps are not supported yet'); } - if (isRange(iter) && step !== null) { - this.rangedByHeader(node, markVar, vars, iter, step); + if (isRange(iter)) { + this.rangedHeader(node, markVar, vars, iter, step); return setups; } if (step !== null) { diff --git a/test/corpus/expected/compose4.js b/test/corpus/expected/compose4.js index b2e03369..47f3ecfa 100644 --- a/test/corpus/expected/compose4.js +++ b/test/corpus/expected/compose4.js @@ -13,7 +13,7 @@ function sum(list) { let s = sum([1, 2, 3]); let v = (() => { const result = []; - for (let n of ((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(1, 3)) { + for (let n = 1; n <= 3; n++) { result.push((n * 2)); } return result; diff --git a/test/corpus/expected/compose4.map.json b/test/corpus/expected/compose4.map.json index 53c9fe4f..c6fd0944 100644 --- a/test/corpus/expected/compose4.map.json +++ b/test/corpus/expected/compose4.map.json @@ -1 +1 @@ -{"version":3,"file":"compose4.rip.js","sources":["compose4.rip"],"sourcesContent":["# composition-and-boundary fixture: control flow in applicable\n# matrix positions, statement-position row included. Inapplicable cells:\n# - for/switch/try/loop/throw are statement-only this wave (expression\n# position rejects loudly — an IIFE lowering of\n# try/switch-as-expression is\n# IIFE wrapping, deferred, incl. as the implicit\n# return of a function body)\n# - comprehensions are VALUE-position expressions (deterministic IIFE\n# deliberately absent); statement position keeps the plain\n# statement lowering\n#, member-object position with it\ndef sum(list)\n total = 0\n parts = (n for n in list)\n total = parts.length\n return total\n\ns = sum([1, 2, 3])\nv = (n * 2 for n in [1..3])\nw = v[0]\nlabel = \"\"\nswitch s\n when 6\n label = \"six\"\n else\n label = \"other\"\n\n# trivia at a block boundary\n\ncaught = 0\ntry\n missing()\ncatch err\n caught = 1 if err\n\nu = s in [5, 6]\nloop\n s -= 1\n break unless s > 0\n\n# statement-position row: postfix update forms are valid statements\ns++ if u\n"],"names":["sum","list","total","parts","n","length","s","v","w","label","caught","missing","err","u"],"mappings":"AAWA,SAAIA,GAAG,CAACC,MACN;MAAAC,QAAQ;MACRC,QAAS;;;kBAAAC;;;;EACTF,QAAQC,MAAME;EACd,OAAOH;;IAETI,IAAIN,GAAG,CAAC,CAAC;IACTO,IAAK;;gBAAe,6FAAC,GAAG;iBAAnBH,EAAE,EAAE;;;;IACTI,IAAID,EAAE;IACNE,QAAQ;AACR,QAAOH;AACL;IACEG,QAAQ;;;IAERA,QAAQ;;;IAIZC,SAAS;AACT,IACE;EAAAC,OAAO;SACHC,KACJ;EAAA,IAAcA,KAAdF,SAAS;;IAEXG,IAAI,+EAAAP,GAAK,CAAC;AACV,aACE;EAAAA,EAAE,GAAG;EACL,IAAa,EAAAA,EAAE,EAAE;;AAGnB,IAAOO,GAAP,CAAAP"} +{"version":3,"file":"compose4.rip.js","sources":["compose4.rip"],"sourcesContent":["# composition-and-boundary fixture: control flow in applicable\n# matrix positions, statement-position row included. Inapplicable cells:\n# - for/switch/try/loop/throw are statement-only this wave (expression\n# position rejects loudly — an IIFE lowering of\n# try/switch-as-expression is\n# IIFE wrapping, deferred, incl. as the implicit\n# return of a function body)\n# - comprehensions are VALUE-position expressions (deterministic IIFE\n# deliberately absent); statement position keeps the plain\n# statement lowering\n#, member-object position with it\ndef sum(list)\n total = 0\n parts = (n for n in list)\n total = parts.length\n return total\n\ns = sum([1, 2, 3])\nv = (n * 2 for n in [1..3])\nw = v[0]\nlabel = \"\"\nswitch s\n when 6\n label = \"six\"\n else\n label = \"other\"\n\n# trivia at a block boundary\n\ncaught = 0\ntry\n missing()\ncatch err\n caught = 1 if err\n\nu = s in [5, 6]\nloop\n s -= 1\n break unless s > 0\n\n# statement-position row: postfix update forms are valid statements\ns++ if u\n"],"names":["sum","list","total","parts","n","length","s","v","w","label","caught","missing","err","u"],"mappings":"AAWA,SAAIA,GAAG,CAACC,MACN;MAAAC,QAAQ;MACRC,QAAS;;;kBAAAC;;;;EACTF,QAAQC,MAAME;EACd,OAAOH;;IAETI,IAAIN,GAAG,CAAC,CAAC;IACTO,IAAK;;;iBAAAH,EAAE,EAAE;;;;IACTI,IAAID,EAAE;IACNE,QAAQ;AACR,QAAOH;AACL;IACEG,QAAQ;;;IAERA,QAAQ;;;IAIZC,SAAS;AACT,IACE;EAAAC,OAAO;SACHC,KACJ;EAAA,IAAcA,KAAdF,SAAS;;IAEXG,IAAI,+EAAAP,GAAK,CAAC;AACV,aACE;EAAAA,EAAE,GAAG;EACL,IAAa,EAAAA,EAAE,EAAE;;AAGnB,IAAOO,GAAP,CAAAP"} diff --git a/test/rip/comprehensions.rip b/test/rip/comprehensions.rip index d29644ea..272af853 100644 --- a/test/rip/comprehensions.rip +++ b/test/rip/comprehensions.rip @@ -518,3 +518,49 @@ test 'object comprehension handles a large accumulated result', ''' out = {k: v for k, v of src} [Object.keys(out).length, out['1999']] ''', [2000, 1999] + +# ============================================================================== +# Range comprehensions share the counting header: no materialized range +# ============================================================================== + +test 'postfix range literal descending', "out = []\nout.push i for i in [3..1]\nout", [3, 2, 1] +test 'postfix range [1..n] with n = 0 runs nothing', "n = 0\nout = []\nout.push i for i in [1..n]\nout", [] +test 'comprehension variable start above end is empty', "hi = 3\nlo = 1\n(i for i in [hi..lo])", [] +test 'comprehension variable range descends with by -1', "hi = 3\nlo = 1\n(i for i in [hi..lo] by -1)", [3, 2, 1] +test 'comprehension negative literal bounds', "(i for i in [2..-2])", [2, 1, 0, -1, -2] +test 'comprehension fractional bound compares directly', "len = 5\n(i for i in [0...len / 2])", [0, 1, 2] +test 'comprehension two-variable range binds the index', "([v, i] for v, i in [1..3])", [[1, 0], [2, 1], [3, 2]] +test 'comprehension bigint bounds', "(String(i) for i in [1n..3n])", ['1', '2', '3'] +test 'comprehension nested literal ranges', "([i, j] for j in [1..2] for i in [1..2])", [[[1, 1], [1, 2]], [[2, 1], [2, 2]]] + +test 'comprehension range bounds evaluate once each', ''' + calls = 0 + top = -> calls++; 3 + [(i for i in [1..top()]), calls] + ''', [[1, 2, 3], 1] + +code 'comprehension range compiles to a counting loop', ''' + squares = (k * k for k in [1..3]) + ''', ''' + let squares = (() => { + const result = []; + for (let k = 1; k <= 3; k++) { + result.push((k * k)); + } + return result; + })(); + ''' + +code 'postfix range binds an impure bound once', ''' + total = 0 + total += k for k in [1..n] + ''', ''' + let total = 0; + (() => { + const result = []; + for (let k = 1, _ref = n; k <= _ref; k++) { + result.push((total += k)); + } + return result; + })(); + ''' diff --git a/test/rip/loops.rip b/test/rip/loops.rip index 15b4e33b..760f399a 100644 --- a/test/rip/loops.rip +++ b/test/rip/loops.rip @@ -686,3 +686,106 @@ code 'a guarded plain loop braces too', 'f x for x in xs if c', ''' ''' fail 'a var-less ranged loop with a step rejects the same way', 'for [1..5] by 2\n x = 1', 'binds no variable' + +# ============================================================================== +# Range loop direction: literal bounds decide statically, variable bounds +# ascend, `by` decides when present; one counting header in every form +# ============================================================================== + +test "range literal descending", "out = []\nfor i in [3..1]\n out.push i\nout", [3, 2, 1] +test "range literal descending exclusive", "out = []\nfor i in [3...1]\n out.push i\nout", [3, 2] +test "range equal bounds inclusive", "out = []\nfor i in [2..2]\n out.push i\nout", [2] +test "range equal bounds exclusive", "out = []\nfor i in [2...2]\n out.push i\nout", [] +test "range negative literal bounds ascending", "out = []\nfor i in [-2..2]\n out.push i\nout", [-2, -1, 0, 1, 2] +test "range negative literal bounds descending", "out = []\nfor i in [2..-2]\n out.push i\nout", [2, 1, 0, -1, -2] +test "range variable start above end is empty", "hi = 3\nlo = 1\nout = []\nfor i in [hi..lo]\n out.push i\nout", [] +test "range variable descends with by -1", "hi = 3\nlo = 1\nout = []\nfor i in [hi..lo] by -1\n out.push i\nout", [3, 2, 1] +test "range [1..n] with n = 0 is empty", "n = 0\nout = []\nfor i in [1..n]\n out.push i\nout", [] +test "range [0...count - 1] with count = 0 is empty", "count = 0\nout = []\nfor i in [0...count - 1]\n out.push i\nout", [] +test "range fractional bound compares directly", "len = 5\nout = []\nfor i in [0...len / 2]\n out.push i\nout", [0, 1, 2] +test "range literal step sign wins over literal bounds", "out = []\nfor i in [6..0] by 2\n out.push i\nfor i in [0..6] by -2\n out.push i\nout", [] +test "range two-variable form binds the index", "out = []\nfor v, i in [1..3]\n out.push [v, i]\nout", [[1, 0], [2, 1], [3, 2]] +test "range two-variable form with a step", "out = []\nfor v, i in [1..6] by 2\n out.push [v, i]\nout", [[1, 0], [3, 1], [5, 2]] +test "range two-variable form with a variable bound", "n = 3\nout = []\nfor v, i in [1..n]\n out.push [v, i]\nout", [[1, 0], [2, 1], [3, 2]] + +test "range bounds evaluate once each, in order", ''' + calls = [] + lo = -> calls.push 'lo'; 1 + hi = -> calls.push 'hi'; 3 + out = [] + for i in [lo()..hi()] + out.push i + [out, calls] + ''', [[1, 2, 3], ['lo', 'hi']] + +test "range loop variable is captured per iteration", ''' + fs = [] + for i in [1..3] + fs.push -> i + (f() for f in fs) + ''', [1, 2, 3] + +test "range tail loop returns the collected values", ''' + f = -> + for i in [3..1] + i * 2 + f() + ''', [6, 4, 2] + +test "range loop inside a generator yields each value", ''' + g = -> + for i in [1..3] + yield i + [...g()] + ''', [1, 2, 3] + +test "range value keeps runtime direction while the loop ascends", ''' + hi = 3 + lo = 1 + value = [hi..lo] + looped = [] + for i in [hi..lo] + looped.push i + [value, looped] + ''', [[3, 2, 1], []] + +code 'range literal descending compiles to a counting loop', ''' + for k in [3..1] + console.log k + ''', ''' + for (let k = 3; k >= 1; k--) { + console.log(k); + } + ''' + +code 'range negative literal bound needs no temp', ''' + for k in [2..-2] + console.log k + ''', ''' + for (let k = 2; k >= -2; k--) { + console.log(k); + } + ''' + +code 'range two-variable form declares the index in the header', ''' + for v, i in [1..3] + console.log v, i + ''', ''' + for (let v = 1, i = 0; v <= 3; v++, i++) { + console.log(v, i); + } + ''' + +code 'range tail loop collects from a counting loop', ''' + f = -> + for k in [1..3] + k + ''', ''' + let f = function() { + const _result = []; + for (let k = 1; k <= 3; k++) { + _result.push(k); + } + return _result; + }; + '''